define(["exports","./buildModuleUrl-dba4ec07","./Cartographic-1bbcab04","./Check-3aa71481","./when-515d5295","./Rectangle-e170be8b","./AttributeCompression-f9ee669b","./Cartesian2-1b9b0d8a","./ComponentDatatype-d430c7f7","./Math-5e38123d","./PrimitiveType-b38a4004"],(function(t,e,i,r,n,o,a,s,c,m,u){"use strict";function d(t,e){r.n.typeOf.object("ellipsoid",t),this._ellipsoid=t,this._cameraPosition=new i.a,this._cameraPositionInScaledSpace=new i.a,this._distanceToLimbInScaledSpaceSquared=0,n.t(e)&&(this.cameraPosition=e)}Object.defineProperties(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(t){var e=this._ellipsoid.transformPositionToScaledSpace(t,this._cameraPositionInScaledSpace),r=i.a.magnitudeSquared(e)-1;i.a.clone(t,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=r}}});var l=new i.a;d.prototype.isPointVisible=function(t){return T(this._ellipsoid.transformPositionToScaledSpace(t,l),this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)},d.prototype.isScaledSpacePointVisible=function(t){return T(t,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var p=new i.a;d.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(t,e){var i,r,o=this._ellipsoid;return n.t(e)&&e<0&&o.minimumRadius>-e?((r=p).x=this._cameraPosition.x/(o.radii.x+e),r.y=this._cameraPosition.y/(o.radii.y+e),r.z=this._cameraPosition.z/(o.radii.z+e),i=r.x*r.x+r.y*r.y+r.z*r.z-1):(r=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),T(t,r,i)},d.prototype.computeHorizonCullingPoint=function(t,e,i){return x(this._ellipsoid,t,e,i)};var h=o.n.clone(o.n.UNIT_SPHERE);d.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(t,e,i,r){return x(S(this._ellipsoid,i,h),t,e,r)},d.prototype.computeHorizonCullingPointFromVertices=function(t,e,i,r,n){return v(this._ellipsoid,t,e,i,r,n)},d.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(t,e,i,r,n,o){return v(S(this._ellipsoid,n,h),t,e,i,r,o)};var f=[];d.prototype.computeHorizonCullingPointFromRectangle=function(t,n,a){r.n.typeOf.object("rectangle",t);var s=o.s.subsample(t,n,0,f),c=e.c.fromPoints(s);if(!(i.a.magnitude(c.center)<.1*n.minimumRadius))return this.computeHorizonCullingPoint(c.center,s,a)};var y=new i.a;function S(t,e,r){if(n.t(e)&&e<0&&t.minimumRadius>-e){var a=i.a.fromElements(t.radii.x+e,t.radii.y+e,t.radii.z+e,y);t=o.n.fromCartesian3(a,r)}return t}function x(t,e,o,a){r.n.typeOf.object("directionToPoint",e),r.n.defined("positions",o),n.t(a)||(a=new i.a);for(var s=I(t,e),c=0,m=0,u=o.length;m0:s>o&&s*s/i.a.magnitudeSquared(a)>o)}var g=new i.a,P=new i.a;function z(t,e,r){var n=t.transformPositionToScaledSpace(e,g),o=i.a.magnitudeSquared(n),a=Math.sqrt(o),s=i.a.divideByScalar(n,a,P);o=Math.max(1,o);var c=1/(a=Math.max(1,a));return 1/(i.a.dot(s,r)*c-i.a.magnitude(i.a.cross(s,r,s))*(Math.sqrt(o-1)*c))}function E(t,e,r){if(!(e<=0||e===1/0||e!=e))return i.a.multiplyByScalar(t,e,r)}var N=new i.a;function I(t,e){return i.a.equals(e,i.a.ZERO)?e:(t.transformPositionToScaledSpace(e,N),i.a.normalize(N,N))}var C=Object.freeze({NONE:0,BITS12:1}),_=new i.a,B=new i.a,w=new s.r,q=new u.c,H=new u.c,M=Math.pow(2,12);function O(t,e,r,o,a,s){var c,m,d,l=C.NONE;if(n.t(t)&&n.t(e)&&n.t(r)&&n.t(o)){var p=t.minimum,h=t.maximum,f=i.a.subtract(h,p,B),y=r-e;l=Math.max(i.a.maximumComponent(f),y)