1 |
- define(["exports","./buildModuleUrl-3d15f25c","./Cartographic-67e73ef9","./Check-52a7d806","./when-92c6cf3c","./Rectangle-bab7abf0","./AttributeCompression-49f7b62a","./Cartesian2-6033fa5d","./ComponentDatatype-81047f82","./Math-92c3b5f7","./PrimitiveType-cdfe443e"],(function(t,e,i,o,r,n,a,s,c,m,u){"use strict";function d(t,e){o.o.typeOf.object("ellipsoid",t),this._ellipsoid=t,this._cameraPosition=new i.t,this._cameraPositionInScaledSpace=new i.t,this._distanceToLimbInScaledSpaceSquared=0,r.e(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),o=i.t.magnitudeSquared(e)-1;i.t.clone(t,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=o}}});var l=new i.t;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.t;d.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(t,e){var i,o,n=this._ellipsoid;return r.e(e)&&e<0&&n.minimumRadius>-e?((o=p).x=this._cameraPosition.x/(n.radii.x+e),o.y=this._cameraPosition.y/(n.radii.y+e),o.z=this._cameraPosition.z/(n.radii.z+e),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),T(t,o,i)},d.prototype.computeHorizonCullingPoint=function(t,e,i){return x(this._ellipsoid,t,e,i)};var h=n.t.clone(n.t.UNIT_SPHERE);d.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(t,e,i,o){return x(S(this._ellipsoid,i,h),t,e,o)},d.prototype.computeHorizonCullingPointFromVertices=function(t,e,i,o,r){return b(this._ellipsoid,t,e,i,o,r)},d.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(t,e,i,o,r,n){return b(S(this._ellipsoid,r,h),t,e,i,o,n)};var f=[];d.prototype.computeHorizonCullingPointFromRectangle=function(t,r,a){o.o.typeOf.object("rectangle",t);var s=n.h.subsample(t,r,0,f),c=e.i.fromPoints(s);if(!(i.t.magnitude(c.center)<.1*r.minimumRadius))return this.computeHorizonCullingPoint(c.center,s,a)};var y=new i.t;function S(t,e,o){if(r.e(e)&&e<0&&t.minimumRadius>-e){var a=i.t.fromElements(t.radii.x+e,t.radii.y+e,t.radii.z+e,y);t=n.t.fromCartesian3(a,o)}return t}function x(t,e,n,a){o.o.typeOf.object("directionToPoint",e),o.o.defined("positions",n),r.e(a)||(a=new i.t);for(var s=I(t,e),c=0,m=0,u=n.length;m<u;++m){var d=z(t,n[m],s);if(d<0)return;c=Math.max(c,d)}return E(s,c,a)}var v=new i.t;function b(t,e,n,a,s,c){o.o.typeOf.object("directionToPoint",e),o.o.defined("vertices",n),o.o.typeOf.number("stride",a),r.e(c)||(c=new i.t),a=r.u(a,3),s=r.u(s,i.t.ZERO);for(var m=I(t,e),u=0,d=0,l=n.length;d<l;d+=a){v.x=n[d]+s.x,v.y=n[d+1]+s.y,v.z=n[d+2]+s.z;var p=z(t,v,m);if(p<0)return;u=Math.max(u,p)}return E(m,u,c)}function T(t,e,o){var r=e,n=o,a=i.t.subtract(t,r,l),s=-i.t.dot(a,r);return!(n<0?s>0:s>n&&s*s/i.t.magnitudeSquared(a)>n)}var g=new i.t,P=new i.t;function z(t,e,o){var r=t.transformPositionToScaledSpace(e,g),n=i.t.magnitudeSquared(r),a=Math.sqrt(n),s=i.t.divideByScalar(r,a,P);n=Math.max(1,n);var c=1/(a=Math.max(1,a));return 1/(i.t.dot(s,o)*c-i.t.magnitude(i.t.cross(s,o,s))*(Math.sqrt(n-1)*c))}function E(t,e,o){if(!(e<=0||e===1/0||e!=e))return i.t.multiplyByScalar(t,e,o)}var N=new i.t;function I(t,e){return i.t.equals(e,i.t.ZERO)?e:(t.transformPositionToScaledSpace(e,N),i.t.normalize(N,N))}var C=Object.freeze({NONE:0,BITS12:1}),_=new i.t,B=new i.t,w=new s.o,q=new u.y,H=new u.y,M=Math.pow(2,12);function O(t,e,o,n,a,s){var c,m,d,l=C.NONE;if(r.e(t)&&r.e(e)&&r.e(o)&&r.e(n)){var p=t.minimum,h=t.maximum,f=i.t.subtract(h,p,B),y=o-e;l=Math.max(i.t.maximumComponent(f),y)<M-1?C.BITS12:C.NONE,l=C.NONE,c=t.center,m=u.y.inverseTransformation(n,new u.y);var S=i.t.negate(p,_);u.y.multiply(u.y.fromTranslation(S,q),m,m);var x=_;x.x=1/f.x,x.y=1/f.y,x.z=1/f.z,u.y.multiply(u.y.fromScale(x,q),m,m),d=u.y.clone(n),u.y.setTranslation(d,i.t.ZERO,d),n=u.y.clone(n,new u.y);var v=u.y.fromTranslation(p,q),b=u.y.fromScale(f,H),T=u.y.multiply(v,b,q);u.y.multiply(n,T,n),u.y.multiply(d,T,d)}this.quantization=l,this.minimumHeight=e,this.maximumHeight=o,this.center=c,this.toScaledENU=m,this.fromScaledENU=n,this.matrix=d,this.hasVertexNormals=a,this.hasWebMercatorT=r.u(s,!1)}O.prototype.encode=function(t,e,o,r,n,c,d){var l=r.x,p=r.y;if(this.quantization===C.BITS12){(o=u.y.multiplyByPoint(this.toScaledENU,o,_)).x=m.e.clamp(o.x,0,1),o.y=m.e.clamp(o.y,0,1),o.z=m.e.clamp(o.z,0,1);var h=this.maximumHeight-this.minimumHeight,f=m.e.clamp((n-this.minimumHeight)/h,0,1);s.o.fromElements(o.x,o.y,w);var y=a.t.compressTextureCoordinates(w);s.o.fromElements(o.z,f,w);var S=a.t.compressTextureCoordinates(w);s.o.fromElements(l,p,w);var x=a.t.compressTextureCoordinates(w);if(t[e++]=y,t[e++]=S,t[e++]=x,this.hasWebMercatorT){s.o.fromElements(d,0,w);var v=a.t.compressTextureCoordinates(w);t[e++]=v}}else i.t.subtract(o,this.center,_),t[e++]=_.x,t[e++]=_.y,t[e++]=_.z,t[e++]=n,t[e++]=l,t[e++]=p,this.hasWebMercatorT&&(t[e++]=d);return this.hasVertexNormals&&(t[e++]=a.t.octPackFloat(c)),e},O.prototype.decodePosition=function(t,e,o){if(r.e(o)||(o=new i.t),e*=this.getStride(),this.quantization===C.BITS12){var n=a.t.decompressTextureCoordinates(t[e],w);o.x=n.x,o.y=n.y;var s=a.t.decompressTextureCoordinates(t[e+1],w);return o.z=s.x,u.y.multiplyByPoint(this.fromScaledENU,o,o)}return o.x=t[e],o.y=t[e+1],o.z=t[e+2],i.t.add(o,this.center,o)},O.prototype.decodeTextureCoordinates=function(t,e,i){return r.e(i)||(i=new s.o),e*=this.getStride(),this.quantization===C.BITS12?a.t.decompressTextureCoordinates(t[e+2],i):s.o.fromElements(t[e+4],t[e+5],i)},O.prototype.decodeHeight=function(t,e){return e*=this.getStride(),this.quantization===C.BITS12?a.t.decompressTextureCoordinates(t[e+1],w).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:t[e+3]},O.prototype.decodeWebMercatorT=function(t,e){return e*=this.getStride(),this.quantization===C.BITS12?a.t.decompressTextureCoordinates(t[e+3],w).x:t[e+6]},O.prototype.getOctEncodedNormal=function(t,e,i){var o=t[e=(e+1)*this.getStride()-1]/256,r=Math.floor(o),n=256*(o-r);return s.o.fromElements(r,n,i)},O.prototype.getStride=function(){var t;if(this.quantization===C.BITS12)t=3;else t=6;return this.hasWebMercatorT&&++t,this.hasVertexNormals&&++t,t};var A={position3DAndHeight:0,textureCoordAndEncodedNormals:1},U={compressed0:0,compressed1:1};O.prototype.getAttributes=function(t){var e,i=c.ComponentDatatype.FLOAT,o=c.ComponentDatatype.getSizeInBytes(i);if(this.quantization===C.NONE){var r=2;this.hasWebMercatorT&&++r,this.hasVertexNormals&&++r;var n=[{index:A.position3DAndHeight,vertexBuffer:t,componentDatatype:i,componentsPerAttribute:4,offsetInBytes:0,strideInBytes:e=(4+r)*o},{index:A.textureCoordAndEncodedNormals,vertexBuffer:t,componentDatatype:i,componentsPerAttribute:r,offsetInBytes:4*o,strideInBytes:e}];return n}var a=3,s=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++a,this.hasWebMercatorT&&this.hasVertexNormals?(e=(a+ ++s)*o,[{index:n.compressed0,vertexBuffer:t,componentDatatype:i,componentsPerAttribute:a,offsetInBytes:0,strideInBytes:e},{index:n.compressed1,vertexBuffer:t,componentDatatype:i,componentsPerAttribute:s,offsetInBytes:a*o,strideInBytes:e}]):[{index:n.compressed0,vertexBuffer:t,componentDatatype:i,componentsPerAttribute:a}]},O.prototype.getAttributeLocations=function(){return this.quantization===C.NONE?A:U},O.clone=function(t,e){return r.e(e)||(e=new O),e.quantization=t.quantization,e.minimumHeight=t.minimumHeight,e.maximumHeight=t.maximumHeight,e.center=i.t.clone(t.center),e.toScaledENU=u.y.clone(t.toScaledENU),e.fromScaledENU=u.y.clone(t.fromScaledENU),e.matrix=u.y.clone(t.matrix),e.hasVertexNormals=t.hasVertexNormals,e.hasWebMercatorT=t.hasWebMercatorT,e},t.h=O,t.s=d}));
|