// 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/has ../core/Logger ../core/mathUtils ../core/libs/gl-matrix-2/math/mat4 ./vec32 ../core/libs/gl-matrix-2/factories/vec3f64 ./vec42 ../core/libs/gl-matrix-2/factories/vec4f64 ../core/libs/gl-matrix-2/math/common ../geometry/support/Axis ../geometry/support/ray ../geometry/support/vector ../geometry/support/vectorStacks".split(" "),function(e,w,x,y,ca,f,n,p,q,da,r,H,ea,l){function t(){return q.create()}function z(a,b){return p.copy(b,a)}function I(a,b){return q.fromValues(a[0], a[1],a[2],b)}function J(a){return a}function K(a){a[0]=a[1]=a[2]=a[3]=0}function L(a,b){a[0]=a[1]=a[2]=0;a[3]=b;return a}function M(a){return a[3]}function N(a){return a}function O(a,b,c,d){return q.fromValues(a,b,c,d)}function P(a,b,c){a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2]);c[3]=a[3]+b;return c}function Q(a,b,c){a!==c&&z(a,c);return c}function m(a,b,c){if(null==b||!R(a,b,u))return!1;let {t0:d,t1:h}=u;if(0>d||hd)return!1;if(c){const {origin:g,direction:k}=b;c[0]=g[0]+k[0]*d;c[1]= g[1]+k[1]*d;c[2]=g[2]+k[2]*d}return!0}function S(a,b,c){b=H.fromPoints(b,c);if(!R(a,b,u))return[];const {origin:d,direction:h}=b,{t0:g,t1:k}=u;b=fa=>{const A=n.create();f.scaleAndAdd(A,d,h,fa);return v(a,A,A)};return Math.abs(g-k)a)return!1;a=Math.sqrt(a);c.t0=(-k-a)/(2*b);c.t1=(-k+a)/(2*b);return!0}function T(a,b){return m(a,b,null)}function U(a,b,c){if(m(a,b,c))return c;a=B(a,b,l.sv3d.get());f.add(c,b.origin,f.scale(l.sv3d.get(),b.direction,f.distance(b.origin,a)/f.length(b.direction)));return c}function B(a,b,c){const d=l.sv3d.get(),h=l.sm4d.get();f.cross(d,b.origin,b.direction);const g=a[3];f.cross(c,d,b.origin);f.scale(c,c,1/f.length(c)*g);a=C(a,b.origin);b=ea.angle(b.origin,c);ca.fromRotation(h,b+a,d);f.transformMat4(c, c,h);return c}function V(a,b,c){if(m(a,b,c))return c;H.closestPoint(b,a,c);return v(a,c,c)}function v(a,b,c){b=f.subtract(l.sv3d.get(),b,a);b=f.scale(l.sv3d.get(),b,a[3]/f.length(b));return f.add(c,b,a)}function W(a,b){b=f.subtract(l.sv3d.get(),b,a);b=f.squaredLength(b);return Math.sqrt(Math.abs(b-a[3]*a[3]))}function C(a,b){b=f.subtract(l.sv3d.get(),b,a);b=f.length(b);a=a[3];return y.acosClamped(a/(a+Math.abs(a-b)))}function D(a,b,c,d){a=f.subtract(E,b,a);switch(c){case r.Axis.X:return c=y.cartesianToSpherical(a, E)[2],f.set(d,-Math.sin(c),Math.cos(c),0);case r.Axis.Y:return a=y.cartesianToSpherical(a,E),c=a[1],a=a[2],b=Math.sin(c),f.set(d,-b*Math.cos(a),-b*Math.sin(a),Math.cos(c));case r.Axis.Z:return f.normalize(d,a)}}function F(a,b){b=f.subtract(G,b,a);return f.length(b)-a[3]}function X(a,b,c,d){const h=F(a,b);a=D(a,b,r.Axis.Z,G);c=f.scale(G,a,c-h);return f.add(d,b,c)}function Y(a,b){b=f.squaredDistance(a,b);a=a[3];return b<=a*a}function Z(a,b,c=q.create()){const d=f.distance(a,b),h=a[3],g=b[3];if(d+g< h)return p.copy(c,a),c;if(d+h