| 1 |
- import{a as v}from"./chunk-MJVT7BN7.js";import{d as R}from"./chunk-K2IDXOCV.js";import{b as m}from"./chunk-45OWWDV7.js";import{a as O}from"./chunk-JX5O4HI2.js";import{a as P}from"./chunk-FEOWMVRK.js";import{a as N,b as D}from"./chunk-CUQT2UK5.js";import{a as o}from"./chunk-I46SWINN.js";import{a as q}from"./chunk-LNIYJJXS.js";import{a as _}from"./chunk-4D2ERGZX.js";import{a as T}from"./chunk-EDZQSM3T.js";import{a as d}from"./chunk-NUC3LT2W.js";function f(a,t){T.typeOf.object("ellipsoid",a),this._ellipsoid=a,this._cameraPosition=new o,this._cameraPositionInScaledSpace=new o,this._distanceToLimbInScaledSpaceSquared=0,d(t)&&(this.cameraPosition=t)}Object.defineProperties(f.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(a){var t=this._ellipsoid,r=t.transformPositionToScaledSpace(a,this._cameraPositionInScaledSpace),e=o.magnitudeSquared(r)-1;o.clone(a,this._cameraPosition),this._cameraPositionInScaledSpace=r,this._distanceToLimbInScaledSpaceSquared=e}}});var W=new o;f.prototype.isPointVisible=function(a){var t=this._ellipsoid,r=t.transformPositionToScaledSpace(a,W);return V(r,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};f.prototype.isScaledSpacePointVisible=function(a){return V(a,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var K=new o;f.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(a,t){var r=this._ellipsoid,e,i;return d(t)&&t<0&&r.minimumRadius>-t?(i=K,i.x=this._cameraPosition.x/(r.radii.x+t),i.y=this._cameraPosition.y/(r.radii.y+t),i.z=this._cameraPosition.z/(r.radii.z+t),e=i.x*i.x+i.y*i.y+i.z*i.z-1):(i=this._cameraPositionInScaledSpace,e=this._distanceToLimbInScaledSpaceSquared),V(a,i,e)};f.prototype.computeHorizonCullingPoint=function(a,t,r){return H(this._ellipsoid,a,t,r)};var k=N.clone(N.UNIT_SPHERE);f.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(a,t,r,e){var i=F(this._ellipsoid,r,k);return H(i,a,t,e)};f.prototype.computeHorizonCullingPointFromVertices=function(a,t,r,e,i){return j(this._ellipsoid,a,t,r,e,i)};f.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(a,t,r,e,i,s){var n=F(this._ellipsoid,i,k);return j(n,a,t,r,e,s)};var X=[];f.prototype.computeHorizonCullingPointFromRectangle=function(a,t,r){T.typeOf.object("rectangle",a);var e=D.subsample(a,t,0,X),i=R.fromPoints(e);if(!(o.magnitude(i.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(i.center,e,r)};var Y=new o;function F(a,t,r){if(d(t)&&t<0&&a.minimumRadius>-t){var e=o.fromElements(a.radii.x+t,a.radii.y+t,a.radii.z+t,Y);a=N.fromCartesian3(e,r)}return a}function H(a,t,r,e){T.typeOf.object("directionToPoint",t),T.defined("positions",r),d(e)||(e=new o);for(var i=Z(a,t),s=0,n=0,p=r.length;n<p;++n){var c=r[n],l=L(a,c,i);if(l<0)return;s=Math.max(s,l)}return U(i,s,e)}var x=new o;function j(a,t,r,e,i,s){T.typeOf.object("directionToPoint",t),T.defined("vertices",r),T.typeOf.number("stride",e),d(s)||(s=new o),e=_(e,3),i=_(i,o.ZERO);for(var n=Z(a,t),p=0,c=0,l=r.length;c<l;c+=e){x.x=r[c]+i.x,x.y=r[c+1]+i.y,x.z=r[c+2]+i.z;var y=L(a,x,n);if(y<0)return;p=Math.max(p,y)}return U(n,p,s)}function V(a,t,r){var e=t,i=r,s=o.subtract(a,e,W),n=-o.dot(s,e),p=i<0?n>0:n>i&&n*n/o.magnitudeSquared(s)>i;return!p}var $=new o,tt=new o;function L(a,t,r){var e=a.transformPositionToScaledSpace(t,$),i=o.magnitudeSquared(e),s=Math.sqrt(i),n=o.divideByScalar(e,s,tt);i=Math.max(1,i),s=Math.max(1,s);var p=o.dot(n,r),c=o.magnitude(o.cross(n,r,n)),l=1/s,y=Math.sqrt(i-1)*l;return 1/(p*l-c*y)}function U(a,t,r){if(!(t<=0||t===1/0||t!==t))return o.multiplyByScalar(a,t,r)}var g=new o;function Z(a,t){return o.equals(t,o.ZERO)?t:(a.transformPositionToScaledSpace(t,g),o.normalize(g,g))}var ht=f;var at={NONE:0,BITS12:1},h=Object.freeze(at);var E=new o,rt=new o,u=new P,w=new m,et=new m,it=Math.pow(2,12);function S(a,t,r,e,i,s){var n=h.NONE,p,c,l;if(d(a)&&d(t)&&d(r)&&d(e)){var y=a.minimum,b=a.maximum,z=o.subtract(b,y,rt),I=r-t,M=Math.max(o.maximumComponent(z),I);M<it-1?n=h.BITS12:n=h.NONE,n=h.NONE,p=a.center,c=m.inverseTransformation(e,new m);var Q=o.negate(y,E);m.multiply(m.fromTranslation(Q,w),c,c);var C=E;C.x=1/z.x,C.y=1/z.y,C.z=1/z.z,m.multiply(m.fromScale(C,w),c,c),l=m.clone(e),m.setTranslation(l,o.ZERO,l),e=m.clone(e,new m);var G=m.fromTranslation(y,w),J=m.fromScale(z,et),A=m.multiply(G,J,w);m.multiply(e,A,e),m.multiply(l,A,l)}this.quantization=n,this.minimumHeight=t,this.maximumHeight=r,this.center=p,this.toScaledENU=c,this.fromScaledENU=e,this.matrix=l,this.hasVertexNormals=i,this.hasWebMercatorT=_(s,!1)}S.prototype.encode=function(a,t,r,e,i,s,n){var p=e.x,c=e.y;if(this.quantization===h.BITS12){r=m.multiplyByPoint(this.toScaledENU,r,E),r.x=q.clamp(r.x,0,1),r.y=q.clamp(r.y,0,1),r.z=q.clamp(r.z,0,1);var l=this.maximumHeight-this.minimumHeight,y=q.clamp((i-this.minimumHeight)/l,0,1);P.fromElements(r.x,r.y,u);var b=v.compressTextureCoordinates(u);P.fromElements(r.z,y,u);var z=v.compressTextureCoordinates(u);P.fromElements(p,c,u);var I=v.compressTextureCoordinates(u);if(a[t++]=b,a[t++]=z,a[t++]=I,this.hasWebMercatorT){P.fromElements(n,0,u);var M=v.compressTextureCoordinates(u);a[t++]=M}}else o.subtract(r,this.center,E),a[t++]=E.x,a[t++]=E.y,a[t++]=E.z,a[t++]=i,a[t++]=p,a[t++]=c,this.hasWebMercatorT&&(a[t++]=n);return this.hasVertexNormals&&(a[t++]=v.octPackFloat(s)),t};S.prototype.decodePosition=function(a,t,r){if(d(r)||(r=new o),t*=this.getStride(),this.quantization===h.BITS12){var e=v.decompressTextureCoordinates(a[t],u);r.x=e.x,r.y=e.y;var i=v.decompressTextureCoordinates(a[t+1],u);return r.z=i.x,m.multiplyByPoint(this.fromScaledENU,r,r)}return r.x=a[t],r.y=a[t+1],r.z=a[t+2],o.add(r,this.center,r)};S.prototype.decodeTextureCoordinates=function(a,t,r){return d(r)||(r=new P),t*=this.getStride(),this.quantization===h.BITS12?v.decompressTextureCoordinates(a[t+2],r):P.fromElements(a[t+4],a[t+5],r)};S.prototype.decodeHeight=function(a,t){if(t*=this.getStride(),this.quantization===h.BITS12){var r=v.decompressTextureCoordinates(a[t+1],u);return r.y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return a[t+3]};S.prototype.decodeWebMercatorT=function(a,t){return t*=this.getStride(),this.quantization===h.BITS12?v.decompressTextureCoordinates(a[t+3],u).x:a[t+6]};S.prototype.getOctEncodedNormal=function(a,t,r){var e=this.getStride();t=(t+1)*e-1;var i=a[t]/256,s=Math.floor(i),n=(i-s)*256;return P.fromElements(s,n,r)};S.prototype.getStride=function(){var a;switch(this.quantization){case h.BITS12:a=3;break;default:a=6}return this.hasWebMercatorT&&++a,this.hasVertexNormals&&++a,a};var B={position3DAndHeight:0,textureCoordAndEncodedNormals:1},ot={compressed0:0,compressed1:1};S.prototype.getAttributes=function(a){var t=O.FLOAT,r=O.getSizeInBytes(t),e;if(this.quantization===h.NONE){var i=4,s=2;this.hasWebMercatorT&&++s,this.hasVertexNormals&&++s,e=(i+s)*r;var n=[{index:B.position3DAndHeight,vertexBuffer:a,componentDatatype:t,componentsPerAttribute:i,offsetInBytes:0,strideInBytes:e},{index:B.textureCoordAndEncodedNormals,vertexBuffer:a,componentDatatype:t,componentsPerAttribute:s,offsetInBytes:i*r,strideInBytes:e}];return n}var p=3,c=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++p,this.hasWebMercatorT&&this.hasVertexNormals?(++c,e=(p+c)*r,[{index:n.compressed0,vertexBuffer:a,componentDatatype:t,componentsPerAttribute:p,offsetInBytes:0,strideInBytes:e},{index:n.compressed1,vertexBuffer:a,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:p*r,strideInBytes:e}]):[{index:n.compressed0,vertexBuffer:a,componentDatatype:t,componentsPerAttribute:p}]};S.prototype.getAttributeLocations=function(){return this.quantization===h.NONE?B:ot};S.clone=function(a,t){return d(t)||(t=new S),t.quantization=a.quantization,t.minimumHeight=a.minimumHeight,t.maximumHeight=a.maximumHeight,t.center=o.clone(a.center),t.toScaledENU=m.clone(a.toScaledENU),t.fromScaledENU=m.clone(a.fromScaledENU),t.matrix=m.clone(a.matrix),t.hasVertexNormals=a.hasVertexNormals,t.hasWebMercatorT=a.hasWebMercatorT,t};var Ct=S;export{ht as a,Ct as b};
|