deeptwins-engine-3d 0.1.76 → 0.2.1

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 (237) hide show
  1. package/dist/assets/Build/DeepTwins/Image/noise.png +0 -0
  2. package/dist/assets/Build/DeepTwins/Workers/CustomRasterClip.worker.js +1 -2
  3. package/dist/assets/Build/DeepTwins/Workers/MvtVector.worker.js +1 -1
  4. package/dist/assets/Build/Map3d/ThirdParty/Workers/zip-web-worker.js +640 -0
  5. package/dist/assets/Build/Map3d/ThirdParty/wasm_splats_bg.wasm +0 -0
  6. package/dist/assets/Build/Map3d/ThirdParty/zip-module.wasm +0 -0
  7. package/dist/assets/Build/Map3d/Workers/chunk-27NG6PQR.js +456 -0
  8. package/dist/assets/Build/Map3d/Workers/chunk-2JVMMMWT.js +353 -0
  9. package/dist/assets/Build/Map3d/Workers/chunk-2Y2XYQCS.js +1481 -0
  10. package/dist/assets/Build/Map3d/Workers/chunk-34RF3V5G.js +220 -0
  11. package/dist/assets/Build/Map3d/Workers/chunk-35H7BYLJ.js +1800 -0
  12. package/dist/assets/Build/Map3d/Workers/chunk-57OGEF5V.js +435 -0
  13. package/dist/assets/Build/Map3d/Workers/chunk-5PX3DYJA.js +196 -0
  14. package/dist/assets/Build/Map3d/Workers/chunk-7B5XGQRN.js +171 -0
  15. package/dist/assets/Build/Map3d/Workers/chunk-ATLWOZFF.js +39 -0
  16. package/dist/assets/Build/Map3d/Workers/chunk-BMSUECTA.js +1055 -0
  17. package/dist/assets/Build/Map3d/Workers/chunk-C6IA4TKW.js +476 -0
  18. package/dist/assets/Build/Map3d/Workers/chunk-CZ44I32U.js +157 -0
  19. package/dist/assets/Build/Map3d/Workers/chunk-DE6UV44R.js +122 -0
  20. package/dist/assets/Build/Map3d/Workers/chunk-DUCCKVOG.js +834 -0
  21. package/dist/assets/Build/Map3d/Workers/chunk-EBJBPIYX.js +239 -0
  22. package/dist/assets/Build/Map3d/Workers/chunk-EYSYQ2R6.js +138 -0
  23. package/dist/assets/Build/Map3d/Workers/chunk-FMCAAUQI.js +368 -0
  24. package/dist/assets/Build/Map3d/Workers/chunk-GMYZNRRQ.js +2717 -0
  25. package/dist/assets/Build/Map3d/Workers/chunk-GWPNZZV4.js +781 -0
  26. package/dist/assets/Build/Map3d/Workers/chunk-HLP2U4KW.js +758 -0
  27. package/dist/assets/Build/Map3d/Workers/chunk-HSJSUPQV.js +500 -0
  28. package/dist/assets/Build/Map3d/Workers/chunk-I73Q3AG7.js +58 -0
  29. package/dist/assets/Build/Map3d/Workers/chunk-IMZ4YIMV.js +511 -0
  30. package/dist/assets/Build/Map3d/Workers/chunk-IZSK4DVF.js +421 -0
  31. package/dist/assets/Build/Map3d/Workers/chunk-JKLMRPKK.js +75 -0
  32. package/dist/assets/Build/Map3d/Workers/chunk-KGM345JM.js +691 -0
  33. package/dist/assets/Build/Map3d/Workers/chunk-L4IR5U4G.js +102 -0
  34. package/dist/assets/Build/Map3d/Workers/chunk-MG4EVQH2.js +44 -0
  35. package/dist/assets/Build/Map3d/Workers/chunk-NXWEFAZJ.js +300 -0
  36. package/dist/assets/Build/Map3d/Workers/chunk-PDFAJISJ.js +59 -0
  37. package/dist/assets/Build/Map3d/Workers/chunk-PHWZFJR5.js +100 -0
  38. package/dist/assets/Build/Map3d/Workers/chunk-PLE7CHBE.js +101 -0
  39. package/dist/assets/Build/Map3d/Workers/chunk-PN3GIZ5Q.js +163 -0
  40. package/dist/assets/Build/Map3d/Workers/chunk-PXL5XLHV.js +1073 -0
  41. package/dist/assets/Build/Map3d/Workers/chunk-QYXOF5JC.js +959 -0
  42. package/dist/assets/Build/Map3d/Workers/chunk-R2LIFXV3.js +115 -0
  43. package/dist/assets/Build/Map3d/Workers/chunk-R4W6IRJZ.js +10357 -0
  44. package/dist/assets/Build/Map3d/Workers/chunk-R5PZXG56.js +1258 -0
  45. package/dist/assets/Build/Map3d/Workers/chunk-RZQLZIUI.js +629 -0
  46. package/dist/assets/Build/Map3d/Workers/chunk-SIBDD6Y4.js +390 -0
  47. package/dist/assets/Build/Map3d/Workers/chunk-U5NN6JTQ.js +398 -0
  48. package/dist/assets/Build/Map3d/Workers/chunk-UA5RPPP3.js +73 -0
  49. package/dist/assets/Build/Map3d/Workers/chunk-UXLKFS3C.js +305 -0
  50. package/dist/assets/Build/Map3d/Workers/chunk-VUX4BQIM.js +37 -0
  51. package/dist/assets/Build/Map3d/Workers/chunk-WJDUUUJS.js +684 -0
  52. package/dist/assets/Build/Map3d/Workers/chunk-XBJOJHWX.js +139 -0
  53. package/dist/assets/Build/Map3d/Workers/chunk-XJDMTNKD.js +634 -0
  54. package/dist/assets/Build/Map3d/Workers/chunk-XUCXZZE5.js +963 -0
  55. package/dist/assets/Build/Map3d/Workers/chunk-YIKGVMJ5.js +287 -0
  56. package/dist/assets/Build/Map3d/Workers/chunk-YTNCIBPQ.js +262 -0
  57. package/dist/assets/Build/Map3d/Workers/chunk-ZMDUYETO.js +55 -0
  58. package/dist/assets/Build/Map3d/Workers/chunk-ZW52HXFN.js +2857 -0
  59. package/dist/esm/analyze/LineOfSightAnalysis.js +1 -326
  60. package/dist/esm/analyze/SubmergenceAnalysis.js +1 -137
  61. package/dist/esm/analyze/SunLightAnalysis.js +1 -91
  62. package/dist/esm/analyze/TerrainExcavationAnalysis.js +1 -612
  63. package/dist/esm/analyze/ViewshedAnalysis.js +1 -292
  64. package/dist/esm/cameraControl/ModelRoamHistory.js +1 -639
  65. package/dist/esm/cameraControl/ModelRoamRealTime.js +1 -874
  66. package/dist/esm/cameraControl/Roam.js +1 -418
  67. package/dist/esm/cameraControl/Rotate.js +1 -134
  68. package/dist/esm/cameraControl/RotateInPlace.js +1 -99
  69. package/dist/esm/constant.d.ts +90 -0
  70. package/dist/esm/constant.js +1 -1287
  71. package/dist/esm/deepTwins/index.js +1 -121
  72. package/dist/esm/drawCommand/index.js +1 -3
  73. package/dist/esm/drawCommand/viewShed/Event.js +1 -142
  74. package/dist/esm/drawCommand/viewShed/RectangularSensorPrimitive.js +1 -1306
  75. package/dist/esm/drawCommand/viewShed/ViewShadowPrimitive.js +1 -66
  76. package/dist/esm/drawCommand/viewShed/ViewShedAnalyserLayer.js +1 -466
  77. package/dist/esm/drawCommand/viewShed/ViewShedMap.js +1 -1238
  78. package/dist/esm/drawCommand/viewShed/config.js +1 -21
  79. package/dist/esm/drawCommand/volumeCloud/GeometryPrimitive.js +1 -89
  80. package/dist/esm/drawCommand/volumeCloud/ImprovedNoise.js +1 -112
  81. package/dist/esm/drawCommand/volumeCloud/VolumeClouds.js +1 -91
  82. package/dist/esm/drawer/algorithm.js +1 -314
  83. package/dist/esm/drawer/common.js +1 -965
  84. package/dist/esm/drawer/coordinate.js +1 -184
  85. package/dist/esm/drawer/index.js +1 -688
  86. package/dist/esm/drawer/plotUtil.js +1 -266
  87. package/dist/esm/drawer/shape/Assemble.js +1 -415
  88. package/dist/esm/drawer/shape/AttackArrow.js +1 -442
  89. package/dist/esm/drawer/shape/BaseShape.js +1 -383
  90. package/dist/esm/drawer/shape/Bow.js +1 -375
  91. package/dist/esm/drawer/shape/Circle.js +1 -461
  92. package/dist/esm/drawer/shape/Curve.js +1 -386
  93. package/dist/esm/drawer/shape/DragPoint.js +1 -211
  94. package/dist/esm/drawer/shape/Elliptic.js +1 -491
  95. package/dist/esm/drawer/shape/Formation.js +1 -395
  96. package/dist/esm/drawer/shape/PincerArrow.js +1 -445
  97. package/dist/esm/drawer/shape/Point.js +1 -131
  98. package/dist/esm/drawer/shape/Polygon.js +1 -368
  99. package/dist/esm/drawer/shape/Polyline.js +1 -325
  100. package/dist/esm/drawer/shape/RegularPolygon.js +1 -468
  101. package/dist/esm/drawer/shape/RightAngleArrow.js +1 -423
  102. package/dist/esm/drawer/shape/Sector.js +1 -568
  103. package/dist/esm/drawer/shape/StraightArrow.js +1 -422
  104. package/dist/esm/drawer/shape/SwallowtailArrow.js +1 -438
  105. package/dist/esm/drawer/types.js +1 -11
  106. package/dist/esm/drawer/utils.js +1 -381
  107. package/dist/esm/global.css +22 -1
  108. package/dist/esm/graphicLayer/BaseEntity.js +1 -51
  109. package/dist/esm/graphicLayer/BaseLayer.js +1 -730
  110. package/dist/esm/graphicLayer/BasePointPrimitive.js +1 -45
  111. package/dist/esm/graphicLayer/BasePrimitive.js +1 -36
  112. package/dist/esm/graphicLayer/BasePrimitiveInstance.js +1 -37
  113. package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
  114. package/dist/esm/graphicLayer/BaseSource.js +1 -630
  115. package/dist/esm/graphicLayer/BillboardEntity.js +1 -106
  116. package/dist/esm/graphicLayer/BillboardPrimitive.js +1 -119
  117. package/dist/esm/graphicLayer/BoxEntity.js +1 -99
  118. package/dist/esm/graphicLayer/BoxPrimitive.js +1 -48
  119. package/dist/esm/graphicLayer/BoxPrimitiveInstance.js +1 -91
  120. package/dist/esm/graphicLayer/EllipseEntity.js +1 -110
  121. package/dist/esm/graphicLayer/EllipsePrimitive.js +1 -47
  122. package/dist/esm/graphicLayer/EllipsePrimitiveInstance.js +1 -98
  123. package/dist/esm/graphicLayer/EllipsoidEntity.js +1 -118
  124. package/dist/esm/graphicLayer/EllipsoidPrimitive.js +1 -48
  125. package/dist/esm/graphicLayer/EllipsoidPrimitiveInstance.js +1 -113
  126. package/dist/esm/graphicLayer/GraphicLayerCollection.js +1 -491
  127. package/dist/esm/graphicLayer/HtmlEntity.d.ts +4 -0
  128. package/dist/esm/graphicLayer/HtmlEntity.js +1 -189
  129. package/dist/esm/graphicLayer/LabelEntity.js +1 -110
  130. package/dist/esm/graphicLayer/LabelPrimitive.js +1 -127
  131. package/dist/esm/graphicLayer/ModelEntity.js +1 -122
  132. package/dist/esm/graphicLayer/ModelPrimitive.js +1 -59
  133. package/dist/esm/graphicLayer/ModelPrimitiveInstance.js +1 -86
  134. package/dist/esm/graphicLayer/PointEntity.js +1 -94
  135. package/dist/esm/graphicLayer/PointPrimitive.js +1 -107
  136. package/dist/esm/graphicLayer/PolygonEntity.js +1 -103
  137. package/dist/esm/graphicLayer/PolygonGroundPrimitive.js +1 -49
  138. package/dist/esm/graphicLayer/PolygonGroundPrimitiveImageMaterialInstance.js +1 -87
  139. package/dist/esm/graphicLayer/PolygonPrimitive.js +1 -60
  140. package/dist/esm/graphicLayer/PolygonPrimitiveImageMaterialInstance.js +1 -84
  141. package/dist/esm/graphicLayer/PolygonPrimitiveInstance.js +1 -101
  142. package/dist/esm/graphicLayer/PolylineEntity.js +1 -96
  143. package/dist/esm/graphicLayer/PolylineGroundPrimitive.js +1 -55
  144. package/dist/esm/graphicLayer/PolylineGroundPrimitiveInstance.js +1 -85
  145. package/dist/esm/graphicLayer/PolylinePrimitive.js +1 -53
  146. package/dist/esm/graphicLayer/PolylinePrimitiveInstance.js +1 -85
  147. package/dist/esm/graphicLayer/PolylineVolumeEntity.js +1 -105
  148. package/dist/esm/graphicLayer/PolylineVolumePrimitive.js +1 -47
  149. package/dist/esm/graphicLayer/PolylineVolumePrimitiveInstance.js +1 -94
  150. package/dist/esm/graphicLayer/WallEntity.js +1 -96
  151. package/dist/esm/graphicLayer/WallPrimitive.js +1 -47
  152. package/dist/esm/graphicLayer/WallPrimitiveInstance.js +1 -88
  153. package/dist/esm/index.d.ts +4 -0
  154. package/dist/esm/index.js +1 -175
  155. package/dist/esm/lowAltitude/BarrierLayer.js +1 -172
  156. package/dist/esm/lowAltitude/BaseGridMvtLayer.js +1 -122
  157. package/dist/esm/lowAltitude/FactorLayer.js +1 -199
  158. package/dist/esm/lowAltitude/FlightPlanning.js +1 -411
  159. package/dist/esm/lowAltitude/FlightRiskEvaluation.js +1 -543
  160. package/dist/esm/lowAltitude/GridDraw.js +1 -137
  161. package/dist/esm/lowAltitude/PoiLayer.js +1 -74
  162. package/dist/esm/lowAltitude/RoutePlanning.js +1 -318
  163. package/dist/esm/lowAltitude/VisitLayer.js +1 -180
  164. package/dist/esm/map/Event.js +1 -377
  165. package/dist/esm/map/GroundSkyBox.js +1 -166
  166. package/dist/esm/map/Map.js +1 -881
  167. package/dist/esm/map/Property.js +1 -35
  168. package/dist/esm/material/AtmosphericDispersion.js +1 -569
  169. package/dist/esm/material/GlobalVolumetricCloud.js +1 -377
  170. package/dist/esm/material/VolumeCloud.js +1 -115
  171. package/dist/esm/material/WeatherEffects.js +1 -351
  172. package/dist/esm/material/entity/BaseMaterialProperty.js +1 -51
  173. package/dist/esm/material/entity/CircleWaveMaterialProperty.js +1 -101
  174. package/dist/esm/material/entity/DynamicWallMaterialProperty.js +1 -101
  175. package/dist/esm/material/entity/ImageGlowingMaterialProperty.js +1 -89
  176. package/dist/esm/material/entity/ImageMaterialProperty.js +1 -34
  177. package/dist/esm/material/entity/PolylineTrailLinkMaterialProperty.js +1 -132
  178. package/dist/esm/material/primitive/BaseMaterialAppearance.js +1 -28
  179. package/dist/esm/material/primitive/ImageGlowingMaterialAppearance.js +1 -77
  180. package/dist/esm/material/primitive/ImageMaterialAppearance.js +1 -77
  181. package/dist/esm/measure/Area.js +1 -220
  182. package/dist/esm/measure/BaseDraw.js +1 -105
  183. package/dist/esm/measure/Distance.js +1 -223
  184. package/dist/esm/measure/index.js +1 -266
  185. package/dist/esm/measure/types.js +1 -17
  186. package/dist/esm/measure/utils.js +1 -319
  187. package/dist/esm/particle/BaseParticle.js +1 -196
  188. package/dist/esm/particle/FireParticle.js +1 -65
  189. package/dist/esm/particle/FountainParticle.js +1 -80
  190. package/dist/esm/particle/SmokeParticle.js +1 -65
  191. package/dist/esm/particle/common.js +1 -23
  192. package/dist/esm/particle/index.js +1 -5
  193. package/dist/esm/property/PositionProperty.js +1 -56
  194. package/dist/esm/tileLayer/ArcGisLayer.js +1 -41
  195. package/dist/esm/tileLayer/CustomRasterClipWorkerClient.js +1 -147
  196. package/dist/esm/tileLayer/CustomRasterLayer.js +1 -1136
  197. package/dist/esm/tileLayer/ImageryLayer.js +1 -44
  198. package/dist/esm/tileLayer/MvtVectorLoad.js +1 -1549
  199. package/dist/esm/tileLayer/MvtVectorWorkerClient.js +1 -126
  200. package/dist/esm/tileLayer/RasterLayer.js +1 -23
  201. package/dist/esm/tileLayer/WmsLayer.js +1 -26
  202. package/dist/esm/tileLayer/WmtsLayer.js +1 -23
  203. package/dist/esm/tool/BuildClampedPolygonGrid.js +1 -278
  204. package/dist/esm/tool/Compass.js +1 -282
  205. package/dist/esm/tool/PrimitiveCluster.js +1 -706
  206. package/dist/esm/tool/TimerInterval.js +1 -58
  207. package/dist/esm/tool/common.js +1 -405
  208. package/dist/esm/tool/fetch.js +1 -222
  209. package/dist/esm/tool/heatmap.js +1 -631
  210. package/dist/esm/tool/utils.d.ts +1 -0
  211. package/dist/esm/tool/utils.js +1 -501
  212. package/dist/esm/toolTip/index.js +1 -79
  213. package/dist/esm/videoFusion/BaseVideo.d.ts +7 -0
  214. package/dist/esm/videoFusion/BaseVideo.js +1 -330
  215. package/dist/esm/videoFusion/VideoProject.js +1 -230
  216. package/dist/esm/videoFusion/VideoTexture.js +1 -163
  217. package/dist/esm/visualization/BaseHeatmap.js +1 -271
  218. package/dist/esm/visualization/BoundaryHighlight.d.ts +135 -0
  219. package/dist/esm/visualization/BoundaryHighlight.js +1 -0
  220. package/dist/esm/visualization/DynamicWater.js +1 -289
  221. package/dist/esm/visualization/Frustum.js +1 -248
  222. package/dist/esm/visualization/Heatmap2d.js +1 -97
  223. package/dist/esm/visualization/Heatmap3d.js +1 -281
  224. package/dist/esm/visualization/MigrationEffect.js +1 -397
  225. package/dist/esm/visualization/PointCluster.js +1 -220
  226. package/dist/esm/visualization/RadarScan.js +1 -333
  227. package/dist/esm/visualization/SampledTerrainRiver.d.ts +180 -0
  228. package/dist/esm/visualization/SampledTerrainRiver.js +1 -0
  229. package/dist/esm/visualization/SampledTerrainWater.d.ts +170 -0
  230. package/dist/esm/visualization/SampledTerrainWater.js +1 -0
  231. package/dist/esm/visualization/WindField.d.ts +72 -0
  232. package/dist/esm/visualization/WindField.js +1 -0
  233. package/dist/esm/visualization/windCore.d.ts +161 -0
  234. package/dist/esm/visualization/windCore.js +8 -0
  235. package/dist/umd/deeptwins-engine-3d.min.css +1 -1
  236. package/dist/umd/deeptwins-engine-3d.min.js +1 -1
  237. package/package.json +6 -4
