define(["exports","./Transforms-98ffa11d","./Cartesian3-7e9cc2ff","./Check-741c5f3c","./defaultValue-81eec7ed","./Matrix2-e3fb4559","./AttributeCompression-e2e3f0dd","./ComponentDatatype-aaeec80f","./Math-5f585871","./Matrix4-d34187af"],(function(t,e,i,a,o,r,n,s,c,d){"use strict";function u(t,e){this._ellipsoid=t,this._cameraPosition=new i.Cartesian3,this._cameraPositionInScaledSpace=new i.Cartesian3,this._distanceToLimbInScaledSpaceSquared=0,o.defined(e)&&(this.cameraPosition=e)}Object.defineProperties(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(t){const e=this._ellipsoid.transformPositionToScaledSpace(t,this._cameraPositionInScaledSpace),a=i.Cartesian3.magnitudeSquared(e)-1;i.Cartesian3.clone(t,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=a}}});const l=new i.Cartesian3;u.prototype.isPointVisible=function(t){return y(this._ellipsoid.transformPositionToScaledSpace(t,l),this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)},u.prototype.isScaledSpacePointVisible=function(t){return y(t,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};const m=new i.Cartesian3;u.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(t,e){const i=this._ellipsoid;let a,r;return o.defined(e)&&e<0&&i.minimumRadius>-e?(r=m,r.x=this._cameraPosition.x/(i.radii.x+e),r.y=this._cameraPosition.y/(i.radii.y+e),r.z=this._cameraPosition.z/(i.radii.z+e),a=r.x*r.x+r.y*r.y+r.z*r.z-1):(r=this._cameraPositionInScaledSpace,a=this._distanceToLimbInScaledSpaceSquared),y(t,r,a)},u.prototype.computeHorizonCullingPoint=function(t,e,i){return S(this._ellipsoid,t,e,i)};const h=r.Ellipsoid.clone(r.Ellipsoid.UNIT_SPHERE);u.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(t,e,i,a){return S(x(this._ellipsoid,i,h),t,e,a)},u.prototype.computeHorizonCullingPointFromVertices=function(t,e,i,a,o){return g(this._ellipsoid,t,e,i,a,o)},u.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(t,e,i,a,o,r){return g(x(this._ellipsoid,o,h),t,e,i,a,r)};const f=[];u.prototype.computeHorizonCullingPointFromRectangle=function(t,a,o){const n=r.Rectangle.subsample(t,a,0,f),s=e.BoundingSphere.fromPoints(n);if(!(i.Cartesian3.magnitude(s.center)<.1*a.minimumRadius))return this.computeHorizonCullingPoint(s.center,n,o)};const p=new i.Cartesian3;function x(t,e,a){if(o.defined(e)&&e<0&&t.minimumRadius>-e){const o=i.Cartesian3.fromElements(t.radii.x+e,t.radii.y+e,t.radii.z+e,p);t=r.Ellipsoid.fromCartesian3(o,a)}return t}function S(t,e,a,r){o.defined(r)||(r=new i.Cartesian3);const n=z(t,e);let s=0;for(let e=0,i=a.length;e0:s>r&&s*s/i.Cartesian3.magnitudeSquared(n)>r)}const N=new i.Cartesian3,M=new i.Cartesian3;function T(t,e,a){const o=t.transformPositionToScaledSpace(e,N);let r=i.Cartesian3.magnitudeSquared(o),n=Math.sqrt(r);const s=i.Cartesian3.divideByScalar(o,n,M);r=Math.max(1,r),n=Math.max(1,n);const c=1/n;return 1/(i.Cartesian3.dot(s,a)*c-i.Cartesian3.magnitude(i.Cartesian3.cross(s,a,s))*(Math.sqrt(r-1)*c))}function b(t,e,a){if(!(e<=0||e===1/0||e!=e))return i.Cartesian3.multiplyByScalar(t,e,a)}const P=new i.Cartesian3;function z(t,e){return i.Cartesian3.equals(e,i.Cartesian3.ZERO)?e:(t.transformPositionToScaledSpace(e,P),i.Cartesian3.normalize(P,P))}const _={getHeight:function(t,e,i){return(t-i)*e+i}},E=new i.Cartesian3;_.getPosition=function(t,e,a,o,r){const n=e.cartesianToCartographic(t,E),s=_.getHeight(n.height,a,o);return i.Cartesian3.fromRadians(n.longitude,n.latitude,s,e,r)};var H=Object.freeze({NONE:0,BITS12:1});const w=new i.Cartesian3,A=new i.Cartesian3,I=new r.Cartesian2,V=new d.Matrix4,q=new d.Matrix4,G=Math.pow(2,12);function O(t,e,a,r,n,s,c,u,l,m){let h,f,p=H.NONE;if(o.defined(e)&&o.defined(a)&&o.defined(r)&&o.defined(n)){const t=e.minimum,o=e.maximum,s=i.Cartesian3.subtract(o,t,A),c=r-a;p=Math.max(i.Cartesian3.maximumComponent(s),c)