define(["exports","./Cartographic-1bbcab04","./when-515d5295","./Check-3aa71481","./buildModuleUrl-dba4ec07","./Math-5e38123d","./PrimitiveType-b38a4004"],(function(r,e,t,n,a,i,o){"use strict";var u={};function s(r,e,t){var n=r+e;return i.n.sign(r)!==i.n.sign(e)&&Math.abs(n/Math.max(Math.abs(r),Math.abs(e)))u&&u/o0?[w/r,t/w]:[t/w,w/r]};var f={};function c(r,e,t,n){var a,i,o=r,u=e/3,s=t/3,f=n,c=o*s,w=u*f,h=u*u,l=s*s,d=o*s-h,m=o*f-u*s,p=u*f-l,b=4*d*p-m*m;if(b<0){var g,v,q;h*w>=c*l?(g=o,v=d,q=-2*u*d+o*m):(g=f,v=p,q=-f*m+2*s*p);var M=-(q<0?-1:1)*Math.abs(g)*Math.sqrt(-b),y=(i=-q+M)/2,R=y<0?-Math.pow(-y,1/3):Math.pow(y,1/3),S=i===M?-R:-v/R;return a=v<=0?R+S:-q/(R*R+S*S+v),h*w>=c*l?[(a-u)/o]:[-f/(a+s)]}var O=d,P=-2*u*d+o*m,N=p,L=-f*m+2*s*p,E=Math.sqrt(b),I=Math.sqrt(3)/2,C=Math.abs(Math.atan2(o*E,-P)/3);a=2*Math.sqrt(-O);var x=Math.cos(C);i=a*x;var z=a*(-x/2-I*Math.sin(C)),T=i+z>2*u?i-u:z-u,U=o,W=T/U;C=Math.abs(Math.atan2(f*E,-L)/3);var B=-f,Z=(i=(a=2*Math.sqrt(-N))*(x=Math.cos(C)))+(z=a*(-x/2-I*Math.sin(C)))<2*s?i+s:z+s,V=B/Z,A=-T*Z-U*B,D=(s*A-u*(T*B))/(-u*A+s*(U*Z));return W<=D?W<=V?D<=V?[W,D,V]:[W,V,D]:[V,W,D]:W<=V?[D,W,V]:D<=V?[D,V,W]:[V,D,W]}f.computeDiscriminant=function(r,e,t,a){if("number"!=typeof r)throw new n.t("a is a required number.");if("number"!=typeof e)throw new n.t("b is a required number.");if("number"!=typeof t)throw new n.t("c is a required number.");if("number"!=typeof a)throw new n.t("d is a required number.");var i=e*e,o=t*t;return 18*r*e*t*a+i*o-27*(r*r)*(a*a)-4*(r*o*t+i*e*a)},f.computeRealRoots=function(r,e,t,a){if("number"!=typeof r)throw new n.t("a is a required number.");if("number"!=typeof e)throw new n.t("b is a required number.");if("number"!=typeof t)throw new n.t("c is a required number.");if("number"!=typeof a)throw new n.t("d is a required number.");var i,o;if(0===r)return u.computeRealRoots(e,t,a);if(0===e){if(0===t){if(0===a)return[0,0,0];var s=(o=-a/r)<0?-Math.pow(-o,1/3):Math.pow(o,1/3);return[s,s,s]}return 0===a?0===(i=u.computeRealRoots(r,0,t)).Length?[0]:[i[0],0,i[1]]:c(r,0,t,a)}return 0===t?0===a?(o=-e/r)<0?[o,0,0]:[0,0,o]:c(r,e,0,a):0===a?0===(i=u.computeRealRoots(r,e,t)).length?[0]:i[1]<=0?[i[0],i[1],0]:i[0]>=0?[0,i[0],i[1]]:[i[0],0,i[1]]:c(r,e,t,a)};var w={};function h(r,e,t,n){var a=r*r,o=e-3*a/8,s=t-e*r/2+a*r/8,c=n-t*r/4+e*a/16-3*a*a/256,w=f.computeRealRoots(1,2*o,o*o-4*c,-s*s);if(w.length>0){var h=-r/4,l=w[w.length-1];if(Math.abs(l)=0&&b>=0){var g=Math.sqrt(p),v=Math.sqrt(b);return[h-v,h-g,h+g,h+v]}if(p>=0&&b<0)return[h-(m=Math.sqrt(p)),h+m];if(p<0&&b>=0)return[h-(m=Math.sqrt(b)),h+m]}return[]}if(l>0){var q=Math.sqrt(l),M=(o+l-s/q)/2,y=(o+l+s/q)/2,R=u.computeRealRoots(1,q,M),S=u.computeRealRoots(1,-q,y);return 0!==R.length?(R[0]+=h,R[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,R[1]<=S[0]?[R[0],R[1],S[0],S[1]]:S[1]<=R[0]?[S[0],S[1],R[0],R[1]]:R[0]>=S[0]&&R[1]<=S[1]?[S[0],R[0],R[1],S[1]]:S[0]>=R[0]&&S[1]<=R[1]?[R[0],S[0],S[1],R[1]]:R[0]>S[0]&&R[0]0){var h,l,d,m,p,b,g=w[0],v=e-g,q=v*v,M=r/2,y=v/2,R=q-4*n,S=q+4*Math.abs(n),O=a-4*g,P=a+4*Math.abs(g);if(g<0||R*P=I[0]&&E[1]<=I[1]?[I[0],E[0],E[1],I[1]]:I[0]>=E[0]&&I[1]<=E[1]?[E[0],I[0],I[1],E[1]]:E[0]>I[0]&&E[0]S)||(c=e.a.cross(f,M,q),(h=e.a.dot(m,c))<0||w+h>S))return;l=e.a.dot(y,c)/S}else{if(Math.abs(S)1||(c=e.a.cross(f,M,q),(h=e.a.dot(m,c)*O)<0||w+h>1))return;l=e.a.dot(y,c)*O}return l},m.rayTriangle=function(r,n,a,i,o,u){var s=m.rayTriangleParametric(r,n,a,i,o);if(t.t(s)&&!(s<0))return t.t(u)||(u=new e.a),e.a.multiplyByScalar(r.direction,s,u),e.a.add(r.origin,u,u)};var M=new d;m.lineSegmentTriangle=function(r,a,i,o,u,s,f){if(!t.t(r))throw new n.t("v0 is required.");if(!t.t(a))throw new n.t("v1 is required.");if(!t.t(i))throw new n.t("p0 is required.");if(!t.t(o))throw new n.t("p1 is required.");if(!t.t(u))throw new n.t("p2 is required.");var c=M;e.a.clone(r,c.origin),e.a.subtract(a,r,c.direction),e.a.normalize(c.direction,c.direction);var w=m.rayTriangleParametric(c,i,o,u,s);if(!(!t.t(w)||w<0||w>e.a.distance(r,a)))return t.t(f)||(f=new e.a),e.a.multiplyByScalar(c.direction,w,f),e.a.add(c.origin,f,f)};var y={root0:0,root1:0};function R(r,n,i){t.t(i)||(i=new a.i);var o=r.origin,u=r.direction,s=n.center,f=n.radius*n.radius,c=e.a.subtract(o,s,g),w=function(r,e,t,n){var a=e*e-4*r*t;if(!(a<0)){if(a>0){var i=1/(2*r),o=Math.sqrt(a),u=(-e+o)*i,s=(-e-o)*i;return uf))return o.start=Math.max(o.start,0),o.stop=Math.min(o.stop,f),o};var O=new e.a,P=new e.a;function N(r,e,t){var n=r+e;return i.n.sign(r)!==i.n.sign(e)&&Math.abs(n/Math.max(Math.abs(r),Math.abs(e)))0?g.push(new e.a(a,s*T,s*-B)):0!==B?(g.push(new e.a(a,s*T,s*-B)),g.push(new e.a(a,s*T,s*B)),++z):g.push(new e.a(a,s*T,s*B))}return g}m.rayEllipsoid=function(r,i){if(!t.t(r))throw new n.t("ray is required.");if(!t.t(i))throw new n.t("ellipsoid is required.");var o,u,s,f,c,w=i.oneOverRadii,h=e.a.multiplyComponents(w,r.origin,O),l=e.a.multiplyComponents(w,r.direction,P),d=e.a.magnitudeSquared(h),m=e.a.dot(h,l);if(d>1){if(m>=0)return;var p=m*m;if(o=d-1,p<(s=(u=e.a.magnitudeSquared(l))*o))return;if(p>s){f=m*m-s;var b=(c=-m+Math.sqrt(f))/u,g=o/c;return b=0)return u}var c=t.t(this.rayEllipsoid(r,a)),w=a.transformPositionToScaledSpace(s,E),h=e.a.normalize(w,w),l=e.a.mostOrthogonalAxis(w,x),d=e.a.normalize(e.a.cross(l,h,I),I),m=e.a.normalize(e.a.cross(h,d,C),C),p=T;p[0]=h.x,p[1]=h.y,p[2]=h.z,p[3]=d.x,p[4]=d.y,p[5]=d.z,p[6]=m.x,p[7]=m.y,p[8]=m.z;var b=o.r.transpose(p,U),g=o.r.fromScale(a.radii,W),v=o.r.fromScale(a.oneOverRadii,B),q=Z;q[0]=0,q[1]=-s.z,q[2]=s.y,q[3]=s.z,q[4]=0,q[5]=-s.x,q[6]=-s.y,q[7]=s.x,q[8]=0;var M,y,R=o.r.multiply(o.r.multiply(b,v,V),q,V),S=o.r.multiply(o.r.multiply(R,g,A),p,A),O=o.r.multiplyByVector(R,u,z),P=L(S,e.a.negate(O,E),0,0,1),N=P.length;if(N>0){for(var F=e.a.clone(e.a.ZERO,j),G=Number.NEGATIVE_INFINITY,Y=0;YG&&(G=H,F=e.a.clone(M,F))}var J=a.cartesianToCartographic(F,k);return G=i.n.clamp(G,0,1),y=e.a.magnitude(e.a.subtract(F,u,x))*Math.sqrt(1-G*G),y=c?-y:y,J.height=y,a.cartographicToCartesian(J,new e.a)}};var F=new e.a;m.lineSegmentPlane=function(r,a,o,u){if(!t.t(r))throw new n.t("endPoint0 is required.");if(!t.t(a))throw new n.t("endPoint1 is required.");if(!t.t(o))throw new n.t("plane is required.");t.t(u)||(u=new e.a);var s=e.a.subtract(a,r,F),f=o.normal,c=e.a.dot(f,s);if(!(Math.abs(c)1))return e.a.multiplyByScalar(s,h,u),e.a.add(r,u,u),u}},m.trianglePlaneIntersection=function(r,a,i,o){if(!(t.t(r)&&t.t(a)&&t.t(i)&&t.t(o)))throw new n.t("p0, p1, p2, and plane are required.");var u,s,f=o.normal,c=o.distance,w=e.a.dot(f,r)+c<0,h=e.a.dot(f,a)+c<0,l=e.a.dot(f,i)+c<0,d=0;if(d+=w?1:0,d+=h?1:0,(1===(d+=l?1:0)||2===d)&&(u=new e.a,s=new e.a),1===d){if(w)return m.lineSegmentPlane(r,a,o,u),m.lineSegmentPlane(r,i,o,s),{positions:[r,a,i,u,s],indices:[0,3,4,1,2,4,1,4,3]};if(h)return m.lineSegmentPlane(a,i,o,u),m.lineSegmentPlane(a,r,o,s),{positions:[r,a,i,u,s],indices:[1,3,4,2,0,4,2,4,3]};if(l)return m.lineSegmentPlane(i,r,o,u),m.lineSegmentPlane(i,a,o,s),{positions:[r,a,i,u,s],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===d){if(!w)return m.lineSegmentPlane(a,r,o,u),m.lineSegmentPlane(i,r,o,s),{positions:[r,a,i,u,s],indices:[1,2,4,1,4,3,0,3,4]};if(!h)return m.lineSegmentPlane(i,a,o,u),m.lineSegmentPlane(r,a,o,s),{positions:[r,a,i,u,s],indices:[2,0,4,2,4,3,1,3,4]};if(!l)return m.lineSegmentPlane(r,i,o,u),m.lineSegmentPlane(a,i,o,s),{positions:[r,a,i,u,s],indices:[0,1,4,0,4,3,2,3,4]}}},r.h=m,r.n=d}));