2 lines
7.8 KiB
JavaScript
2 lines
7.8 KiB
JavaScript
|
/* 2020-9-22 15:23:25 | 版权所有 军懋国兴 */
|
||
|
define(["./when-cbf8cd21","./Check-35e1a91d","./Math-69007a69","./Cartesian2-43e3a3be","./Transforms-2d1ac5ec","./RuntimeError-f4c64df1","./WebGLConstants-95ceb4e9","./ComponentDatatype-607c9a0c","./GeometryAttribute-2303bbfb","./GeometryAttributes-90846c5f","./AttributeCompression-ea810287","./GeometryPipeline-1ea64cde","./EncodedCartesian3-29a09d7b","./IndexDatatype-79bb407c","./IntersectionTests-459f6f08","./Plane-46b5436f","./GeometryOffsetAttribute-9c676324","./GeometryInstance-6264cc0f","./arrayRemoveDuplicates-d96adeb6","./EllipsoidTangentPlane-b5927ee3","./ArcType-2b58731c","./EllipsoidRhumbLine-357c11e7","./PolygonPipeline-2ee85025","./PolygonGeometryLibrary-bcb33f68"],function(E,c,v,h,A,e,t,G,_,T,i,H,r,L,o,n,C,O,a,D,I,y,w,x){"use strict";var k=[],S=[];function f(e){if(c.Check.typeOf.object("options",e),c.Check.typeOf.object("options.polygonHierarchy",e.polygonHierarchy),e.perPositionHeight&&E.defined(e.height))throw new c.DeveloperError("Cannot use both options.perPositionHeight and options.height");if(E.defined(e.arcType)&&e.arcType!==I.ArcType.GEODESIC&&e.arcType!==I.ArcType.RHUMB)throw new c.DeveloperError("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");var t,i=e.polygonHierarchy,r=E.defaultValue(e.ellipsoid,h.Ellipsoid.WGS84),o=E.defaultValue(e.granularity,v.CesiumMath.RADIANS_PER_DEGREE),n=E.defaultValue(e.perPositionHeight,!1),a=n&&E.defined(e.extrudedHeight),y=E.defaultValue(e.arcType,I.ArcType.GEODESIC),s=E.defaultValue(e.height,0),l=E.defaultValue(e.extrudedHeight,s);a||(t=Math.max(s,l),l=Math.min(s,l),s=t),this._ellipsoid=h.Ellipsoid.clone(r),this._granularity=o,this._height=s,this._extrudedHeight=l,this._arcType=y,this._polygonHierarchy=i,this._perPositionHeight=n,this._perPositionHeightExtrude=a,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=x.PolygonGeometryLibrary.computeHierarchyPackedLength(i)+h.Ellipsoid.packedLength+8}f.pack=function(e,t,i){return c.Check.typeOf.object("value",e),c.Check.defined("array",t),i=E.defaultValue(i,0),i=x.PolygonGeometryLibrary.packPolygonHierarchy(e._polygonHierarchy,t,i),h.Ellipsoid.pack(e._ellipsoid,t,i),i+=h.Ellipsoid.packedLength,t[i++]=e._height,t[i++]=e._extrudedHeight,t[i++]=e._granularity,t[i++]=e._perPositionHeightExtrude?1:0,t[i++]=e._perPositionHeight?1:0,t[i++]=e._arcType,t[i++]=E.defaultValue(e._offsetAttribute,-1),t[i]=e.packedLength,t};var g=h.Ellipsoid.clone(h.Ellipsoid.UNIT_SPHERE),m={polygonHierarchy:{}};return f.unpack=function(e,t,i){c.Check.defined("array",e),t=E.defaultValue(t,0);var r=x.PolygonGeometryLibrary.unpackPolygonHierarchy(e,t);t=r.startingIndex,delete r.startingIndex;var o=h.Ellipsoid.unpack(e,t,g);t+=h.Ellipsoid.packedLength;var n=e[t++],a=e[t++],y=e[t++],s=1===e[t++],l=1===e[t++],p=e[t++],u=e[t++],d=e[t];return E.defined(i)||(i=new f(m)),i._polygonHierarchy=r,i._ellipsoid=h.Ellipsoid.clone(o,i._ellipsoid),i._height=n,i._extrudedHeight=a,i._granularity=y,i._perPositionHeight=l,i._perPositionHeightExtrude=s,i._arcType=p,i._offsetAttribute=-1===u?void 0:u,i.packedLength=d,i},f.fromPositions=function(e){return e=E.defaultValue(e,E.defaultValue.EMPTY_OBJECT),c.Check.defined("options.positions",e.positions),new f({polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute})},f.createGeometry=function(e){var t=e._ellipsoid,i=e._granularity,r=e._polygonHierarchy,o=e._perPositionHeight,n=e._arcType,a=x.PolygonGeometryLibrary.polygonOutlinesFromHierarchy(r,!o,t);if(0!==a.length){var y,s,l,p,u,d,c,h=[],f=v.CesiumMath.chordLength(i,t.maximumRadius),g=e._height,m=e._extrudedHeight;if(e._perPositionHeightExtrude||!v.CesiumMath.equalsEpsilon(g,m,0,v.CesiumMath.EPSILON2))for(y=0;y<a.length;y++){(p=function(e,t,i,r,o){var n,a=D.EllipsoidTangentPlane.fromPoints(t,e).projectPointsOntoPlane(t,k);w.PolygonPipeline.computeWindingOrder2D(a)===w.WindingOrder.CLOCKWISE&&(a.reverse(),t=t.slice().reverse());v
|