@cesium/engine 3.0.1 → 4.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 (234) 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-27R2KRIK.js +634 -0
  5. package/Build/Workers/chunk-2C65EKYA.js +55 -0
  6. package/Build/Workers/chunk-2NLMZNJI.js +138 -0
  7. package/Build/Workers/chunk-4V6RCTVH.js +289 -0
  8. package/Build/Workers/chunk-4VWUFKYW.js +368 -0
  9. package/Build/Workers/chunk-527JG4D7.js +629 -0
  10. package/Build/Workers/chunk-5U4UHRZ2.js +8644 -0
  11. package/Build/Workers/chunk-7CZEWQWE.js +353 -0
  12. package/Build/Workers/chunk-7IMAWM6A.js +842 -0
  13. package/Build/Workers/{package.js → chunk-A6EA6KIE.js} +13 -2
  14. package/Build/Workers/chunk-AXGQUPXA.js +1075 -0
  15. package/Build/Workers/chunk-BT6YIL2N.js +39 -0
  16. package/Build/Workers/chunk-C6MRR5YL.js +476 -0
  17. package/Build/Workers/chunk-DJUTBX6A.js +1860 -0
  18. package/Build/Workers/chunk-EQ6ZAP37.js +218 -0
  19. package/Build/Workers/chunk-F7P2HCYZ.js +73 -0
  20. package/Build/Workers/chunk-FE2XG3SS.js +73 -0
  21. package/Build/Workers/chunk-FKHRSGKP.js +781 -0
  22. package/Build/Workers/chunk-FVDTKX3F.js +58 -0
  23. package/Build/Workers/chunk-FYHCAKU6.js +684 -0
  24. package/Build/Workers/chunk-G3MOT7BZ.js +157 -0
  25. package/Build/Workers/chunk-H52L6U76.js +421 -0
  26. package/Build/Workers/chunk-H6MBQ4W4.js +305 -0
  27. package/Build/Workers/chunk-HCZR75II.js +2716 -0
  28. package/Build/Workers/chunk-I5MQWHBR.js +102 -0
  29. package/Build/Workers/chunk-KAFF2QX3.js +258 -0
  30. package/Build/Workers/chunk-LGSGX2RH.js +757 -0
  31. package/Build/Workers/chunk-LQRFWCNX.js +124 -0
  32. package/Build/Workers/chunk-N5MMDSD2.js +44 -0
  33. package/Build/Workers/chunk-NRETMGYL.js +390 -0
  34. package/Build/Workers/chunk-P4M4QUNQ.js +196 -0
  35. package/Build/Workers/chunk-P7PWX5HR.js +430 -0
  36. package/Build/Workers/chunk-PGB3EFR7.js +171 -0
  37. package/Build/Workers/chunk-PW5CA4MJ.js +3273 -0
  38. package/Build/Workers/chunk-PWDYKCNC.js +501 -0
  39. package/Build/Workers/chunk-QIS3NB7U.js +1258 -0
  40. package/Build/Workers/chunk-QVJ6IRKV.js +77 -0
  41. package/Build/Workers/chunk-RDCDRNJ7.js +117 -0
  42. package/Build/Workers/chunk-RDM3BKNC.js +1009 -0
  43. package/Build/Workers/chunk-RRUPTJ6P.js +452 -0
  44. package/Build/Workers/chunk-SGRWJKNO.js +400 -0
  45. package/Build/Workers/chunk-TF5D2H7B.js +138 -0
  46. package/Build/Workers/chunk-TVYIHH4V.js +513 -0
  47. package/Build/Workers/chunk-U5LKG6LX.js +101 -0
  48. package/Build/Workers/chunk-UGZGTV5K.js +302 -0
  49. package/Build/Workers/chunk-UN7AK64D.js +163 -0
  50. package/Build/Workers/chunk-V2LKNJGT.js +59 -0
  51. package/Build/Workers/chunk-VSCXSFHE.js +1477 -0
  52. package/Build/Workers/chunk-XJCTFTBM.js +2041 -0
  53. package/Build/Workers/chunk-XZVQMPWG.js +100 -0
  54. package/Build/Workers/chunk-YLAFWVOW.js +834 -0
  55. package/Build/Workers/chunk-YLS3FX3U.js +236 -0
  56. package/Build/Workers/chunk-YMJPANZZ.js +693 -0
  57. package/Build/Workers/combineGeometry.js +65 -15
  58. package/Build/Workers/createBoxGeometry.js +55 -10
  59. package/Build/Workers/createBoxOutlineGeometry.js +231 -310
  60. package/Build/Workers/createCircleGeometry.js +185 -202
  61. package/Build/Workers/createCircleOutlineGeometry.js +141 -155
  62. package/Build/Workers/createCoplanarPolygonGeometry.js +477 -557
  63. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
  64. package/Build/Workers/createCorridorGeometry.js +1162 -1307
  65. package/Build/Workers/createCorridorOutlineGeometry.js +533 -569
  66. package/Build/Workers/createCylinderGeometry.js +57 -10
  67. package/Build/Workers/createCylinderOutlineGeometry.js +224 -258
  68. package/Build/Workers/createEllipseGeometry.js +68 -12
  69. package/Build/Workers/createEllipseOutlineGeometry.js +61 -12
  70. package/Build/Workers/createEllipsoidGeometry.js +56 -10
  71. package/Build/Workers/createEllipsoidOutlineGeometry.js +58 -13
  72. package/Build/Workers/createFrustumGeometry.js +55 -10
  73. package/Build/Workers/createFrustumOutlineGeometry.js +226 -243
  74. package/Build/Workers/createGeometry.js +143 -48
  75. package/Build/Workers/createGroundPolylineGeometry.js +1484 -2011
  76. package/Build/Workers/createPlaneGeometry.js +216 -243
  77. package/Build/Workers/createPlaneOutlineGeometry.js +121 -113
  78. package/Build/Workers/createPolygonGeometry.js +1041 -1327
  79. package/Build/Workers/createPolygonOutlineGeometry.js +516 -657
  80. package/Build/Workers/createPolylineGeometry.js +471 -547
  81. package/Build/Workers/createPolylineVolumeGeometry.js +352 -384
  82. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
  83. package/Build/Workers/createRectangleGeometry.js +1128 -1331
  84. package/Build/Workers/createRectangleOutlineGeometry.js +445 -500
  85. package/Build/Workers/createSimplePolylineGeometry.js +381 -440
  86. package/Build/Workers/createSphereGeometry.js +112 -118
  87. package/Build/Workers/createSphereOutlineGeometry.js +112 -121
  88. package/Build/Workers/createTaskProcessorWorker.js +32 -127
  89. package/Build/Workers/createVectorTileClampedPolylines.js +462 -505
  90. package/Build/Workers/createVectorTileGeometries.js +377 -436
  91. package/Build/Workers/createVectorTilePoints.js +110 -77
  92. package/Build/Workers/createVectorTilePolygons.js +369 -391
  93. package/Build/Workers/createVectorTilePolylines.js +252 -244
  94. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
  95. package/Build/Workers/createVerticesFromHeightmap.js +2244 -2677
  96. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -904
  97. package/Build/Workers/createWallGeometry.js +459 -593
  98. package/Build/Workers/createWallOutlineGeometry.js +324 -419
  99. package/Build/Workers/decodeDraco.js +327 -347
  100. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
  101. package/Build/Workers/decodeI3S.js +765 -970
  102. package/Build/Workers/transcodeKTX2.js +3353 -1464
  103. package/Build/Workers/transferTypedArrayTest.js +3 -4
  104. package/Build/Workers/upsampleQuantizedTerrainMesh.js +748 -953
  105. package/LICENSE.md +0 -12
  106. package/Source/Core/FeatureDetection.js +9 -0
  107. package/Source/Core/GoogleMaps.js +1 -1
  108. package/Source/Core/GroundPolylineGeometry.js +3 -2
  109. package/Source/Core/Ion.js +1 -1
  110. package/Source/Core/KTX2Transcoder.js +7 -3
  111. package/Source/Core/RequestScheduler.js +1 -0
  112. package/Source/Core/TaskProcessor.js +150 -146
  113. package/Source/Core/Transforms.js +2 -2
  114. package/Source/Core/buildModuleUrl.js +6 -5
  115. package/Source/DataSources/CzmlDataSource.js +6 -4
  116. package/Source/Scene/ArcGisMapService.js +1 -1
  117. package/Source/Scene/DracoLoader.js +26 -3
  118. package/Source/Scene/GltfLoaderUtil.js +1 -7
  119. package/Source/Scene/I3SDataProvider.js +0 -27
  120. package/Source/Scene/I3SDecoder.js +127 -0
  121. package/Source/Scene/I3SNode.js +32 -110
  122. package/Source/Scene/ImageryLayer.js +2 -2
  123. package/Source/Scene/Implicit3DTileContent.js +13 -0
  124. package/Source/Scene/ImplicitTileset.js +5 -0
  125. package/Source/Scene/Model/I3dmLoader.js +5 -1
  126. package/Source/Scene/Model/Model.js +4 -1
  127. package/Source/Scene/OpenStreetMapImageryProvider.js +7 -4
  128. package/Source/Scene/SingleTileImageryProvider.js +4 -2
  129. package/Source/ThirdParty/Workers/basis_transcoder.js +1 -1
  130. package/Source/{WorkersES6 → Workers}/createGeometry.js +11 -12
  131. package/Source/{WorkersES6 → Workers}/createTaskProcessorWorker.js +43 -59
  132. package/Source/{WorkersES6 → Workers}/decodeDraco.js +19 -25
  133. package/Source/{WorkersES6 → Workers}/decodeI3S.js +18 -32
  134. package/Source/{WorkersES6 → Workers}/transcodeKTX2.js +19 -26
  135. package/Source/Workers/transferTypedArrayTest.js +0 -6
  136. package/index.d.ts +20 -11
  137. package/index.js +170 -169
  138. package/package.json +3 -2
  139. package/Build/Workers/ArcType-2d9abbbc.js +0 -37
  140. package/Build/Workers/AttributeCompression-f9f6c717.js +0 -716
  141. package/Build/Workers/AxisAlignedBoundingBox-4bfd84f3.js +0 -258
  142. package/Build/Workers/BoundingRectangle-5fd6403a.js +0 -369
  143. package/Build/Workers/BoxGeometry-7aa4ce7f.js +0 -884
  144. package/Build/Workers/Check-6ede7e26.js +0 -290
  145. package/Build/Workers/Color-8e135f71.js +0 -2262
  146. package/Build/Workers/ComponentDatatype-cf1fa08e.js +0 -341
  147. package/Build/Workers/CoplanarPolygonGeometryLibrary-59c69b0a.js +0 -132
  148. package/Build/Workers/CorridorGeometryLibrary-63907365.js +0 -498
  149. package/Build/Workers/CylinderGeometry-8fc7c44b.js +0 -467
  150. package/Build/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
  151. package/Build/Workers/EllipseGeometry-16b3736a.js +0 -1304
  152. package/Build/Workers/EllipseGeometryLibrary-21262a28.js +0 -366
  153. package/Build/Workers/EllipseOutlineGeometry-05d35d18.js +0 -443
  154. package/Build/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
  155. package/Build/Workers/EllipsoidGeometry-a503d1d6.js +0 -637
  156. package/Build/Workers/EllipsoidOutlineGeometry-7b09f24d.js +0 -454
  157. package/Build/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
  158. package/Build/Workers/EllipsoidTangentPlane-546c0d5e.js +0 -373
  159. package/Build/Workers/EncodedCartesian3-57415c8a.js +0 -171
  160. package/Build/Workers/FrustumGeometry-87ce8622.js +0 -2540
  161. package/Build/Workers/GeometryAttribute-8fcff0d5.js +0 -619
  162. package/Build/Workers/GeometryAttributes-ad136444.js +0 -91
  163. package/Build/Workers/GeometryInstance-34d9e21e.js +0 -121
  164. package/Build/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
  165. package/Build/Workers/GeometryPipeline-70d69a43.js +0 -3690
  166. package/Build/Workers/IndexDatatype-2643aa47.js +0 -200
  167. package/Build/Workers/IntersectionTests-85350792.js +0 -1836
  168. package/Build/Workers/Math-0a2ac845.js +0 -1340
  169. package/Build/Workers/Matrix2-e1298525.js +0 -7086
  170. package/Build/Workers/Matrix3-41c58dde.js +0 -4283
  171. package/Build/Workers/OrientedBoundingBox-29fb0fcd.js +0 -1259
  172. package/Build/Workers/Plane-4c3d403b.js +0 -309
  173. package/Build/Workers/PolygonGeometryLibrary-bad6329a.js +0 -1074
  174. package/Build/Workers/PolygonPipeline-dd13ee78.js +0 -1344
  175. package/Build/Workers/PolylinePipeline-7119eb3f.js +0 -573
  176. package/Build/Workers/PolylineVolumeGeometryLibrary-d25f0050.js +0 -781
  177. package/Build/Workers/PrimitivePipeline-111ee29f.js +0 -966
  178. package/Build/Workers/RectangleGeometryLibrary-bb378fb6.js +0 -280
  179. package/Build/Workers/RuntimeError-ef395448.js +0 -68
  180. package/Build/Workers/TerrainEncoding-c8e029a2.js +0 -1227
  181. package/Build/Workers/Transforms-e2d4a55a.js +0 -14713
  182. package/Build/Workers/VertexFormat-030f11ff.js +0 -312
  183. package/Build/Workers/WallGeometryLibrary-3e0819ec.js +0 -211
  184. package/Build/Workers/WebGLConstants-0b1ce7ba.js +0 -620
  185. package/Build/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
  186. package/Build/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
  187. package/Build/Workers/cesiumWorkerBootstrapper.js +0 -1363
  188. package/Build/Workers/combine-d9581036.js +0 -82
  189. package/Build/Workers/defaultValue-fe22d8c0.js +0 -51
  190. package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
  191. package/Source/Workers/cesiumWorkerBootstrapper.js +0 -2290
  192. package/Source/Workers/package.json +0 -1
  193. /package/Source/{WorkersES6 → Workers}/combineGeometry.js +0 -0
  194. /package/Source/{WorkersES6 → Workers}/createBoxGeometry.js +0 -0
  195. /package/Source/{WorkersES6 → Workers}/createBoxOutlineGeometry.js +0 -0
  196. /package/Source/{WorkersES6 → Workers}/createCircleGeometry.js +0 -0
  197. /package/Source/{WorkersES6 → Workers}/createCircleOutlineGeometry.js +0 -0
  198. /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonGeometry.js +0 -0
  199. /package/Source/{WorkersES6 → Workers}/createCoplanarPolygonOutlineGeometry.js +0 -0
  200. /package/Source/{WorkersES6 → Workers}/createCorridorGeometry.js +0 -0
  201. /package/Source/{WorkersES6 → Workers}/createCorridorOutlineGeometry.js +0 -0
  202. /package/Source/{WorkersES6 → Workers}/createCylinderGeometry.js +0 -0
  203. /package/Source/{WorkersES6 → Workers}/createCylinderOutlineGeometry.js +0 -0
  204. /package/Source/{WorkersES6 → Workers}/createEllipseGeometry.js +0 -0
  205. /package/Source/{WorkersES6 → Workers}/createEllipseOutlineGeometry.js +0 -0
  206. /package/Source/{WorkersES6 → Workers}/createEllipsoidGeometry.js +0 -0
  207. /package/Source/{WorkersES6 → Workers}/createEllipsoidOutlineGeometry.js +0 -0
  208. /package/Source/{WorkersES6 → Workers}/createFrustumGeometry.js +0 -0
  209. /package/Source/{WorkersES6 → Workers}/createFrustumOutlineGeometry.js +0 -0
  210. /package/Source/{WorkersES6 → Workers}/createGroundPolylineGeometry.js +0 -0
  211. /package/Source/{WorkersES6 → Workers}/createPlaneGeometry.js +0 -0
  212. /package/Source/{WorkersES6 → Workers}/createPlaneOutlineGeometry.js +0 -0
  213. /package/Source/{WorkersES6 → Workers}/createPolygonGeometry.js +0 -0
  214. /package/Source/{WorkersES6 → Workers}/createPolygonOutlineGeometry.js +0 -0
  215. /package/Source/{WorkersES6 → Workers}/createPolylineGeometry.js +0 -0
  216. /package/Source/{WorkersES6 → Workers}/createPolylineVolumeGeometry.js +0 -0
  217. /package/Source/{WorkersES6 → Workers}/createPolylineVolumeOutlineGeometry.js +0 -0
  218. /package/Source/{WorkersES6 → Workers}/createRectangleGeometry.js +0 -0
  219. /package/Source/{WorkersES6 → Workers}/createRectangleOutlineGeometry.js +0 -0
  220. /package/Source/{WorkersES6 → Workers}/createSimplePolylineGeometry.js +0 -0
  221. /package/Source/{WorkersES6 → Workers}/createSphereGeometry.js +0 -0
  222. /package/Source/{WorkersES6 → Workers}/createSphereOutlineGeometry.js +0 -0
  223. /package/Source/{WorkersES6 → Workers}/createVectorTileClampedPolylines.js +0 -0
  224. /package/Source/{WorkersES6 → Workers}/createVectorTileGeometries.js +0 -0
  225. /package/Source/{WorkersES6 → Workers}/createVectorTilePoints.js +0 -0
  226. /package/Source/{WorkersES6 → Workers}/createVectorTilePolygons.js +0 -0
  227. /package/Source/{WorkersES6 → Workers}/createVectorTilePolylines.js +0 -0
  228. /package/Source/{WorkersES6 → Workers}/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -0
  229. /package/Source/{WorkersES6 → Workers}/createVerticesFromHeightmap.js +0 -0
  230. /package/Source/{WorkersES6 → Workers}/createVerticesFromQuantizedTerrainMesh.js +0 -0
  231. /package/Source/{WorkersES6 → Workers}/createWallGeometry.js +0 -0
  232. /package/Source/{WorkersES6 → Workers}/createWallOutlineGeometry.js +0 -0
  233. /package/Source/{WorkersES6 → Workers}/decodeGoogleEarthEnterprisePacket.js +0 -0
  234. /package/Source/{WorkersES6 → Workers}/upsampleQuantizedTerrainMesh.js +0 -0
