// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define(["exports","../../core/mathUtils","../../geometry/Point","../../geometry/support/intersectsBase"],function(l,A,v,B){function C(a,b,d){const c={x:0,y:0};b&&(c.z=0);d&&(c.m=0);let g=0;var e=a[0];for(let w=0;w=d;)a-=b;return a}function y(a,b){return Math.atan2(b.y-a.y,b.x-a.x)}function z(a,b,d){var c=a.x-b.x;a=a.y-b.y;var g=d.x-b.x;b=d.y-b.y;return Math.atan2(c* b-g*a,c*g+a*b)}const q=[];for(const a of[[9002,56146130,6131,6132,8050,8051,8228],[9003,5702,6358,6359,6360,8052,8053],[9095,5754]]){const b=a[0];for(let d=1;d=e.length){e=0;break a}let n=0;for(let m=1;mc?c=0:1=c?[b[0]+(d[0]-b[0])*c,b[1]+(d[1]-b[1])*c]:[d[0]-(d[0]-b[0])*(1-c),d[1]-(d[1]-b[1])*(1-c)]};l.closestPointOnLineSegmentWithZ= function(a,b,d){var c=[d[0]-b[0],d[1]-b[1],d[2]-b[2]];a=[a[0]-b[0],a[1]-b[1],a[2]-b[2]];c=Math.max(0,Math.min(1,(c[0]*a[0]+c[1]*a[1]+c[2]*a[2])/(c[0]*c[0]+c[1]*c[1]+c[2]*c[2])));return[b[0]+(d[0]-b[0])*c,b[1]+(d[1]-b[1])*c,b[2]+(d[2]-b[2])*c]};l.getMetersPerVerticalUnitForSR=function(a){return a.vcsWkid&&void 0!==q[a.vcsWkid]?r[q[a.vcsWkid]]:a.latestVcsWkid&&void 0!==q[a.latestVcsWkid]?r[q[a.latestVcsWkid]]:1};l.pathsSelfIntersecting=function(a){for(let n=0;nb))for(d=0;d<=b-2;d++)for(c=m[d],g=m[d+1],e=d+2;e<=b-2;e++)if(f=m[e],h=m[e+1],B.segmentIntersects(c,g,f,h,k)&&!(k[0]===c[0]&&k[1]===c[1]||k[0]===f[0]&&k[1]===f[1]||k[0]===g[0]&&k[1]===g[1]||k[0]===h[0]&&k[1]=== h[1]))return!0}return!1};l.segmentLength=x;l.segmentLength3d=function(a,b,d){return Math.sqrt((a[0]-b[0])**2+(a[1]-b[1])**2+(void 0!==a[2]&&void 0!==b[2]?(a[2]*d-b[2]*d)**2:0))};l.segmentLength3dSqr=function(a,b,d){return(a[0]-b[0])**2+(a[1]-b[1])**2+(void 0!==a[2]&&void 0!==b[2]?(a[2]*d-b[2]*d)**2:0)};l.segmentLengthSqr=function(a,b,d){const c=b[0]-a[0];a=b[1]-a[1];return d?(b=b[2]-b[2],c*c+a*a+b*b):c*c+a*a};Object.defineProperty(l,Symbol.toStringTag,{value:"Module"})});