@cesium/engine 26.1.0 → 26.3.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 (325) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +764 -520
  2. package/Build/Workers/{chunk-HS6AD4P2.js → chunk-2DKJSPYF.js} +14 -14
  3. package/Build/Workers/{chunk-QVLAFFJY.js → chunk-2PWVICP6.js} +1 -1
  4. package/Build/Workers/{chunk-ILME5BXA.js → chunk-2YY724ZX.js} +8 -8
  5. package/Build/Workers/{chunk-ENNFMWDW.js → chunk-4DMAXPKB.js} +12 -12
  6. package/Build/Workers/{chunk-CDJDJ5LK.js → chunk-4LRFYRBX.js} +2 -2
  7. package/Build/Workers/{chunk-76FDC45O.js → chunk-5JCZHJUU.js} +13 -13
  8. package/Build/Workers/{chunk-5LSOO2KD.js → chunk-5KG7KDDW.js} +7 -7
  9. package/Build/Workers/{chunk-A6X24AZI.js → chunk-6BSNYZZG.js} +5 -5
  10. package/Build/Workers/{chunk-IGAZBTFZ.js → chunk-6R6SGKYN.js} +6 -6
  11. package/Build/Workers/{chunk-SS5ABQGY.js → chunk-6V2KDEHL.js} +4 -4
  12. package/Build/Workers/{chunk-ZMBHFYOX.js → chunk-75BC2IHI.js} +7 -7
  13. package/Build/Workers/{chunk-LGNDTZVX.js → chunk-7SESBH2I.js} +4 -4
  14. package/Build/Workers/{chunk-CLCTQVVL.js → chunk-7WXBTNRV.js} +8 -8
  15. package/Build/Workers/{chunk-WBSY7HDY.js → chunk-A7SMPV6B.js} +12 -12
  16. package/Build/Workers/{chunk-CEEZE3YZ.js → chunk-ATSXKJ3L.js} +7 -7
  17. package/Build/Workers/{chunk-AHWAZRBV.js → chunk-B4AVL7VI.js} +1 -1
  18. package/Build/Workers/{chunk-6HK6IXK2.js → chunk-B7Q2WF6Q.js} +4 -4
  19. package/Build/Workers/{chunk-YKU2Q3A2.js → chunk-BNDSDQ7D.js} +9 -12
  20. package/Build/Workers/{chunk-R4FPNAZ2.js → chunk-CKK6CUXK.js} +9 -9
  21. package/Build/Workers/{chunk-FCP2QY4G.js → chunk-COKOYTRS.js} +5 -5
  22. package/Build/Workers/{chunk-7D2HZKH7.js → chunk-CQ4TZXAT.js} +7 -7
  23. package/Build/Workers/{chunk-TVZD72WJ.js → chunk-DKSANM4A.js} +12 -12
  24. package/Build/Workers/{chunk-FDK4K5IA.js → chunk-DZK34ZVD.js} +1 -1
  25. package/Build/Workers/{chunk-N7CCOFLX.js → chunk-E7G32DWL.js} +1 -1
  26. package/Build/Workers/{chunk-XDWCTQCZ.js → chunk-EDETO6NY.js} +2 -2
  27. package/Build/Workers/{chunk-2EFYUSUY.js → chunk-F34TJJLA.js} +16 -16
  28. package/Build/Workers/{chunk-GXWQZBAI.js → chunk-GLHDTTTO.js} +2 -2
  29. package/Build/Workers/{chunk-T5QBPLE3.js → chunk-GS7RY2DH.js} +11 -11
  30. package/Build/Workers/{chunk-C7JQVRLM.js → chunk-HDD3RFLT.js} +25 -3
  31. package/Build/Workers/{chunk-E7NZJOK7.js → chunk-HDPNFEPP.js} +121 -93
  32. package/Build/Workers/{chunk-VAL7DYNR.js → chunk-JBJ6BRIM.js} +4 -4
  33. package/Build/Workers/{chunk-XQ3SKCMM.js → chunk-JKTWW7IO.js} +5 -5
  34. package/Build/Workers/{chunk-UVO6COT2.js → chunk-JL4NWWQY.js} +5 -5
  35. package/Build/Workers/{chunk-DBD5WWG2.js → chunk-JMUUAW4X.js} +10 -10
  36. package/Build/Workers/{chunk-UEY73NRN.js → chunk-KBGAHN5R.js} +1 -1
  37. package/Build/Workers/{chunk-LD64RPYV.js → chunk-KEWK6VZL.js} +12 -12
  38. package/Build/Workers/{chunk-JW6OZT4R.js → chunk-L73K5UPP.js} +10 -10
  39. package/Build/Workers/{chunk-DIGUUD6G.js → chunk-LL2SGJYH.js} +6 -6
  40. package/Build/Workers/{chunk-XLXSDIP5.js → chunk-LYJUL4XQ.js} +6 -6
  41. package/Build/Workers/{chunk-SM2CDCYF.js → chunk-M6W46OAP.js} +7 -7
  42. package/Build/Workers/{chunk-EHTS2YPT.js → chunk-MDDKCLMF.js} +17 -17
  43. package/Build/Workers/{chunk-FGQFQHN5.js → chunk-MUW4DJV7.js} +18 -18
  44. package/Build/Workers/{chunk-HHV3MCGV.js → chunk-N5YK44FS.js} +5 -5
  45. package/Build/Workers/{chunk-RG4F5R57.js → chunk-NZQUP52G.js} +9 -9
  46. package/Build/Workers/{chunk-B4CQSLZJ.js → chunk-PKZA44LH.js} +6 -6
  47. package/Build/Workers/{chunk-OBEU25PI.js → chunk-Q2JS5LCB.js} +17 -17
  48. package/Build/Workers/{chunk-KGXSYGBG.js → chunk-QTAEVUED.js} +13 -13
  49. package/Build/Workers/{chunk-NIWITKQK.js → chunk-SEJIXZZ4.js} +11 -11
  50. package/Build/Workers/{chunk-SGRGNDOD.js → chunk-SL2HCFYW.js} +10 -10
  51. package/Build/Workers/{chunk-SF6K72D7.js → chunk-SLHK3KAR.js} +5 -5
  52. package/Build/Workers/{chunk-JKXV6PG5.js → chunk-UZY5XRL2.js} +1 -1
  53. package/Build/Workers/{chunk-LNSQVXFH.js → chunk-VRECSMG3.js} +2 -2
  54. package/Build/Workers/{chunk-A3O6EDBK.js → chunk-X27HKF5E.js} +2 -2
  55. package/Build/Workers/{chunk-7KVKHY7O.js → chunk-XBY3354M.js} +6 -6
  56. package/Build/Workers/{chunk-GSWMAFTE.js → chunk-XRZCS3HE.js} +23 -16
  57. package/Build/Workers/{chunk-6YR6JBMY.js → chunk-XSIUYAT6.js} +2 -2
  58. package/Build/Workers/{chunk-ZSGUV73H.js → chunk-Z2DW5NM2.js} +6 -6
  59. package/Build/Workers/combineGeometry.js +24 -24
  60. package/Build/Workers/createBoxGeometry.js +18 -18
  61. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  62. package/Build/Workers/createCircleGeometry.js +26 -26
  63. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  64. package/Build/Workers/createCoplanarPolygonGeometry.js +35 -35
  65. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  66. package/Build/Workers/createCorridorGeometry.js +31 -33
  67. package/Build/Workers/createCorridorOutlineGeometry.js +29 -31
  68. package/Build/Workers/createCylinderGeometry.js +20 -20
  69. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  70. package/Build/Workers/createEllipseGeometry.js +26 -26
  71. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  73. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  74. package/Build/Workers/createFrustumGeometry.js +18 -18
  75. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  76. package/Build/Workers/createGeometry.js +24 -24
  77. package/Build/Workers/createGroundPolylineGeometry.js +24 -24
  78. package/Build/Workers/createPlaneGeometry.js +16 -16
  79. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  80. package/Build/Workers/createPolygonGeometry.js +34 -34
  81. package/Build/Workers/createPolygonOutlineGeometry.js +31 -31
  82. package/Build/Workers/createPolylineGeometry.js +26 -26
  83. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  84. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  85. package/Build/Workers/createRectangleGeometry.js +27 -27
  86. package/Build/Workers/createRectangleOutlineGeometry.js +21 -21
  87. package/Build/Workers/createSimplePolylineGeometry.js +24 -24
  88. package/Build/Workers/createSphereGeometry.js +19 -19
  89. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  90. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  91. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  92. package/Build/Workers/createVectorTileGeometries.js +24 -24
  93. package/Build/Workers/createVectorTilePoints.js +13 -13
  94. package/Build/Workers/createVectorTilePolygons.js +22 -22
  95. package/Build/Workers/createVectorTilePolylines.js +14 -14
  96. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  97. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  98. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  99. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  100. package/Build/Workers/createWallGeometry.js +24 -24
  101. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  102. package/Build/Workers/decodeDraco.js +10 -10
  103. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  104. package/Build/Workers/decodeI3S.js +10 -10
  105. package/Build/Workers/gaussianSplatSorter.js +4 -4
  106. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  107. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  108. package/Build/Workers/transcodeKTX2.js +6 -6
  109. package/Build/Workers/transferTypedArrayTest.js +1 -1
  110. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  111. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  112. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +1 -5
  113. package/Source/Core/BoundingSphere.js +0 -3
  114. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +3 -4
  115. package/Source/Core/CoplanarPolygonGeometry.js +2 -2
  116. package/Source/Core/CorridorGeometry.js +2 -4
  117. package/Source/Core/CorridorOutlineGeometry.js +1 -3
  118. package/Source/Core/EarthOrientationParameters.js +2 -2
  119. package/Source/Core/EllipseGeometryLibrary.js +2 -2
  120. package/Source/Core/EllipsoidGeodesic.js +3 -3
  121. package/Source/Core/EllipsoidRhumbLine.js +1 -1
  122. package/Source/Core/GroundPolylineGeometry.js +2 -2
  123. package/Source/Core/Heap.js +1 -1
  124. package/Source/Core/HermitePolynomialApproximation.js +215 -179
  125. package/Source/Core/InterpolationAlgorithm.js +1 -0
  126. package/Source/Core/Ion.js +1 -1
  127. package/Source/Core/IonResource.js +5 -0
  128. package/Source/Core/IonSnapGeometryType.js +59 -0
  129. package/Source/Core/IonSnapHeat.js +33 -0
  130. package/Source/Core/IonSnapMode.js +45 -0
  131. package/Source/Core/IonSnapParentGeometryType.js +52 -0
  132. package/Source/Core/IonSnapService.js +369 -0
  133. package/Source/Core/JulianDate.js +1 -1
  134. package/Source/Core/LagrangePolynomialApproximation.js +55 -52
  135. package/Source/Core/LinearApproximation.js +69 -66
  136. package/Source/Core/Math.js +59 -0
  137. package/Source/Core/Matrix2.js +2 -2
  138. package/Source/Core/Matrix3.js +2 -2
  139. package/Source/Core/OrthographicFrustum.js +1 -1
  140. package/Source/Core/PerspectiveFrustum.js +1 -1
  141. package/Source/Core/PolygonGeometry.js +2 -2
  142. package/Source/Core/PolygonGeometryLibrary.js +1 -1
  143. package/Source/Core/PolygonOutlineGeometry.js +1 -1
  144. package/Source/Core/PolylineGeometry.js +1 -1
  145. package/Source/Core/PolylineVolumeGeometryLibrary.js +1 -1
  146. package/Source/Core/Rectangle.js +7 -1
  147. package/Source/Core/RectangleOutlineGeometry.js +1 -1
  148. package/Source/Core/SimplePolylineGeometry.js +1 -1
  149. package/Source/Core/SnapService.js +63 -0
  150. package/Source/Core/TerrainEncoding.js +2 -2
  151. package/Source/Core/TerrainPicker.js +179 -168
  152. package/Source/Core/TimeIntervalCollection.js +1 -3
  153. package/Source/Core/Tipsify.js +1 -1
  154. package/Source/Core/Transforms.js +5 -1
  155. package/Source/Core/VectorPipeline.js +1211 -0
  156. package/Source/Core/VectorProvider.js +669 -0
  157. package/Source/Core/WallOutlineGeometry.js +1 -1
  158. package/Source/Core/getTimestamp.js +4 -2
  159. package/Source/DataSources/CompositeEntityCollection.js +0 -1
  160. package/Source/DataSources/CzmlDataSource.js +2 -0
  161. package/Source/DataSources/DataSourceDisplay.js +1 -1
  162. package/Source/DataSources/GeoJsonDataSource.js +0 -1
  163. package/Source/DataSources/GeometryVisualizer.js +1 -1
  164. package/Source/DataSources/KmlDataSource.js +1 -2
  165. package/Source/DataSources/PolylineVisualizer.js +1 -1
  166. package/Source/DataSources/StaticOutlineGeometryBatch.js +1 -1
  167. package/Source/Renderer/AutomaticUniforms.js +67 -2
  168. package/Source/Renderer/Context.js +9 -3
  169. package/Source/Renderer/DrawCommand.js +22 -0
  170. package/Source/Renderer/Framebuffer.js +4 -0
  171. package/Source/Renderer/Pass.js +11 -10
  172. package/Source/Renderer/ShaderBuilder.js +1 -1
  173. package/Source/Renderer/Texture.js +11 -0
  174. package/Source/Renderer/UniformState.js +54 -1
  175. package/Source/Renderer/VertexArray.js +0 -1
  176. package/Source/Scene/ArcGisMapServerImageryProvider.js +0 -5
  177. package/Source/Scene/ArcGisMapService.js +1 -1
  178. package/Source/Scene/Billboard.js +2 -1
  179. package/Source/Scene/BillboardCollection.js +7 -3
  180. package/Source/Scene/BufferPointCollection.js +4 -7
  181. package/Source/Scene/BufferPolygonCollection.js +56 -27
  182. package/Source/Scene/BufferPolylineCollection.js +61 -8
  183. package/Source/Scene/BufferPolylineMaterial.js +6 -5
  184. package/Source/Scene/BufferPrimitiveCollection.js +226 -34
  185. package/Source/Scene/Camera.js +71 -5
  186. package/Source/Scene/Cesium3DTile.js +12 -0
  187. package/Source/Scene/Cesium3DTileset.js +62 -9
  188. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
  189. package/Source/Scene/Cesium3DTilesetCache.js +15 -0
  190. package/Source/Scene/ClippingPlaneCollection.js +2 -2
  191. package/Source/Scene/ClippingPolygon.js +154 -100
  192. package/Source/Scene/ClippingPolygonCollection.js +352 -694
  193. package/Source/Scene/Controllers/Controller.js +63 -0
  194. package/Source/Scene/Controllers/ControllerHost.js +78 -0
  195. package/Source/Scene/Controllers/HybridScreenSpacePanCameraController.js +106 -0
  196. package/Source/Scene/Controllers/MouseButton.js +32 -0
  197. package/Source/Scene/Controllers/ScreenSpaceElevatorCameraController.js +295 -0
  198. package/Source/Scene/Controllers/ScreenSpaceInputBindings.js +154 -0
  199. package/Source/Scene/Controllers/ScreenSpaceMapCameraController.js +310 -0
  200. package/Source/Scene/Controllers/ScreenSpaceTiltOrbitCameraController.js +642 -0
  201. package/Source/Scene/Controllers/ScreenSpaceZoomCameraController.js +431 -0
  202. package/Source/Scene/Controllers/defaultPickWorldPosition.js +84 -0
  203. package/Source/Scene/CreditDisplay.js +62 -0
  204. package/Source/Scene/DerivedCommand.js +94 -0
  205. package/Source/Scene/EdgeFramebuffer.js +1 -5
  206. package/Source/Scene/FrameState.js +17 -0
  207. package/Source/Scene/GeoJsonPrimitive.js +114 -24
  208. package/Source/Scene/Globe.js +20 -0
  209. package/Source/Scene/GlobeDepth.js +27 -1
  210. package/Source/Scene/GlobeSurfaceShaderSet.js +42 -53
  211. package/Source/Scene/GlobeSurfaceTile.js +61 -10
  212. package/Source/Scene/GlobeSurfaceTileProvider.js +351 -26
  213. package/Source/Scene/GltfLoader.js +88 -9
  214. package/Source/Scene/GltfSpzLoader.js +1 -1
  215. package/Source/Scene/GltfVertexBufferLoader.js +6 -3
  216. package/Source/Scene/HeightReference.js +1 -1
  217. package/Source/Scene/I3SDataProvider.js +1 -1
  218. package/Source/Scene/I3SLayer.js +1 -1
  219. package/Source/Scene/I3SNode.js +2 -2
  220. package/Source/Scene/ImageryLayerCollection.js +188 -4
  221. package/Source/Scene/IonImageryProvider.js +1 -5
  222. package/Source/Scene/Label.js +4 -4
  223. package/Source/Scene/LabelCollection.js +1 -1
  224. package/Source/Scene/MVTDataProvider.js +11 -0
  225. package/Source/Scene/Model/B3dmLoader.js +1 -2
  226. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +10 -8
  227. package/Source/Scene/Model/I3dmLoader.js +1 -1
  228. package/Source/Scene/Model/InstancingPipelineStage.js +4 -7
  229. package/Source/Scene/Model/MaterialPipelineStage.js +124 -1
  230. package/Source/Scene/Model/Model.js +250 -26
  231. package/Source/Scene/Model/Model3DTileContent.js +5 -0
  232. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +28 -1
  233. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
  234. package/Source/Scene/Model/ModelDrawCommand.js +160 -16
  235. package/Source/Scene/Model/ModelDrawCommands.js +4 -0
  236. package/Source/Scene/Model/ModelRenderResources.js +2 -3
  237. package/Source/Scene/Model/ModelSceneGraph.js +31 -1
  238. package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
  239. package/Source/Scene/Model/PickingPipelineStage.js +33 -0
  240. package/Source/Scene/Model/PrimitiveRenderResources.js +24 -0
  241. package/Source/Scene/ModelComponents.js +71 -0
  242. package/Source/Scene/Picking.js +16 -5
  243. package/Source/Scene/PlanarFillIdFramebuffer.js +172 -0
  244. package/Source/Scene/PntsParser.js +0 -1
  245. package/Source/Scene/PolylineCollection.js +1 -1
  246. package/Source/Scene/PostProcessStage.js +26 -5
  247. package/Source/Scene/ResourceCache.js +7 -4
  248. package/Source/Scene/ResourceCacheKey.js +16 -13
  249. package/Source/Scene/Scene.js +258 -6
  250. package/Source/Scene/ScreenSpaceCameraController.js +1 -2
  251. package/Source/Scene/ShadowMap.js +9 -3
  252. package/Source/Scene/ShadowMapShader.js +50 -2
  253. package/Source/Scene/SnapFramebuffer.js +121 -0
  254. package/Source/Scene/Snapping.js +241 -0
  255. package/Source/Scene/TerrainFillMesh.js +3 -2
  256. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +13 -2
  257. package/Source/Scene/Vector3DTileContent.js +2 -3
  258. package/Source/Scene/VectorGltf3DTileContent.js +31 -3
  259. package/Source/Scene/View.js +10 -8
  260. package/Source/Scene/VoxelTraversal.js +1 -1
  261. package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
  262. package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
  263. package/Source/Scene/createElevationBandMaterial.js +1 -1
  264. package/Source/Scene/renderBufferPointCollection.js +1 -2
  265. package/Source/Scene/renderBufferPolygonCollection.js +1 -2
  266. package/Source/Scene/renderBufferPolylineCollection.js +6 -3
  267. package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
  268. package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
  269. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  270. package/Source/Shaders/Builtin/Constants/passCesium3DTile.js +1 -1
  271. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  272. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.js +1 -1
  273. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  274. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.js +1 -1
  275. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.glsl +9 -0
  276. package/Source/Shaders/Builtin/Constants/passCesium3DTilePlanarFillId.js +11 -0
  277. package/Source/Shaders/Builtin/Constants/passClassification.glsl +1 -1
  278. package/Source/Shaders/Builtin/Constants/passClassification.js +1 -1
  279. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +1 -1
  280. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +1 -1
  281. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  282. package/Source/Shaders/Builtin/Constants/passOpaque.js +1 -1
  283. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  284. package/Source/Shaders/Builtin/Constants/passTranslucent.js +1 -1
  285. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  286. package/Source/Shaders/Builtin/Constants/passVoxels.js +1 -1
  287. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -4
  288. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
  289. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
  290. package/Source/Shaders/GlobeFS.glsl +20 -14
  291. package/Source/Shaders/GlobeFS.js +20 -14
  292. package/Source/Shaders/GlobeVS.glsl +0 -32
  293. package/Source/Shaders/GlobeVS.js +0 -32
  294. package/Source/Shaders/Materials/PolylineGlowMaterial.glsl +1 -1
  295. package/Source/Shaders/Materials/PolylineGlowMaterial.js +1 -1
  296. package/Source/Shaders/Model/MaterialStageFS.glsl +8 -2
  297. package/Source/Shaders/Model/MaterialStageFS.js +8 -2
  298. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
  299. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
  300. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
  301. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
  302. package/Source/Shaders/Model/ModelFS.glsl +109 -0
  303. package/Source/Shaders/Model/ModelFS.js +109 -0
  304. package/Source/Shaders/Model/ModelVS.glsl +7 -2
  305. package/Source/Shaders/Model/ModelVS.js +7 -2
  306. package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
  307. package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
  308. package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
  309. package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
  310. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
  311. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
  312. package/Source/Shaders/VectorCommon.glsl +305 -0
  313. package/Source/Shaders/VectorCommon.js +307 -0
  314. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  315. package/Source/ThirdParty/zip-module.wasm +0 -0
  316. package/Source/Widget/CesiumWidget.js +30 -0
  317. package/index.d.ts +1326 -65
  318. package/index.js +179 -155
  319. package/package.json +6 -6
  320. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
  321. package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
  322. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
  323. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
  324. package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
  325. package/Source/Shaders/PolygonSignedDistanceFS.js +0 -132
