2 lines
8.5 KiB
JavaScript
2 lines
8.5 KiB
JavaScript
|
|
define(["exports","./buildModuleUrl-8cce5713","./Cartesian4-b0ddc4ba","./Check-7b2a090c","./when-b60132fc","./AttributeCompression-399750a1","./FeatureDetection-ab6f364c","./Math-31e539c2"],(function(t,e,i,r,a,n,o,s){"use strict";function c(t,e){this._ellipsoid=t,this._cameraPosition=new i.Cartesian3,this._cameraPositionInScaledSpace=new i.Cartesian3,this._distanceToLimbInScaledSpaceSquared=0,a.defined(e)&&(this.cameraPosition=e)}Object.defineProperties(c.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.Cartesian3.magnitudeSquared(e)-1;i.Cartesian3.clone(t,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=r}}});var m=new i.Cartesian3;c.prototype.isPointVisible=function(t){return S(this._ellipsoid.transformPositionToScaledSpace(t,m),this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)},c.prototype.isScaledSpacePointVisible=function(t){return S(t,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var u=new i.Cartesian3;c.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(t,e){var i,r,n=this._ellipsoid;return a.defined(e)&&e<0&&n.minimumRadius>-e?((r=u).x=this._cameraPosition.x/(n.radii.x+e),r.y=this._cameraPosition.y/(n.radii.y+e),r.z=this._cameraPosition.z/(n.radii.z+e),i=r.x*r.x+r.y*r.y+r.z*r.z-1):(r=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),S(t,r,i)},c.prototype.computeHorizonCullingPoint=function(t,e,i){return f(this._ellipsoid,t,e,i)};var d=e.Ellipsoid.clone(e.Ellipsoid.UNIT_SPHERE);c.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(t,e,i,r){return f(h(this._ellipsoid,i,d),t,e,r)},c.prototype.computeHorizonCullingPointFromVertices=function(t,e,i,r,a){return C(this._ellipsoid,t,e,i,r,a)},c.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(t,e,i,r,a,n){return C(h(this._ellipsoid,a,d),t,e,i,r,n)};var l=[];c.prototype.computeHorizonCullingPointFromRectangle=function(t,r,a){var n=e.Rectangle.subsample(t,r,0,l),o=e.BoundingSphere.fromPoints(n);if(!(i.Cartesian3.magnitude(o.center)<.1*r.minimumRadius))return this.computeHorizonCullingPoint(o.center,n,a)};var p=new i.Cartesian3;function h(t,r,n){if(a.defined(r)&&r<0&&t.minimumRadius>-r){var o=i.Cartesian3.fromElements(t.radii.x+r,t.radii.y+r,t.radii.z+r,p);t=e.Ellipsoid.fromCartesian3(o,n)}return t}function f(t,e,r,n){a.defined(n)||(n=new i.Cartesian3);for(var o=T(t,e),s=0,c=0,m=r.length;c<m;++c){var u=M(t,r[c],o);if(u<0)return;s=Math.max(s,u)}return v(o,s,n)}var x=new i.Cartesian3;function C(t,e,r,n,o,s){a.defined(s)||(s=new i.Cartesian3),n=a.defaultValue(n,3),o=a.defaultValue(o,i.Cartesian3.ZERO);for(var c=T(t,e),m=0,u=0,d=r.length;u<d;u+=n){x.x=r[u]+o.x,x.y=r[u+1]+o.y,x.z=r[u+2]+o.z;var l=M(t,x,c);if(l<0)return;m=Math.max(m,l)}return v(c,m,s)}function S(t,e,r){var a=e,n=r,o=i.Cartesian3.subtract(t,a,m),s=-i.Cartesian3.dot(o,a);return!(n<0?s>0:s>n&&s*s/i.Cartesian3.magnitudeSquared(o)>n)}var y=new i.Cartesian3,b=new i.Cartesian3;function M(t,e,r){var a=t.transformPositionToScaledSpace(e,y),n=i.Cartesian3.magnitudeSquared(a),o=Math.sqrt(n),s=i.Cartesian3.divideByScalar(a,o,b);n=Math.max(1,n);var c=1/(o=Math.max(1,o));return 1/(i.Cartesian3.dot(s,r)*c-i.Cartesian3.magnitude(i.Cartesian3.cross(s,r,s))*(Math.sqrt(n-1)*c))}function v(t,e,r){if(!(e<=0||e===1/0||e!=e))return i.Cartesian3.multiplyByScalar(t,e,r)}var g=new i.Cartesian3;function T(t,e){return i.Cartesian3.equals(e,i.Cartesian3.ZERO)?e:(t.transformPositionToScaledSpace(e,g),i.Cartesian3.normalize(g,g))}var P=Object.freeze({NONE:0,BITS12:1}),E=new i.Cartesian3,z=new i.Cartesian3,N=new e.Cartesian2,I=new e.Matrix4,B=new e.Matrix4,_=Math.pow(2,12);function w(t,r,n,o,s,c){var m,u,d,l=P.NONE;if(a.defined(t)&&a.defined(r)&&a.defined(n)&&a.defined(o)){var p=t.minimum,h=t.maximum,f=i.Cartesian3.subtract(h,p,z),x=n-r;l=Math.max(i.Cartesian3.maximumCom
|