@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,586 +1,506 @@
1
- define(['./arrayRemoveDuplicates-d2061e85', './BoundingRectangle-32fa8a4a', './Transforms-b527bb09', './Matrix2-e1298525', './Matrix3-41c58dde', './Check-6ede7e26', './ComponentDatatype-cf1fa08e', './CoplanarPolygonGeometryLibrary-488b1a9f', './defaultValue-fe22d8c0', './GeometryAttribute-a5b6275b', './GeometryAttributes-ad136444', './GeometryInstance-34d9e21e', './GeometryPipeline-fa9e6ffc', './IndexDatatype-2643aa47', './Math-0a2ac845', './PolygonGeometryLibrary-4ffc457d', './PolygonPipeline-d5e66350', './VertexFormat-030f11ff', './combine-d9581036', './RuntimeError-ef395448', './WebGLConstants-0b1ce7ba', './OrientedBoundingBox-6b94d955', './EllipsoidTangentPlane-65d41b3e', './AxisAlignedBoundingBox-a03420b1', './IntersectionTests-feace3da', './Plane-4c3d403b', './AttributeCompression-f9f6c717', './EncodedCartesian3-57415c8a', './ArcType-2d9abbbc', './EllipsoidRhumbLine-ef872433'], (function (arrayRemoveDuplicates, BoundingRectangle, Transforms, Matrix2, Matrix3, Check, ComponentDatatype, CoplanarPolygonGeometryLibrary, defaultValue, GeometryAttribute, GeometryAttributes, GeometryInstance, GeometryPipeline, IndexDatatype, Math, PolygonGeometryLibrary, PolygonPipeline, VertexFormat, combine, RuntimeError, WebGLConstants, OrientedBoundingBox, EllipsoidTangentPlane, AxisAlignedBoundingBox, IntersectionTests, Plane, AttributeCompression, EncodedCartesian3, ArcType, EllipsoidRhumbLine) { 'use strict';
2
-
3
- const scratchPosition = new Matrix3.Cartesian3();
4
- const scratchBR = new BoundingRectangle.BoundingRectangle();
5
- const stScratch = new Matrix2.Cartesian2();
6
- const textureCoordinatesOrigin = new Matrix2.Cartesian2();
7
- const scratchNormal = new Matrix3.Cartesian3();
8
- const scratchTangent = new Matrix3.Cartesian3();
9
- const scratchBitangent = new Matrix3.Cartesian3();
10
- const centerScratch = new Matrix3.Cartesian3();
11
- const axis1Scratch = new Matrix3.Cartesian3();
12
- const axis2Scratch = new Matrix3.Cartesian3();
13
- const quaternionScratch = new Transforms.Quaternion();
14
- const textureMatrixScratch = new Matrix3.Matrix3();
15
- const tangentRotationScratch = new Matrix3.Matrix3();
16
- const surfaceNormalScratch = new Matrix3.Cartesian3();
17
-
18
- function createGeometryFromPolygon(
19
- polygon,
20
- vertexFormat,
21
- boundingRectangle,
22
- stRotation,
23
- hardcodedTextureCoordinates,
24
- projectPointTo2D,
25
- normal,
26
- tangent,
27
- bitangent
28
- ) {
29
- const positions = polygon.positions;
30
- let indices = PolygonPipeline.PolygonPipeline.triangulate(polygon.positions2D, polygon.holes);
31
-
32
- /* If polygon is completely unrenderable, just use the first three vertices */
33
- if (indices.length < 3) {
34
- indices = [0, 1, 2];
35
- }
36
-
37
- const newIndices = IndexDatatype.IndexDatatype.createTypedArray(
38
- positions.length,
39
- indices.length
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
+ CoplanarPolygonGeometryLibrary_default
31
+ } from "./chunk-AQQGAFKX.js";
32
+ import "./chunk-FOOYJER7.js";
33
+ import {
34
+ PolygonGeometryLibrary_default
35
+ } from "./chunk-7N67FBLW.js";
36
+ import "./chunk-IQN2LMGD.js";
37
+ import {
38
+ GeometryInstance_default
39
+ } from "./chunk-EHJQEARC.js";
40
+ import {
41
+ GeometryPipeline_default
42
+ } from "./chunk-P32XMW4I.js";
43
+ import "./chunk-QUCJGBCK.js";
44
+ import "./chunk-4QGPYV3W.js";
45
+ import {
46
+ VertexFormat_default
47
+ } from "./chunk-MRCFDEKH.js";
48
+ import "./chunk-K3VEWONC.js";
49
+ import "./chunk-PEVZYZBQ.js";
50
+ import {
51
+ PolygonPipeline_default
52
+ } from "./chunk-QDUOGCCO.js";
53
+ import {
54
+ arrayRemoveDuplicates_default
55
+ } from "./chunk-X2KIWBTW.js";
56
+ import "./chunk-RCI7BSOM.js";
57
+ import "./chunk-UFIT5XDI.js";
58
+ import "./chunk-6I22NWKQ.js";
59
+ import {
60
+ IndexDatatype_default
61
+ } from "./chunk-CROU4RHL.js";
62
+ import {
63
+ GeometryAttributes_default
64
+ } from "./chunk-YLMDWSXO.js";
65
+ import {
66
+ GeometryAttribute_default,
67
+ Geometry_default,
68
+ PrimitiveType_default
69
+ } from "./chunk-HV67ARO7.js";
70
+ import {
71
+ BoundingSphere_default,
72
+ Quaternion_default
73
+ } from "./chunk-V5S5N2IS.js";
74
+ import "./chunk-ULLMQNFQ.js";
75
+ import {
76
+ Cartesian2_default
77
+ } from "./chunk-MYDS6HBL.js";
78
+ import {
79
+ ComponentDatatype_default
80
+ } from "./chunk-CTJCECTX.js";
81
+ import {
82
+ Cartesian3_default,
83
+ Ellipsoid_default,
84
+ Matrix3_default
85
+ } from "./chunk-HIDSEUWS.js";
86
+ import {
87
+ Math_default
88
+ } from "./chunk-4HN3N5SE.js";
89
+ import "./chunk-TXYJOVQK.js";
90
+ import "./chunk-2ZI7FZ3Q.js";
91
+ import {
92
+ defaultValue_default
93
+ } from "./chunk-GPO47TW4.js";
94
+ import {
95
+ Check_default
96
+ } from "./chunk-6EHT6GS3.js";
97
+ import {
98
+ defined_default
99
+ } from "./chunk-TXOGSFHZ.js";
100
+
101
+ // packages/engine/Source/Core/CoplanarPolygonGeometry.js
102
+ var scratchPosition = new Cartesian3_default();
103
+ var scratchBR = new BoundingRectangle_default();
104
+ var stScratch = new Cartesian2_default();
105
+ var textureCoordinatesOrigin = new Cartesian2_default();
106
+ var scratchNormal = new Cartesian3_default();
107
+ var scratchTangent = new Cartesian3_default();
108
+ var scratchBitangent = new Cartesian3_default();
109
+ var centerScratch = new Cartesian3_default();
110
+ var axis1Scratch = new Cartesian3_default();
111
+ var axis2Scratch = new Cartesian3_default();
112
+ var quaternionScratch = new Quaternion_default();
113
+ var textureMatrixScratch = new Matrix3_default();
114
+ var tangentRotationScratch = new Matrix3_default();
115
+ var surfaceNormalScratch = new Cartesian3_default();
116
+ function createGeometryFromPolygon(polygon, vertexFormat, boundingRectangle, stRotation, hardcodedTextureCoordinates, projectPointTo2D, normal, tangent, bitangent) {
117
+ const positions = polygon.positions;
118
+ let indices = PolygonPipeline_default.triangulate(polygon.positions2D, polygon.holes);
119
+ if (indices.length < 3) {
120
+ indices = [0, 1, 2];
121
+ }
122
+ const newIndices = IndexDatatype_default.createTypedArray(
123
+ positions.length,
124
+ indices.length
125
+ );
126
+ newIndices.set(indices);
127
+ let textureMatrix = textureMatrixScratch;
128
+ if (stRotation !== 0) {
129
+ let rotation = Quaternion_default.fromAxisAngle(
130
+ normal,
131
+ stRotation,
132
+ quaternionScratch
40
133
  );
41
- newIndices.set(indices);
42
-
43
- let textureMatrix = textureMatrixScratch;
44
- if (stRotation !== 0.0) {
45
- let rotation = Transforms.Quaternion.fromAxisAngle(
134
+ textureMatrix = Matrix3_default.fromQuaternion(rotation, textureMatrix);
135
+ if (vertexFormat.tangent || vertexFormat.bitangent) {
136
+ rotation = Quaternion_default.fromAxisAngle(
46
137
  normal,
47
- stRotation,
138
+ -stRotation,
48
139
  quaternionScratch
49
140
  );
50
- textureMatrix = Matrix3.Matrix3.fromQuaternion(rotation, textureMatrix);
51
-
52
- if (vertexFormat.tangent || vertexFormat.bitangent) {
53
- rotation = Transforms.Quaternion.fromAxisAngle(
54
- normal,
55
- -stRotation,
56
- quaternionScratch
57
- );
58
- const tangentRotation = Matrix3.Matrix3.fromQuaternion(
59
- rotation,
60
- tangentRotationScratch
61
- );
62
-
63
- tangent = Matrix3.Cartesian3.normalize(
64
- Matrix3.Matrix3.multiplyByVector(tangentRotation, tangent, tangent),
65
- tangent
141
+ const tangentRotation = Matrix3_default.fromQuaternion(
142
+ rotation,
143
+ tangentRotationScratch
144
+ );
145
+ tangent = Cartesian3_default.normalize(
146
+ Matrix3_default.multiplyByVector(tangentRotation, tangent, tangent),
147
+ tangent
148
+ );
149
+ if (vertexFormat.bitangent) {
150
+ bitangent = Cartesian3_default.normalize(
151
+ Cartesian3_default.cross(normal, tangent, bitangent),
152
+ bitangent
66
153
  );
67
- if (vertexFormat.bitangent) {
68
- bitangent = Matrix3.Cartesian3.normalize(
69
- Matrix3.Cartesian3.cross(normal, tangent, bitangent),
70
- bitangent
71
- );
72
- }
73
154
  }
74
- } else {
75
- textureMatrix = Matrix3.Matrix3.clone(Matrix3.Matrix3.IDENTITY, textureMatrix);
76
155
  }
77
-
78
- const stOrigin = textureCoordinatesOrigin;
156
+ } else {
157
+ textureMatrix = Matrix3_default.clone(Matrix3_default.IDENTITY, textureMatrix);
158
+ }
159
+ const stOrigin = textureCoordinatesOrigin;
160
+ if (vertexFormat.st) {
161
+ stOrigin.x = boundingRectangle.x;
162
+ stOrigin.y = boundingRectangle.y;
163
+ }
164
+ const length = positions.length;
165
+ const size = length * 3;
166
+ const flatPositions = new Float64Array(size);
167
+ const normals = vertexFormat.normal ? new Float32Array(size) : void 0;
168
+ const tangents = vertexFormat.tangent ? new Float32Array(size) : void 0;
169
+ const bitangents = vertexFormat.bitangent ? new Float32Array(size) : void 0;
170
+ const textureCoordinates = vertexFormat.st ? new Float32Array(length * 2) : void 0;
171
+ let positionIndex = 0;
172
+ let normalIndex = 0;
173
+ let bitangentIndex = 0;
174
+ let tangentIndex = 0;
175
+ let stIndex = 0;
176
+ for (let i = 0; i < length; i++) {
177
+ const position = positions[i];
178
+ flatPositions[positionIndex++] = position.x;
179
+ flatPositions[positionIndex++] = position.y;
180
+ flatPositions[positionIndex++] = position.z;
79
181
  if (vertexFormat.st) {
80
- stOrigin.x = boundingRectangle.x;
81
- stOrigin.y = boundingRectangle.y;
82
- }
83
-
84
- const length = positions.length;
85
- const size = length * 3;
86
- const flatPositions = new Float64Array(size);
87
- const normals = vertexFormat.normal ? new Float32Array(size) : undefined;
88
- const tangents = vertexFormat.tangent ? new Float32Array(size) : undefined;
89
- const bitangents = vertexFormat.bitangent
90
- ? new Float32Array(size)
91
- : undefined;
92
- const textureCoordinates = vertexFormat.st
93
- ? new Float32Array(length * 2)
94
- : undefined;
95
-
96
- let positionIndex = 0;
97
- let normalIndex = 0;
98
- let bitangentIndex = 0;
99
- let tangentIndex = 0;
100
- let stIndex = 0;
101
-
102
- for (let i = 0; i < length; i++) {
103
- const position = positions[i];
104
- flatPositions[positionIndex++] = position.x;
105
- flatPositions[positionIndex++] = position.y;
106
- flatPositions[positionIndex++] = position.z;
107
-
108
- if (vertexFormat.st) {
109
- if (
110
- defaultValue.defined(hardcodedTextureCoordinates) &&
111
- hardcodedTextureCoordinates.positions.length === length
112
- ) {
113
- textureCoordinates[stIndex++] =
114
- hardcodedTextureCoordinates.positions[i].x;
115
- textureCoordinates[stIndex++] =
116
- hardcodedTextureCoordinates.positions[i].y;
117
- } else {
118
- const p = Matrix3.Matrix3.multiplyByVector(
119
- textureMatrix,
120
- position,
121
- scratchPosition
122
- );
123
- const st = projectPointTo2D(p, stScratch);
124
- Matrix2.Cartesian2.subtract(st, stOrigin, st);
125
-
126
- const stx = Math.CesiumMath.clamp(st.x / boundingRectangle.width, 0, 1);
127
- const sty = Math.CesiumMath.clamp(st.y / boundingRectangle.height, 0, 1);
128
- textureCoordinates[stIndex++] = stx;
129
- textureCoordinates[stIndex++] = sty;
130
- }
131
- }
132
-
133
- if (vertexFormat.normal) {
134
- normals[normalIndex++] = normal.x;
135
- normals[normalIndex++] = normal.y;
136
- normals[normalIndex++] = normal.z;
137
- }
138
-
139
- if (vertexFormat.tangent) {
140
- tangents[tangentIndex++] = tangent.x;
141
- tangents[tangentIndex++] = tangent.y;
142
- tangents[tangentIndex++] = tangent.z;
143
- }
144
-
145
- if (vertexFormat.bitangent) {
146
- bitangents[bitangentIndex++] = bitangent.x;
147
- bitangents[bitangentIndex++] = bitangent.y;
148
- bitangents[bitangentIndex++] = bitangent.z;
182
+ if (defined_default(hardcodedTextureCoordinates) && hardcodedTextureCoordinates.positions.length === length) {
183
+ textureCoordinates[stIndex++] = hardcodedTextureCoordinates.positions[i].x;
184
+ textureCoordinates[stIndex++] = hardcodedTextureCoordinates.positions[i].y;
185
+ } else {
186
+ const p = Matrix3_default.multiplyByVector(
187
+ textureMatrix,
188
+ position,
189
+ scratchPosition
190
+ );
191
+ const st = projectPointTo2D(p, stScratch);
192
+ Cartesian2_default.subtract(st, stOrigin, st);
193
+ const stx = Math_default.clamp(st.x / boundingRectangle.width, 0, 1);
194
+ const sty = Math_default.clamp(st.y / boundingRectangle.height, 0, 1);
195
+ textureCoordinates[stIndex++] = stx;
196
+ textureCoordinates[stIndex++] = sty;
149
197
  }
150
198
  }
151
-
152
- const attributes = new GeometryAttributes.GeometryAttributes();
153
-
154
- if (vertexFormat.position) {
155
- attributes.position = new GeometryAttribute.GeometryAttribute({
156
- componentDatatype: ComponentDatatype.ComponentDatatype.DOUBLE,
157
- componentsPerAttribute: 3,
158
- values: flatPositions,
159
- });
160
- }
161
-
162
199
  if (vertexFormat.normal) {
163
- attributes.normal = new GeometryAttribute.GeometryAttribute({
164
- componentDatatype: ComponentDatatype.ComponentDatatype.FLOAT,
165
- componentsPerAttribute: 3,
166
- values: normals,
167
- });
200
+ normals[normalIndex++] = normal.x;
201
+ normals[normalIndex++] = normal.y;
202
+ normals[normalIndex++] = normal.z;
168
203
  }
169
-
170
204
  if (vertexFormat.tangent) {
171
- attributes.tangent = new GeometryAttribute.GeometryAttribute({
172
- componentDatatype: ComponentDatatype.ComponentDatatype.FLOAT,
173
- componentsPerAttribute: 3,
174
- values: tangents,
175
- });
205
+ tangents[tangentIndex++] = tangent.x;
206
+ tangents[tangentIndex++] = tangent.y;
207
+ tangents[tangentIndex++] = tangent.z;
176
208
  }
177
-
178
209
  if (vertexFormat.bitangent) {
179
- attributes.bitangent = new GeometryAttribute.GeometryAttribute({
180
- componentDatatype: ComponentDatatype.ComponentDatatype.FLOAT,
181
- componentsPerAttribute: 3,
182
- values: bitangents,
183
- });
210
+ bitangents[bitangentIndex++] = bitangent.x;
211
+ bitangents[bitangentIndex++] = bitangent.y;
212
+ bitangents[bitangentIndex++] = bitangent.z;
184
213
  }
185
-
186
- if (vertexFormat.st) {
187
- attributes.st = new GeometryAttribute.GeometryAttribute({
188
- componentDatatype: ComponentDatatype.ComponentDatatype.FLOAT,
189
- componentsPerAttribute: 2,
190
- values: textureCoordinates,
191
- });
192
- }
193
-
194
- return new GeometryAttribute.Geometry({
195
- attributes: attributes,
196
- indices: newIndices,
197
- primitiveType: GeometryAttribute.PrimitiveType.TRIANGLES,
214
+ }
215
+ const attributes = new GeometryAttributes_default();
216
+ if (vertexFormat.position) {
217
+ attributes.position = new GeometryAttribute_default({
218
+ componentDatatype: ComponentDatatype_default.DOUBLE,
219
+ componentsPerAttribute: 3,
220
+ values: flatPositions
198
221
  });
199
222
  }
200
-
201
- /**
202
- * A description of a polygon composed of arbitrary coplanar positions.
203
- *
204
- * @alias CoplanarPolygonGeometry
205
- * @constructor
206
- *
207
- * @param {object} options Object with the following properties:
208
- * @param {PolygonHierarchy} options.polygonHierarchy A polygon hierarchy that can include holes.
209
- * @param {number} [options.stRotation=0.0] The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
210
- * @param {VertexFormat} [options.vertexFormat=VertexFormat.DEFAULT] The vertex attributes to be computed.
211
- * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid to be used as a reference.
212
- * @param {PolygonHierarchy} [options.textureCoordinates] Texture coordinates as a {@link PolygonHierarchy} of {@link Cartesian2} points.
213
- *
214
- * @example
215
- * const polygonGeometry = new Cesium.CoplanarPolygonGeometry({
216
- * polygonHierarchy: new Cesium.PolygonHierarchy(
217
- * Cesium.Cartesian3.fromDegreesArrayHeights([
218
- * -90.0, 30.0, 0.0,
219
- * -90.0, 30.0, 300000.0,
220
- * -80.0, 30.0, 300000.0,
221
- * -80.0, 30.0, 0.0
222
- * ]))
223
- * });
224
- *
225
- */
226
- function CoplanarPolygonGeometry(options) {
227
- options = defaultValue.defaultValue(options, defaultValue.defaultValue.EMPTY_OBJECT);
228
- const polygonHierarchy = options.polygonHierarchy;
229
- const textureCoordinates = options.textureCoordinates;
230
- //>>includeStart('debug', pragmas.debug);
231
- Check.Check.defined("options.polygonHierarchy", polygonHierarchy);
232
- //>>includeEnd('debug');
233
-
234
- const vertexFormat = defaultValue.defaultValue(options.vertexFormat, VertexFormat.VertexFormat.DEFAULT);
235
- this._vertexFormat = VertexFormat.VertexFormat.clone(vertexFormat);
236
- this._polygonHierarchy = polygonHierarchy;
237
- this._stRotation = defaultValue.defaultValue(options.stRotation, 0.0);
238
- this._ellipsoid = Matrix3.Ellipsoid.clone(
239
- defaultValue.defaultValue(options.ellipsoid, Matrix3.Ellipsoid.WGS84)
240
- );
241
- this._workerName = "createCoplanarPolygonGeometry";
242
- this._textureCoordinates = textureCoordinates;
243
-
244
- /**
245
- * The number of elements used to pack the object into an array.
246
- * @type {number}
247
- */
248
- this.packedLength =
249
- PolygonGeometryLibrary.PolygonGeometryLibrary.computeHierarchyPackedLength(
250
- polygonHierarchy,
251
- Matrix3.Cartesian3
252
- ) +
253
- VertexFormat.VertexFormat.packedLength +
254
- Matrix3.Ellipsoid.packedLength +
255
- (defaultValue.defined(textureCoordinates)
256
- ? PolygonGeometryLibrary.PolygonGeometryLibrary.computeHierarchyPackedLength(
257
- textureCoordinates,
258
- Matrix2.Cartesian2
259
- )
260
- : 1) +
261
- 2;
223
+ if (vertexFormat.normal) {
224
+ attributes.normal = new GeometryAttribute_default({
225
+ componentDatatype: ComponentDatatype_default.FLOAT,
226
+ componentsPerAttribute: 3,
227
+ values: normals
228
+ });
262
229
  }
263
-
264
- /**
265
- * A description of a coplanar polygon from an array of positions.
266
- *
267
- * @param {object} options Object with the following properties:
268
- * @param {Cartesian3[]} options.positions An array of positions that defined the corner points of the polygon.
269
- * @param {VertexFormat} [options.vertexFormat=VertexFormat.DEFAULT] The vertex attributes to be computed.
270
- * @param {number} [options.stRotation=0.0] The rotation of the texture coordinates, in radians. A positive rotation is counter-clockwise.
271
- * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid to be used as a reference.
272
- * @param {PolygonHierarchy} [options.textureCoordinates] Texture coordinates as a {@link PolygonHierarchy} of {@link Cartesian2} points.
273
- * @returns {CoplanarPolygonGeometry}
274
- *
275
- * @example
276
- * // create a polygon from points
277
- * const polygon = Cesium.CoplanarPolygonGeometry.fromPositions({
278
- * positions : Cesium.Cartesian3.fromDegreesArray([
279
- * -72.0, 40.0,
280
- * -70.0, 35.0,
281
- * -75.0, 30.0,
282
- * -70.0, 30.0,
283
- * -68.0, 40.0
284
- * ])
285
- * });
286
- * const geometry = Cesium.PolygonGeometry.createGeometry(polygon);
287
- *
288
- * @see PolygonGeometry#createGeometry
289
- */
290
- CoplanarPolygonGeometry.fromPositions = function (options) {
291
- options = defaultValue.defaultValue(options, defaultValue.defaultValue.EMPTY_OBJECT);
292
-
293
- //>>includeStart('debug', pragmas.debug);
294
- Check.Check.defined("options.positions", options.positions);
295
- //>>includeEnd('debug');
296
-
297
- const newOptions = {
298
- polygonHierarchy: {
299
- positions: options.positions,
300
- },
301
- vertexFormat: options.vertexFormat,
302
- stRotation: options.stRotation,
303
- ellipsoid: options.ellipsoid,
304
- textureCoordinates: options.textureCoordinates,
305
- };
306
- return new CoplanarPolygonGeometry(newOptions);
307
- };
308
-
309
- /**
310
- * Stores the provided instance into the provided array.
311
- *
312
- * @param {CoplanarPolygonGeometry} value The value to pack.
313
- * @param {number[]} array The array to pack into.
314
- * @param {number} [startingIndex=0] The index into the array at which to start packing the elements.
315
- *
316
- * @returns {number[]} The array that was packed into
317
- */
318
- CoplanarPolygonGeometry.pack = function (value, array, startingIndex) {
319
- //>>includeStart('debug', pragmas.debug);
320
- Check.Check.typeOf.object("value", value);
321
- Check.Check.defined("array", array);
322
- //>>includeEnd('debug');
323
-
324
- startingIndex = defaultValue.defaultValue(startingIndex, 0);
325
-
326
- startingIndex = PolygonGeometryLibrary.PolygonGeometryLibrary.packPolygonHierarchy(
327
- value._polygonHierarchy,
328
- array,
329
- startingIndex,
330
- Matrix3.Cartesian3
331
- );
332
-
333
- Matrix3.Ellipsoid.pack(value._ellipsoid, array, startingIndex);
334
- startingIndex += Matrix3.Ellipsoid.packedLength;
335
-
336
- VertexFormat.VertexFormat.pack(value._vertexFormat, array, startingIndex);
337
- startingIndex += VertexFormat.VertexFormat.packedLength;
338
-
339
- array[startingIndex++] = value._stRotation;
340
- if (defaultValue.defined(value._textureCoordinates)) {
341
- startingIndex = PolygonGeometryLibrary.PolygonGeometryLibrary.packPolygonHierarchy(
342
- value._textureCoordinates,
343
- array,
344
- startingIndex,
345
- Matrix2.Cartesian2
346
- );
347
- } else {
348
- array[startingIndex++] = -1.0;
349
- }
350
- array[startingIndex++] = value.packedLength;
351
-
352
- return array;
353
- };
354
-
355
- const scratchEllipsoid = Matrix3.Ellipsoid.clone(Matrix3.Ellipsoid.UNIT_SPHERE);
356
- const scratchVertexFormat = new VertexFormat.VertexFormat();
357
- const scratchOptions = {
358
- polygonHierarchy: {},
230
+ if (vertexFormat.tangent) {
231
+ attributes.tangent = new GeometryAttribute_default({
232
+ componentDatatype: ComponentDatatype_default.FLOAT,
233
+ componentsPerAttribute: 3,
234
+ values: tangents
235
+ });
236
+ }
237
+ if (vertexFormat.bitangent) {
238
+ attributes.bitangent = new GeometryAttribute_default({
239
+ componentDatatype: ComponentDatatype_default.FLOAT,
240
+ componentsPerAttribute: 3,
241
+ values: bitangents
242
+ });
243
+ }
244
+ if (vertexFormat.st) {
245
+ attributes.st = new GeometryAttribute_default({
246
+ componentDatatype: ComponentDatatype_default.FLOAT,
247
+ componentsPerAttribute: 2,
248
+ values: textureCoordinates
249
+ });
250
+ }
251
+ return new Geometry_default({
252
+ attributes,
253
+ indices: newIndices,
254
+ primitiveType: PrimitiveType_default.TRIANGLES
255
+ });
256
+ }
257
+ function CoplanarPolygonGeometry(options) {
258
+ options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
259
+ const polygonHierarchy = options.polygonHierarchy;
260
+ const textureCoordinates = options.textureCoordinates;
261
+ Check_default.defined("options.polygonHierarchy", polygonHierarchy);
262
+ const vertexFormat = defaultValue_default(options.vertexFormat, VertexFormat_default.DEFAULT);
263
+ this._vertexFormat = VertexFormat_default.clone(vertexFormat);
264
+ this._polygonHierarchy = polygonHierarchy;
265
+ this._stRotation = defaultValue_default(options.stRotation, 0);
266
+ this._ellipsoid = Ellipsoid_default.clone(
267
+ defaultValue_default(options.ellipsoid, Ellipsoid_default.WGS84)
268
+ );
269
+ this._workerName = "createCoplanarPolygonGeometry";
270
+ this._textureCoordinates = textureCoordinates;
271
+ this.packedLength = PolygonGeometryLibrary_default.computeHierarchyPackedLength(
272
+ polygonHierarchy,
273
+ Cartesian3_default
274
+ ) + VertexFormat_default.packedLength + Ellipsoid_default.packedLength + (defined_default(textureCoordinates) ? PolygonGeometryLibrary_default.computeHierarchyPackedLength(
275
+ textureCoordinates,
276
+ Cartesian2_default
277
+ ) : 1) + 2;
278
+ }
279
+ CoplanarPolygonGeometry.fromPositions = function(options) {
280
+ options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
281
+ Check_default.defined("options.positions", options.positions);
282
+ const newOptions = {
283
+ polygonHierarchy: {
284
+ positions: options.positions
285
+ },
286
+ vertexFormat: options.vertexFormat,
287
+ stRotation: options.stRotation,
288
+ ellipsoid: options.ellipsoid,
289
+ textureCoordinates: options.textureCoordinates
359
290
  };
360
- /**
361
- * Retrieves an instance from a packed array.
362
- *
363
- * @param {number[]} array The packed array.
364
- * @param {number} [startingIndex=0] The starting index of the element to be unpacked.
365
- * @param {CoplanarPolygonGeometry} [result] The object into which to store the result.
366
- * @returns {CoplanarPolygonGeometry} The modified result parameter or a new CoplanarPolygonGeometry instance if one was not provided.
367
- */
368
- CoplanarPolygonGeometry.unpack = function (array, startingIndex, result) {
369
- //>>includeStart('debug', pragmas.debug);
370
- Check.Check.defined("array", array);
371
- //>>includeEnd('debug');
372
-
373
- startingIndex = defaultValue.defaultValue(startingIndex, 0);
374
-
375
- const polygonHierarchy = PolygonGeometryLibrary.PolygonGeometryLibrary.unpackPolygonHierarchy(
376
- array,
377
- startingIndex,
378
- Matrix3.Cartesian3
379
- );
380
- startingIndex = polygonHierarchy.startingIndex;
381
- delete polygonHierarchy.startingIndex;
382
-
383
- const ellipsoid = Matrix3.Ellipsoid.unpack(array, startingIndex, scratchEllipsoid);
384
- startingIndex += Matrix3.Ellipsoid.packedLength;
385
-
386
- const vertexFormat = VertexFormat.VertexFormat.unpack(
291
+ return new CoplanarPolygonGeometry(newOptions);
292
+ };
293
+ CoplanarPolygonGeometry.pack = function(value, array, startingIndex) {
294
+ Check_default.typeOf.object("value", value);
295
+ Check_default.defined("array", array);
296
+ startingIndex = defaultValue_default(startingIndex, 0);
297
+ startingIndex = PolygonGeometryLibrary_default.packPolygonHierarchy(
298
+ value._polygonHierarchy,
299
+ array,
300
+ startingIndex,
301
+ Cartesian3_default
302
+ );
303
+ Ellipsoid_default.pack(value._ellipsoid, array, startingIndex);
304
+ startingIndex += Ellipsoid_default.packedLength;
305
+ VertexFormat_default.pack(value._vertexFormat, array, startingIndex);
306
+ startingIndex += VertexFormat_default.packedLength;
307
+ array[startingIndex++] = value._stRotation;
308
+ if (defined_default(value._textureCoordinates)) {
309
+ startingIndex = PolygonGeometryLibrary_default.packPolygonHierarchy(
310
+ value._textureCoordinates,
387
311
  array,
388
312
  startingIndex,
389
- scratchVertexFormat
313
+ Cartesian2_default
390
314
  );
391
- startingIndex += VertexFormat.VertexFormat.packedLength;
392
-
393
- const stRotation = array[startingIndex++];
394
- const textureCoordinates =
395
- array[startingIndex] === -1.0
396
- ? undefined
397
- : PolygonGeometryLibrary.PolygonGeometryLibrary.unpackPolygonHierarchy(
398
- array,
399
- startingIndex,
400
- Matrix2.Cartesian2
401
- );
402
- if (defaultValue.defined(textureCoordinates)) {
403
- startingIndex = textureCoordinates.startingIndex;
404
- delete textureCoordinates.startingIndex;
405
- } else {
406
- startingIndex++;
407
- }
408
- const packedLength = array[startingIndex++];
409
-
410
- if (!defaultValue.defined(result)) {
411
- result = new CoplanarPolygonGeometry(scratchOptions);
412
- }
413
-
414
- result._polygonHierarchy = polygonHierarchy;
415
- result._ellipsoid = Matrix3.Ellipsoid.clone(ellipsoid, result._ellipsoid);
416
- result._vertexFormat = VertexFormat.VertexFormat.clone(vertexFormat, result._vertexFormat);
417
- result._stRotation = stRotation;
418
- result._textureCoordinates = textureCoordinates;
419
- result.packedLength = packedLength;
420
-
421
- return result;
422
- };
423
-
424
- /**
425
- * Computes the geometric representation of an arbitrary coplanar polygon, including its vertices, indices, and a bounding sphere.
426
- *
427
- * @param {CoplanarPolygonGeometry} polygonGeometry A description of the polygon.
428
- * @returns {Geometry|undefined} The computed vertices and indices.
429
- */
430
- CoplanarPolygonGeometry.createGeometry = function (polygonGeometry) {
431
- const vertexFormat = polygonGeometry._vertexFormat;
432
- const polygonHierarchy = polygonGeometry._polygonHierarchy;
433
- const stRotation = polygonGeometry._stRotation;
434
- const textureCoordinates = polygonGeometry._textureCoordinates;
435
- const hasTextureCoordinates = defaultValue.defined(textureCoordinates);
436
-
437
- let outerPositions = polygonHierarchy.positions;
438
- outerPositions = arrayRemoveDuplicates.arrayRemoveDuplicates(
439
- outerPositions,
440
- Matrix3.Cartesian3.equalsEpsilon,
441
- true
442
- );
443
- if (outerPositions.length < 3) {
444
- return;
445
- }
446
-
447
- let normal = scratchNormal;
448
- let tangent = scratchTangent;
449
- let bitangent = scratchBitangent;
450
- let axis1 = axis1Scratch;
451
- const axis2 = axis2Scratch;
452
-
453
- const validGeometry = CoplanarPolygonGeometryLibrary.CoplanarPolygonGeometryLibrary.computeProjectTo2DArguments(
454
- outerPositions,
315
+ } else {
316
+ array[startingIndex++] = -1;
317
+ }
318
+ array[startingIndex++] = value.packedLength;
319
+ return array;
320
+ };
321
+ var scratchEllipsoid = Ellipsoid_default.clone(Ellipsoid_default.UNIT_SPHERE);
322
+ var scratchVertexFormat = new VertexFormat_default();
323
+ var scratchOptions = {
324
+ polygonHierarchy: {}
325
+ };
326
+ CoplanarPolygonGeometry.unpack = function(array, startingIndex, result) {
327
+ Check_default.defined("array", array);
328
+ startingIndex = defaultValue_default(startingIndex, 0);
329
+ const polygonHierarchy = PolygonGeometryLibrary_default.unpackPolygonHierarchy(
330
+ array,
331
+ startingIndex,
332
+ Cartesian3_default
333
+ );
334
+ startingIndex = polygonHierarchy.startingIndex;
335
+ delete polygonHierarchy.startingIndex;
336
+ const ellipsoid = Ellipsoid_default.unpack(array, startingIndex, scratchEllipsoid);
337
+ startingIndex += Ellipsoid_default.packedLength;
338
+ const vertexFormat = VertexFormat_default.unpack(
339
+ array,
340
+ startingIndex,
341
+ scratchVertexFormat
342
+ );
343
+ startingIndex += VertexFormat_default.packedLength;
344
+ const stRotation = array[startingIndex++];
345
+ const textureCoordinates = array[startingIndex] === -1 ? void 0 : PolygonGeometryLibrary_default.unpackPolygonHierarchy(
346
+ array,
347
+ startingIndex,
348
+ Cartesian2_default
349
+ );
350
+ if (defined_default(textureCoordinates)) {
351
+ startingIndex = textureCoordinates.startingIndex;
352
+ delete textureCoordinates.startingIndex;
353
+ } else {
354
+ startingIndex++;
355
+ }
356
+ const packedLength = array[startingIndex++];
357
+ if (!defined_default(result)) {
358
+ result = new CoplanarPolygonGeometry(scratchOptions);
359
+ }
360
+ result._polygonHierarchy = polygonHierarchy;
361
+ result._ellipsoid = Ellipsoid_default.clone(ellipsoid, result._ellipsoid);
362
+ result._vertexFormat = VertexFormat_default.clone(vertexFormat, result._vertexFormat);
363
+ result._stRotation = stRotation;
364
+ result._textureCoordinates = textureCoordinates;
365
+ result.packedLength = packedLength;
366
+ return result;
367
+ };
368
+ CoplanarPolygonGeometry.createGeometry = function(polygonGeometry) {
369
+ const vertexFormat = polygonGeometry._vertexFormat;
370
+ const polygonHierarchy = polygonGeometry._polygonHierarchy;
371
+ const stRotation = polygonGeometry._stRotation;
372
+ const textureCoordinates = polygonGeometry._textureCoordinates;
373
+ const hasTextureCoordinates = defined_default(textureCoordinates);
374
+ let outerPositions = polygonHierarchy.positions;
375
+ outerPositions = arrayRemoveDuplicates_default(
376
+ outerPositions,
377
+ Cartesian3_default.equalsEpsilon,
378
+ true
379
+ );
380
+ if (outerPositions.length < 3) {
381
+ return;
382
+ }
383
+ let normal = scratchNormal;
384
+ let tangent = scratchTangent;
385
+ let bitangent = scratchBitangent;
386
+ let axis1 = axis1Scratch;
387
+ const axis2 = axis2Scratch;
388
+ const validGeometry = CoplanarPolygonGeometryLibrary_default.computeProjectTo2DArguments(
389
+ outerPositions,
390
+ centerScratch,
391
+ axis1,
392
+ axis2
393
+ );
394
+ if (!validGeometry) {
395
+ return void 0;
396
+ }
397
+ normal = Cartesian3_default.cross(axis1, axis2, normal);
398
+ normal = Cartesian3_default.normalize(normal, normal);
399
+ if (!Cartesian3_default.equalsEpsilon(
400
+ centerScratch,
401
+ Cartesian3_default.ZERO,
402
+ Math_default.EPSILON6
403
+ )) {
404
+ const surfaceNormal = polygonGeometry._ellipsoid.geodeticSurfaceNormal(
455
405
  centerScratch,
456
- axis1,
457
- axis2
406
+ surfaceNormalScratch
458
407
  );
459
- if (!validGeometry) {
460
- return undefined;
408
+ if (Cartesian3_default.dot(normal, surfaceNormal) < 0) {
409
+ normal = Cartesian3_default.negate(normal, normal);
410
+ axis1 = Cartesian3_default.negate(axis1, axis1);
461
411
  }
462
-
463
- normal = Matrix3.Cartesian3.cross(axis1, axis2, normal);
464
- normal = Matrix3.Cartesian3.normalize(normal, normal);
465
-
466
- if (
467
- !Matrix3.Cartesian3.equalsEpsilon(
468
- centerScratch,
469
- Matrix3.Cartesian3.ZERO,
470
- Math.CesiumMath.EPSILON6
412
+ }
413
+ const projectPoints = CoplanarPolygonGeometryLibrary_default.createProjectPointsTo2DFunction(
414
+ centerScratch,
415
+ axis1,
416
+ axis2
417
+ );
418
+ const projectPoint = CoplanarPolygonGeometryLibrary_default.createProjectPointTo2DFunction(
419
+ centerScratch,
420
+ axis1,
421
+ axis2
422
+ );
423
+ if (vertexFormat.tangent) {
424
+ tangent = Cartesian3_default.clone(axis1, tangent);
425
+ }
426
+ if (vertexFormat.bitangent) {
427
+ bitangent = Cartesian3_default.clone(axis2, bitangent);
428
+ }
429
+ const results = PolygonGeometryLibrary_default.polygonsFromHierarchy(
430
+ polygonHierarchy,
431
+ hasTextureCoordinates,
432
+ projectPoints,
433
+ false
434
+ );
435
+ const hierarchy = results.hierarchy;
436
+ const polygons = results.polygons;
437
+ const dummyFunction = function(identity) {
438
+ return identity;
439
+ };
440
+ const textureCoordinatePolygons = hasTextureCoordinates ? PolygonGeometryLibrary_default.polygonsFromHierarchy(
441
+ textureCoordinates,
442
+ true,
443
+ dummyFunction,
444
+ false
445
+ ).polygons : void 0;
446
+ if (hierarchy.length === 0) {
447
+ return;
448
+ }
449
+ outerPositions = hierarchy[0].outerRing;
450
+ const boundingSphere = BoundingSphere_default.fromPoints(outerPositions);
451
+ const boundingRectangle = PolygonGeometryLibrary_default.computeBoundingRectangle(
452
+ normal,
453
+ projectPoint,
454
+ outerPositions,
455
+ stRotation,
456
+ scratchBR
457
+ );
458
+ const geometries = [];
459
+ for (let i = 0; i < polygons.length; i++) {
460
+ const geometryInstance = new GeometryInstance_default({
461
+ geometry: createGeometryFromPolygon(
462
+ polygons[i],
463
+ vertexFormat,
464
+ boundingRectangle,
465
+ stRotation,
466
+ hasTextureCoordinates ? textureCoordinatePolygons[i] : void 0,
467
+ projectPoint,
468
+ normal,
469
+ tangent,
470
+ bitangent
471
471
  )
472
- ) {
473
- const surfaceNormal = polygonGeometry._ellipsoid.geodeticSurfaceNormal(
474
- centerScratch,
475
- surfaceNormalScratch
476
- );
477
- if (Matrix3.Cartesian3.dot(normal, surfaceNormal) < 0) {
478
- normal = Matrix3.Cartesian3.negate(normal, normal);
479
- axis1 = Matrix3.Cartesian3.negate(axis1, axis1);
480
- }
481
- }
482
-
483
- const projectPoints = CoplanarPolygonGeometryLibrary.CoplanarPolygonGeometryLibrary.createProjectPointsTo2DFunction(
484
- centerScratch,
485
- axis1,
486
- axis2
487
- );
488
- const projectPoint = CoplanarPolygonGeometryLibrary.CoplanarPolygonGeometryLibrary.createProjectPointTo2DFunction(
489
- centerScratch,
490
- axis1,
491
- axis2
492
- );
493
-
494
- if (vertexFormat.tangent) {
495
- tangent = Matrix3.Cartesian3.clone(axis1, tangent);
496
- }
497
- if (vertexFormat.bitangent) {
498
- bitangent = Matrix3.Cartesian3.clone(axis2, bitangent);
499
- }
500
-
501
- const results = PolygonGeometryLibrary.PolygonGeometryLibrary.polygonsFromHierarchy(
502
- polygonHierarchy,
503
- hasTextureCoordinates,
504
- projectPoints,
505
- false
506
- );
507
- const hierarchy = results.hierarchy;
508
- const polygons = results.polygons;
509
-
510
- const dummyFunction = function (identity) {
511
- return identity;
512
- };
513
-
514
- const textureCoordinatePolygons = hasTextureCoordinates
515
- ? PolygonGeometryLibrary.PolygonGeometryLibrary.polygonsFromHierarchy(
516
- textureCoordinates,
517
- true,
518
- dummyFunction,
519
- false
520
- ).polygons
521
- : undefined;
522
-
523
- if (hierarchy.length === 0) {
524
- return;
525
- }
526
- outerPositions = hierarchy[0].outerRing;
527
-
528
- const boundingSphere = Transforms.BoundingSphere.fromPoints(outerPositions);
529
- const boundingRectangle = PolygonGeometryLibrary.PolygonGeometryLibrary.computeBoundingRectangle(
530
- normal,
531
- projectPoint,
532
- outerPositions,
533
- stRotation,
534
- scratchBR
535
- );
536
-
537
- const geometries = [];
538
- for (let i = 0; i < polygons.length; i++) {
539
- const geometryInstance = new GeometryInstance.GeometryInstance({
540
- geometry: createGeometryFromPolygon(
541
- polygons[i],
542
- vertexFormat,
543
- boundingRectangle,
544
- stRotation,
545
- hasTextureCoordinates ? textureCoordinatePolygons[i] : undefined,
546
- projectPoint,
547
- normal,
548
- tangent,
549
- bitangent
550
- ),
551
- });
552
-
553
- geometries.push(geometryInstance);
554
- }
555
-
556
- const geometry = GeometryPipeline.GeometryPipeline.combineInstances(geometries)[0];
557
- geometry.attributes.position.values = new Float64Array(
558
- geometry.attributes.position.values
559
- );
560
- geometry.indices = IndexDatatype.IndexDatatype.createTypedArray(
561
- geometry.attributes.position.values.length / 3,
562
- geometry.indices
563
- );
564
-
565
- const attributes = geometry.attributes;
566
- if (!vertexFormat.position) {
567
- delete attributes.position;
568
- }
569
- return new GeometryAttribute.Geometry({
570
- attributes: attributes,
571
- indices: geometry.indices,
572
- primitiveType: geometry.primitiveType,
573
- boundingSphere: boundingSphere,
574
472
  });
575
- };
576
-
577
- function createCoplanarPolygonGeometry(polygonGeometry, offset) {
578
- if (defaultValue.defined(offset)) {
579
- polygonGeometry = CoplanarPolygonGeometry.unpack(polygonGeometry, offset);
580
- }
581
- return CoplanarPolygonGeometry.createGeometry(polygonGeometry);
473
+ geometries.push(geometryInstance);
582
474
  }
583
-
584
- return createCoplanarPolygonGeometry;
585
-
586
- }));
475
+ const geometry = GeometryPipeline_default.combineInstances(geometries)[0];
476
+ geometry.attributes.position.values = new Float64Array(
477
+ geometry.attributes.position.values
478
+ );
479
+ geometry.indices = IndexDatatype_default.createTypedArray(
480
+ geometry.attributes.position.values.length / 3,
481
+ geometry.indices
482
+ );
483
+ const attributes = geometry.attributes;
484
+ if (!vertexFormat.position) {
485
+ delete attributes.position;
486
+ }
487
+ return new Geometry_default({
488
+ attributes,
489
+ indices: geometry.indices,
490
+ primitiveType: geometry.primitiveType,
491
+ boundingSphere
492
+ });
493
+ };
494
+ var CoplanarPolygonGeometry_default = CoplanarPolygonGeometry;
495
+
496
+ // packages/engine/Source/Workers/createCoplanarPolygonGeometry.js
497
+ function createCoplanarPolygonGeometry(polygonGeometry, offset) {
498
+ if (defined_default(offset)) {
499
+ polygonGeometry = CoplanarPolygonGeometry_default.unpack(polygonGeometry, offset);
500
+ }
501
+ return CoplanarPolygonGeometry_default.createGeometry(polygonGeometry);
502
+ }
503
+ var createCoplanarPolygonGeometry_default = createCoplanarPolygonGeometry;
504
+ export {
505
+ createCoplanarPolygonGeometry_default as default
506
+ };