bmh_cesium/public/lib/cesiumjs/CesiumUnminified/Workers/TerrainEncoding-848fa40b.js

2 lines
8.8 KiB
JavaScript
Raw Normal View History

2025-03-09 23:23:50 +00:00
/* 2020-9-22 15:23:26 | 版权所有 军懋国兴 */
define(["exports","./when-cbf8cd21","./Check-35e1a91d","./Math-69007a69","./Cartesian2-43e3a3be","./Transforms-2d1ac5ec","./ComponentDatatype-607c9a0c","./AttributeCompression-ea810287"],function(e,S,d,f,b,T,o,C){"use strict";function t(e,t){d.Check.typeOf.object("ellipsoid",e),this._ellipsoid=e,this._cameraPosition=new b.Cartesian3,this._cameraPositionInScaledSpace=new b.Cartesian3,this._distanceToLimbInScaledSpaceSquared=0,S.defined(t)&&(this.cameraPosition=t)}Object.defineProperties(t.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){var t=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=b.Cartesian3.magnitudeSquared(t)-1;b.Cartesian3.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=t,this._distanceToLimbInScaledSpaceSquared=i}}});var s=new b.Cartesian3;t.prototype.isPointVisible=function(e){return x(this._ellipsoid.transformPositionToScaledSpace(e,s),this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)},t.prototype.isScaledSpacePointVisible=function(e){return x(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var n=new b.Cartesian3;t.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){var i,r=this._ellipsoid,a=S.defined(t)&&t<0&&r.minimumRadius>-t?((i=n).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),i.x*i.x+i.y*i.y+i.z*i.z-1):(i=this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared);return x(e,i,a)},t.prototype.computeHorizonCullingPoint=function(e,t,i){return l(this._ellipsoid,e,t,i)};var c=b.Ellipsoid.clone(b.Ellipsoid.UNIT_SPHERE);t.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,i,r){return l(u(this._ellipsoid,i,c),e,t,r)},t.prototype.computeHorizonCullingPointFromVertices=function(e,t,i,r,a){return h(this._ellipsoid,e,t,i,r,a)},t.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,i,r,a,n){return h(u(this._ellipsoid,a,c),e,t,i,r,n)};var m=[];t.prototype.computeHorizonCullingPointFromRectangle=function(e,t,i){d.Check.typeOf.object("rectangle",e);var r=b.Rectangle.subsample(e,t,0,m),a=T.BoundingSphere.fromPoints(r);if(!(b.Cartesian3.magnitude(a.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(a.center,r,i)};var a=new b.Cartesian3;function u(e,t,i){var r;return S.defined(t)&&t<0&&e.minimumRadius>-t&&(r=b.Cartesian3.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,a),e=b.Ellipsoid.fromCartesian3(r,i)),e}function l(e,t,i,r){d.Check.typeOf.object("directionToPoint",t),d.Check.defined("positions",i),S.defined(r)||(r=new b.Cartesian3);for(var a=v(e,t),n=0,o=0,s=i.length;o<s;++o){var c=M(e,i[o],a);if(c<0)return;n=Math.max(n,c)}return P(a,n,r)}var p=new b.Cartesian3;function h(e,t,i,r,a,n){d.Check.typeOf.object("directionToPoint",t),d.Check.defined("vertices",i),d.Check.typeOf.number("stride",r),S.defined(n)||(n=new b.Cartesian3),r=S.defaultValue(r,3),a=S.defaultValue(a,b.Cartesian3.ZERO);for(var o=v(e,t),s=0,c=0,m=i.length;c<m;c+=r){p.x=i[c]+a.x,p.y=i[c+1]+a.y,p.z=i[c+2]+a.z;var u=M(e,p,o);if(u<0)return;s=Math.max(s,u)}return P(o,s,n)}function x(e,t,i){var r=t,a=i,n=b.Cartesian3.subtract(e,r,s),o=-b.Cartesian3.dot(n,r);return!(a<0?0<o:a<o&&o*o/b.Cartesian3.magnitudeSquared(n)>a)}var y=new b.Cartesian3,g=new b.Cartesian3;function M(e,t,i){var r=e.transformPositionToScaledSpace(t,y),a=b.Cartesian3.magnitudeSquared(r),n=Math.sqrt(a),o=b.Cartesian3.divideByScalar(r,n,g),a=Math.max(1,a),s=1/(n=Math.max(1,n));return 1/(b.Cartesian3.dot(o,i)*s-b.Cartesian3.magnitude(b.Cartesian3.cross(o,i,o))*(Math.sqrt(a-1)*s))}function P(e,t,i){if(!(t<=0||t===1/0||t!=t))return b.Cartesian3.multiplyByScalar(e,t,i)}var i=new b.Cartesian3;function v(e,t){return b.Cartesian3.equals(t,b.Cartesian3.ZERO)?t:(e.transformPositionToScaledSpace(t,i),b.Cartesian3.normalize(i,i))}var z=Object.freeze({NONE:0,BITS12:1}),E=new b.Cartesian3,N=new b.Cartesian3,I=new b.Cartesian2,B=ne