@@ -0,0 +1,691 @@
1
+ /**
2
+ * @license
3
+ * Cesium - https://github.com/CesiumGS/cesium
4
+ * Version 0.0.42
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
+ PolylinePipeline_default
28
+ } from "./chunk-IZSK4DVF.js";
29
+ import {
30
+ EllipsoidTangentPlane_default
31
+ } from "./chunk-YIKGVMJ5.js";
32
+ import {
33
+ Cartesian4_default,
34
+ Matrix4_default,
35
+ Quaternion_default,
36
+ Transforms_default
37
+ } from "./chunk-R4W6IRJZ.js";
38
+ import {
39
+ Cartesian2_default,
40
+ Cartesian3_default,
41
+ Cartographic_default,
42
+ Matrix3_default
43
+ } from "./chunk-ZW52HXFN.js";
44
+ import {
45
+ Math_default
46
+ } from "./chunk-HSJSUPQV.js";
47
+ import {
48
+ defaultValue_default
49
+ } from "./chunk-ATLWOZFF.js";
50
+ import {
51
+ DeveloperError_default
52
+ } from "./chunk-PN3GIZ5Q.js";
53
+ import {
54
+ defined_default
55
+ } from "./chunk-JKLMRPKK.js";
56
+
57
+ // packages/engine/Source/Core/CornerType.js
58
+ var CornerType = {
59
+ /**
60
+ * <img src="Images/CornerTypeRounded.png" style="vertical-align: middle;" width="186" height="189" />
61
+ *
62
+ * Corner has a smooth edge.
63
+ * @type {number}
64
+ * @constant
65
+ */
66
+ ROUNDED: 0,
67
+ /**
68
+ * <img src="Images/CornerTypeMitered.png" style="vertical-align: middle;" width="186" height="189" />
69
+ *
70
+ * Corner point is the intersection of adjacent edges.
71
+ * @type {number}
72
+ * @constant
73
+ */
74
+ MITERED: 1,
75
+ /**
76
+ * <img src="Images/CornerTypeBeveled.png" style="vertical-align: middle;" width="186" height="189" />
77
+ *
78
+ * Corner is clipped.
79
+ * @type {number}
80
+ * @constant
81
+ */
82
+ BEVELED: 2
83
+ };
84
+ var CornerType_default = Object.freeze(CornerType);
85
+
86
+ // packages/engine/Source/Core/oneTimeWarning.js
87
+ var warnings = {};
88
+ function oneTimeWarning(identifier, message) {
89
+ if (!defined_default(identifier)) {
90
+ throw new DeveloperError_default("identifier is required.");
91
+ }
92
+ if (!defined_default(warnings[identifier])) {
93
+ warnings[identifier] = true;
94
+ console.warn(defaultValue_default(message, identifier));
95
+ }
96
+ }
97
+ oneTimeWarning.geometryOutlines = "Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";
98
+ oneTimeWarning.geometryZIndex = "Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";
99
+ oneTimeWarning.geometryHeightReference = "Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";
100
+ oneTimeWarning.geometryExtrudedHeightReference = "Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";
101
+ var oneTimeWarning_default = oneTimeWarning;
102
+
103
+ // packages/engine/Source/Core/PolylineVolumeGeometryLibrary.js
104
+ var scratch2Array = [new Cartesian3_default(), new Cartesian3_default()];
105
+ var scratchCartesian1 = new Cartesian3_default();
106
+ var scratchCartesian2 = new Cartesian3_default();
107
+ var scratchCartesian3 = new Cartesian3_default();
108
+ var scratchCartesian4 = new Cartesian3_default();
109
+ var scratchCartesian5 = new Cartesian3_default();
110
+ var scratchCartesian6 = new Cartesian3_default();
111
+ var scratchCartesian7 = new Cartesian3_default();
112
+ var scratchCartesian8 = new Cartesian3_default();
113
+ var scratchCartesian9 = new Cartesian3_default();
114
+ var scratch1 = new Cartesian3_default();
115
+ var scratch2 = new Cartesian3_default();
116
+ var PolylineVolumeGeometryLibrary = {};
117
+ var cartographic = new Cartographic_default();
118
+ function scaleToSurface(positions, ellipsoid) {
119
+ const heights = new Array(positions.length);
120
+ for (let i = 0; i < positions.length; i++) {
121
+ const pos = positions[i];
122
+ cartographic = ellipsoid.cartesianToCartographic(pos, cartographic);
123
+ heights[i] = cartographic.height;
124
+ positions[i] = ellipsoid.scaleToGeodeticSurface(pos, pos);
125
+ }
126
+ return heights;
127
+ }
128
+ function subdivideHeights(points, h0, h1, granularity) {
129
+ const p0 = points[0];
130
+ const p1 = points[1];
131
+ const angleBetween = Cartesian3_default.angleBetween(p0, p1);
132
+ const numPoints = Math.ceil(angleBetween / granularity);
133
+ const heights = new Array(numPoints);
134
+ let i;
135
+ if (h0 === h1) {
136
+ for (i = 0; i < numPoints; i++) {
137
+ heights[i] = h0;
138
+ }
139
+ heights.push(h1);
140
+ return heights;
141
+ }
142
+ const dHeight = h1 - h0;
143
+ const heightPerVertex = dHeight / numPoints;
144
+ for (i = 1; i < numPoints; i++) {
145
+ const h = h0 + i * heightPerVertex;
146
+ heights[i] = h;
147
+ }
148
+ heights[0] = h0;
149
+ heights.push(h1);
150
+ return heights;
151
+ }
152
+ var nextScratch = new Cartesian3_default();
153
+ var prevScratch = new Cartesian3_default();
154
+ function computeRotationAngle(start, end, position, ellipsoid) {
155
+ const tangentPlane = new EllipsoidTangentPlane_default(position, ellipsoid);
156
+ const next = tangentPlane.projectPointOntoPlane(
157
+ Cartesian3_default.add(position, start, nextScratch),
158
+ nextScratch
159
+ );
160
+ const prev = tangentPlane.projectPointOntoPlane(
161
+ Cartesian3_default.add(position, end, prevScratch),
162
+ prevScratch
163
+ );
164
+ const angle = Cartesian2_default.angleBetween(next, prev);
165
+ return prev.x * next.y - prev.y * next.x >= 0 ? -angle : angle;
166
+ }
167
+ var negativeX = new Cartesian3_default(-1, 0, 0);
168
+ var transform = new Matrix4_default();
169
+ var translation = new Matrix4_default();
170
+ var rotationZ = new Matrix3_default();
171
+ var scaleMatrix = Matrix3_default.IDENTITY.clone();
172
+ var westScratch = new Cartesian3_default();
173
+ var finalPosScratch = new Cartesian4_default();
174
+ var heightCartesian = new Cartesian3_default();
175
+ function addPosition(center, left, shape, finalPositions, ellipsoid, height, xScalar, repeat) {
176
+ let west = westScratch;
177
+ let finalPosition = finalPosScratch;
178
+ transform = Transforms_default.eastNorthUpToFixedFrame(center, ellipsoid, transform);
179
+ west = Matrix4_default.multiplyByPointAsVector(transform, negativeX, west);
180
+ west = Cartesian3_default.normalize(west, west);
181
+ const angle = computeRotationAngle(west, left, center, ellipsoid);
182
+ rotationZ = Matrix3_default.fromRotationZ(angle, rotationZ);
183
+ heightCartesian.z = height;
184
+ transform = Matrix4_default.multiplyTransformation(
185
+ transform,
186
+ Matrix4_default.fromRotationTranslation(rotationZ, heightCartesian, translation),
187
+ transform
188
+ );
189
+ const scale = scaleMatrix;
190
+ scale[0] = xScalar;
191
+ for (let j = 0; j < repeat; j++) {
192
+ for (let i = 0; i < shape.length; i += 3) {
193
+ finalPosition = Cartesian3_default.fromArray(shape, i, finalPosition);
194
+ finalPosition = Matrix3_default.multiplyByVector(
195
+ scale,
196
+ finalPosition,
197
+ finalPosition
198
+ );
199
+ finalPosition = Matrix4_default.multiplyByPoint(
200
+ transform,
201
+ finalPosition,
202
+ finalPosition
203
+ );
204
+ finalPositions.push(finalPosition.x, finalPosition.y, finalPosition.z);
205
+ }
206
+ }
207
+ return finalPositions;
208
+ }
209
+ var centerScratch = new Cartesian3_default();
210
+ function addPositions(centers, left, shape, finalPositions, ellipsoid, heights, xScalar) {
211
+ for (let i = 0; i < centers.length; i += 3) {
212
+ const center = Cartesian3_default.fromArray(centers, i, centerScratch);
213
+ finalPositions = addPosition(
214
+ center,
215
+ left,
216
+ shape,
217
+ finalPositions,
218
+ ellipsoid,
219
+ heights[i / 3],
220
+ xScalar,
221
+ 1
222
+ );
223
+ }
224
+ return finalPositions;
225
+ }
226
+ function convertShapeTo3DDuplicate(shape2D, boundingRectangle) {
227
+ const length = shape2D.length;
228
+ const shape = new Array(length * 6);
229
+ let index = 0;
230
+ const xOffset = boundingRectangle.x + boundingRectangle.width / 2;
231
+ const yOffset = boundingRectangle.y + boundingRectangle.height / 2;
232
+ let point = shape2D[0];
233
+ shape[index++] = point.x - xOffset;
234
+ shape[index++] = 0;
235
+ shape[index++] = point.y - yOffset;
236
+ for (let i = 1; i < length; i++) {
237
+ point = shape2D[i];
238
+ const x = point.x - xOffset;
239
+ const z = point.y - yOffset;
240
+ shape[index++] = x;
241
+ shape[index++] = 0;
242
+ shape[index++] = z;
243
+ shape[index++] = x;
244
+ shape[index++] = 0;
245
+ shape[index++] = z;
246
+ }
247
+ point = shape2D[0];
248
+ shape[index++] = point.x - xOffset;
249
+ shape[index++] = 0;
250
+ shape[index++] = point.y - yOffset;
251
+ return shape;
252
+ }
253
+ function convertShapeTo3D(shape2D, boundingRectangle) {
254
+ const length = shape2D.length;
255
+ const shape = new Array(length * 3);
256
+ let index = 0;
257
+ const xOffset = boundingRectangle.x + boundingRectangle.width / 2;
258
+ const yOffset = boundingRectangle.y + boundingRectangle.height / 2;
259
+ for (let i = 0; i < length; i++) {
260
+ shape[index++] = shape2D[i].x - xOffset;
261
+ shape[index++] = 0;
262
+ shape[index++] = shape2D[i].y - yOffset;
263
+ }
264
+ return shape;
265
+ }
266
+ var quaterion = new Quaternion_default();
267
+ var startPointScratch = new Cartesian3_default();
268
+ var rotMatrix = new Matrix3_default();
269
+ function computeRoundCorner(pivot, startPoint, endPoint, cornerType, leftIsOutside, ellipsoid, finalPositions, shape, height, duplicatePoints) {
270
+ const angle = Cartesian3_default.angleBetween(
271
+ Cartesian3_default.subtract(startPoint, pivot, scratch1),
272
+ Cartesian3_default.subtract(endPoint, pivot, scratch2)
273
+ );
274
+ const granularity = cornerType === CornerType_default.BEVELED ? 0 : Math.ceil(angle / Math_default.toRadians(5));
275
+ let m;
276
+ if (leftIsOutside) {
277
+ m = Matrix3_default.fromQuaternion(
278
+ Quaternion_default.fromAxisAngle(
279
+ Cartesian3_default.negate(pivot, scratch1),
280
+ angle / (granularity + 1),
281
+ quaterion
282
+ ),
283
+ rotMatrix
284
+ );
285
+ } else {
286
+ m = Matrix3_default.fromQuaternion(
287
+ Quaternion_default.fromAxisAngle(pivot, angle / (granularity + 1), quaterion),
288
+ rotMatrix
289
+ );
290
+ }
291
+ let left;
292
+ let surfacePoint;
293
+ startPoint = Cartesian3_default.clone(startPoint, startPointScratch);
294
+ if (granularity > 0) {
295
+ const repeat = duplicatePoints ? 2 : 1;
296
+ for (let i = 0; i < granularity; i++) {
297
+ startPoint = Matrix3_default.multiplyByVector(m, startPoint, startPoint);
298
+ left = Cartesian3_default.subtract(startPoint, pivot, scratch1);
299
+ left = Cartesian3_default.normalize(left, left);
300
+ if (!leftIsOutside) {
301
+ left = Cartesian3_default.negate(left, left);
302
+ }
303
+ surfacePoint = ellipsoid.scaleToGeodeticSurface(startPoint, scratch2);
304
+ finalPositions = addPosition(
305
+ surfacePoint,
306
+ left,
307
+ shape,
308
+ finalPositions,
309
+ ellipsoid,
310
+ height,
311
+ 1,
312
+ repeat
313
+ );
314
+ }
315
+ } else {
316
+ left = Cartesian3_default.subtract(startPoint, pivot, scratch1);
317
+ left = Cartesian3_default.normalize(left, left);
318
+ if (!leftIsOutside) {
319
+ left = Cartesian3_default.negate(left, left);
320
+ }
321
+ surfacePoint = ellipsoid.scaleToGeodeticSurface(startPoint, scratch2);
322
+ finalPositions = addPosition(
323
+ surfacePoint,
324
+ left,
325
+ shape,
326
+ finalPositions,
327
+ ellipsoid,
328
+ height,
329
+ 1,
330
+ 1
331
+ );
332
+ endPoint = Cartesian3_default.clone(endPoint, startPointScratch);
333
+ left = Cartesian3_default.subtract(endPoint, pivot, scratch1);
334
+ left = Cartesian3_default.normalize(left, left);
335
+ if (!leftIsOutside) {
336
+ left = Cartesian3_default.negate(left, left);
337
+ }
338
+ surfacePoint = ellipsoid.scaleToGeodeticSurface(endPoint, scratch2);
339
+ finalPositions = addPosition(
340
+ surfacePoint,
341
+ left,
342
+ shape,
343
+ finalPositions,
344
+ ellipsoid,
345
+ height,
346
+ 1,
347
+ 1
348
+ );
349
+ }
350
+ return finalPositions;
351
+ }
352
+ PolylineVolumeGeometryLibrary.removeDuplicatesFromShape = function(shapePositions) {
353
+ const length = shapePositions.length;
354
+ const cleanedPositions = [];
355
+ for (let i0 = length - 1, i1 = 0; i1 < length; i0 = i1++) {
356
+ const v0 = shapePositions[i0];
357
+ const v1 = shapePositions[i1];
358
+ if (!Cartesian2_default.equals(v0, v1)) {
359
+ cleanedPositions.push(v1);
360
+ }
361
+ }
362
+ return cleanedPositions;
363
+ };
364
+ PolylineVolumeGeometryLibrary.angleIsGreaterThanPi = function(forward, backward, position, ellipsoid) {
365
+ const tangentPlane = new EllipsoidTangentPlane_default(position, ellipsoid);
366
+ const next = tangentPlane.projectPointOntoPlane(
367
+ Cartesian3_default.add(position, forward, nextScratch),
368
+ nextScratch
369
+ );
370
+ const prev = tangentPlane.projectPointOntoPlane(
371
+ Cartesian3_default.add(position, backward, prevScratch),
372
+ prevScratch
373
+ );
374
+ return prev.x * next.y - prev.y * next.x >= 0;
375
+ };
376
+ var scratchForwardProjection = new Cartesian3_default();
377
+ var scratchBackwardProjection = new Cartesian3_default();
378
+ PolylineVolumeGeometryLibrary.computePositions = function(positions, shape2D, boundingRectangle, geometry, duplicatePoints) {
379
+ const ellipsoid = geometry._ellipsoid;
380
+ const heights = scaleToSurface(positions, ellipsoid);
381
+ const granularity = geometry._granularity;
382
+ const cornerType = geometry._cornerType;
383
+ const shapeForSides = duplicatePoints ? convertShapeTo3DDuplicate(shape2D, boundingRectangle) : convertShapeTo3D(shape2D, boundingRectangle);
384
+ const shapeForEnds = duplicatePoints ? convertShapeTo3D(shape2D, boundingRectangle) : void 0;
385
+ const heightOffset = boundingRectangle.height / 2;
386
+ const width = boundingRectangle.width / 2;
387
+ let length = positions.length;
388
+ let finalPositions = [];
389
+ let ends = duplicatePoints ? [] : void 0;
390
+ let forward = scratchCartesian1;
391
+ let backward = scratchCartesian2;
392
+ let cornerDirection = scratchCartesian3;
393
+ let surfaceNormal = scratchCartesian4;
394
+ let pivot = scratchCartesian5;
395
+ let start = scratchCartesian6;
396
+ let end = scratchCartesian7;
397
+ let left = scratchCartesian8;
398
+ let previousPosition = scratchCartesian9;
399
+ let position = positions[0];
400
+ let nextPosition = positions[1];
401
+ surfaceNormal = ellipsoid.geodeticSurfaceNormal(position, surfaceNormal);
402
+ forward = Cartesian3_default.subtract(nextPosition, position, forward);
403
+ forward = Cartesian3_default.normalize(forward, forward);
404
+ left = Cartesian3_default.cross(surfaceNormal, forward, left);
405
+ left = Cartesian3_default.normalize(left, left);
406
+ let h0 = heights[0];
407
+ let h1 = heights[1];
408
+ if (duplicatePoints) {
409
+ ends = addPosition(
410
+ position,
411
+ left,
412
+ shapeForEnds,
413
+ ends,
414
+ ellipsoid,
415
+ h0 + heightOffset,
416
+ 1,
417
+ 1
418
+ );
419
+ }
420
+ previousPosition = Cartesian3_default.clone(position, previousPosition);
421
+ position = nextPosition;
422
+ backward = Cartesian3_default.negate(forward, backward);
423
+ let subdividedHeights;
424
+ let subdividedPositions;
425
+ for (let i = 1; i < length - 1; i++) {
426
+ const repeat = duplicatePoints ? 2 : 1;
427
+ nextPosition = positions[i + 1];
428
+ if (position.equals(nextPosition)) {
429
+ oneTimeWarning_default(
430
+ "Positions are too close and are considered equivalent with rounding error."
431
+ );
432
+ continue;
433
+ }
434
+ forward = Cartesian3_default.subtract(nextPosition, position, forward);
435
+ forward = Cartesian3_default.normalize(forward, forward);
436
+ surfaceNormal = ellipsoid.geodeticSurfaceNormal(position, surfaceNormal);
437
+ const forwardProjection = Cartesian3_default.multiplyByScalar(
438
+ surfaceNormal,
439
+ Cartesian3_default.dot(forward, surfaceNormal),
440
+ scratchForwardProjection
441
+ );
442
+ Cartesian3_default.subtract(forward, forwardProjection, forwardProjection);
443
+ Cartesian3_default.normalize(forwardProjection, forwardProjection);
444
+ const backwardProjection = Cartesian3_default.multiplyByScalar(
445
+ surfaceNormal,
446
+ Cartesian3_default.dot(backward, surfaceNormal),
447
+ scratchBackwardProjection
448
+ );
449
+ Cartesian3_default.subtract(backward, backwardProjection, backwardProjection);
450
+ Cartesian3_default.normalize(backwardProjection, backwardProjection);
451
+ const doCorner = !Math_default.equalsEpsilon(
452
+ Math.abs(Cartesian3_default.dot(forwardProjection, backwardProjection)),
453
+ 1,
454
+ Math_default.EPSILON7
455
+ );
456
+ if (doCorner) {
457
+ cornerDirection = Cartesian3_default.add(forward, backward, cornerDirection);
458
+ cornerDirection = Cartesian3_default.normalize(cornerDirection, cornerDirection);
459
+ cornerDirection = Cartesian3_default.cross(
460
+ cornerDirection,
461
+ surfaceNormal,
462
+ cornerDirection
463
+ );
464
+ cornerDirection = Cartesian3_default.cross(
465
+ surfaceNormal,
466
+ cornerDirection,
467
+ cornerDirection
468
+ );
469
+ cornerDirection = Cartesian3_default.normalize(cornerDirection, cornerDirection);
470
+ const scalar = 1 / Math.max(
471
+ 0.25,
472
+ Cartesian3_default.magnitude(
473
+ Cartesian3_default.cross(cornerDirection, backward, scratch1)
474
+ )
475
+ );
476
+ const leftIsOutside = PolylineVolumeGeometryLibrary.angleIsGreaterThanPi(
477
+ forward,
478
+ backward,
479
+ position,
480
+ ellipsoid
481
+ );
482
+ if (leftIsOutside) {
483
+ pivot = Cartesian3_default.add(
484
+ position,
485
+ Cartesian3_default.multiplyByScalar(
486
+ cornerDirection,
487
+ scalar * width,
488
+ cornerDirection
489
+ ),
490
+ pivot
491
+ );
492
+ start = Cartesian3_default.add(
493
+ pivot,
494
+ Cartesian3_default.multiplyByScalar(left, width, start),
495
+ start
496
+ );
497
+ scratch2Array[0] = Cartesian3_default.clone(previousPosition, scratch2Array[0]);
498
+ scratch2Array[1] = Cartesian3_default.clone(start, scratch2Array[1]);
499
+ subdividedHeights = subdivideHeights(
500
+ scratch2Array,
501
+ h0 + heightOffset,
502
+ h1 + heightOffset,
503
+ granularity
504
+ );
505
+ subdividedPositions = PolylinePipeline_default.generateArc({
506
+ positions: scratch2Array,
507
+ granularity,
508
+ ellipsoid
509
+ });
510
+ finalPositions = addPositions(
511
+ subdividedPositions,
512
+ left,
513
+ shapeForSides,
514
+ finalPositions,
515
+ ellipsoid,
516
+ subdividedHeights,
517
+ 1
518
+ );
519
+ left = Cartesian3_default.cross(surfaceNormal, forward, left);
520
+ left = Cartesian3_default.normalize(left, left);
521
+ end = Cartesian3_default.add(
522
+ pivot,
523
+ Cartesian3_default.multiplyByScalar(left, width, end),
524
+ end
525
+ );
526
+ if (cornerType === CornerType_default.ROUNDED || cornerType === CornerType_default.BEVELED) {
527
+ computeRoundCorner(
528
+ pivot,
529
+ start,
530
+ end,
531
+ cornerType,
532
+ leftIsOutside,
533
+ ellipsoid,
534
+ finalPositions,
535
+ shapeForSides,
536
+ h1 + heightOffset,
537
+ duplicatePoints
538
+ );
539
+ } else {
540
+ cornerDirection = Cartesian3_default.negate(cornerDirection, cornerDirection);
541
+ finalPositions = addPosition(
542
+ position,
543
+ cornerDirection,
544
+ shapeForSides,
545
+ finalPositions,
546
+ ellipsoid,
547
+ h1 + heightOffset,
548
+ scalar,
549
+ repeat
550
+ );
551
+ }
552
+ previousPosition = Cartesian3_default.clone(end, previousPosition);
553
+ } else {
554
+ pivot = Cartesian3_default.add(
555
+ position,
556
+ Cartesian3_default.multiplyByScalar(
557
+ cornerDirection,
558
+ scalar * width,
559
+ cornerDirection
560
+ ),
561
+ pivot
562
+ );
563
+ start = Cartesian3_default.add(
564
+ pivot,
565
+ Cartesian3_default.multiplyByScalar(left, -width, start),
566
+ start
567
+ );
568
+ scratch2Array[0] = Cartesian3_default.clone(previousPosition, scratch2Array[0]);
569
+ scratch2Array[1] = Cartesian3_default.clone(start, scratch2Array[1]);
570
+ subdividedHeights = subdivideHeights(
571
+ scratch2Array,
572
+ h0 + heightOffset,
573
+ h1 + heightOffset,
574
+ granularity
575
+ );
576
+ subdividedPositions = PolylinePipeline_default.generateArc({
577
+ positions: scratch2Array,
578
+ granularity,
579
+ ellipsoid
580
+ });
581
+ finalPositions = addPositions(
582
+ subdividedPositions,
583
+ left,
584
+ shapeForSides,
585
+ finalPositions,
586
+ ellipsoid,
587
+ subdividedHeights,
588
+ 1
589
+ );
590
+ left = Cartesian3_default.cross(surfaceNormal, forward, left);
591
+ left = Cartesian3_default.normalize(left, left);
592
+ end = Cartesian3_default.add(
593
+ pivot,
594
+ Cartesian3_default.multiplyByScalar(left, -width, end),
595
+ end
596
+ );
597
+ if (cornerType === CornerType_default.ROUNDED || cornerType === CornerType_default.BEVELED) {
598
+ computeRoundCorner(
599
+ pivot,
600
+ start,
601
+ end,
602
+ cornerType,
603
+ leftIsOutside,
604
+ ellipsoid,
605
+ finalPositions,
606
+ shapeForSides,
607
+ h1 + heightOffset,
608
+ duplicatePoints
609
+ );
610
+ } else {
611
+ finalPositions = addPosition(
612
+ position,
613
+ cornerDirection,
614
+ shapeForSides,
615
+ finalPositions,
616
+ ellipsoid,
617
+ h1 + heightOffset,
618
+ scalar,
619
+ repeat
620
+ );
621
+ }
622
+ previousPosition = Cartesian3_default.clone(end, previousPosition);
623
+ }
624
+ backward = Cartesian3_default.negate(forward, backward);
625
+ } else {
626
+ finalPositions = addPosition(
627
+ previousPosition,
628
+ left,
629
+ shapeForSides,
630
+ finalPositions,
631
+ ellipsoid,
632
+ h0 + heightOffset,
633
+ 1,
634
+ 1
635
+ );
636
+ previousPosition = position;
637
+ }
638
+ h0 = h1;
639
+ h1 = heights[i + 1];
640
+ position = nextPosition;
641
+ }
642
+ scratch2Array[0] = Cartesian3_default.clone(previousPosition, scratch2Array[0]);
643
+ scratch2Array[1] = Cartesian3_default.clone(position, scratch2Array[1]);
644
+ subdividedHeights = subdivideHeights(
645
+ scratch2Array,
646
+ h0 + heightOffset,
647
+ h1 + heightOffset,
648
+ granularity
649
+ );
650
+ subdividedPositions = PolylinePipeline_default.generateArc({
651
+ positions: scratch2Array,
652
+ granularity,
653
+ ellipsoid
654
+ });
655
+ finalPositions = addPositions(
656
+ subdividedPositions,
657
+ left,
658
+ shapeForSides,
659
+ finalPositions,
660
+ ellipsoid,
661
+ subdividedHeights,
662
+ 1
663
+ );
664
+ if (duplicatePoints) {
665
+ ends = addPosition(
666
+ position,
667
+ left,
668
+ shapeForEnds,
669
+ ends,
670
+ ellipsoid,
671
+ h1 + heightOffset,
672
+ 1,
673
+ 1
674
+ );
675
+ }
676
+ length = finalPositions.length;
677
+ const posLength = duplicatePoints ? length + ends.length : length;
678
+ const combinedPositions = new Float64Array(posLength);
679
+ combinedPositions.set(finalPositions);
680
+ if (duplicatePoints) {
681
+ combinedPositions.set(ends, length);
682
+ }
683
+ return combinedPositions;
684
+ };
685
+ var PolylineVolumeGeometryLibrary_default = PolylineVolumeGeometryLibrary;
686
+
687
+ export {
688
+ CornerType_default,
689
+ oneTimeWarning_default,
690
+ PolylineVolumeGeometryLibrary_default
691
+ };