@cesium/engine 3.0.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/Build/ThirdParty/Workers/pako_deflate.min.js +605 -0
  2. package/Build/ThirdParty/Workers/pako_inflate.min.js +800 -0
  3. package/Build/ThirdParty/Workers/z-worker-pako.js +502 -0
  4. package/Build/Workers/chunk-2U6EBIRX.js +757 -0
  5. package/Build/Workers/chunk-2ZI7FZ3Q.js +58 -0
  6. package/Build/Workers/chunk-3TSHZWOZ.js +1860 -0
  7. package/Build/Workers/chunk-44B6FQSJ.js +684 -0
  8. package/Build/Workers/chunk-4AJR66C5.js +368 -0
  9. package/Build/Workers/chunk-4HN3N5SE.js +501 -0
  10. package/Build/Workers/chunk-4QGPYV3W.js +102 -0
  11. package/Build/Workers/chunk-4RKE4B3G.js +476 -0
  12. package/Build/Workers/chunk-5E3V7Y4R.js +196 -0
  13. package/Build/Workers/chunk-6EHT6GS3.js +163 -0
  14. package/Build/Workers/chunk-6I22NWKQ.js +171 -0
  15. package/Build/Workers/chunk-7N67FBLW.js +1054 -0
  16. package/Build/Workers/chunk-AQQGAFKX.js +124 -0
  17. package/Build/Workers/chunk-CROU4RHL.js +138 -0
  18. package/Build/Workers/chunk-CTJCECTX.js +258 -0
  19. package/Build/Workers/chunk-DWJZFZ67.js +781 -0
  20. package/Build/Workers/chunk-EHJQEARC.js +59 -0
  21. package/Build/Workers/chunk-EVLKHUAE.js +1477 -0
  22. package/Build/Workers/chunk-FOOYJER7.js +834 -0
  23. package/Build/Workers/chunk-GLCRFDOB.js +73 -0
  24. package/Build/Workers/chunk-GPO47TW4.js +39 -0
  25. package/Build/Workers/chunk-H5Q2JKIA.js +1075 -0
  26. package/Build/Workers/chunk-HIDSEUWS.js +2041 -0
  27. package/Build/Workers/chunk-HV67ARO7.js +302 -0
  28. package/Build/Workers/chunk-IC7G4BX2.js +421 -0
  29. package/Build/Workers/chunk-IQN2LMGD.js +55 -0
  30. package/Build/Workers/chunk-J2FHYK2Z.js +55 -0
  31. package/Build/Workers/chunk-K3VEWONC.js +289 -0
  32. package/Build/Workers/chunk-KZFXE35V.js +117 -0
  33. package/Build/Workers/chunk-MG2TXIO5.js +400 -0
  34. package/Build/Workers/chunk-MRCFDEKH.js +138 -0
  35. package/Build/Workers/chunk-MYDS6HBL.js +3273 -0
  36. package/Build/Workers/chunk-OCIX2CQ7.js +305 -0
  37. package/Build/Workers/chunk-P32XMW4I.js +2716 -0
  38. package/Build/Workers/chunk-PEVZYZBQ.js +157 -0
  39. package/Build/Workers/chunk-PMDLIBEQ.js +218 -0
  40. package/Build/Workers/chunk-QDUOGCCO.js +1009 -0
  41. package/Build/Workers/chunk-QUCJGBCK.js +430 -0
  42. package/Build/Workers/chunk-RCI7BSOM.js +452 -0
  43. package/Build/Workers/chunk-SVTSC7FX.js +390 -0
  44. package/Build/Workers/chunk-TXOGSFHZ.js +77 -0
  45. package/Build/Workers/chunk-TXYJOVQK.js +629 -0
  46. package/Build/Workers/chunk-UFIT5XDI.js +1258 -0
  47. package/Build/Workers/chunk-ULLMQNFQ.js +73 -0
  48. package/Build/Workers/chunk-UM7FIUQW.js +101 -0
  49. package/Build/Workers/{package.js → chunk-UMLTOPAE.js} +13 -2
  50. package/Build/Workers/chunk-V5S5N2IS.js +8644 -0
  51. package/Build/Workers/chunk-VN2IHJKM.js +513 -0
  52. package/Build/Workers/chunk-VWSD2XV5.js +669 -0
  53. package/Build/Workers/chunk-X2KIWBTW.js +100 -0
  54. package/Build/Workers/chunk-Y24CDOJC.js +353 -0
  55. package/Build/Workers/chunk-YLMDWSXO.js +44 -0
  56. package/Build/Workers/chunk-YNZ4DMR7.js +634 -0
  57. package/Build/Workers/chunk-Z2MP3UBE.js +236 -0
  58. package/Build/Workers/combineGeometry.js +65 -15
  59. package/Build/Workers/createBoxGeometry.js +55 -10
  60. package/Build/Workers/createBoxOutlineGeometry.js +231 -310
  61. package/Build/Workers/createCircleGeometry.js +185 -202
  62. package/Build/Workers/createCircleOutlineGeometry.js +141 -155
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +477 -557
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
  65. package/Build/Workers/createCorridorGeometry.js +1163 -1307
  66. package/Build/Workers/createCorridorOutlineGeometry.js +534 -569
  67. package/Build/Workers/createCylinderGeometry.js +57 -10
  68. package/Build/Workers/createCylinderOutlineGeometry.js +224 -258
  69. package/Build/Workers/createEllipseGeometry.js +68 -12
  70. package/Build/Workers/createEllipseOutlineGeometry.js +61 -12
  71. package/Build/Workers/createEllipsoidGeometry.js +56 -10
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +58 -13
  73. package/Build/Workers/createFrustumGeometry.js +55 -10
  74. package/Build/Workers/createFrustumOutlineGeometry.js +226 -243
  75. package/Build/Workers/createGeometry.js +143 -48
  76. package/Build/Workers/createGroundPolylineGeometry.js +1484 -2012
  77. package/Build/Workers/createPlaneGeometry.js +216 -243
  78. package/Build/Workers/createPlaneOutlineGeometry.js +121 -113
  79. package/Build/Workers/createPolygonGeometry.js +1437 -1314
  80. package/Build/Workers/createPolygonOutlineGeometry.js +516 -657
  81. package/Build/Workers/createPolylineGeometry.js +471 -547
  82. package/Build/Workers/createPolylineVolumeGeometry.js +354 -384
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +272 -295
  84. package/Build/Workers/createRectangleGeometry.js +1128 -1331
  85. package/Build/Workers/createRectangleOutlineGeometry.js +445 -500
  86. package/Build/Workers/createSimplePolylineGeometry.js +381 -440
  87. package/Build/Workers/createSphereGeometry.js +112 -118
  88. package/Build/Workers/createSphereOutlineGeometry.js +112 -121
  89. package/Build/Workers/createTaskProcessorWorker.js +32 -127
  90. package/Build/Workers/createVectorTileClampedPolylines.js +462 -505
  91. package/Build/Workers/createVectorTileGeometries.js +377 -436
  92. package/Build/Workers/createVectorTilePoints.js +110 -77
  93. package/Build/Workers/createVectorTilePolygons.js +369 -391
  94. package/Build/Workers/createVectorTilePolylines.js +252 -244
  95. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
  96. package/Build/Workers/createVerticesFromHeightmap.js +2244 -2677
  97. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -904
  98. package/Build/Workers/createWallGeometry.js +459 -593
  99. package/Build/Workers/createWallOutlineGeometry.js +324 -419
  100. package/Build/Workers/decodeDraco.js +327 -347
  101. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
  102. package/Build/Workers/decodeI3S.js +765 -970
  103. package/Build/Workers/transcodeKTX2.js +3351 -1473
  104. package/Build/Workers/transferTypedArrayTest.js +3 -4
  105. package/Build/Workers/upsampleQuantizedTerrainMesh.js +748 -953
  106. package/LICENSE.md +0 -12
  107. package/Source/Core/CesiumTerrainProvider.js +1 -2
  108. package/Source/Core/Credit.js +7 -1
  109. package/Source/Core/FeatureDetection.js +9 -0
  110. package/Source/Core/GoogleMaps.js +1 -2
  111. package/Source/Core/Ion.js +1 -2
  112. package/Source/Core/KTX2Transcoder.js +7 -3
  113. package/Source/Core/PolygonGeometry.js +340 -27
  114. package/Source/Core/PolygonGeometryLibrary.js +302 -1
  115. package/Source/Core/Stereographic.js +247 -0
  116. package/Source/Core/TaskProcessor.js +185 -168
  117. package/Source/Core/Transforms.js +2 -2
  118. package/Source/Core/buildModuleUrl.js +6 -5
  119. package/Source/Core/sampleTerrain.js +43 -10
  120. package/Source/Core/sampleTerrainMostDetailed.js +27 -3
  121. package/Source/Scene/ArcGisMapService.js +1 -2
  122. package/Source/Scene/Billboard.js +7 -0
  123. package/Source/Scene/Cesium3DTilePass.js +1 -1
  124. package/Source/Scene/Cesium3DTileset.js +38 -81
  125. package/Source/Scene/CreditDisplay.js +2 -2
  126. package/Source/Scene/DracoLoader.js +26 -3
  127. package/Source/Scene/I3SDataProvider.js +0 -27
  128. package/Source/Scene/I3SDecoder.js +127 -0
  129. package/Source/Scene/I3SNode.js +32 -110
  130. package/Source/Scene/Implicit3DTileContent.js +13 -0
  131. package/Source/Scene/ImplicitTileset.js +5 -0
  132. package/Source/Scene/LabelCollection.js +3 -1
  133. package/Source/Scene/Model/I3dmLoader.js +5 -1
  134. package/Source/Scene/Model/Model.js +20 -23
  135. package/Source/Scene/OpenStreetMapImageryProvider.js +4 -1
  136. package/Source/Scene/PostProcessStageLibrary.js +3 -3
  137. package/Source/Scene/PrimitiveCollection.js +39 -0
  138. package/Source/Scene/Scene.js +3 -0
  139. package/Source/Scene/SingleTileImageryProvider.js +4 -2
  140. package/Source/ThirdParty/Workers/basis_transcoder.js +1 -1
  141. package/Source/Widget/CesiumWidget.js +2 -1
  142. package/Source/{WorkersES6 → Workers}/createGeometry.js +11 -12
  143. package/Source/{WorkersES6 → Workers}/createTaskProcessorWorker.js +43 -59
  144. package/Source/{WorkersES6 → Workers}/decodeDraco.js +19 -25
  145. package/Source/{WorkersES6 → Workers}/decodeI3S.js +18 -32
  146. package/Source/{WorkersES6 → Workers}/transcodeKTX2.js +19 -26
  147. package/Source/Workers/transferTypedArrayTest.js +0 -6
  148. package/index.d.ts +69 -35
  149. package/index.js +189 -187
  150. package/package.json +2 -1
  151. package/Build/Workers/ArcType-2d9abbbc.js +0 -37
  152. package/Build/Workers/AttributeCompression-f9f6c717.js +0 -716
  153. package/Build/Workers/AxisAlignedBoundingBox-a03420b1.js +0 -258
  154. package/Build/Workers/BoundingRectangle-32fa8a4a.js +0 -369
  155. package/Build/Workers/BoxGeometry-cd550612.js +0 -884
  156. package/Build/Workers/Check-6ede7e26.js +0 -290
  157. package/Build/Workers/Color-571a6085.js +0 -2262
  158. package/Build/Workers/ComponentDatatype-cf1fa08e.js +0 -341
  159. package/Build/Workers/CoplanarPolygonGeometryLibrary-488b1a9f.js +0 -132
  160. package/Build/Workers/CorridorGeometryLibrary-fc4ff147.js +0 -498
  161. package/Build/Workers/CylinderGeometry-bc26926d.js +0 -467
  162. package/Build/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
  163. package/Build/Workers/EllipseGeometry-89533a10.js +0 -1304
  164. package/Build/Workers/EllipseGeometryLibrary-b0d7df17.js +0 -366
  165. package/Build/Workers/EllipseOutlineGeometry-63ff7a87.js +0 -443
  166. package/Build/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
  167. package/Build/Workers/EllipsoidGeometry-07e99d2d.js +0 -637
  168. package/Build/Workers/EllipsoidOutlineGeometry-ba5c7ee2.js +0 -454
  169. package/Build/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
  170. package/Build/Workers/EllipsoidTangentPlane-65d41b3e.js +0 -373
  171. package/Build/Workers/EncodedCartesian3-57415c8a.js +0 -171
  172. package/Build/Workers/FrustumGeometry-4a7589ed.js +0 -2540
  173. package/Build/Workers/GeometryAttribute-a5b6275b.js +0 -619
  174. package/Build/Workers/GeometryAttributes-ad136444.js +0 -91
  175. package/Build/Workers/GeometryInstance-34d9e21e.js +0 -121
  176. package/Build/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
  177. package/Build/Workers/GeometryPipeline-fa9e6ffc.js +0 -3690
  178. package/Build/Workers/IndexDatatype-2643aa47.js +0 -200
  179. package/Build/Workers/IntersectionTests-feace3da.js +0 -1836
  180. package/Build/Workers/Math-0a2ac845.js +0 -1340
  181. package/Build/Workers/Matrix2-e1298525.js +0 -7086
  182. package/Build/Workers/Matrix3-41c58dde.js +0 -4283
  183. package/Build/Workers/OrientedBoundingBox-6b94d955.js +0 -1259
  184. package/Build/Workers/Plane-4c3d403b.js +0 -309
  185. package/Build/Workers/PolygonGeometryLibrary-4ffc457d.js +0 -1074
  186. package/Build/Workers/PolygonPipeline-d5e66350.js +0 -1344
  187. package/Build/Workers/PolylinePipeline-83410f0c.js +0 -573
  188. package/Build/Workers/PolylineVolumeGeometryLibrary-290e7aec.js +0 -781
  189. package/Build/Workers/PrimitivePipeline-6081d138.js +0 -966
  190. package/Build/Workers/RectangleGeometryLibrary-986710d8.js +0 -280
  191. package/Build/Workers/RuntimeError-ef395448.js +0 -68
  192. package/Build/Workers/TerrainEncoding-528e1d68.js +0 -1227
  193. package/Build/Workers/Transforms-b527bb09.js +0 -14714
  194. package/Build/Workers/VertexFormat-030f11ff.js +0 -312
  195. package/Build/Workers/WallGeometryLibrary-faf583f8.js +0 -211
  196. package/Build/Workers/WebGLConstants-0b1ce7ba.js +0 -620
  197. package/Build/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
  198. package/Build/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
  199. package/Build/Workers/cesiumWorkerBootstrapper.js +0 -1363
  200. package/Build/Workers/combine-d9581036.js +0 -82
  201. package/Build/Workers/defaultValue-fe22d8c0.js +0 -51
  202. package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
  203. package/Source/Workers/cesiumWorkerBootstrapper.js +0 -2290
  204. package/Source/Workers/package.json +0 -1
  205. /package/Source/{WorkersES6 → Workers}/combineGeometry.js +0 -0
  206. /package/Source/{WorkersES6 → Workers}/createBoxGeometry.js +0 -0
  207. /package/Source/{WorkersES6 → Workers}/createBoxOutlineGeometry.js +0 -0
  208. /package/Source/{WorkersES6 → Workers}/createCircleGeometry.js +0 -0
  209. /package/Source/{WorkersES6 → Workers}/createCircleOutlineGeometry.js +0 -0
  210. /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonGeometry.js +0 -0
  211. /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonOutlineGeometry.js +0 -0
  212. /package/Source/{WorkersES6 → Workers}/createCorridorGeometry.js +0 -0
  213. /package/Source/{WorkersES6 → Workers}/createCorridorOutlineGeometry.js +0 -0
  214. /package/Source/{WorkersES6 → Workers}/createCylinderGeometry.js +0 -0
  215. /package/Source/{WorkersES6 → Workers}/createCylinderOutlineGeometry.js +0 -0
  216. /package/Source/{WorkersES6 → Workers}/createEllipseGeometry.js +0 -0
  217. /package/Source/{WorkersES6 → Workers}/createEllipseOutlineGeometry.js +0 -0
  218. /package/Source/{WorkersES6 → Workers}/createEllipsoidGeometry.js +0 -0
  219. /package/Source/{WorkersES6 → Workers}/createEllipsoidOutlineGeometry.js +0 -0
  220. /package/Source/{WorkersES6 → Workers}/createFrustumGeometry.js +0 -0
  221. /package/Source/{WorkersES6 → Workers}/createFrustumOutlineGeometry.js +0 -0
  222. /package/Source/{WorkersES6 → Workers}/createGroundPolylineGeometry.js +0 -0
  223. /package/Source/{WorkersES6 → Workers}/createPlaneGeometry.js +0 -0
  224. /package/Source/{WorkersES6 → Workers}/createPlaneOutlineGeometry.js +0 -0
  225. /package/Source/{WorkersES6 → Workers}/createPolygonGeometry.js +0 -0
  226. /package/Source/{WorkersES6 → Workers}/createPolygonOutlineGeometry.js +0 -0
  227. /package/Source/{WorkersES6 → Workers}/createPolylineGeometry.js +0 -0
  228. /package/Source/{WorkersES6 → Workers}/createPolylineVolumeGeometry.js +0 -0
  229. /package/Source/{WorkersES6 → Workers}/createPolylineVolumeOutlineGeometry.js +0 -0
  230. /package/Source/{WorkersES6 → Workers}/createRectangleGeometry.js +0 -0
  231. /package/Source/{WorkersES6 → Workers}/createRectangleOutlineGeometry.js +0 -0
  232. /package/Source/{WorkersES6 → Workers}/createSimplePolylineGeometry.js +0 -0
  233. /package/Source/{WorkersES6 → Workers}/createSphereGeometry.js +0 -0
  234. /package/Source/{WorkersES6 → Workers}/createSphereOutlineGeometry.js +0 -0
  235. /package/Source/{WorkersES6 → Workers}/createVectorTileClampedPolylines.js +0 -0
  236. /package/Source/{WorkersES6 → Workers}/createVectorTileGeometries.js +0 -0
  237. /package/Source/{WorkersES6 → Workers}/createVectorTilePoints.js +0 -0
  238. /package/Source/{WorkersES6 → Workers}/createVectorTilePolygons.js +0 -0
  239. /package/Source/{WorkersES6 → Workers}/createVectorTilePolylines.js +0 -0
  240. /package/Source/{WorkersES6 → Workers}/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -0
  241. /package/Source/{WorkersES6 → Workers}/createVerticesFromHeightmap.js +0 -0
  242. /package/Source/{WorkersES6 → Workers}/createVerticesFromQuantizedTerrainMesh.js +0 -0
  243. /package/Source/{WorkersES6 → Workers}/createWallGeometry.js +0 -0
  244. /package/Source/{WorkersES6 → Workers}/createWallOutlineGeometry.js +0 -0
  245. /package/Source/{WorkersES6 → Workers}/decodeGoogleEarthEnterprisePacket.js +0 -0
  246. /package/Source/{WorkersES6 → Workers}/upsampleQuantizedTerrainMesh.js +0 -0
