define(["exports","./Cartesian4-b0ddc4ba","./when-b60132fc","./Check-7b2a090c","./buildModuleUrl-8cce5713","./Math-31e539c2"],(function(a,t,e,r,n,i){"use strict";var s={};function o(a,t,e){var r=a+t;return i.Math3D.sign(a)!==i.Math3D.sign(t)&&Math.abs(r/Math.max(Math.abs(a),Math.abs(t)))s&&s/n0?[l/a,e/l]:[e/l,l/a]};var u={};function c(a,t,e,r){var n,i,s=a,o=t/3,u=e/3,c=r,l=s*u,C=o*c,f=o*o,d=u*u,h=s*u-f,M=s*c-o*u,m=o*c-d,v=4*h*m-M*M;if(v<0){var g,p,w;f*C>=l*d?(g=s,p=h,w=-2*o*h+s*M):(g=c,p=m,w=-c*M+2*u*m);var R=-(w<0?-1:1)*Math.abs(g)*Math.sqrt(-v),O=(i=-w+R)/2,S=O<0?-Math.pow(-O,1/3):Math.pow(O,1/3),P=i===R?-S:-p/S;return n=p<=0?S+P:-w/(S*S+P*P+p),f*C>=l*d?[(n-o)/s]:[-c/(n+u)]}var y=h,x=-2*o*h+s*M,N=m,b=-c*M+2*u*m,I=Math.sqrt(v),D=Math.sqrt(3)/2,q=Math.abs(Math.atan2(s*I,-x)/3);n=2*Math.sqrt(-y);var L=Math.cos(q);i=n*L;var E=n*(-L/2-D*Math.sin(q)),z=i+E>2*o?i-o:E-o,T=s,U=z/T;q=Math.abs(Math.atan2(c*I,-b)/3);var B=-c,W=(i=(n=2*Math.sqrt(-N))*(L=Math.cos(q)))+(E=n*(-L/2-D*Math.sin(q)))<2*u?i+u:E+u,_=B/W,V=-z*W-T*B,Z=(u*V-o*(z*B))/(-o*V+u*(T*W));return U<=Z?U<=_?Z<=_?[U,Z,_]:[U,_,Z]:[_,U,Z]:U<=_?[Z,U,_]:Z<=_?[Z,_,U]:[_,Z,U]}u.computeDiscriminant=function(a,t,e,r){var n=t*t,i=e*e;return 18*a*t*e*r+n*i-27*(a*a)*(r*r)-4*(a*i*e+n*t*r)},u.computeRealRoots=function(a,t,e,r){var n,i;if(0===a)return s.computeRealRoots(t,e,r);if(0===t){if(0===e){if(0===r)return[0,0,0];var o=(i=-r/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3);return[o,o,o]}return 0===r?0===(n=s.computeRealRoots(a,0,e)).Length?[0]:[n[0],0,n[1]]:c(a,0,e,r)}return 0===e?0===r?(i=-t/a)<0?[i,0,0]:[0,0,i]:c(a,t,0,r):0===r?0===(n=s.computeRealRoots(a,t,e)).length?[0]:n[1]<=0?[n[0],n[1],0]:n[0]>=0?[0,n[0],n[1]]:[n[0],0,n[1]]:c(a,t,e,r)};var l={};function C(a,t,e,r){var n=a*a,o=t-3*n/8,c=e-t*a/2+n*a/8,l=r-e*a/4+t*n/16-3*n*n/256,C=u.computeRealRoots(1,2*o,o*o-4*l,-c*c);if(C.length>0){var f=-a/4,d=C[C.length-1];if(Math.abs(d)=0&&v>=0){var g=Math.sqrt(m),p=Math.sqrt(v);return[f-p,f-g,f+g,f+p]}if(m>=0&&v<0)return[f-(M=Math.sqrt(m)),f+M];if(m<0&&v>=0)return[f-(M=Math.sqrt(v)),f+M]}return[]}if(d>0){var w=Math.sqrt(d),R=(o+d-c/w)/2,O=(o+d+c/w)/2,S=s.computeRealRoots(1,w,R),P=s.computeRealRoots(1,-w,O);return 0!==S.length?(S[0]+=f,S[1]+=f,0!==P.length?(P[0]+=f,P[1]+=f,S[1]<=P[0]?[S[0],S[1],P[0],P[1]]:P[1]<=S[0]?[P[0],P[1],S[0],S[1]]:S[0]>=P[0]&&S[1]<=P[1]?[P[0],S[0],S[1],P[1]]:P[0]>=S[0]&&P[1]<=S[1]?[S[0],P[0],P[1],S[1]]:S[0]>P[0]&&S[0]0){var f,d,h,M,m,v,g=C[0],p=t-g,w=p*p,R=a/2,O=p/2,S=w-4*r,P=w+4*Math.abs(r),y=n-4*g,x=n+4*Math.abs(g);if(g<0||S*x=D[0]&&I[1]<=D[1]?[D[0],I[0],I[1],D[1]]:D[0]>=I[0]&&D[1]<=I[1]?[I[0],D[0],D[1],I[1]]:I[0]>D[0]&&I[0]S)return;if(c=t.Cartesian3.cross(u,w,p),(C=t.Cartesian3.dot(h,c))<0||l+C>S)return;f=t.Cartesian3.dot(R,c)/S}else{if(Math.abs(S)1)return;if(c=t.Cartesian3.cross(u,w,p),(C=t.Cartesian3.dot(h,c)*P)<0||l+C>1)return;f=t.Cartesian3.dot(R,c)*P}return f},h.rayTriangle=function(a,r,n,i,s,o){var u=h.rayTriangleParametric(a,r,n,i,s);if(e.defined(u)&&!(u<0))return e.defined(o)||(o=new t.Cartesian3),t.Cartesian3.multiplyByScalar(a.direction,u,o),t.Cartesian3.add(a.origin,o,o)};var w=new d;h.lineSegmentTriangle=function(a,r,n,i,s,o,u){var c=w;t.Cartesian3.clone(a,c.origin),t.Cartesian3.subtract(r,a,c.direction),t.Cartesian3.normalize(c.direction,c.direction);var l=h.rayTriangleParametric(c,n,i,s,o);if(!(!e.defined(l)||l<0||l>t.Cartesian3.distance(a,r)))return e.defined(u)||(u=new t.Cartesian3),t.Cartesian3.multiplyByScalar(c.direction,l,u),t.Cartesian3.add(c.origin,u,u)};var R={root0:0,root1:0};function O(a,r,i){e.defined(i)||(i=new n.Interval);var s=a.origin,o=a.direction,u=r.center,c=r.radius*r.radius,l=t.Cartesian3.subtract(s,u,v),C=function(a,t,e,r){var n=t*t-4*a*e;if(!(n<0)){if(n>0){var i=1/(2*a),s=Math.sqrt(n),o=(-t+s)*i,u=(-t-s)*i;return ou))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,u),i};var P=new t.Cartesian3,y=new t.Cartesian3;function x(a,t,e){var r=a+t;return i.Math3D.sign(a)!==i.Math3D.sign(t)&&Math.abs(r/Math.max(Math.abs(a),Math.abs(t)))1){if(d>=0)return;var h=d*d;if(r=f-1,h<(s=(i=t.Cartesian3.magnitudeSquared(C))*r))return;if(h>s){o=d*d-s;var M=(u=-d+Math.sqrt(o))/i,m=r/u;return M=0)return o}var C=e.defined(this.rayEllipsoid(a,r)),f=r.transformPositionToScaledSpace(u,N),d=t.Cartesian3.normalize(f,f),h=t.Cartesian3.mostOrthogonalAxis(f,D),M=t.Cartesian3.normalize(t.Cartesian3.cross(h,d,b),b),m=t.Cartesian3.normalize(t.Cartesian3.cross(d,M,I),I),v=L;v[0]=d.x,v[1]=d.y,v[2]=d.z,v[3]=M.x,v[4]=M.y,v[5]=M.z,v[6]=m.x,v[7]=m.y,v[8]=m.z;var g=n.Matrix3.transpose(v,E),p=n.Matrix3.fromScale(r.radii,z),w=n.Matrix3.fromScale(r.oneOverRadii,T),R=U;R[0]=0,R[1]=-u.z,R[2]=u.y,R[3]=u.z,R[4]=0,R[5]=-u.x,R[6]=-u.y,R[7]=u.x,R[8]=0;var O,S,P=n.Matrix3.multiply(n.Matrix3.multiply(g,w,B),R,B),y=n.Matrix3.multiply(n.Matrix3.multiply(P,p,W),v,W),A=n.Matrix3.multiplyByVector(P,o,q),j=function(a,e,r,o,u){var c,C=o*o,f=u*u,d=(a[n.Matrix3.COLUMN1ROW1]-a[n.Matrix3.COLUMN2ROW2])*f,h=u*(o*x(a[n.Matrix3.COLUMN1ROW0],a[n.Matrix3.COLUMN0ROW1],i.Math3D.EPSILON15)+e.y),M=a[n.Matrix3.COLUMN0ROW0]*C+a[n.Matrix3.COLUMN2ROW2]*f+o*e.x+r,m=f*x(a[n.Matrix3.COLUMN2ROW1],a[n.Matrix3.COLUMN1ROW2],i.Math3D.EPSILON15),v=u*(o*x(a[n.Matrix3.COLUMN2ROW0],a[n.Matrix3.COLUMN0ROW2])+e.z),g=[];if(0===v&&0===m){if(0===(c=s.computeRealRoots(d,h,M)).length)return g;var p=c[0],w=Math.sqrt(Math.max(1-p*p,0));if(g.push(new t.Cartesian3(o,u*p,u*-w)),g.push(new t.Cartesian3(o,u*p,u*w)),2===c.length){var R=c[1],O=Math.sqrt(Math.max(1-R*R,0));g.push(new t.Cartesian3(o,u*R,u*-O)),g.push(new t.Cartesian3(o,u*R,u*O))}return g}var S=v*v,P=m*m,y=v*m,N=d*d+P,b=2*(h*d+y),I=2*M*d+h*h-P+S,D=2*(M*h-y),q=M*M-S;if(0===N&&0===b&&0===I&&0===D)return g;var L=(c=l.computeRealRoots(N,b,I,D,q)).length;if(0===L)return g;for(var E=0;E0?g.push(new t.Cartesian3(o,u*z,u*-B)):0!==B?(g.push(new t.Cartesian3(o,u*z,u*-B)),g.push(new t.Cartesian3(o,u*z,u*B)),++E):g.push(new t.Cartesian3(o,u*z,u*B))}return g}(y,t.Cartesian3.negate(A,N),0,0,1),G=j.length;if(G>0){for(var Y=t.Cartesian3.clone(t.Cartesian3.ZERO,V),X=Number.NEGATIVE_INFINITY,k=0;kX&&(X=H,Y=t.Cartesian3.clone(O,Y))}var J=r.cartesianToCartographic(Y,Z);return X=i.Math3D.clamp(X,0,1),S=t.Cartesian3.magnitude(t.Cartesian3.subtract(Y,o,D))*Math.sqrt(1-X*X),S=C?-S:S,J.height=S,r.cartographicToCartesian(J,new t.Cartesian3)}};var A=new t.Cartesian3;function j(a,e){this.normal=t.Cartesian3.clone(a),this.distance=e}h.lineSegmentPlane=function(a,r,n,s){e.defined(s)||(s=new t.Cartesian3);var o=t.Cartesian3.subtract(r,a,A),u=n.normal,c=t.Cartesian3.dot(u,o);if(!(Math.abs(c)1))return t.Cartesian3.multiplyByScalar(o,C,s),t.Cartesian3.add(a,s,s),s}},h.trianglePlaneIntersection=function(a,e,r,n){var i,s,o=n.normal,u=n.distance,c=t.Cartesian3.dot(o,a)+u<0,l=t.Cartesian3.dot(o,e)+u<0,C=t.Cartesian3.dot(o,r)+u<0,f=0;if(f+=c?1:0,f+=l?1:0,1!==(f+=C?1:0)&&2!==f||(i=new t.Cartesian3,s=new t.Cartesian3),1===f){if(c)return h.lineSegmentPlane(a,e,n,i),h.lineSegmentPlane(a,r,n,s),{positions:[a,e,r,i,s],indices:[0,3,4,1,2,4,1,4,3]};if(l)return h.lineSegmentPlane(e,r,n,i),h.lineSegmentPlane(e,a,n,s),{positions:[a,e,r,i,s],indices:[1,3,4,2,0,4,2,4,3]};if(C)return h.lineSegmentPlane(r,a,n,i),h.lineSegmentPlane(r,e,n,s),{positions:[a,e,r,i,s],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===f){if(!c)return h.lineSegmentPlane(e,a,n,i),h.lineSegmentPlane(r,a,n,s),{positions:[a,e,r,i,s],indices:[1,2,4,1,4,3,0,3,4]};if(!l)return h.lineSegmentPlane(r,e,n,i),h.lineSegmentPlane(a,e,n,s),{positions:[a,e,r,i,s],indices:[2,0,4,2,4,3,1,3,4]};if(!C)return h.lineSegmentPlane(a,r,n,i),h.lineSegmentPlane(e,r,n,s),{positions:[a,e,r,i,s],indices:[0,1,4,0,4,3,2,3,4]}}},j.fromPointNormal=function(a,r,n){var i=-t.Cartesian3.dot(r,a);return e.defined(n)?(t.Cartesian3.clone(r,n.normal),n.distance=i,n):new j(r,i)};var G=new t.Cartesian3;j.fromCartesian4=function(a,r){var n=t.Cartesian3.fromCartesian4(a,G),i=a.w;return e.defined(r)?(t.Cartesian3.clone(n,r.normal),r.distance=i,r):new j(n,i)},j.getPointDistance=function(a,e){return t.Cartesian3.dot(a.normal,e)+a.distance};var Y=new t.Cartesian3;j.projectPointOntoPlane=function(a,r,n){e.defined(n)||(n=new t.Cartesian3);var i=j.getPointDistance(a,r),s=t.Cartesian3.multiplyByScalar(a.normal,i,Y);return t.Cartesian3.subtract(r,s,n)};var X=new t.Cartesian3;j.transform=function(a,e,r){return n.Matrix4.multiplyByPointAsVector(e,a.normal,G),t.Cartesian3.normalize(G,G),t.Cartesian3.multiplyByScalar(a.normal,-a.distance,X),n.Matrix4.multiplyByPoint(e,X,X),j.fromPointNormal(X,G,r)},j.clone=function(a,r){return e.defined(r)?(t.Cartesian3.clone(a.normal,r.normal),r.distance=a.distance,r):new j(a.normal,a.distance)},j.equals=function(a,e){return a.distance===e.distance&&t.Cartesian3.equals(a.normal,e.normal)},j.ORIGIN_XY_PLANE=Object.freeze(new j(t.Cartesian3.UNIT_Z,0)),j.ORIGIN_YZ_PLANE=Object.freeze(new j(t.Cartesian3.UNIT_X,0)),j.ORIGIN_ZX_PLANE=Object.freeze(new j(t.Cartesian3.UNIT_Y,0)),a.IntersectionTests=h,a.Plane=j,a.Ray=d}));