@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,535 +1,492 @@
1
- define(['./AttributeCompression-f9f6c717', './Matrix3-41c58dde', './combine-d9581036', './IndexDatatype-2643aa47', './Math-0a2ac845', './Matrix2-e1298525', './createTaskProcessorWorker', './ComponentDatatype-cf1fa08e', './defaultValue-fe22d8c0', './Check-6ede7e26', './WebGLConstants-0b1ce7ba', './RuntimeError-ef395448'], (function (AttributeCompression, Matrix3, combine, IndexDatatype, Math$1, Matrix2, createTaskProcessorWorker, ComponentDatatype, defaultValue, Check, WebGLConstants, RuntimeError) { 'use strict';
2
-
3
- const MAX_SHORT = 32767;
4
- const MITER_BREAK = Math.cos(Math$1.CesiumMath.toRadians(150.0));
5
-
6
- const scratchBVCartographic = new Matrix3.Cartographic();
7
- const scratchEncodedPosition = new Matrix3.Cartesian3();
8
-
9
- function decodePositions(
10
- uBuffer,
11
- vBuffer,
12
- heightBuffer,
13
- rectangle,
14
- minimumHeight,
15
- maximumHeight,
16
- ellipsoid
17
- ) {
18
- const positionsLength = uBuffer.length;
19
- const decodedPositions = new Float64Array(positionsLength * 3);
20
- for (let i = 0; i < positionsLength; ++i) {
21
- const u = uBuffer[i];
22
- const v = vBuffer[i];
23
- const h = heightBuffer[i];
24
-
25
- const lon = Math$1.CesiumMath.lerp(rectangle.west, rectangle.east, u / MAX_SHORT);
26
- const lat = Math$1.CesiumMath.lerp(
27
- rectangle.south,
28
- rectangle.north,
29
- v / MAX_SHORT
30
- );
31
- const alt = Math$1.CesiumMath.lerp(minimumHeight, maximumHeight, h / MAX_SHORT);
32
-
33
- const cartographic = Matrix3.Cartographic.fromRadians(
34
- lon,
35
- lat,
36
- alt,
37
- scratchBVCartographic
38
- );
39
- const decodedPosition = ellipsoid.cartographicToCartesian(
40
- cartographic,
41
- scratchEncodedPosition
42
- );
43
- Matrix3.Cartesian3.pack(decodedPosition, decodedPositions, i * 3);
44
- }
45
- return decodedPositions;
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
+ createTaskProcessorWorker_default
28
+ } from "./chunk-UM7FIUQW.js";
29
+ import {
30
+ AttributeCompression_default
31
+ } from "./chunk-QUCJGBCK.js";
32
+ import {
33
+ IndexDatatype_default
34
+ } from "./chunk-CROU4RHL.js";
35
+ import {
36
+ combine_default
37
+ } from "./chunk-ULLMQNFQ.js";
38
+ import {
39
+ Rectangle_default
40
+ } from "./chunk-MYDS6HBL.js";
41
+ import "./chunk-CTJCECTX.js";
42
+ import {
43
+ Cartesian3_default,
44
+ Cartographic_default,
45
+ Ellipsoid_default
46
+ } from "./chunk-HIDSEUWS.js";
47
+ import {
48
+ Math_default
49
+ } from "./chunk-4HN3N5SE.js";
50
+ import "./chunk-TXYJOVQK.js";
51
+ import "./chunk-2ZI7FZ3Q.js";
52
+ import "./chunk-GPO47TW4.js";
53
+ import "./chunk-6EHT6GS3.js";
54
+ import "./chunk-TXOGSFHZ.js";
55
+
56
+ // packages/engine/Source/Workers/createVectorTileClampedPolylines.js
57
+ var MAX_SHORT = 32767;
58
+ var MITER_BREAK = Math.cos(Math_default.toRadians(150));
59
+ var scratchBVCartographic = new Cartographic_default();
60
+ var scratchEncodedPosition = new Cartesian3_default();
61
+ function decodePositions(uBuffer, vBuffer, heightBuffer, rectangle, minimumHeight, maximumHeight, ellipsoid) {
62
+ const positionsLength = uBuffer.length;
63
+ const decodedPositions = new Float64Array(positionsLength * 3);
64
+ for (let i = 0; i < positionsLength; ++i) {
65
+ const u = uBuffer[i];
66
+ const v = vBuffer[i];
67
+ const h = heightBuffer[i];
68
+ const lon = Math_default.lerp(rectangle.west, rectangle.east, u / MAX_SHORT);
69
+ const lat = Math_default.lerp(
70
+ rectangle.south,
71
+ rectangle.north,
72
+ v / MAX_SHORT
73
+ );
74
+ const alt = Math_default.lerp(minimumHeight, maximumHeight, h / MAX_SHORT);
75
+ const cartographic = Cartographic_default.fromRadians(
76
+ lon,
77
+ lat,
78
+ alt,
79
+ scratchBVCartographic
80
+ );
81
+ const decodedPosition = ellipsoid.cartographicToCartesian(
82
+ cartographic,
83
+ scratchEncodedPosition
84
+ );
85
+ Cartesian3_default.pack(decodedPosition, decodedPositions, i * 3);
46
86
  }
47
-
48
- function getPositionOffsets(counts) {
49
- const countsLength = counts.length;
50
- const positionOffsets = new Uint32Array(countsLength + 1);
51
- let offset = 0;
52
- for (let i = 0; i < countsLength; ++i) {
53
- positionOffsets[i] = offset;
54
- offset += counts[i];
55
- }
56
- positionOffsets[countsLength] = offset;
57
- return positionOffsets;
87
+ return decodedPositions;
88
+ }
89
+ function getPositionOffsets(counts) {
90
+ const countsLength = counts.length;
91
+ const positionOffsets = new Uint32Array(countsLength + 1);
92
+ let offset = 0;
93
+ for (let i = 0; i < countsLength; ++i) {
94
+ positionOffsets[i] = offset;
95
+ offset += counts[i];
58
96
  }
59
-
60
- const previousCompressedCartographicScratch = new Matrix3.Cartographic();
61
- const currentCompressedCartographicScratch = new Matrix3.Cartographic();
62
- function removeDuplicates(uBuffer, vBuffer, heightBuffer, counts) {
63
- const countsLength = counts.length;
64
- const positionsLength = uBuffer.length;
65
- const markRemoval = new Uint8Array(positionsLength);
66
- const previous = previousCompressedCartographicScratch;
67
- const current = currentCompressedCartographicScratch;
68
- let offset = 0;
69
- for (let i = 0; i < countsLength; i++) {
70
- const count = counts[i];
71
- let updatedCount = count;
72
- for (let j = 1; j < count; j++) {
73
- const index = offset + j;
74
- const previousIndex = index - 1;
75
- current.longitude = uBuffer[index];
76
- current.latitude = vBuffer[index];
77
- previous.longitude = uBuffer[previousIndex];
78
- previous.latitude = vBuffer[previousIndex];
79
-
80
- if (Matrix3.Cartographic.equals(current, previous)) {
81
- updatedCount--;
82
- markRemoval[previousIndex] = 1;
83
- }
84
- }
85
- counts[i] = updatedCount;
86
- offset += count;
87
- }
88
-
89
- let nextAvailableIndex = 0;
90
- for (let k = 0; k < positionsLength; k++) {
91
- if (markRemoval[k] !== 1) {
92
- uBuffer[nextAvailableIndex] = uBuffer[k];
93
- vBuffer[nextAvailableIndex] = vBuffer[k];
94
- heightBuffer[nextAvailableIndex] = heightBuffer[k];
95
- nextAvailableIndex++;
97
+ positionOffsets[countsLength] = offset;
98
+ return positionOffsets;
99
+ }
100
+ var previousCompressedCartographicScratch = new Cartographic_default();
101
+ var currentCompressedCartographicScratch = new Cartographic_default();
102
+ function removeDuplicates(uBuffer, vBuffer, heightBuffer, counts) {
103
+ const countsLength = counts.length;
104
+ const positionsLength = uBuffer.length;
105
+ const markRemoval = new Uint8Array(positionsLength);
106
+ const previous = previousCompressedCartographicScratch;
107
+ const current = currentCompressedCartographicScratch;
108
+ let offset = 0;
109
+ for (let i = 0; i < countsLength; i++) {
110
+ const count = counts[i];
111
+ let updatedCount = count;
112
+ for (let j = 1; j < count; j++) {
113
+ const index = offset + j;
114
+ const previousIndex = index - 1;
115
+ current.longitude = uBuffer[index];
116
+ current.latitude = vBuffer[index];
117
+ previous.longitude = uBuffer[previousIndex];
118
+ previous.latitude = vBuffer[previousIndex];
119
+ if (Cartographic_default.equals(current, previous)) {
120
+ updatedCount--;
121
+ markRemoval[previousIndex] = 1;
96
122
  }
97
123
  }
124
+ counts[i] = updatedCount;
125
+ offset += count;
98
126
  }
99
-
100
- function VertexAttributesAndIndices(volumesCount) {
101
- const vertexCount = volumesCount * 8;
102
- const vec3Floats = vertexCount * 3;
103
- const vec4Floats = vertexCount * 4;
104
- this.startEllipsoidNormals = new Float32Array(vec3Floats);
105
- this.endEllipsoidNormals = new Float32Array(vec3Floats);
106
- this.startPositionAndHeights = new Float32Array(vec4Floats);
107
- this.startFaceNormalAndVertexCornerIds = new Float32Array(vec4Floats);
108
- this.endPositionAndHeights = new Float32Array(vec4Floats);
109
- this.endFaceNormalAndHalfWidths = new Float32Array(vec4Floats);
110
- this.vertexBatchIds = new Uint16Array(vertexCount);
111
-
112
- this.indices = IndexDatatype.IndexDatatype.createTypedArray(vertexCount, 36 * volumesCount);
113
-
114
- this.vec3Offset = 0;
115
- this.vec4Offset = 0;
116
- this.batchIdOffset = 0;
117
- this.indexOffset = 0;
118
-
119
- this.volumeStartIndex = 0;
127
+ let nextAvailableIndex = 0;
128
+ for (let k = 0; k < positionsLength; k++) {
129
+ if (markRemoval[k] !== 1) {
130
+ uBuffer[nextAvailableIndex] = uBuffer[k];
131
+ vBuffer[nextAvailableIndex] = vBuffer[k];
132
+ heightBuffer[nextAvailableIndex] = heightBuffer[k];
133
+ nextAvailableIndex++;
134
+ }
120
135
  }
121
-
122
- const towardCurrScratch = new Matrix3.Cartesian3();
123
- const towardNextScratch = new Matrix3.Cartesian3();
124
- function computeMiteredNormal(
125
- previousPosition,
126
- position,
136
+ }
137
+ function VertexAttributesAndIndices(volumesCount) {
138
+ const vertexCount = volumesCount * 8;
139
+ const vec3Floats = vertexCount * 3;
140
+ const vec4Floats = vertexCount * 4;
141
+ this.startEllipsoidNormals = new Float32Array(vec3Floats);
142
+ this.endEllipsoidNormals = new Float32Array(vec3Floats);
143
+ this.startPositionAndHeights = new Float32Array(vec4Floats);
144
+ this.startFaceNormalAndVertexCornerIds = new Float32Array(vec4Floats);
145
+ this.endPositionAndHeights = new Float32Array(vec4Floats);
146
+ this.endFaceNormalAndHalfWidths = new Float32Array(vec4Floats);
147
+ this.vertexBatchIds = new Uint16Array(vertexCount);
148
+ this.indices = IndexDatatype_default.createTypedArray(vertexCount, 36 * volumesCount);
149
+ this.vec3Offset = 0;
150
+ this.vec4Offset = 0;
151
+ this.batchIdOffset = 0;
152
+ this.indexOffset = 0;
153
+ this.volumeStartIndex = 0;
154
+ }
155
+ var towardCurrScratch = new Cartesian3_default();
156
+ var towardNextScratch = new Cartesian3_default();
157
+ function computeMiteredNormal(previousPosition, position, nextPosition, ellipsoidSurfaceNormal, result) {
158
+ const towardNext = Cartesian3_default.subtract(
127
159
  nextPosition,
128
- ellipsoidSurfaceNormal,
129
- result
130
- ) {
131
- const towardNext = Matrix3.Cartesian3.subtract(
132
- nextPosition,
133
- position,
134
- towardNextScratch
135
- );
136
- let towardCurr = Matrix3.Cartesian3.subtract(
137
- position,
138
- previousPosition,
160
+ position,
161
+ towardNextScratch
162
+ );
163
+ let towardCurr = Cartesian3_default.subtract(
164
+ position,
165
+ previousPosition,
166
+ towardCurrScratch
167
+ );
168
+ Cartesian3_default.normalize(towardNext, towardNext);
169
+ Cartesian3_default.normalize(towardCurr, towardCurr);
170
+ if (Cartesian3_default.dot(towardNext, towardCurr) < MITER_BREAK) {
171
+ towardCurr = Cartesian3_default.multiplyByScalar(
172
+ towardCurr,
173
+ -1,
139
174
  towardCurrScratch
140
175
  );
141
- Matrix3.Cartesian3.normalize(towardNext, towardNext);
142
- Matrix3.Cartesian3.normalize(towardCurr, towardCurr);
143
-
144
- if (Matrix3.Cartesian3.dot(towardNext, towardCurr) < MITER_BREAK) {
145
- towardCurr = Matrix3.Cartesian3.multiplyByScalar(
146
- towardCurr,
147
- -1.0,
148
- towardCurrScratch
149
- );
150
- }
151
-
152
- Matrix3.Cartesian3.add(towardNext, towardCurr, result);
153
- if (Matrix3.Cartesian3.equals(result, Matrix3.Cartesian3.ZERO)) {
154
- result = Matrix3.Cartesian3.subtract(previousPosition, position);
155
- }
156
-
157
- // Make sure the normal is orthogonal to the ellipsoid surface normal
158
- Matrix3.Cartesian3.cross(result, ellipsoidSurfaceNormal, result);
159
- Matrix3.Cartesian3.cross(ellipsoidSurfaceNormal, result, result);
160
- Matrix3.Cartesian3.normalize(result, result);
161
- return result;
162
176
  }
163
-
164
- // Winding order is reversed so each segment's volume is inside-out
165
- // 3-----------7
166
- // /| left /|
167
- // / | 1 / |
168
- // 2-----------6 5 end
169
- // | / | /
170
- // start |/ right |/
171
- // 0-----------4
172
- //
173
- const REFERENCE_INDICES = [
174
- 0,
175
- 2,
176
- 6,
177
- 0,
178
- 6,
179
- 4, // right
180
- 0,
181
- 1,
182
- 3,
183
- 0,
184
- 3,
185
- 2, // start face
186
- 0,
187
- 4,
188
- 5,
189
- 0,
190
- 5,
191
- 1, // bottom
192
- 5,
193
- 3,
194
- 1,
195
- 5,
196
- 7,
197
- 3, // left
198
- 7,
199
- 5,
200
- 4,
201
- 7,
202
- 4,
203
- 6, // end face
204
- 7,
205
- 6,
206
- 2,
207
- 7,
208
- 2,
209
- 3, // top
210
- ];
211
- const REFERENCE_INDICES_LENGTH = REFERENCE_INDICES.length;
212
-
213
- const positionScratch = new Matrix3.Cartesian3();
214
- const scratchStartEllipsoidNormal = new Matrix3.Cartesian3();
215
- const scratchStartFaceNormal = new Matrix3.Cartesian3();
216
- const scratchEndEllipsoidNormal = new Matrix3.Cartesian3();
217
- const scratchEndFaceNormal = new Matrix3.Cartesian3();
218
- VertexAttributesAndIndices.prototype.addVolume = function (
177
+ Cartesian3_default.add(towardNext, towardCurr, result);
178
+ if (Cartesian3_default.equals(result, Cartesian3_default.ZERO)) {
179
+ result = Cartesian3_default.subtract(previousPosition, position);
180
+ }
181
+ Cartesian3_default.cross(result, ellipsoidSurfaceNormal, result);
182
+ Cartesian3_default.cross(ellipsoidSurfaceNormal, result, result);
183
+ Cartesian3_default.normalize(result, result);
184
+ return result;
185
+ }
186
+ var REFERENCE_INDICES = [
187
+ 0,
188
+ 2,
189
+ 6,
190
+ 0,
191
+ 6,
192
+ 4,
193
+ // right
194
+ 0,
195
+ 1,
196
+ 3,
197
+ 0,
198
+ 3,
199
+ 2,
200
+ // start face
201
+ 0,
202
+ 4,
203
+ 5,
204
+ 0,
205
+ 5,
206
+ 1,
207
+ // bottom
208
+ 5,
209
+ 3,
210
+ 1,
211
+ 5,
212
+ 7,
213
+ 3,
214
+ // left
215
+ 7,
216
+ 5,
217
+ 4,
218
+ 7,
219
+ 4,
220
+ 6,
221
+ // end face
222
+ 7,
223
+ 6,
224
+ 2,
225
+ 7,
226
+ 2,
227
+ 3
228
+ // top
229
+ ];
230
+ var REFERENCE_INDICES_LENGTH = REFERENCE_INDICES.length;
231
+ var positionScratch = new Cartesian3_default();
232
+ var scratchStartEllipsoidNormal = new Cartesian3_default();
233
+ var scratchStartFaceNormal = new Cartesian3_default();
234
+ var scratchEndEllipsoidNormal = new Cartesian3_default();
235
+ var scratchEndFaceNormal = new Cartesian3_default();
236
+ VertexAttributesAndIndices.prototype.addVolume = function(preStartRTC, startRTC, endRTC, postEndRTC, startHeight, endHeight, halfWidth, batchId, center, ellipsoid) {
237
+ let position = Cartesian3_default.add(startRTC, center, positionScratch);
238
+ const startEllipsoidNormal = ellipsoid.geodeticSurfaceNormal(
239
+ position,
240
+ scratchStartEllipsoidNormal
241
+ );
242
+ position = Cartesian3_default.add(endRTC, center, positionScratch);
243
+ const endEllipsoidNormal = ellipsoid.geodeticSurfaceNormal(
244
+ position,
245
+ scratchEndEllipsoidNormal
246
+ );
247
+ const startFaceNormal = computeMiteredNormal(
219
248
  preStartRTC,
220
249
  startRTC,
221
250
  endRTC,
251
+ startEllipsoidNormal,
252
+ scratchStartFaceNormal
253
+ );
254
+ const endFaceNormal = computeMiteredNormal(
222
255
  postEndRTC,
223
- startHeight,
224
- endHeight,
225
- halfWidth,
226
- batchId,
227
- center,
228
- ellipsoid
229
- ) {
230
- let position = Matrix3.Cartesian3.add(startRTC, center, positionScratch);
231
- const startEllipsoidNormal = ellipsoid.geodeticSurfaceNormal(
232
- position,
233
- scratchStartEllipsoidNormal
234
- );
235
- position = Matrix3.Cartesian3.add(endRTC, center, positionScratch);
236
- const endEllipsoidNormal = ellipsoid.geodeticSurfaceNormal(
237
- position,
238
- scratchEndEllipsoidNormal
239
- );
240
-
241
- const startFaceNormal = computeMiteredNormal(
242
- preStartRTC,
243
- startRTC,
244
- endRTC,
245
- startEllipsoidNormal,
246
- scratchStartFaceNormal
247
- );
248
- const endFaceNormal = computeMiteredNormal(
249
- postEndRTC,
250
- endRTC,
251
- startRTC,
252
- endEllipsoidNormal,
253
- scratchEndFaceNormal
256
+ endRTC,
257
+ startRTC,
258
+ endEllipsoidNormal,
259
+ scratchEndFaceNormal
260
+ );
261
+ const startEllipsoidNormals = this.startEllipsoidNormals;
262
+ const endEllipsoidNormals = this.endEllipsoidNormals;
263
+ const startPositionAndHeights = this.startPositionAndHeights;
264
+ const startFaceNormalAndVertexCornerIds = this.startFaceNormalAndVertexCornerIds;
265
+ const endPositionAndHeights = this.endPositionAndHeights;
266
+ const endFaceNormalAndHalfWidths = this.endFaceNormalAndHalfWidths;
267
+ const vertexBatchIds = this.vertexBatchIds;
268
+ let batchIdOffset = this.batchIdOffset;
269
+ let vec3Offset = this.vec3Offset;
270
+ let vec4Offset = this.vec4Offset;
271
+ let i;
272
+ for (i = 0; i < 8; i++) {
273
+ Cartesian3_default.pack(startEllipsoidNormal, startEllipsoidNormals, vec3Offset);
274
+ Cartesian3_default.pack(endEllipsoidNormal, endEllipsoidNormals, vec3Offset);
275
+ Cartesian3_default.pack(startRTC, startPositionAndHeights, vec4Offset);
276
+ startPositionAndHeights[vec4Offset + 3] = startHeight;
277
+ Cartesian3_default.pack(endRTC, endPositionAndHeights, vec4Offset);
278
+ endPositionAndHeights[vec4Offset + 3] = endHeight;
279
+ Cartesian3_default.pack(
280
+ startFaceNormal,
281
+ startFaceNormalAndVertexCornerIds,
282
+ vec4Offset
254
283
  );
255
-
256
- const startEllipsoidNormals = this.startEllipsoidNormals;
257
- const endEllipsoidNormals = this.endEllipsoidNormals;
258
- const startPositionAndHeights = this.startPositionAndHeights;
259
- const startFaceNormalAndVertexCornerIds = this
260
- .startFaceNormalAndVertexCornerIds;
261
- const endPositionAndHeights = this.endPositionAndHeights;
262
- const endFaceNormalAndHalfWidths = this.endFaceNormalAndHalfWidths;
263
- const vertexBatchIds = this.vertexBatchIds;
264
-
265
- let batchIdOffset = this.batchIdOffset;
266
- let vec3Offset = this.vec3Offset;
267
- let vec4Offset = this.vec4Offset;
268
-
269
- let i;
270
- for (i = 0; i < 8; i++) {
271
- Matrix3.Cartesian3.pack(startEllipsoidNormal, startEllipsoidNormals, vec3Offset);
272
- Matrix3.Cartesian3.pack(endEllipsoidNormal, endEllipsoidNormals, vec3Offset);
273
-
274
- Matrix3.Cartesian3.pack(startRTC, startPositionAndHeights, vec4Offset);
275
- startPositionAndHeights[vec4Offset + 3] = startHeight;
276
-
277
- Matrix3.Cartesian3.pack(endRTC, endPositionAndHeights, vec4Offset);
278
- endPositionAndHeights[vec4Offset + 3] = endHeight;
279
-
280
- Matrix3.Cartesian3.pack(
281
- startFaceNormal,
282
- startFaceNormalAndVertexCornerIds,
283
- vec4Offset
284
+ startFaceNormalAndVertexCornerIds[vec4Offset + 3] = i;
285
+ Cartesian3_default.pack(endFaceNormal, endFaceNormalAndHalfWidths, vec4Offset);
286
+ endFaceNormalAndHalfWidths[vec4Offset + 3] = halfWidth;
287
+ vertexBatchIds[batchIdOffset++] = batchId;
288
+ vec3Offset += 3;
289
+ vec4Offset += 4;
290
+ }
291
+ this.batchIdOffset = batchIdOffset;
292
+ this.vec3Offset = vec3Offset;
293
+ this.vec4Offset = vec4Offset;
294
+ const indices = this.indices;
295
+ const volumeStartIndex = this.volumeStartIndex;
296
+ const indexOffset = this.indexOffset;
297
+ for (i = 0; i < REFERENCE_INDICES_LENGTH; i++) {
298
+ indices[indexOffset + i] = REFERENCE_INDICES[i] + volumeStartIndex;
299
+ }
300
+ this.volumeStartIndex += 8;
301
+ this.indexOffset += REFERENCE_INDICES_LENGTH;
302
+ };
303
+ var scratchRectangle = new Rectangle_default();
304
+ var scratchEllipsoid = new Ellipsoid_default();
305
+ var scratchCenter = new Cartesian3_default();
306
+ var scratchPrev = new Cartesian3_default();
307
+ var scratchP0 = new Cartesian3_default();
308
+ var scratchP1 = new Cartesian3_default();
309
+ var scratchNext = new Cartesian3_default();
310
+ function createVectorTileClampedPolylines(parameters, transferableObjects) {
311
+ const encodedPositions = new Uint16Array(parameters.positions);
312
+ const widths = new Uint16Array(parameters.widths);
313
+ const counts = new Uint32Array(parameters.counts);
314
+ const batchIds = new Uint16Array(parameters.batchIds);
315
+ const rectangle = scratchRectangle;
316
+ const ellipsoid = scratchEllipsoid;
317
+ const center = scratchCenter;
318
+ const packedBuffer = new Float64Array(parameters.packedBuffer);
319
+ let offset = 0;
320
+ const minimumHeight = packedBuffer[offset++];
321
+ const maximumHeight = packedBuffer[offset++];
322
+ Rectangle_default.unpack(packedBuffer, offset, rectangle);
323
+ offset += Rectangle_default.packedLength;
324
+ Ellipsoid_default.unpack(packedBuffer, offset, ellipsoid);
325
+ offset += Ellipsoid_default.packedLength;
326
+ Cartesian3_default.unpack(packedBuffer, offset, center);
327
+ let i;
328
+ let positionsLength = encodedPositions.length / 3;
329
+ const uBuffer = encodedPositions.subarray(0, positionsLength);
330
+ const vBuffer = encodedPositions.subarray(
331
+ positionsLength,
332
+ 2 * positionsLength
333
+ );
334
+ const heightBuffer = encodedPositions.subarray(
335
+ 2 * positionsLength,
336
+ 3 * positionsLength
337
+ );
338
+ AttributeCompression_default.zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer);
339
+ removeDuplicates(uBuffer, vBuffer, heightBuffer, counts);
340
+ const countsLength = counts.length;
341
+ let volumesCount = 0;
342
+ for (i = 0; i < countsLength; i++) {
343
+ const polylinePositionCount = counts[i];
344
+ volumesCount += polylinePositionCount - 1;
345
+ }
346
+ const attribsAndIndices = new VertexAttributesAndIndices(volumesCount);
347
+ const positions = decodePositions(
348
+ uBuffer,
349
+ vBuffer,
350
+ heightBuffer,
351
+ rectangle,
352
+ minimumHeight,
353
+ maximumHeight,
354
+ ellipsoid,
355
+ center
356
+ );
357
+ positionsLength = uBuffer.length;
358
+ const positionsRTC = new Float32Array(positionsLength * 3);
359
+ for (i = 0; i < positionsLength; ++i) {
360
+ positionsRTC[i * 3] = positions[i * 3] - center.x;
361
+ positionsRTC[i * 3 + 1] = positions[i * 3 + 1] - center.y;
362
+ positionsRTC[i * 3 + 2] = positions[i * 3 + 2] - center.z;
363
+ }
364
+ let currentPositionIndex = 0;
365
+ let currentHeightIndex = 0;
366
+ for (i = 0; i < countsLength; i++) {
367
+ const polylineVolumeCount = counts[i] - 1;
368
+ const halfWidth = widths[i] * 0.5;
369
+ const batchId = batchIds[i];
370
+ const volumeFirstPositionIndex = currentPositionIndex;
371
+ for (let j = 0; j < polylineVolumeCount; j++) {
372
+ const volumeStart = Cartesian3_default.unpack(
373
+ positionsRTC,
374
+ currentPositionIndex,
375
+ scratchP0
284
376
  );
285
- startFaceNormalAndVertexCornerIds[vec4Offset + 3] = i;
286
-
287
- Matrix3.Cartesian3.pack(endFaceNormal, endFaceNormalAndHalfWidths, vec4Offset);
288
- endFaceNormalAndHalfWidths[vec4Offset + 3] = halfWidth;
289
-
290
- vertexBatchIds[batchIdOffset++] = batchId;
291
-
292
- vec3Offset += 3;
293
- vec4Offset += 4;
294
- }
295
-
296
- this.batchIdOffset = batchIdOffset;
297
- this.vec3Offset = vec3Offset;
298
- this.vec4Offset = vec4Offset;
299
- const indices = this.indices;
300
- const volumeStartIndex = this.volumeStartIndex;
301
-
302
- const indexOffset = this.indexOffset;
303
- for (i = 0; i < REFERENCE_INDICES_LENGTH; i++) {
304
- indices[indexOffset + i] = REFERENCE_INDICES[i] + volumeStartIndex;
305
- }
306
-
307
- this.volumeStartIndex += 8;
308
- this.indexOffset += REFERENCE_INDICES_LENGTH;
309
- };
310
-
311
- const scratchRectangle = new Matrix2.Rectangle();
312
- const scratchEllipsoid = new Matrix3.Ellipsoid();
313
- const scratchCenter = new Matrix3.Cartesian3();
314
-
315
- const scratchPrev = new Matrix3.Cartesian3();
316
- const scratchP0 = new Matrix3.Cartesian3();
317
- const scratchP1 = new Matrix3.Cartesian3();
318
- const scratchNext = new Matrix3.Cartesian3();
319
- function createVectorTileClampedPolylines(parameters, transferableObjects) {
320
- const encodedPositions = new Uint16Array(parameters.positions);
321
- const widths = new Uint16Array(parameters.widths);
322
- const counts = new Uint32Array(parameters.counts);
323
- const batchIds = new Uint16Array(parameters.batchIds);
324
-
325
- // Unpack tile decoding parameters
326
- const rectangle = scratchRectangle;
327
- const ellipsoid = scratchEllipsoid;
328
- const center = scratchCenter;
329
- const packedBuffer = new Float64Array(parameters.packedBuffer);
330
-
331
- let offset = 0;
332
- const minimumHeight = packedBuffer[offset++];
333
- const maximumHeight = packedBuffer[offset++];
334
-
335
- Matrix2.Rectangle.unpack(packedBuffer, offset, rectangle);
336
- offset += Matrix2.Rectangle.packedLength;
337
-
338
- Matrix3.Ellipsoid.unpack(packedBuffer, offset, ellipsoid);
339
- offset += Matrix3.Ellipsoid.packedLength;
340
-
341
- Matrix3.Cartesian3.unpack(packedBuffer, offset, center);
342
-
343
- let i;
344
-
345
- // Unpack positions and generate volumes
346
- let positionsLength = encodedPositions.length / 3;
347
- const uBuffer = encodedPositions.subarray(0, positionsLength);
348
- const vBuffer = encodedPositions.subarray(
349
- positionsLength,
350
- 2 * positionsLength
351
- );
352
- const heightBuffer = encodedPositions.subarray(
353
- 2 * positionsLength,
354
- 3 * positionsLength
355
- );
356
- AttributeCompression.AttributeCompression.zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer);
357
-
358
- removeDuplicates(uBuffer, vBuffer, heightBuffer, counts);
359
-
360
- // Figure out how many volumes and how many vertices there will be.
361
- const countsLength = counts.length;
362
- let volumesCount = 0;
363
- for (i = 0; i < countsLength; i++) {
364
- const polylinePositionCount = counts[i];
365
- volumesCount += polylinePositionCount - 1;
366
- }
367
-
368
- const attribsAndIndices = new VertexAttributesAndIndices(volumesCount);
369
-
370
- const positions = decodePositions(
371
- uBuffer,
372
- vBuffer,
373
- heightBuffer,
374
- rectangle,
375
- minimumHeight,
376
- maximumHeight,
377
- ellipsoid);
378
-
379
- positionsLength = uBuffer.length;
380
- const positionsRTC = new Float32Array(positionsLength * 3);
381
- for (i = 0; i < positionsLength; ++i) {
382
- positionsRTC[i * 3] = positions[i * 3] - center.x;
383
- positionsRTC[i * 3 + 1] = positions[i * 3 + 1] - center.y;
384
- positionsRTC[i * 3 + 2] = positions[i * 3 + 2] - center.z;
385
- }
386
-
387
- let currentPositionIndex = 0;
388
- let currentHeightIndex = 0;
389
- for (i = 0; i < countsLength; i++) {
390
- const polylineVolumeCount = counts[i] - 1;
391
- const halfWidth = widths[i] * 0.5;
392
- const batchId = batchIds[i];
393
- const volumeFirstPositionIndex = currentPositionIndex;
394
- for (let j = 0; j < polylineVolumeCount; j++) {
395
- const volumeStart = Matrix3.Cartesian3.unpack(
377
+ const volumeEnd = Cartesian3_default.unpack(
378
+ positionsRTC,
379
+ currentPositionIndex + 3,
380
+ scratchP1
381
+ );
382
+ let startHeight = heightBuffer[currentHeightIndex];
383
+ let endHeight = heightBuffer[currentHeightIndex + 1];
384
+ startHeight = Math_default.lerp(
385
+ minimumHeight,
386
+ maximumHeight,
387
+ startHeight / MAX_SHORT
388
+ );
389
+ endHeight = Math_default.lerp(
390
+ minimumHeight,
391
+ maximumHeight,
392
+ endHeight / MAX_SHORT
393
+ );
394
+ currentHeightIndex++;
395
+ let preStart = scratchPrev;
396
+ let postEnd = scratchNext;
397
+ if (j === 0) {
398
+ const finalPositionIndex = volumeFirstPositionIndex + polylineVolumeCount * 3;
399
+ const finalPosition = Cartesian3_default.unpack(
396
400
  positionsRTC,
397
- currentPositionIndex,
398
- scratchP0
401
+ finalPositionIndex,
402
+ scratchPrev
399
403
  );
400
- const volumeEnd = Matrix3.Cartesian3.unpack(
404
+ if (Cartesian3_default.equals(finalPosition, volumeStart)) {
405
+ Cartesian3_default.unpack(positionsRTC, finalPositionIndex - 3, preStart);
406
+ } else {
407
+ const offsetPastStart = Cartesian3_default.subtract(
408
+ volumeStart,
409
+ volumeEnd,
410
+ scratchPrev
411
+ );
412
+ preStart = Cartesian3_default.add(offsetPastStart, volumeStart, scratchPrev);
413
+ }
414
+ } else {
415
+ Cartesian3_default.unpack(positionsRTC, currentPositionIndex - 3, preStart);
416
+ }
417
+ if (j === polylineVolumeCount - 1) {
418
+ const firstPosition = Cartesian3_default.unpack(
401
419
  positionsRTC,
402
- currentPositionIndex + 3,
403
- scratchP1
404
- );
405
-
406
- let startHeight = heightBuffer[currentHeightIndex];
407
- let endHeight = heightBuffer[currentHeightIndex + 1];
408
- startHeight = Math$1.CesiumMath.lerp(
409
- minimumHeight,
410
- maximumHeight,
411
- startHeight / MAX_SHORT
420
+ volumeFirstPositionIndex,
421
+ scratchNext
412
422
  );
413
- endHeight = Math$1.CesiumMath.lerp(
414
- minimumHeight,
415
- maximumHeight,
416
- endHeight / MAX_SHORT
417
- );
418
-
419
- currentHeightIndex++;
420
-
421
- let preStart = scratchPrev;
422
- let postEnd = scratchNext;
423
- if (j === 0) {
424
- // Check if this volume is like a loop
425
- const finalPositionIndex =
426
- volumeFirstPositionIndex + polylineVolumeCount * 3;
427
- const finalPosition = Matrix3.Cartesian3.unpack(
423
+ if (Cartesian3_default.equals(firstPosition, volumeEnd)) {
424
+ Cartesian3_default.unpack(
428
425
  positionsRTC,
429
- finalPositionIndex,
430
- scratchPrev
426
+ volumeFirstPositionIndex + 3,
427
+ postEnd
431
428
  );
432
- if (Matrix3.Cartesian3.equals(finalPosition, volumeStart)) {
433
- Matrix3.Cartesian3.unpack(positionsRTC, finalPositionIndex - 3, preStart);
434
- } else {
435
- const offsetPastStart = Matrix3.Cartesian3.subtract(
436
- volumeStart,
437
- volumeEnd,
438
- scratchPrev
439
- );
440
- preStart = Matrix3.Cartesian3.add(offsetPastStart, volumeStart, scratchPrev);
441
- }
442
429
  } else {
443
- Matrix3.Cartesian3.unpack(positionsRTC, currentPositionIndex - 3, preStart);
444
- }
445
-
446
- if (j === polylineVolumeCount - 1) {
447
- // Check if this volume is like a loop
448
- const firstPosition = Matrix3.Cartesian3.unpack(
449
- positionsRTC,
450
- volumeFirstPositionIndex,
430
+ const offsetPastEnd = Cartesian3_default.subtract(
431
+ volumeEnd,
432
+ volumeStart,
451
433
  scratchNext
452
434
  );
453
- if (Matrix3.Cartesian3.equals(firstPosition, volumeEnd)) {
454
- Matrix3.Cartesian3.unpack(
455
- positionsRTC,
456
- volumeFirstPositionIndex + 3,
457
- postEnd
458
- );
459
- } else {
460
- const offsetPastEnd = Matrix3.Cartesian3.subtract(
461
- volumeEnd,
462
- volumeStart,
463
- scratchNext
464
- );
465
- postEnd = Matrix3.Cartesian3.add(offsetPastEnd, volumeEnd, scratchNext);
466
- }
467
- } else {
468
- Matrix3.Cartesian3.unpack(positionsRTC, currentPositionIndex + 6, postEnd);
435
+ postEnd = Cartesian3_default.add(offsetPastEnd, volumeEnd, scratchNext);
469
436
  }
470
-
471
- attribsAndIndices.addVolume(
472
- preStart,
473
- volumeStart,
474
- volumeEnd,
475
- postEnd,
476
- startHeight,
477
- endHeight,
478
- halfWidth,
479
- batchId,
480
- center,
481
- ellipsoid
482
- );
483
-
484
- currentPositionIndex += 3;
437
+ } else {
438
+ Cartesian3_default.unpack(positionsRTC, currentPositionIndex + 6, postEnd);
485
439
  }
440
+ attribsAndIndices.addVolume(
441
+ preStart,
442
+ volumeStart,
443
+ volumeEnd,
444
+ postEnd,
445
+ startHeight,
446
+ endHeight,
447
+ halfWidth,
448
+ batchId,
449
+ center,
450
+ ellipsoid
451
+ );
486
452
  currentPositionIndex += 3;
487
- currentHeightIndex++;
488
- }
489
-
490
- const indices = attribsAndIndices.indices;
491
-
492
- transferableObjects.push(attribsAndIndices.startEllipsoidNormals.buffer);
493
- transferableObjects.push(attribsAndIndices.endEllipsoidNormals.buffer);
494
- transferableObjects.push(attribsAndIndices.startPositionAndHeights.buffer);
495
- transferableObjects.push(
496
- attribsAndIndices.startFaceNormalAndVertexCornerIds.buffer
497
- );
498
- transferableObjects.push(attribsAndIndices.endPositionAndHeights.buffer);
499
- transferableObjects.push(attribsAndIndices.endFaceNormalAndHalfWidths.buffer);
500
- transferableObjects.push(attribsAndIndices.vertexBatchIds.buffer);
501
- transferableObjects.push(indices.buffer);
502
-
503
- let results = {
504
- indexDatatype:
505
- indices.BYTES_PER_ELEMENT === 2
506
- ? IndexDatatype.IndexDatatype.UNSIGNED_SHORT
507
- : IndexDatatype.IndexDatatype.UNSIGNED_INT,
508
- startEllipsoidNormals: attribsAndIndices.startEllipsoidNormals.buffer,
509
- endEllipsoidNormals: attribsAndIndices.endEllipsoidNormals.buffer,
510
- startPositionAndHeights: attribsAndIndices.startPositionAndHeights.buffer,
511
- startFaceNormalAndVertexCornerIds:
512
- attribsAndIndices.startFaceNormalAndVertexCornerIds.buffer,
513
- endPositionAndHeights: attribsAndIndices.endPositionAndHeights.buffer,
514
- endFaceNormalAndHalfWidths:
515
- attribsAndIndices.endFaceNormalAndHalfWidths.buffer,
516
- vertexBatchIds: attribsAndIndices.vertexBatchIds.buffer,
517
- indices: indices.buffer,
518
- };
519
-
520
- if (parameters.keepDecodedPositions) {
521
- const positionOffsets = getPositionOffsets(counts);
522
- transferableObjects.push(positions.buffer, positionOffsets.buffer);
523
- results = combine.combine(results, {
524
- decodedPositions: positions.buffer,
525
- decodedPositionOffsets: positionOffsets.buffer,
526
- });
527
453
  }
528
-
529
- return results;
454
+ currentPositionIndex += 3;
455
+ currentHeightIndex++;
530
456
  }
531
- var createVectorTileClampedPolylines$1 = createTaskProcessorWorker(createVectorTileClampedPolylines);
532
-
533
- return createVectorTileClampedPolylines$1;
534
-
535
- }));
457
+ const indices = attribsAndIndices.indices;
458
+ transferableObjects.push(attribsAndIndices.startEllipsoidNormals.buffer);
459
+ transferableObjects.push(attribsAndIndices.endEllipsoidNormals.buffer);
460
+ transferableObjects.push(attribsAndIndices.startPositionAndHeights.buffer);
461
+ transferableObjects.push(
462
+ attribsAndIndices.startFaceNormalAndVertexCornerIds.buffer
463
+ );
464
+ transferableObjects.push(attribsAndIndices.endPositionAndHeights.buffer);
465
+ transferableObjects.push(attribsAndIndices.endFaceNormalAndHalfWidths.buffer);
466
+ transferableObjects.push(attribsAndIndices.vertexBatchIds.buffer);
467
+ transferableObjects.push(indices.buffer);
468
+ let results = {
469
+ indexDatatype: indices.BYTES_PER_ELEMENT === 2 ? IndexDatatype_default.UNSIGNED_SHORT : IndexDatatype_default.UNSIGNED_INT,
470
+ startEllipsoidNormals: attribsAndIndices.startEllipsoidNormals.buffer,
471
+ endEllipsoidNormals: attribsAndIndices.endEllipsoidNormals.buffer,
472
+ startPositionAndHeights: attribsAndIndices.startPositionAndHeights.buffer,
473
+ startFaceNormalAndVertexCornerIds: attribsAndIndices.startFaceNormalAndVertexCornerIds.buffer,
474
+ endPositionAndHeights: attribsAndIndices.endPositionAndHeights.buffer,
475
+ endFaceNormalAndHalfWidths: attribsAndIndices.endFaceNormalAndHalfWidths.buffer,
476
+ vertexBatchIds: attribsAndIndices.vertexBatchIds.buffer,
477
+ indices: indices.buffer
478
+ };
479
+ if (parameters.keepDecodedPositions) {
480
+ const positionOffsets = getPositionOffsets(counts);
481
+ transferableObjects.push(positions.buffer, positionOffsets.buffer);
482
+ results = combine_default(results, {
483
+ decodedPositions: positions.buffer,
484
+ decodedPositionOffsets: positionOffsets.buffer
485
+ });
486
+ }
487
+ return results;
488
+ }
489
+ var createVectorTileClampedPolylines_default = createTaskProcessorWorker_default(createVectorTileClampedPolylines);
490
+ export {
491
+ createVectorTileClampedPolylines_default as default
492
+ };