@@ -1,586 +1,506 @@
1
- define(['./arrayRemoveDuplicates-d2061e85', './BoundingRectangle-5fd6403a', './Transforms-e2d4a55a', './Matrix2-e1298525', './Matrix3-41c58dde', './Check-6ede7e26', './ComponentDatatype-cf1fa08e', './CoplanarPolygonGeometryLibrary-59c69b0a', './defaultValue-fe22d8c0', './GeometryAttribute-8fcff0d5', './GeometryAttributes-ad136444', './GeometryInstance-34d9e21e', './GeometryPipeline-70d69a43', './IndexDatatype-2643aa47', './Math-0a2ac845', './PolygonGeometryLibrary-bad6329a', './PolygonPipeline-dd13ee78', './VertexFormat-030f11ff', './combine-d9581036', './RuntimeError-ef395448', './WebGLConstants-0b1ce7ba', './OrientedBoundingBox-29fb0fcd', './EllipsoidTangentPlane-546c0d5e', './AxisAlignedBoundingBox-4bfd84f3', './IntersectionTests-85350792', './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.109
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-EQ6ZAP37.js";
29
+ import {
30
+ CoplanarPolygonGeometryLibrary_default
31
+ } from "./chunk-LQRFWCNX.js";
32
+ import "./chunk-YLAFWVOW.js";
33
+ import {
34
+ PolygonGeometryLibrary_default
35
+ } from "./chunk-7IMAWM6A.js";
36
+ import "./chunk-2C65EKYA.js";
37
+ import {
38
+ GeometryInstance_default
39
+ } from "./chunk-V2LKNJGT.js";
40
+ import {
41
+ GeometryPipeline_default
42
+ } from "./chunk-HCZR75II.js";
43
+ import "./chunk-P7PWX5HR.js";
44
+ import "./chunk-I5MQWHBR.js";
45
+ import {
46
+ VertexFormat_default
47
+ } from "./chunk-2NLMZNJI.js";
48
+ import "./chunk-4V6RCTVH.js";
49
+ import "./chunk-G3MOT7BZ.js";
50
+ import {
51
+ PolygonPipeline_default
52
+ } from "./chunk-RDM3BKNC.js";
53
+ import {
54
+ arrayRemoveDuplicates_default
55
+ } from "./chunk-XZVQMPWG.js";
56
+ import "./chunk-RRUPTJ6P.js";
57
+ import "./chunk-QIS3NB7U.js";
58
+ import "./chunk-PGB3EFR7.js";
59
+ import {
60
+ IndexDatatype_default
61
+ } from "./chunk-TF5D2H7B.js";
62
+ import {
63
+ GeometryAttributes_default
64
+ } from "./chunk-N5MMDSD2.js";
65
+ import {
66
+ GeometryAttribute_default,
67
+ Geometry_default,
68
+ PrimitiveType_default
69
+ } from "./chunk-UGZGTV5K.js";
70
+ import {
71
+ BoundingSphere_default,
72
+ Quaternion_default
73
+ } from "./chunk-5U4UHRZ2.js";
74
+ import "./chunk-FE2XG3SS.js";
75
+ import {
76
+ Cartesian2_default
77
+ } from "./chunk-PW5CA4MJ.js";
78
+ import {
79
+ ComponentDatatype_default
80
+ } from "./chunk-KAFF2QX3.js";
81
+ import {
82
+ Cartesian3_default,
83
+ Ellipsoid_default,
84
+ Matrix3_default
85
+ } from "./chunk-XJCTFTBM.js";
86
+ import {
87
+ Math_default
88
+ } from "./chunk-PWDYKCNC.js";
89
+ import "./chunk-527JG4D7.js";
90
+ import "./chunk-FVDTKX3F.js";
91
+ import {
92
+ defaultValue_default
93
+ } from "./chunk-BT6YIL2N.js";
94
+ import {
95
+ Check_default
96
+ } from "./chunk-UN7AK64D.js";
97
+ import {
98
+ defined_default
99
+ } from "./chunk-QVJ6IRKV.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
+ };