@@ -1,9 +1,22 @@
1
+ // @ts-check
2
+
1
3
  import defined from "./defined.js";
2
4
  import DeveloperError from "./DeveloperError.js";
3
5
  import CesiumMath from "./Math.js";
4
6
 
5
7
  const factorial = CesiumMath.factorial;
6
8
 
9
+ /**
10
+ * @param {number} x
11
+ * @param {number[]} zIndices
12
+ * @param {number[]} xTable
13
+ * @param {number} derivOrder
14
+ * @param {number} termOrder
15
+ * @param {number[]} reservedIndices
16
+ * @returns {number}
17
+ *
18
+ * @private
19
+ */
7
20
  function calculateCoefficientTerm(
8
21
  x,
9
22
  zIndices,
@@ -61,223 +74,245 @@ function calculateCoefficientTerm(
61
74
  }
62
75
 
63
76
  /**
64
- * An {@link InterpolationAlgorithm} for performing Hermite interpolation.
77
+ * @type {number[]}
65
78
  *
66
- * @namespace HermitePolynomialApproximation
79
+ * @private
67
80
  */
68
- const HermitePolynomialApproximation = {
69
- type: "Hermite",
70
- };
81
+ const arrayScratch = [];
71
82
 
72
83
  /**
73
- * Given the desired degree, returns the number of data points required for interpolation.
84
+ * An {@link InterpolationAlgorithm} for performing Hermite interpolation.
74
85
  *
75
- * @param {number} degree The desired degree of interpolation.
76
- * @param {number} [inputOrder=0] The order of the inputs (0 means just the data, 1 means the data and its derivative, etc).
77
- * @returns {number} The number of required data points needed for the desired degree of interpolation.
78
- * @exception {DeveloperError} degree must be 0 or greater.
79
- * @exception {DeveloperError} inputOrder must be 0 or greater.
86
+ * @namespace HermitePolynomialApproximation
80
87
  */
81
- HermitePolynomialApproximation.getRequiredDataPoints = function (
82
- degree,
83
- inputOrder,
84
- ) {
85
- inputOrder = inputOrder ?? 0;
86
-
87
- //>>includeStart('debug', pragmas.debug);
88
- if (!defined(degree)) {
89
- throw new DeveloperError("degree is required.");
88
+ class HermitePolynomialApproximation {
89
+ /**
90
+ * Gets the name of this interpolation algorithm.
91
+ * @type {string}
92
+ */
93
+ static get type() {
94
+ return "Hermite";
90
95
  }
91
- if (degree < 0) {
92
- throw new DeveloperError("degree must be 0 or greater.");
93
- }
94
- if (inputOrder < 0) {
95
- throw new DeveloperError("inputOrder must be 0 or greater.");
96
- }
97
- //>>includeEnd('debug');
98
96
 
99
- return Math.max(Math.floor((degree + 1) / (inputOrder + 1)), 2);
100
- };
97
+ /**
98
+ * Given the desired degree, returns the number of data points required for interpolation.
99
+ *
100
+ * @param {number} degree The desired degree of interpolation.
101
+ * @param {number} [inputOrder=0] The order of the inputs (0 means just the data, 1 means the data and its derivative, etc).
102
+ * @returns {number} The number of required data points needed for the desired degree of interpolation.
103
+ * @exception {DeveloperError} degree must be 0 or greater.
104
+ * @exception {DeveloperError} inputOrder must be 0 or greater.
105
+ */
106
+ static getRequiredDataPoints(degree, inputOrder) {
107
+ inputOrder = inputOrder ?? 0;
108
+
109
+ //>>includeStart('debug', pragmas.debug);
110
+ if (!defined(degree)) {
111
+ throw new DeveloperError("degree is required.");
112
+ }
113
+ if (degree < 0) {
114
+ throw new DeveloperError("degree must be 0 or greater.");
115
+ }
116
+ if (inputOrder < 0) {
117
+ throw new DeveloperError("inputOrder must be 0 or greater.");
118
+ }
119
+ //>>includeEnd('debug');
101
120
 
102
- /**
103
- * Interpolates values using Hermite Polynomial Approximation.
104
- *
105
- * @param {number} x The independent variable for which the dependent variables will be interpolated.
106
- * @param {number[]} xTable The array of independent variables to use to interpolate. The values
107
- * in this array must be in increasing order and the same value must not occur twice in the array.
108
- * @param {number[]} yTable The array of dependent variables to use to interpolate. For a set of three
109
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
110
- * @param {number} yStride The number of dependent variable values in yTable corresponding to
111
- * each independent variable value in xTable.
112
- * @param {number[]} [result] An existing array into which to store the result.
113
- * @returns {number[]} The array of interpolated values, or the result parameter if one was provided.
114
- */
115
- HermitePolynomialApproximation.interpolateOrderZero = function (
116
- x,
117
- xTable,
118
- yTable,
119
- yStride,
120
- result,
121
- ) {
122
- if (!defined(result)) {
123
- result = new Array(yStride);
121
+ return Math.max(Math.floor((degree + 1) / (inputOrder + 1)), 2);
124
122
  }
125
123
 
126
- let i;
127
- let j;
128
- let d;
129
- let s;
130
- let len;
131
- let index;
132
- const length = xTable.length;
133
- const coefficients = new Array(yStride);
134
-
135
- for (i = 0; i < yStride; i++) {
136
- result[i] = 0;
137
-
138
- const l = new Array(length);
139
- coefficients[i] = l;
140
- for (j = 0; j < length; j++) {
141
- l[j] = [];
124
+ /**
125
+ * Interpolates values using Hermite Polynomial Approximation.
126
+ *
127
+ * @param {number} x The independent variable for which the dependent variables will be interpolated.
128
+ * @param {number[]} xTable The array of independent variables to use to interpolate. The values
129
+ * in this array must be in increasing order and the same value must not occur twice in the array.
130
+ * @param {number[]} yTable The array of dependent variables to use to interpolate. For a set of three
131
+ * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
132
+ * @param {number} yStride The number of dependent variable values in yTable corresponding to
133
+ * each independent variable value in xTable.
134
+ * @param {number[]} [result] An existing array into which to store the result.
135
+ * @returns {number[]} The array of interpolated values, or the result parameter if one was provided.
136
+ */
137
+ static interpolateOrderZero(x, xTable, yTable, yStride, result) {
138
+ if (!defined(result)) {
139
+ result = new Array(yStride);
142
140
  }
143
- }
144
141
 
145
- const zIndicesLength = length,
146
- zIndices = new Array(zIndicesLength);
142
+ let i;
143
+ let j;
144
+ let d;
145
+ let s;
146
+ let len;
147
+ let index;
148
+ const length = xTable.length;
149
+ const coefficients = new Array(yStride);
150
+
151
+ for (i = 0; i < yStride; i++) {
152
+ result[i] = 0;
153
+
154
+ const l = new Array(length);
155
+ coefficients[i] = l;
156
+ for (j = 0; j < length; j++) {
157
+ l[j] = [];
158
+ }
159
+ }
147
160
 
148
- for (i = 0; i < zIndicesLength; i++) {
149
- zIndices[i] = i;
150
- }
161
+ const zIndicesLength = length,
162
+ zIndices = new Array(zIndicesLength);
151
163
 
152
- let highestNonZeroCoef = length - 1;
153
- for (s = 0; s < yStride; s++) {
154
- for (j = 0; j < zIndicesLength; j++) {
155
- index = zIndices[j] * yStride + s;
156
- coefficients[s][0].push(yTable[index]);
164
+ for (i = 0; i < zIndicesLength; i++) {
165
+ zIndices[i] = i;
157
166
  }
158
167
 
159
- for (i = 1; i < zIndicesLength; i++) {
160
- let nonZeroCoefficients = false;
161
- for (j = 0; j < zIndicesLength - i; j++) {
162
- const zj = xTable[zIndices[j]];
163
- const zn = xTable[zIndices[j + i]];
168
+ let highestNonZeroCoef = length - 1;
169
+ for (s = 0; s < yStride; s++) {
170
+ for (j = 0; j < zIndicesLength; j++) {
171
+ index = zIndices[j] * yStride + s;
172
+ coefficients[s][0].push(yTable[index]);
173
+ }
164
174
 
165
- let numerator;
166
- if (zn - zj <= 0) {
167
- index = zIndices[j] * yStride + yStride * i + s;
168
- numerator = yTable[index];
169
- coefficients[s][i].push(numerator / factorial(i));
170
- } else {
171
- numerator = coefficients[s][i - 1][j + 1] - coefficients[s][i - 1][j];
172
- coefficients[s][i].push(numerator / (zn - zj));
175
+ for (i = 1; i < zIndicesLength; i++) {
176
+ let nonZeroCoefficients = false;
177
+ for (j = 0; j < zIndicesLength - i; j++) {
178
+ const zj = xTable[zIndices[j]];
179
+ const zn = xTable[zIndices[j + i]];
180
+
181
+ let numerator;
182
+ if (zn - zj <= 0) {
183
+ index = zIndices[j] * yStride + yStride * i + s;
184
+ numerator = yTable[index];
185
+ coefficients[s][i].push(numerator / factorial(i));
186
+ } else {
187
+ numerator =
188
+ coefficients[s][i - 1][j + 1] - coefficients[s][i - 1][j];
189
+ coefficients[s][i].push(numerator / (zn - zj));
190
+ }
191
+ nonZeroCoefficients = nonZeroCoefficients || numerator !== 0;
173
192
  }
174
- nonZeroCoefficients = nonZeroCoefficients || numerator !== 0;
175
- }
176
193
 
177
- if (!nonZeroCoefficients) {
178
- highestNonZeroCoef = i - 1;
194
+ if (!nonZeroCoefficients) {
195
+ highestNonZeroCoef = i - 1;
196
+ }
179
197
  }
180
198
  }
181
- }
182
199
 
183
- for (d = 0, len = 0; d <= len; d++) {
184
- for (i = d; i <= highestNonZeroCoef; i++) {
185
- const tempTerm = calculateCoefficientTerm(x, zIndices, xTable, d, i, []);
186
- for (s = 0; s < yStride; s++) {
187
- const coeff = coefficients[s][i][0];
188
- result[s + d * yStride] += coeff * tempTerm;
200
+ for (d = 0, len = 0; d <= len; d++) {
201
+ for (i = d; i <= highestNonZeroCoef; i++) {
202
+ const tempTerm = calculateCoefficientTerm(
203
+ x,
204
+ zIndices,
205
+ xTable,
206
+ d,
207
+ i,
208
+ [],
209
+ );
210
+ for (s = 0; s < yStride; s++) {
211
+ const coeff = coefficients[s][i][0];
212
+ result[s + d * yStride] += coeff * tempTerm;
213
+ }
189
214
  }
190
215
  }
191
- }
192
-
193
- return result;
194
- };
195
-
196
- const arrayScratch = [];
197
-
198
- /**
199
- * Interpolates values using Hermite Polynomial Approximation.
200
- *
201
- * @param {number} x The independent variable for which the dependent variables will be interpolated.
202
- * @param {number[]} xTable The array of independent variables to use to interpolate. The values
203
- * in this array must be in increasing order and the same value must not occur twice in the array.
204
- * @param {number[]} yTable The array of dependent variables to use to interpolate. For a set of three
205
- * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
206
- * @param {number} yStride The number of dependent variable values in yTable corresponding to
207
- * each independent variable value in xTable.
208
- * @param {number} inputOrder The number of derivatives supplied for input.
209
- * @param {number} outputOrder The number of derivatives desired for output.
210
- * @param {number[]} [result] An existing array into which to store the result.
211
- *
212
- * @returns {number[]} The array of interpolated values, or the result parameter if one was provided.
213
- */
214
- HermitePolynomialApproximation.interpolate = function (
215
- x,
216
- xTable,
217
- yTable,
218
- yStride,
219
- inputOrder,
220
- outputOrder,
221
- result,
222
- ) {
223
- const resultLength = yStride * (outputOrder + 1);
224
- if (!defined(result)) {
225
- result = new Array(resultLength);
226
- }
227
- for (let r = 0; r < resultLength; r++) {
228
- result[r] = 0;
229
- }
230
216
 
231
- const length = xTable.length;
232
- // The zIndices array holds copies of the addresses of the xTable values
233
- // in the range we're looking at. Even though this just holds information already
234
- // available in xTable this is a much more convenient format.
235
- const zIndices = new Array(length * (inputOrder + 1));
236
- let i;
237
- for (i = 0; i < length; i++) {
238
- for (let j = 0; j < inputOrder + 1; j++) {
239
- zIndices[i * (inputOrder + 1) + j] = i;
240
- }
217
+ return result;
241
218
  }
242
219
 
243
- const zIndiceslength = zIndices.length;
244
- const coefficients = arrayScratch;
245
- const highestNonZeroCoef = fillCoefficientList(
246
- coefficients,
247
- zIndices,
220
+ /**
221
+ * Interpolates values using Hermite Polynomial Approximation.
222
+ *
223
+ * @param {number} x The independent variable for which the dependent variables will be interpolated.
224
+ * @param {number[]} xTable The array of independent variables to use to interpolate. The values
225
+ * in this array must be in increasing order and the same value must not occur twice in the array.
226
+ * @param {number[]} yTable The array of dependent variables to use to interpolate. For a set of three
227
+ * dependent values (p,q,w) at time 1 and time 2 this should be as follows: {p1, q1, w1, p2, q2, w2}.
228
+ * @param {number} yStride The number of dependent variable values in yTable corresponding to
229
+ * each independent variable value in xTable.
230
+ * @param {number} inputOrder The number of derivatives supplied for input.
231
+ * @param {number} outputOrder The number of derivatives desired for output.
232
+ * @param {number[]} [result] An existing array into which to store the result.
233
+ *
234
+ * @returns {number[]} The array of interpolated values, or the result parameter if one was provided.
235
+ */
236
+ static interpolate(
237
+ x,
248
238
  xTable,
249
239
  yTable,
250
240
  yStride,
251
241
  inputOrder,
252
- );
253
- const reservedIndices = [];
242
+ outputOrder,
243
+ result,
244
+ ) {
245
+ const resultLength = yStride * (outputOrder + 1);
246
+ if (!defined(result)) {
247
+ result = new Array(resultLength);
248
+ }
249
+ for (let r = 0; r < resultLength; r++) {
250
+ result[r] = 0;
251
+ }
254
252
 
255
- const tmp = (zIndiceslength * (zIndiceslength + 1)) / 2;
256
- const loopStop = Math.min(highestNonZeroCoef, outputOrder);
257
- for (let d = 0; d <= loopStop; d++) {
258
- for (i = d; i <= highestNonZeroCoef; i++) {
259
- reservedIndices.length = 0;
260
- const tempTerm = calculateCoefficientTerm(
261
- x,
262
- zIndices,
263
- xTable,
264
- d,
265
- i,
266
- reservedIndices,
267
- );
268
- const dimTwo = Math.floor((i * (1 - i)) / 2) + zIndiceslength * i;
253
+ const length = xTable.length;
254
+ // The zIndices array holds copies of the addresses of the xTable values
255
+ // in the range we're looking at. Even though this just holds information already
256
+ // available in xTable this is a much more convenient format.
257
+ const zIndices = new Array(length * (inputOrder + 1));
258
+ let i;
259
+ for (i = 0; i < length; i++) {
260
+ for (let j = 0; j < inputOrder + 1; j++) {
261
+ zIndices[i * (inputOrder + 1) + j] = i;
262
+ }
263
+ }
269
264
 
270
- for (let s = 0; s < yStride; s++) {
271
- const dimOne = Math.floor(s * tmp);
272
- const coef = coefficients[dimOne + dimTwo];
273
- result[s + d * yStride] += coef * tempTerm;
265
+ const zIndiceslength = zIndices.length;
266
+ const coefficients = arrayScratch;
267
+ const highestNonZeroCoef = fillCoefficientList(
268
+ coefficients,
269
+ zIndices,
270
+ xTable,
271
+ yTable,
272
+ yStride,
273
+ inputOrder,
274
+ );
275
+ /** @type {number[]} */
276
+ const reservedIndices = [];
277
+
278
+ const tmp = (zIndiceslength * (zIndiceslength + 1)) / 2;
279
+ const loopStop = Math.min(highestNonZeroCoef, outputOrder);
280
+ for (let d = 0; d <= loopStop; d++) {
281
+ for (i = d; i <= highestNonZeroCoef; i++) {
282
+ reservedIndices.length = 0;
283
+ const tempTerm = calculateCoefficientTerm(
284
+ x,
285
+ zIndices,
286
+ xTable,
287
+ d,
288
+ i,
289
+ reservedIndices,
290
+ );
291
+ const dimTwo = Math.floor((i * (1 - i)) / 2) + zIndiceslength * i;
292
+
293
+ for (let s = 0; s < yStride; s++) {
294
+ const dimOne = Math.floor(s * tmp);
295
+ const coef = coefficients[dimOne + dimTwo];
296
+ result[s + d * yStride] += coef * tempTerm;
297
+ }
274
298
  }
275
299
  }
276
- }
277
300
 
278
- return result;
279
- };
301
+ return result;
302
+ }
303
+ }
280
304
 
305
+ /**
306
+ * @param {number[]} coefficients
307
+ * @param {number[]} zIndices
308
+ * @param {number[]} xTable
309
+ * @param {number[]} yTable
310
+ * @param {number} yStride
311
+ * @param {number} inputOrder
312
+ * @returns {number}
313
+ *
314
+ * @private
315
+ */
281
316
  function fillCoefficientList(
282
317
  coefficients,
283
318
  zIndices,
@@ -338,4 +373,5 @@ function fillCoefficientList(
338
373
 
339
374
  return highestNonZero;
340
375
  }
376
+
341
377
  export default HermitePolynomialApproximation;
@@ -52,6 +52,7 @@ class InterpolationAlgorithm {
52
52
  * if this function remains undefined on implementing objects, interpolateOrderZero will be used instead.
53
53
  *
54
54
  * @function
55
+ * @optional
55
56
  * @param {number} x The independent variable for which the dependent variables will be interpolated.
56
57
  * @param {number[]} xTable The array of independent variables to use to interpolate. The values
57
58
  * in this array must be in increasing order and the same value must not occur twice in the array.
@@ -4,7 +4,7 @@ import Resource from "./Resource.js";
4
4
 
5
5
  let defaultTokenCredit;
6
6
  const defaultAccessToken =
7
- "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzNzRjZTkzNC05M2UwLTRlNDItOWU0My1hYjk5YjFiNTNhYTMiLCJpZCI6MjU5LCJzdWIiOiJDZXNpdW1KUyIsImlzcyI6Imh0dHBzOi8vYXBpLmNlc2l1bS5jb20iLCJhdWQiOiIxLjE0MyBSZWxlYXNlIC0gRGVsZXRlIG9uIFNlcHRlbWJlciAxLCAyMDI2IiwiaWF0IjoxNzgyMzY4NzY4fQ.kDcFqK7jTTloOcBbwb-epSQGd1Lu12_hRuqk1XRE_H8";
7
+ "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJub25jZSI6ImwwendUTkl3UVk5Uk5XdEkiLCJqdGkiOiJjZGFkZDZlNC0wMDI5LTQ5OTMtYWIwMC01ZWY4ZDVlNTBhMzYiLCJpZCI6MjU5LCJzdWIiOiJDZXNpdW1KUyIsImlzcyI6Imh0dHBzOi8vYXBpLmNlc2l1bS5jb20iLCJhdWQiOiIxLjE0NSBSZWxlYXNlIC0gRGVsZXRlIG9uIE5vdmVtYmVyIDEsIDIwMjYiLCJpYXQiOjE3ODc2MzQ3NzV9.3SPieoGxEZ22pnWLETAIFZveR0xXTzvOh8G4NYTxDSo";
8
8
  /**
9
9
  * Default settings for accessing the Cesium ion API.
10
10
  *
@@ -270,6 +270,11 @@ function addClientHeaders(headers = {}) {
270
270
  return headers;
271
271
  }
272
272
 
273
+ /**
274
+ * @private
275
+ **/
276
+ IonResource._addClientHeaders = addClientHeaders;
277
+
273
278
  function retryCallback(that, error) {
274
279
  const ionRoot = that._ionRoot ?? that;
275
280
  const endpointResource = ionRoot._ionEndpointResource;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * The type of geometry a snap resolved to, reported by {@link IonSnapService#snap}
3
+ * as {@link IonSnapService.Result} <code>geometryType</code>. Values match the iTwin.js
4
+ * {@link https://www.itwinjs.org/reference/core-frontend/locatingelements/hitgeomtype/|HitGeomType} enum.
5
+ *
6
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
7
+ *
8
+ * @enum {number}
9
+ */
10
+ const IonSnapGeometryType = {
11
+ /**
12
+ * No geometry type.
13
+ * @type {number}
14
+ * @constant
15
+ */
16
+ NONE: 0,
17
+ /**
18
+ * A point.
19
+ * @type {number}
20
+ * @constant
21
+ */
22
+ POINT: 1,
23
+ /**
24
+ * A line segment.
25
+ * @type {number}
26
+ * @constant
27
+ */
28
+ SEGMENT: 2,
29
+ /**
30
+ * A curve.
31
+ * @type {number}
32
+ * @constant
33
+ */
34
+ CURVE: 3,
35
+ /**
36
+ * An arc.
37
+ * @type {number}
38
+ * @constant
39
+ */
40
+ ARC: 4,
41
+ /**
42
+ * A surface.
43
+ * <p>
44
+ * With {@link IonSnapMode} <code>NEAREST</code>, this value indicates
45
+ * the snap tracked the surface under the cursor because no edge was within
46
+ * the snap aperture. This means the snap point was not pulled to an edge.
47
+ * Edge snaps report one of the other types along with the edge geometry in
48
+ * {@link IonSnapService.Result} <code>curve</code>, which is absent when
49
+ * tracking a surface.
50
+ * </p>
51
+ * @type {number}
52
+ * @constant
53
+ */
54
+ SURFACE: 5,
55
+ };
56
+
57
+ Object.freeze(IonSnapGeometryType);
58
+
59
+ export default IonSnapGeometryType;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * How close a snap result is to the cursor, reported by {@link IonSnapService#snap}
3
+ * as {@link IonSnapService.Result} <code>heat</code>. Values match the iTwin.js
4
+ * {@link https://www.itwinjs.org/reference/core-frontend/locatingelements/snapheat/|SnapHeat} enum.
5
+ *
6
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
7
+ *
8
+ * @enum {number}
9
+ */
10
+ const IonSnapHeat = {
11
+ /**
12
+ * The snap is not close to the cursor.
13
+ * @type {number}
14
+ * @constant
15
+ */
16
+ NONE: 0,
17
+ /**
18
+ * The snap is of interest, but outside the snap aperture.
19
+ * @type {number}
20
+ * @constant
21
+ */
22
+ NOT_IN_RANGE: 1,
23
+ /**
24
+ * The snap point is within the snap aperture of the close point in view space.
25
+ * @type {number}
26
+ * @constant
27
+ */
28
+ IN_RANGE: 2,
29
+ };
30
+
31
+ Object.freeze(IonSnapHeat);
32
+
33
+ export default IonSnapHeat;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The snap modes supported by {@link IonSnapService#snap}. These follow the
3
+ * MicroStation snap mode semantics; see the
4
+ * {@link https://docs.bentley.com/LiveContent/web/MicroStation%20Help-v27/en/GUID-77D54C0B-D6FF-13DA-5EC8-3196330F5244.html|MicroStation documentation}
5
+ * for reference.
6
+ *
7
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
8
+ *
9
+ * @enum {number}
10
+ */
11
+ const IonSnapMode = {
12
+ /**
13
+ * Snaps to the point on the element nearest to the cursor. When the cursor
14
+ * is farther than the snap aperture from an edge, tracks the surface under
15
+ * the cursor instead.
16
+ * @type {number}
17
+ * @constant
18
+ */
19
+ NEAREST: 1,
20
+ /**
21
+ * Snaps to the nearest of the element's keypoints. Keypoints are defined by
22
+ * the element's geometry type and the snap divisor.
23
+ * <p>
24
+ * On linear elements, keypoints are regularly spaced along each segment:
25
+ * the number of keypoints on a segment is one greater than the snap
26
+ * divisor, and a segment's midpoint is a keypoint only when the divisor is
27
+ * even. The ion API does not currently accept a snap divisor, so the
28
+ * server's default divisor applies.
29
+ * </p>
30
+ * @type {number}
31
+ * @constant
32
+ */
33
+ NEAREST_KEYPOINT: 2,
34
+ /**
35
+ * Snaps to the center of elements that have centers (such as circles and
36
+ * arcs). For other elements, may snap to the centroid.
37
+ * @type {number}
38
+ * @constant
39
+ */
40
+ CENTER: 8,
41
+ };
42
+
43
+ Object.freeze(IonSnapMode);
44
+
45
+ export default IonSnapMode;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The type of the parent geometry a snap resolved to, reported by
3
+ * {@link IonSnapService#snap} as {@link IonSnapService.Result} <code>parentGeometryType</code>.
4
+ * Values match the iTwin.js
5
+ * {@link https://www.itwinjs.org/reference/core-frontend/locatingelements/hitparentgeomtype/|HitParentGeomType} enum.
6
+ *
7
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
8
+ *
9
+ * @enum {number}
10
+ */
11
+ const IonSnapParentGeometryType = {
12
+ /**
13
+ * No parent geometry type.
14
+ * @type {number}
15
+ * @constant
16
+ */
17
+ NONE: 0,
18
+ /**
19
+ * A wire body.
20
+ * @type {number}
21
+ * @constant
22
+ */
23
+ WIRE: 1,
24
+ /**
25
+ * A sheet body.
26
+ * @type {number}
27
+ * @constant
28
+ */
29
+ SHEET: 2,
30
+ /**
31
+ * A solid body.
32
+ * @type {number}
33
+ * @constant
34
+ */
35
+ SOLID: 3,
36
+ /**
37
+ * A mesh.
38
+ * @type {number}
39
+ * @constant
40
+ */
41
+ MESH: 4,
42
+ /**
43
+ * Text.
44
+ * @type {number}
45
+ * @constant
46
+ */
47
+ TEXT: 5,
48
+ };
49
+
50
+ Object.freeze(IonSnapParentGeometryType);
51
+
52
+ export default IonSnapParentGeometryType;