// 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 ../../core/ObjectStack ../../chunks/vec32 ../../core/libs/gl-matrix-2/factories/vec3f64 ./vectorStacks".split(" "),function(k,r,A,e,p,l){function q(b){return b?{origin:p.clone(b.origin),vector:p.clone(b.vector)}:{origin:p.create(),vector:p.create()}}function v(b,a){const c=B.get();c.origin=b;c.vector=a;return c}function w(b,a,c=q()){e.copy(c.origin,b);e.copy(c.vector,a);return c}function x(b,a,c,m,h){const {vector:f,origin:d}=b;a=e.subtract(l.sv3d.get(),a,d);a= e.dot(f,a)/e.squaredLength(f);e.scale(h,f,r.clamp(a,c,m));return e.add(h,h,b.origin)}function y(b,a,c,m){const h=b.origin;var f=e.add(l.sv3d.get(),h,b.vector);b=a.origin;var d=e.add(l.sv3d.get(),b,a.vector),g=l.sv3d.get();a=l.sv3d.get();g[0]=h[0]-b[0];g[1]=h[1]-b[1];g[2]=h[2]-b[2];a[0]=d[0]-b[0];a[1]=d[1]-b[1];a[2]=d[2]-b[2];if(1E-6>Math.abs(a[0])&&1E-6>Math.abs(a[1])&&1E-6>Math.abs(a[2]))return!1;d=l.sv3d.get();d[0]=f[0]-h[0];d[1]=f[1]-h[1];d[2]=f[2]-h[2];if(1E-6>Math.abs(d[0])&&1E-6>Math.abs(d[1])&& 1E-6>Math.abs(d[2]))return!1;f=g[0]*a[0]+g[1]*a[1]+g[2]*a[2];var n=a[0]*d[0]+a[1]*d[1]+a[2]*d[2];const u=a[0]*a[0]+a[1]*a[1]+a[2]*a[2],z=(d[0]*d[0]+d[1]*d[1]+d[2]*d[2])*u-n*n;if(1E-6>Math.abs(z))return!1;g=(f*n-(g[0]*d[0]+g[1]*d[1]+g[2]*d[2])*u)/z;f=(f+n*g)/u;c&&(g=r.clamp(g,0,1),f=r.clamp(f,0,1));c=l.sv3d.get();n=l.sv3d.get();c[0]=h[0]+g*d[0];c[1]=h[1]+g*d[1];c[2]=h[2]+g*d[2];n[0]=b[0]+f*a[0];n[1]=b[1]+f*a[1];n[2]=b[2]+f*a[2];m.tA=g;m.tB=f;m.pA=c;m.pB=n;m.distance2=e.squaredDistance(c,n);return!0} const t={tA:0,tB:0,pA:p.create(),pB:p.create(),distance2:0},B=new A.ObjectStack(()=>q());k.closestLineSegmentPoint=function(b,a,c){return y(b,a,!0,t)?(e.copy(c,t.pA),!0):!1};k.closestRayDistance2=function(b,a){if(y(b,v(a.origin,a.direction),!1,t)){const {tA:c,pB:m,distance2:h}=t;if(0<=c&&1>=c)return h;if(0>c)return e.squaredDistance(b.origin,m);if(1