@@ -1,50 +1,126 @@
1
- define(['./defaultValue-fe22d8c0', './Matrix3-41c58dde', './arrayRemoveDuplicates-d2061e85', './BoundingRectangle-32fa8a4a', './Transforms-b527bb09', './Matrix2-e1298525', './ComponentDatatype-cf1fa08e', './PolylineVolumeGeometryLibrary-290e7aec', './Check-6ede7e26', './GeometryAttribute-a5b6275b', './GeometryAttributes-ad136444', './GeometryPipeline-fa9e6ffc', './IndexDatatype-2643aa47', './Math-0a2ac845', './PolygonPipeline-d5e66350', './VertexFormat-030f11ff', './combine-d9581036', './RuntimeError-ef395448', './WebGLConstants-0b1ce7ba', './EllipsoidTangentPlane-65d41b3e', './AxisAlignedBoundingBox-a03420b1', './IntersectionTests-feace3da', './Plane-4c3d403b', './PolylinePipeline-83410f0c', './EllipsoidGeodesic-5b3623dc', './EllipsoidRhumbLine-ef872433', './AttributeCompression-f9f6c717', './EncodedCartesian3-57415c8a'], (function (defaultValue, Matrix3, arrayRemoveDuplicates, BoundingRectangle, Transforms, Matrix2, ComponentDatatype, PolylineVolumeGeometryLibrary, Check, GeometryAttribute, GeometryAttributes, GeometryPipeline, IndexDatatype, Math, PolygonPipeline, VertexFormat, combine, RuntimeError, WebGLConstants, EllipsoidTangentPlane, AxisAlignedBoundingBox, IntersectionTests, Plane, PolylinePipeline, EllipsoidGeodesic, EllipsoidRhumbLine, AttributeCompression, EncodedCartesian3) { 'use strict';
2
-
3
- function computeAttributes(
4
- combinedPositions,
5
- shape,
6
- boundingRectangle,
7
- vertexFormat
8
- ) {
9
- const attributes = new GeometryAttributes.GeometryAttributes();
10
- if (vertexFormat.position) {
11
- attributes.position = new GeometryAttribute.GeometryAttribute({
12
- componentDatatype: ComponentDatatype.ComponentDatatype.DOUBLE,
13
- componentsPerAttribute: 3,
14
- values: combinedPositions,
15
- });
16
- }
17
- const shapeLength = shape.length;
18
- const vertexCount = combinedPositions.length / 3;
19
- const length = (vertexCount - shapeLength * 2) / (shapeLength * 2);
20
- const firstEndIndices = PolygonPipeline.PolygonPipeline.triangulate(shape);
21
-
22
- const indicesCount =
23
- (length - 1) * shapeLength * 6 + firstEndIndices.length * 2;
24
- const indices = IndexDatatype.IndexDatatype.createTypedArray(vertexCount, indicesCount);
25
- let i, j;
26
- let ll, ul, ur, lr;
27
- const offset = shapeLength * 2;
28
- let index = 0;
29
- for (i = 0; i < length - 1; i++) {
30
- for (j = 0; j < shapeLength - 1; j++) {
31
- ll = j * 2 + i * shapeLength * 2;
32
- lr = ll + offset;
33
- ul = ll + 1;
34
- ur = ul + offset;
35
-
36
- indices[index++] = ul;
37
- indices[index++] = ll;
38
- indices[index++] = ur;
39
- indices[index++] = ur;
40
- indices[index++] = ll;
41
- indices[index++] = lr;
42
- }
43
- ll = shapeLength * 2 - 2 + i * shapeLength * 2;
1
+ /**
2
+ * @license
3
+ * Cesium - https://github.com/CesiumGS/cesium
4
+ * Version 1.110
5
+ *
6
+ * Copyright 2011-2022 Cesium Contributors
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ *
20
+ * Columbus View (Pat. Pend.)
21
+ *
22
+ * Portions licensed separately.
23
+ * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
24
+ */
25
+
26
+ import {
27
+ BoundingRectangle_default
28
+ } from "./chunk-PMDLIBEQ.js";
29
+ import {
30
+ GeometryPipeline_default
31
+ } from "./chunk-P32XMW4I.js";
32
+ import "./chunk-QUCJGBCK.js";
33
+ import "./chunk-4QGPYV3W.js";
34
+ import {
35
+ CornerType_default,
36
+ PolylineVolumeGeometryLibrary_default
37
+ } from "./chunk-VWSD2XV5.js";
38
+ import {
39
+ oneTimeWarning_default
40
+ } from "./chunk-J2FHYK2Z.js";
41
+ import "./chunk-IC7G4BX2.js";
42
+ import "./chunk-Y24CDOJC.js";
43
+ import {
44
+ VertexFormat_default
45
+ } from "./chunk-MRCFDEKH.js";
46
+ import "./chunk-K3VEWONC.js";
47
+ import "./chunk-PEVZYZBQ.js";
48
+ import {
49
+ PolygonPipeline_default,
50
+ WindingOrder_default
51
+ } from "./chunk-QDUOGCCO.js";
52
+ import {
53
+ arrayRemoveDuplicates_default
54
+ } from "./chunk-X2KIWBTW.js";
55
+ import "./chunk-RCI7BSOM.js";
56
+ import "./chunk-UFIT5XDI.js";
57
+ import "./chunk-6I22NWKQ.js";
58
+ import {
59
+ IndexDatatype_default
60
+ } from "./chunk-CROU4RHL.js";
61
+ import {
62
+ GeometryAttributes_default
63
+ } from "./chunk-YLMDWSXO.js";
64
+ import {
65
+ GeometryAttribute_default,
66
+ Geometry_default,
67
+ PrimitiveType_default
68
+ } from "./chunk-HV67ARO7.js";
69
+ import {
70
+ BoundingSphere_default
71
+ } from "./chunk-V5S5N2IS.js";
72
+ import "./chunk-ULLMQNFQ.js";
73
+ import {
74
+ Cartesian2_default
75
+ } from "./chunk-MYDS6HBL.js";
76
+ import {
77
+ ComponentDatatype_default
78
+ } from "./chunk-CTJCECTX.js";
79
+ import {
80
+ Cartesian3_default,
81
+ Ellipsoid_default
82
+ } from "./chunk-HIDSEUWS.js";
83
+ import {
84
+ Math_default
85
+ } from "./chunk-4HN3N5SE.js";
86
+ import "./chunk-TXYJOVQK.js";
87
+ import "./chunk-2ZI7FZ3Q.js";
88
+ import {
89
+ defaultValue_default
90
+ } from "./chunk-GPO47TW4.js";
91
+ import {
92
+ DeveloperError_default
93
+ } from "./chunk-6EHT6GS3.js";
94
+ import {
95
+ defined_default
96
+ } from "./chunk-TXOGSFHZ.js";
97
+
98
+ // packages/engine/Source/Core/PolylineVolumeGeometry.js
99
+ function computeAttributes(combinedPositions, shape, boundingRectangle, vertexFormat) {
100
+ const attributes = new GeometryAttributes_default();
101
+ if (vertexFormat.position) {
102
+ attributes.position = new GeometryAttribute_default({
103
+ componentDatatype: ComponentDatatype_default.DOUBLE,
104
+ componentsPerAttribute: 3,
105
+ values: combinedPositions
106
+ });
107
+ }
108
+ const shapeLength = shape.length;
109
+ const vertexCount = combinedPositions.length / 3;
110
+ const length = (vertexCount - shapeLength * 2) / (shapeLength * 2);
111
+ const firstEndIndices = PolygonPipeline_default.triangulate(shape);
112
+ const indicesCount = (length - 1) * shapeLength * 6 + firstEndIndices.length * 2;
113
+ const indices = IndexDatatype_default.createTypedArray(vertexCount, indicesCount);
114
+ let i, j;
115
+ let ll, ul, ur, lr;
116
+ const offset = shapeLength * 2;
117
+ let index = 0;
118
+ for (i = 0; i < length - 1; i++) {
119
+ for (j = 0; j < shapeLength - 1; j++) {
120
+ ll = j * 2 + i * shapeLength * 2;
121
+ lr = ll + offset;
44
122
  ul = ll + 1;
45
123
  ur = ul + offset;
46
- lr = ll + offset;
47
-
48
124
  indices[index++] = ul;
49
125
  indices[index++] = ll;
50
126
  indices[index++] = ur;
@@ -52,360 +128,254 @@ define(['./defaultValue-fe22d8c0', './Matrix3-41c58dde', './arrayRemoveDuplicate
52
128
  indices[index++] = ll;
53
129
  indices[index++] = lr;
54
130
  }
55
-
56
- if (vertexFormat.st || vertexFormat.tangent || vertexFormat.bitangent) {
57
- // st required for tangent/bitangent calculation
58
- const st = new Float32Array(vertexCount * 2);
59
- const lengthSt = 1 / (length - 1);
60
- const heightSt = 1 / boundingRectangle.height;
61
- const heightOffset = boundingRectangle.height / 2;
62
- let s, t;
63
- let stindex = 0;
64
- for (i = 0; i < length; i++) {
65
- s = i * lengthSt;
66
- t = heightSt * (shape[0].y + heightOffset);
67
- st[stindex++] = s;
68
- st[stindex++] = t;
69
- for (j = 1; j < shapeLength; j++) {
70
- t = heightSt * (shape[j].y + heightOffset);
71
- st[stindex++] = s;
72
- st[stindex++] = t;
73
- st[stindex++] = s;
74
- st[stindex++] = t;
75
- }
76
- t = heightSt * (shape[0].y + heightOffset);
77
- st[stindex++] = s;
78
- st[stindex++] = t;
79
- }
80
- for (j = 0; j < shapeLength; j++) {
81
- s = 0;
131
+ ll = shapeLength * 2 - 2 + i * shapeLength * 2;
132
+ ul = ll + 1;
133
+ ur = ul + offset;
134
+ lr = ll + offset;
135
+ indices[index++] = ul;
136
+ indices[index++] = ll;
137
+ indices[index++] = ur;
138
+ indices[index++] = ur;
139
+ indices[index++] = ll;
140
+ indices[index++] = lr;
141
+ }
142
+ if (vertexFormat.st || vertexFormat.tangent || vertexFormat.bitangent) {
143
+ const st = new Float32Array(vertexCount * 2);
144
+ const lengthSt = 1 / (length - 1);
145
+ const heightSt = 1 / boundingRectangle.height;
146
+ const heightOffset = boundingRectangle.height / 2;
147
+ let s, t;
148
+ let stindex = 0;
149
+ for (i = 0; i < length; i++) {
150
+ s = i * lengthSt;
151
+ t = heightSt * (shape[0].y + heightOffset);
152
+ st[stindex++] = s;
153
+ st[stindex++] = t;
154
+ for (j = 1; j < shapeLength; j++) {
82
155
  t = heightSt * (shape[j].y + heightOffset);
83
156
  st[stindex++] = s;
84
157
  st[stindex++] = t;
85
- }
86
- for (j = 0; j < shapeLength; j++) {
87
- s = (length - 1) * lengthSt;
88
- t = heightSt * (shape[j].y + heightOffset);
89
158
  st[stindex++] = s;
90
159
  st[stindex++] = t;
91
160
  }
92
-
93
- attributes.st = new GeometryAttribute.GeometryAttribute({
94
- componentDatatype: ComponentDatatype.ComponentDatatype.FLOAT,
95
- componentsPerAttribute: 2,
96
- values: new Float32Array(st),
97
- });
161
+ t = heightSt * (shape[0].y + heightOffset);
162
+ st[stindex++] = s;
163
+ st[stindex++] = t;
98
164
  }
99
-
100
- const endOffset = vertexCount - shapeLength * 2;
101
- for (i = 0; i < firstEndIndices.length; i += 3) {
102
- const v0 = firstEndIndices[i] + endOffset;
103
- const v1 = firstEndIndices[i + 1] + endOffset;
104
- const v2 = firstEndIndices[i + 2] + endOffset;
105
-
106
- indices[index++] = v0;
107
- indices[index++] = v1;
108
- indices[index++] = v2;
109
- indices[index++] = v2 + shapeLength;
110
- indices[index++] = v1 + shapeLength;
111
- indices[index++] = v0 + shapeLength;
112
- }
113
-
114
- let geometry = new GeometryAttribute.Geometry({
115
- attributes: attributes,
116
- indices: indices,
117
- boundingSphere: Transforms.BoundingSphere.fromVertices(combinedPositions),
118
- primitiveType: GeometryAttribute.PrimitiveType.TRIANGLES,
119
- });
120
-
121
- if (vertexFormat.normal) {
122
- geometry = GeometryPipeline.GeometryPipeline.computeNormal(geometry);
165
+ for (j = 0; j < shapeLength; j++) {
166
+ s = 0;
167
+ t = heightSt * (shape[j].y + heightOffset);
168
+ st[stindex++] = s;
169
+ st[stindex++] = t;
123
170
  }
124
-
125
- if (vertexFormat.tangent || vertexFormat.bitangent) {
126
- try {
127
- geometry = GeometryPipeline.GeometryPipeline.computeTangentAndBitangent(geometry);
128
- } catch (e) {
129
- PolylineVolumeGeometryLibrary.oneTimeWarning(
130
- "polyline-volume-tangent-bitangent",
131
- "Unable to compute tangents and bitangents for polyline volume geometry"
132
- );
133
- //TODO https://github.com/CesiumGS/cesium/issues/3609
134
- }
135
-
136
- if (!vertexFormat.tangent) {
137
- geometry.attributes.tangent = undefined;
138
- }
139
- if (!vertexFormat.bitangent) {
140
- geometry.attributes.bitangent = undefined;
141
- }
142
- if (!vertexFormat.st) {
143
- geometry.attributes.st = undefined;
144
- }
171
+ for (j = 0; j < shapeLength; j++) {
172
+ s = (length - 1) * lengthSt;
173
+ t = heightSt * (shape[j].y + heightOffset);
174
+ st[stindex++] = s;
175
+ st[stindex++] = t;
145
176
  }
146
-
147
- return geometry;
177
+ attributes.st = new GeometryAttribute_default({
178
+ componentDatatype: ComponentDatatype_default.FLOAT,
179
+ componentsPerAttribute: 2,
180
+ values: new Float32Array(st)
181
+ });
148
182
  }
149
-
150
- /**
151
- * A description of a polyline with a volume (a 2D shape extruded along a polyline).
152
- *
153
- * @alias PolylineVolumeGeometry
154
- * @constructor
155
- *
156
- * @param {object} options Object with the following properties:
157
- * @param {Cartesian3[]} options.polylinePositions An array of {@link Cartesian3} positions that define the center of the polyline volume.
158
- * @param {Cartesian2[]} options.shapePositions An array of {@link Cartesian2} positions that define the shape to be extruded along the polyline
159
- * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid to be used as a reference.
160
- * @param {number} [options.granularity=CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
161
- * @param {VertexFormat} [options.vertexFormat=VertexFormat.DEFAULT] The vertex attributes to be computed.
162
- * @param {CornerType} [options.cornerType=CornerType.ROUNDED] Determines the style of the corners.
163
- *
164
- * @see PolylineVolumeGeometry#createGeometry
165
- *
166
- * @demo {@link https://sandcastle.cesium.com/index.html?src=Polyline%20Volume.html|Cesium Sandcastle Polyline Volume Demo}
167
- *
168
- * @example
169
- * function computeCircle(radius) {
170
- * const positions = [];
171
- * for (let i = 0; i < 360; i++) {
172
- * const radians = Cesium.Math.toRadians(i);
173
- * positions.push(new Cesium.Cartesian2(radius * Math.cos(radians), radius * Math.sin(radians)));
174
- * }
175
- * return positions;
176
- * }
177
- *
178
- * const volume = new Cesium.PolylineVolumeGeometry({
179
- * vertexFormat : Cesium.VertexFormat.POSITION_ONLY,
180
- * polylinePositions : Cesium.Cartesian3.fromDegreesArray([
181
- * -72.0, 40.0,
182
- * -70.0, 35.0
183
- * ]),
184
- * shapePositions : computeCircle(100000.0)
185
- * });
186
- */
187
- function PolylineVolumeGeometry(options) {
188
- options = defaultValue.defaultValue(options, defaultValue.defaultValue.EMPTY_OBJECT);
189
- const positions = options.polylinePositions;
190
- const shape = options.shapePositions;
191
-
192
- //>>includeStart('debug', pragmas.debug);
193
- if (!defaultValue.defined(positions)) {
194
- throw new Check.DeveloperError("options.polylinePositions is required.");
195
- }
196
- if (!defaultValue.defined(shape)) {
197
- throw new Check.DeveloperError("options.shapePositions is required.");
198
- }
199
- //>>includeEnd('debug');
200
-
201
- this._positions = positions;
202
- this._shape = shape;
203
- this._ellipsoid = Matrix3.Ellipsoid.clone(
204
- defaultValue.defaultValue(options.ellipsoid, Matrix3.Ellipsoid.WGS84)
205
- );
206
- this._cornerType = defaultValue.defaultValue(options.cornerType, PolylineVolumeGeometryLibrary.CornerType.ROUNDED);
207
- this._vertexFormat = VertexFormat.VertexFormat.clone(
208
- defaultValue.defaultValue(options.vertexFormat, VertexFormat.VertexFormat.DEFAULT)
209
- );
210
- this._granularity = defaultValue.defaultValue(
211
- options.granularity,
212
- Math.CesiumMath.RADIANS_PER_DEGREE
213
- );
214
- this._workerName = "createPolylineVolumeGeometry";
215
-
216
- let numComponents = 1 + positions.length * Matrix3.Cartesian3.packedLength;
217
- numComponents += 1 + shape.length * Matrix2.Cartesian2.packedLength;
218
-
219
- /**
220
- * The number of elements used to pack the object into an array.
221
- * @type {number}
222
- */
223
- this.packedLength =
224
- numComponents + Matrix3.Ellipsoid.packedLength + VertexFormat.VertexFormat.packedLength + 2;
183
+ const endOffset = vertexCount - shapeLength * 2;
184
+ for (i = 0; i < firstEndIndices.length; i += 3) {
185
+ const v0 = firstEndIndices[i] + endOffset;
186
+ const v1 = firstEndIndices[i + 1] + endOffset;
187
+ const v2 = firstEndIndices[i + 2] + endOffset;
188
+ indices[index++] = v0;
189
+ indices[index++] = v1;
190
+ indices[index++] = v2;
191
+ indices[index++] = v2 + shapeLength;
192
+ indices[index++] = v1 + shapeLength;
193
+ indices[index++] = v0 + shapeLength;
225
194
  }
226
-
227
- /**
228
- * Stores the provided instance into the provided array.
229
- *
230
- * @param {PolylineVolumeGeometry} value The value to pack.
231
- * @param {number[]} array The array to pack into.
232
- * @param {number} [startingIndex=0] The index into the array at which to start packing the elements.
233
- *
234
- * @returns {number[]} The array that was packed into
235
- */
236
- PolylineVolumeGeometry.pack = function (value, array, startingIndex) {
237
- //>>includeStart('debug', pragmas.debug);
238
- if (!defaultValue.defined(value)) {
239
- throw new Check.DeveloperError("value is required");
240
- }
241
- if (!defaultValue.defined(array)) {
242
- throw new Check.DeveloperError("array is required");
243
- }
244
- //>>includeEnd('debug');
245
-
246
- startingIndex = defaultValue.defaultValue(startingIndex, 0);
247
-
248
- let i;
249
-
250
- const positions = value._positions;
251
- let length = positions.length;
252
- array[startingIndex++] = length;
253
-
254
- for (i = 0; i < length; ++i, startingIndex += Matrix3.Cartesian3.packedLength) {
255
- Matrix3.Cartesian3.pack(positions[i], array, startingIndex);
256
- }
257
-
258
- const shape = value._shape;
259
- length = shape.length;
260
- array[startingIndex++] = length;
261
-
262
- for (i = 0; i < length; ++i, startingIndex += Matrix2.Cartesian2.packedLength) {
263
- Matrix2.Cartesian2.pack(shape[i], array, startingIndex);
195
+ let geometry = new Geometry_default({
196
+ attributes,
197
+ indices,
198
+ boundingSphere: BoundingSphere_default.fromVertices(combinedPositions),
199
+ primitiveType: PrimitiveType_default.TRIANGLES
200
+ });
201
+ if (vertexFormat.normal) {
202
+ geometry = GeometryPipeline_default.computeNormal(geometry);
203
+ }
204
+ if (vertexFormat.tangent || vertexFormat.bitangent) {
205
+ try {
206
+ geometry = GeometryPipeline_default.computeTangentAndBitangent(geometry);
207
+ } catch (e) {
208
+ oneTimeWarning_default(
209
+ "polyline-volume-tangent-bitangent",
210
+ "Unable to compute tangents and bitangents for polyline volume geometry"
211
+ );
264
212
  }
265
-
266
- Matrix3.Ellipsoid.pack(value._ellipsoid, array, startingIndex);
267
- startingIndex += Matrix3.Ellipsoid.packedLength;
268
-
269
- VertexFormat.VertexFormat.pack(value._vertexFormat, array, startingIndex);
270
- startingIndex += VertexFormat.VertexFormat.packedLength;
271
-
272
- array[startingIndex++] = value._cornerType;
273
- array[startingIndex] = value._granularity;
274
-
275
- return array;
276
- };
277
-
278
- const scratchEllipsoid = Matrix3.Ellipsoid.clone(Matrix3.Ellipsoid.UNIT_SPHERE);
279
- const scratchVertexFormat = new VertexFormat.VertexFormat();
280
- const scratchOptions = {
281
- polylinePositions: undefined,
282
- shapePositions: undefined,
283
- ellipsoid: scratchEllipsoid,
284
- vertexFormat: scratchVertexFormat,
285
- cornerType: undefined,
286
- granularity: undefined,
287
- };
288
-
289
- /**
290
- * Retrieves an instance from a packed array.
291
- *
292
- * @param {number[]} array The packed array.
293
- * @param {number} [startingIndex=0] The starting index of the element to be unpacked.
294
- * @param {PolylineVolumeGeometry} [result] The object into which to store the result.
295
- * @returns {PolylineVolumeGeometry} The modified result parameter or a new PolylineVolumeGeometry instance if one was not provided.
296
- */
297
- PolylineVolumeGeometry.unpack = function (array, startingIndex, result) {
298
- //>>includeStart('debug', pragmas.debug);
299
- if (!defaultValue.defined(array)) {
300
- throw new Check.DeveloperError("array is required");
213
+ if (!vertexFormat.tangent) {
214
+ geometry.attributes.tangent = void 0;
301
215
  }
302
- //>>includeEnd('debug');
303
-
304
- startingIndex = defaultValue.defaultValue(startingIndex, 0);
305
-
306
- let i;
307
-
308
- let length = array[startingIndex++];
309
- const positions = new Array(length);
310
-
311
- for (i = 0; i < length; ++i, startingIndex += Matrix3.Cartesian3.packedLength) {
312
- positions[i] = Matrix3.Cartesian3.unpack(array, startingIndex);
216
+ if (!vertexFormat.bitangent) {
217
+ geometry.attributes.bitangent = void 0;
313
218
  }
314
-
315
- length = array[startingIndex++];
316
- const shape = new Array(length);
317
-
318
- for (i = 0; i < length; ++i, startingIndex += Matrix2.Cartesian2.packedLength) {
319
- shape[i] = Matrix2.Cartesian2.unpack(array, startingIndex);
320
- }
321
-
322
- const ellipsoid = Matrix3.Ellipsoid.unpack(array, startingIndex, scratchEllipsoid);
323
- startingIndex += Matrix3.Ellipsoid.packedLength;
324
-
325
- const vertexFormat = VertexFormat.VertexFormat.unpack(
326
- array,
327
- startingIndex,
328
- scratchVertexFormat
329
- );
330
- startingIndex += VertexFormat.VertexFormat.packedLength;
331
-
332
- const cornerType = array[startingIndex++];
333
- const granularity = array[startingIndex];
334
-
335
- if (!defaultValue.defined(result)) {
336
- scratchOptions.polylinePositions = positions;
337
- scratchOptions.shapePositions = shape;
338
- scratchOptions.cornerType = cornerType;
339
- scratchOptions.granularity = granularity;
340
- return new PolylineVolumeGeometry(scratchOptions);
219
+ if (!vertexFormat.st) {
220
+ geometry.attributes.st = void 0;
341
221
  }
342
-
343
- result._positions = positions;
344
- result._shape = shape;
345
- result._ellipsoid = Matrix3.Ellipsoid.clone(ellipsoid, result._ellipsoid);
346
- result._vertexFormat = VertexFormat.VertexFormat.clone(vertexFormat, result._vertexFormat);
347
- result._cornerType = cornerType;
348
- result._granularity = granularity;
349
-
350
- return result;
351
- };
352
-
353
- const brScratch = new BoundingRectangle.BoundingRectangle();
354
-
355
- /**
356
- * Computes the geometric representation of a polyline with a volume, including its vertices, indices, and a bounding sphere.
357
- *
358
- * @param {PolylineVolumeGeometry} polylineVolumeGeometry A description of the polyline volume.
359
- * @returns {Geometry|undefined} The computed vertices and indices.
360
- */
361
- PolylineVolumeGeometry.createGeometry = function (polylineVolumeGeometry) {
362
- const positions = polylineVolumeGeometry._positions;
363
- const cleanPositions = arrayRemoveDuplicates.arrayRemoveDuplicates(
364
- positions,
365
- Matrix3.Cartesian3.equalsEpsilon
366
- );
367
- let shape2D = polylineVolumeGeometry._shape;
368
- shape2D = PolylineVolumeGeometryLibrary.PolylineVolumeGeometryLibrary.removeDuplicatesFromShape(shape2D);
369
-
370
- if (cleanPositions.length < 2 || shape2D.length < 3) {
371
- return undefined;
372
- }
373
-
374
- if (
375
- PolygonPipeline.PolygonPipeline.computeWindingOrder2D(shape2D) === PolygonPipeline.WindingOrder.CLOCKWISE
376
- ) {
377
- shape2D.reverse();
378
- }
379
- const boundingRectangle = BoundingRectangle.BoundingRectangle.fromPoints(shape2D, brScratch);
380
-
381
- const computedPositions = PolylineVolumeGeometryLibrary.PolylineVolumeGeometryLibrary.computePositions(
382
- cleanPositions,
383
- shape2D,
384
- boundingRectangle,
222
+ }
223
+ return geometry;
224
+ }
225
+ function PolylineVolumeGeometry(options) {
226
+ options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
227
+ const positions = options.polylinePositions;
228
+ const shape = options.shapePositions;
229
+ if (!defined_default(positions)) {
230
+ throw new DeveloperError_default("options.polylinePositions is required.");
231
+ }
232
+ if (!defined_default(shape)) {
233
+ throw new DeveloperError_default("options.shapePositions is required.");
234
+ }
235
+ this._positions = positions;
236
+ this._shape = shape;
237
+ this._ellipsoid = Ellipsoid_default.clone(
238
+ defaultValue_default(options.ellipsoid, Ellipsoid_default.WGS84)
239
+ );
240
+ this._cornerType = defaultValue_default(options.cornerType, CornerType_default.ROUNDED);
241
+ this._vertexFormat = VertexFormat_default.clone(
242
+ defaultValue_default(options.vertexFormat, VertexFormat_default.DEFAULT)
243
+ );
244
+ this._granularity = defaultValue_default(
245
+ options.granularity,
246
+ Math_default.RADIANS_PER_DEGREE
247
+ );
248
+ this._workerName = "createPolylineVolumeGeometry";
249
+ let numComponents = 1 + positions.length * Cartesian3_default.packedLength;
250
+ numComponents += 1 + shape.length * Cartesian2_default.packedLength;
251
+ this.packedLength = numComponents + Ellipsoid_default.packedLength + VertexFormat_default.packedLength + 2;
252
+ }
253
+ PolylineVolumeGeometry.pack = function(value, array, startingIndex) {
254
+ if (!defined_default(value)) {
255
+ throw new DeveloperError_default("value is required");
256
+ }
257
+ if (!defined_default(array)) {
258
+ throw new DeveloperError_default("array is required");
259
+ }
260
+ startingIndex = defaultValue_default(startingIndex, 0);
261
+ let i;
262
+ const positions = value._positions;
263
+ let length = positions.length;
264
+ array[startingIndex++] = length;
265
+ for (i = 0; i < length; ++i, startingIndex += Cartesian3_default.packedLength) {
266
+ Cartesian3_default.pack(positions[i], array, startingIndex);
267
+ }
268
+ const shape = value._shape;
269
+ length = shape.length;
270
+ array[startingIndex++] = length;
271
+ for (i = 0; i < length; ++i, startingIndex += Cartesian2_default.packedLength) {
272
+ Cartesian2_default.pack(shape[i], array, startingIndex);
273
+ }
274
+ Ellipsoid_default.pack(value._ellipsoid, array, startingIndex);
275
+ startingIndex += Ellipsoid_default.packedLength;
276
+ VertexFormat_default.pack(value._vertexFormat, array, startingIndex);
277
+ startingIndex += VertexFormat_default.packedLength;
278
+ array[startingIndex++] = value._cornerType;
279
+ array[startingIndex] = value._granularity;
280
+ return array;
281
+ };
282
+ var scratchEllipsoid = Ellipsoid_default.clone(Ellipsoid_default.UNIT_SPHERE);
283
+ var scratchVertexFormat = new VertexFormat_default();
284
+ var scratchOptions = {
285
+ polylinePositions: void 0,
286
+ shapePositions: void 0,
287
+ ellipsoid: scratchEllipsoid,
288
+ vertexFormat: scratchVertexFormat,
289
+ cornerType: void 0,
290
+ granularity: void 0
291
+ };
292
+ PolylineVolumeGeometry.unpack = function(array, startingIndex, result) {
293
+ if (!defined_default(array)) {
294
+ throw new DeveloperError_default("array is required");
295
+ }
296
+ startingIndex = defaultValue_default(startingIndex, 0);
297
+ let i;
298
+ let length = array[startingIndex++];
299
+ const positions = new Array(length);
300
+ for (i = 0; i < length; ++i, startingIndex += Cartesian3_default.packedLength) {
301
+ positions[i] = Cartesian3_default.unpack(array, startingIndex);
302
+ }
303
+ length = array[startingIndex++];
304
+ const shape = new Array(length);
305
+ for (i = 0; i < length; ++i, startingIndex += Cartesian2_default.packedLength) {
306
+ shape[i] = Cartesian2_default.unpack(array, startingIndex);
307
+ }
308
+ const ellipsoid = Ellipsoid_default.unpack(array, startingIndex, scratchEllipsoid);
309
+ startingIndex += Ellipsoid_default.packedLength;
310
+ const vertexFormat = VertexFormat_default.unpack(
311
+ array,
312
+ startingIndex,
313
+ scratchVertexFormat
314
+ );
315
+ startingIndex += VertexFormat_default.packedLength;
316
+ const cornerType = array[startingIndex++];
317
+ const granularity = array[startingIndex];
318
+ if (!defined_default(result)) {
319
+ scratchOptions.polylinePositions = positions;
320
+ scratchOptions.shapePositions = shape;
321
+ scratchOptions.cornerType = cornerType;
322
+ scratchOptions.granularity = granularity;
323
+ return new PolylineVolumeGeometry(scratchOptions);
324
+ }
325
+ result._positions = positions;
326
+ result._shape = shape;
327
+ result._ellipsoid = Ellipsoid_default.clone(ellipsoid, result._ellipsoid);
328
+ result._vertexFormat = VertexFormat_default.clone(vertexFormat, result._vertexFormat);
329
+ result._cornerType = cornerType;
330
+ result._granularity = granularity;
331
+ return result;
332
+ };
333
+ var brScratch = new BoundingRectangle_default();
334
+ PolylineVolumeGeometry.createGeometry = function(polylineVolumeGeometry) {
335
+ const positions = polylineVolumeGeometry._positions;
336
+ const cleanPositions = arrayRemoveDuplicates_default(
337
+ positions,
338
+ Cartesian3_default.equalsEpsilon
339
+ );
340
+ let shape2D = polylineVolumeGeometry._shape;
341
+ shape2D = PolylineVolumeGeometryLibrary_default.removeDuplicatesFromShape(shape2D);
342
+ if (cleanPositions.length < 2 || shape2D.length < 3) {
343
+ return void 0;
344
+ }
345
+ if (PolygonPipeline_default.computeWindingOrder2D(shape2D) === WindingOrder_default.CLOCKWISE) {
346
+ shape2D.reverse();
347
+ }
348
+ const boundingRectangle = BoundingRectangle_default.fromPoints(shape2D, brScratch);
349
+ const computedPositions = PolylineVolumeGeometryLibrary_default.computePositions(
350
+ cleanPositions,
351
+ shape2D,
352
+ boundingRectangle,
353
+ polylineVolumeGeometry,
354
+ true
355
+ );
356
+ return computeAttributes(
357
+ computedPositions,
358
+ shape2D,
359
+ boundingRectangle,
360
+ polylineVolumeGeometry._vertexFormat
361
+ );
362
+ };
363
+ var PolylineVolumeGeometry_default = PolylineVolumeGeometry;
364
+
365
+ // packages/engine/Source/Workers/createPolylineVolumeGeometry.js
366
+ function createPolylineVolumeGeometry(polylineVolumeGeometry, offset) {
367
+ if (defined_default(offset)) {
368
+ polylineVolumeGeometry = PolylineVolumeGeometry_default.unpack(
385
369
  polylineVolumeGeometry,
386
- true
387
- );
388
- return computeAttributes(
389
- computedPositions,
390
- shape2D,
391
- boundingRectangle,
392
- polylineVolumeGeometry._vertexFormat
370
+ offset
393
371
  );
394
- };
395
-
396
- function createPolylineVolumeGeometry(polylineVolumeGeometry, offset) {
397
- if (defaultValue.defined(offset)) {
398
- polylineVolumeGeometry = PolylineVolumeGeometry.unpack(
399
- polylineVolumeGeometry,
400
- offset
401
- );
402
- }
403
- polylineVolumeGeometry._ellipsoid = Matrix3.Ellipsoid.clone(
404
- polylineVolumeGeometry._ellipsoid
405
- );
406
- return PolylineVolumeGeometry.createGeometry(polylineVolumeGeometry);
407
372
  }
408
-
409
- return createPolylineVolumeGeometry;
410
-
411
- }));
373
+ polylineVolumeGeometry._ellipsoid = Ellipsoid_default.clone(
374
+ polylineVolumeGeometry._ellipsoid
375
+ );
376
+ return PolylineVolumeGeometry_default.createGeometry(polylineVolumeGeometry);
377
+ }
378
+ var createPolylineVolumeGeometry_default = createPolylineVolumeGeometry;
379
+ export {
380
+ createPolylineVolumeGeometry_default as default
381
+ };