/* COPYRIGHT Esri - https://js.arcgis.com/5.1.0/LICENSE.txt */
import{handlesGroup as i}from"../../../core/handleUtils.js";import{CurveSnappingHint as n}from"./hints/CurveSnappingHint.js";import{IntersectionSnappingHint as t}from"./hints/IntersectionSnappingHint.js";import{LineSnappingHint as s}from"./hints/LineSnappingHint.js";import{ParallelSnappingHint as o}from"./hints/ParallelSnappingHint.js";import{PointSnappingHint as e}from"./hints/PointSnappingHint.js";import{RightAngleSnappingHint as r}from"./hints/RightAngleSnappingHint.js";class a{draw(a,h){const u=p(a),f=this.sortUniqueHints(u),l=[];for(const i of f)i instanceof t&&l.push(this.visualizeIntersectionPoint(i,h)),i instanceof s&&l.push(this.visualizeLine(i,h)),i instanceof n&&l.push(this.visualizeCurve(i,h)),i instanceof o&&l.push(this.visualizeParallelSign(i,h)),i instanceof r&&l.push(this.visualizeRightAngleQuad(i,h)),i instanceof e&&l.push(this.visualizePoint(i,h));return i(l)}sortUniqueHints(i){return i}}function p(i){const n=[];for(const t of i){let i=!0;for(const s of n)if(t.equals(s)){i=!1;break}i&&n.push(t)}return n}export{a as SnappingVisualizer};
