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