@cesium/engine 26.2.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 (366) hide show
  1. package/Build/ThirdParty/Workers/zip-web-worker.js +656 -518
  2. package/Build/Workers/{chunk-FU4BGABC.js → chunk-2DKJSPYF.js} +14 -14
  3. package/Build/Workers/{chunk-NCL22ZUX.js → chunk-2PWVICP6.js} +1 -1
  4. package/Build/Workers/{chunk-ILME5BXA.js → chunk-2YY724ZX.js} +8 -8
  5. package/Build/Workers/{chunk-IJZJMIUY.js → chunk-4DMAXPKB.js} +11 -11
  6. package/Build/Workers/{chunk-IMBVP57H.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-UAZUP4I5.js → chunk-6BSNYZZG.js} +5 -5
  10. package/Build/Workers/{chunk-D6AY775A.js → chunk-6R6SGKYN.js} +6 -6
  11. package/Build/Workers/{chunk-3PSS3T43.js → chunk-6V2KDEHL.js} +4 -4
  12. package/Build/Workers/{chunk-GHXVQVUM.js → chunk-75BC2IHI.js} +7 -7
  13. package/Build/Workers/{chunk-SMTGMFBL.js → chunk-7SESBH2I.js} +4 -4
  14. package/Build/Workers/{chunk-NEFDMMLY.js → chunk-7WXBTNRV.js} +8 -8
  15. package/Build/Workers/{chunk-NXGQBQWE.js → chunk-A7SMPV6B.js} +12 -12
  16. package/Build/Workers/{chunk-O3XFXGPZ.js → chunk-ATSXKJ3L.js} +7 -7
  17. package/Build/Workers/{chunk-AHWAZRBV.js → chunk-B4AVL7VI.js} +1 -1
  18. package/Build/Workers/{chunk-OZGPS7FB.js → chunk-B7Q2WF6Q.js} +4 -4
  19. package/Build/Workers/{chunk-2RGJPWQX.js → chunk-BNDSDQ7D.js} +9 -9
  20. package/Build/Workers/{chunk-2Z4ZLVOD.js → chunk-CKK6CUXK.js} +6 -6
  21. package/Build/Workers/{chunk-FCP2QY4G.js → chunk-COKOYTRS.js} +5 -5
  22. package/Build/Workers/{chunk-6FZDPMTO.js → chunk-CQ4TZXAT.js} +6 -6
  23. package/Build/Workers/{chunk-HDL4HOXZ.js → chunk-DKSANM4A.js} +12 -12
  24. package/Build/Workers/{chunk-XCBZVTIV.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-NSKZ6SBK.js → chunk-F34TJJLA.js} +14 -14
  28. package/Build/Workers/{chunk-GXWQZBAI.js → chunk-GLHDTTTO.js} +2 -2
  29. package/Build/Workers/{chunk-SJYSIOEM.js → chunk-GS7RY2DH.js} +11 -11
  30. package/Build/Workers/{chunk-5YPQBFRD.js → chunk-HDD3RFLT.js} +3 -3
  31. package/Build/Workers/{chunk-36NI5E6W.js → chunk-HDPNFEPP.js} +18 -18
  32. package/Build/Workers/{chunk-DSGLDRTI.js → chunk-JBJ6BRIM.js} +4 -4
  33. package/Build/Workers/{chunk-DZUFEE4L.js → chunk-JKTWW7IO.js} +5 -5
  34. package/Build/Workers/{chunk-O3DKEX7Q.js → chunk-JL4NWWQY.js} +5 -5
  35. package/Build/Workers/{chunk-I74ZH5LK.js → chunk-JMUUAW4X.js} +10 -10
  36. package/Build/Workers/{chunk-SXSP3JHS.js → chunk-KBGAHN5R.js} +1 -1
  37. package/Build/Workers/{chunk-GVA7XQI2.js → chunk-KEWK6VZL.js} +12 -12
  38. package/Build/Workers/{chunk-EOWDZN5S.js → chunk-L73K5UPP.js} +10 -10
  39. package/Build/Workers/{chunk-J73T2VOY.js → chunk-LL2SGJYH.js} +6 -6
  40. package/Build/Workers/{chunk-QFSSCLLZ.js → chunk-LYJUL4XQ.js} +6 -6
  41. package/Build/Workers/{chunk-MAAHFYPC.js → chunk-M6W46OAP.js} +7 -7
  42. package/Build/Workers/{chunk-FX3VEAIU.js → chunk-MDDKCLMF.js} +16 -16
  43. package/Build/Workers/{chunk-M6QKXVAU.js → chunk-MUW4DJV7.js} +17 -17
  44. package/Build/Workers/{chunk-EZGQPOIG.js → chunk-N5YK44FS.js} +5 -5
  45. package/Build/Workers/{chunk-27FWRTJI.js → chunk-NZQUP52G.js} +9 -9
  46. package/Build/Workers/{chunk-A62YI6S6.js → chunk-PKZA44LH.js} +4 -4
  47. package/Build/Workers/{chunk-7MM3N2VE.js → chunk-Q2JS5LCB.js} +17 -17
  48. package/Build/Workers/{chunk-KGXSYGBG.js → chunk-QTAEVUED.js} +13 -13
  49. package/Build/Workers/{chunk-KP5QD7WU.js → chunk-SEJIXZZ4.js} +10 -10
  50. package/Build/Workers/{chunk-PRWUMCXF.js → chunk-SL2HCFYW.js} +10 -10
  51. package/Build/Workers/{chunk-NJVBJG63.js → chunk-SLHK3KAR.js} +5 -5
  52. package/Build/Workers/{chunk-JKXV6PG5.js → chunk-UZY5XRL2.js} +1 -1
  53. package/Build/Workers/{chunk-LDRQSYBN.js → chunk-VRECSMG3.js} +2 -2
  54. package/Build/Workers/{chunk-NLLCQBX3.js → chunk-X27HKF5E.js} +2 -2
  55. package/Build/Workers/{chunk-B3QHNA4A.js → chunk-XBY3354M.js} +6 -6
  56. package/Build/Workers/{chunk-CRCGE4J4.js → chunk-XRZCS3HE.js} +8 -8
  57. package/Build/Workers/{chunk-XLQZNQ4Z.js → chunk-XSIUYAT6.js} +2 -2
  58. package/Build/Workers/{chunk-SA2A2AN5.js → chunk-Z2DW5NM2.js} +4 -4
  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 +33 -33
  65. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  66. package/Build/Workers/createCorridorGeometry.js +29 -29
  67. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  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 +22 -22
  78. package/Build/Workers/createPlaneGeometry.js +16 -16
  79. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  80. package/Build/Workers/createPolygonGeometry.js +32 -32
  81. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  82. package/Build/Workers/createPolylineGeometry.js +25 -25
  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 +20 -20
  87. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  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 +23 -23
  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/Ion.js +1 -1
  113. package/Source/Core/IonResource.js +5 -0
  114. package/Source/Core/IonSnapGeometryType.js +59 -0
  115. package/Source/Core/IonSnapHeat.js +33 -0
  116. package/Source/Core/IonSnapMode.js +45 -0
  117. package/Source/Core/IonSnapParentGeometryType.js +52 -0
  118. package/Source/Core/IonSnapService.js +369 -0
  119. package/Source/Core/SnapService.js +63 -0
  120. package/Source/Core/VectorPipeline.js +139 -45
  121. package/Source/Core/VectorProvider.js +311 -71
  122. package/Source/Renderer/AutomaticUniforms.js +44 -2
  123. package/Source/Renderer/ShaderBuilder.js +1 -1
  124. package/Source/Renderer/UniformState.js +47 -1
  125. package/Source/Scene/ArcGisMapService.js +1 -1
  126. package/Source/Scene/BufferPointCollection.js +4 -7
  127. package/Source/Scene/BufferPolygonCollection.js +56 -27
  128. package/Source/Scene/BufferPolylineCollection.js +61 -8
  129. package/Source/Scene/BufferPolylineMaterial.js +6 -5
  130. package/Source/Scene/BufferPrimitiveCollection.js +199 -29
  131. package/Source/Scene/Cesium3DTile.js +12 -0
  132. package/Source/Scene/Cesium3DTileset.js +61 -8
  133. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +15 -3
  134. package/Source/Scene/Cesium3DTilesetCache.js +15 -0
  135. package/Source/Scene/ClippingPolygon.js +154 -100
  136. package/Source/Scene/ClippingPolygonCollection.js +352 -694
  137. package/Source/Scene/CreditDisplay.js +62 -0
  138. package/Source/Scene/GeoJsonPrimitive.js +114 -24
  139. package/Source/Scene/GlobeSurfaceShaderSet.js +33 -54
  140. package/Source/Scene/GlobeSurfaceTile.js +14 -1
  141. package/Source/Scene/GlobeSurfaceTileProvider.js +232 -25
  142. package/Source/Scene/GltfLoader.js +56 -6
  143. package/Source/Scene/HeightReference.js +1 -1
  144. package/Source/Scene/MVTDataProvider.js +9 -0
  145. package/Source/Scene/Model/Model.js +242 -16
  146. package/Source/Scene/Model/Model3DTileContent.js +5 -0
  147. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +54 -19
  148. package/Source/Scene/Model/ModelRenderResources.js +2 -3
  149. package/Source/Scene/Model/ModelSceneGraph.js +10 -1
  150. package/Source/Scene/Model/ModelVectorLookupPipelineStage.js +205 -0
  151. package/Source/Scene/Model/PickingPipelineStage.js +4 -0
  152. package/Source/Scene/PostProcessStage.js +22 -3
  153. package/Source/Scene/Scene.js +56 -1
  154. package/Source/Scene/Snapping.js +57 -0
  155. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +12 -1
  156. package/Source/Scene/VectorGltf3DTileContent.js +10 -2
  157. package/Source/Scene/WebMapServiceImageryProvider.js +5 -1
  158. package/Source/Scene/WebMapTileServiceImageryProvider.js +6 -1
  159. package/Source/Scene/renderBufferPolylineCollection.js +5 -1
  160. package/Source/Shaders/BufferPolylineMaterialVS.glsl +14 -2
  161. package/Source/Shaders/BufferPolylineMaterialVS.js +14 -2
  162. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -4
  163. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.glsl +74 -0
  164. package/Source/Shaders/Builtin/Functions/eyeToCartographicDelta.js +76 -0
  165. package/Source/Shaders/GlobeFS.glsl +10 -9
  166. package/Source/Shaders/GlobeFS.js +11 -9
  167. package/Source/Shaders/GlobeVS.glsl +0 -32
  168. package/Source/Shaders/GlobeVS.js +0 -32
  169. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.glsl +15 -3
  170. package/Source/Shaders/Model/ModelClippingPolygonsStageFS.js +15 -3
  171. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.glsl +20 -24
  172. package/Source/Shaders/Model/ModelClippingPolygonsStageVS.js +20 -24
  173. package/Source/Shaders/Model/ModelFS.glsl +4 -0
  174. package/Source/Shaders/Model/ModelFS.js +4 -0
  175. package/Source/Shaders/Model/ModelVS.glsl +7 -2
  176. package/Source/Shaders/Model/ModelVS.js +7 -2
  177. package/Source/Shaders/Model/ModelVectorLookupStageFS.glsl +6 -0
  178. package/Source/Shaders/Model/ModelVectorLookupStageFS.js +8 -0
  179. package/Source/Shaders/Model/ModelVectorLookupStageVS.glsl +15 -0
  180. package/Source/Shaders/Model/ModelVectorLookupStageVS.js +17 -0
  181. package/Source/Shaders/Model/VerticalExaggerationStageVS.glsl +9 -10
  182. package/Source/Shaders/Model/VerticalExaggerationStageVS.js +9 -11
  183. package/Source/Shaders/VectorCommon.glsl +177 -50
  184. package/Source/Shaders/VectorCommon.js +251 -19
  185. package/Source/ThirdParty/Workers/zip-web-worker.js +1 -1
  186. package/index.d.ts +556 -55
  187. package/index.js +20 -13
  188. package/package.json +6 -6
  189. package/Build/Workers/chunk-2EFYUSUY.js +0 -1483
  190. package/Build/Workers/chunk-2H5264K7.js +0 -1284
  191. package/Build/Workers/chunk-2H73KDBM.js +0 -511
  192. package/Build/Workers/chunk-2ZKH2QZB.js +0 -387
  193. package/Build/Workers/chunk-37SW7SYS.js +0 -778
  194. package/Build/Workers/chunk-3GHVJ3SO.js +0 -455
  195. package/Build/Workers/chunk-3LB4UVPU.js +0 -387
  196. package/Build/Workers/chunk-3PONLKEL.js +0 -778
  197. package/Build/Workers/chunk-3QR662HH.js +0 -3820
  198. package/Build/Workers/chunk-3SX2WYSO.js +0 -973
  199. package/Build/Workers/chunk-3UDN6LYX.js +0 -476
  200. package/Build/Workers/chunk-47MCBSXI.js +0 -9237
  201. package/Build/Workers/chunk-4E626OCE.js +0 -1067
  202. package/Build/Workers/chunk-4NW2MJKH.js +0 -455
  203. package/Build/Workers/chunk-52YK5BSN.js +0 -198
  204. package/Build/Workers/chunk-5RNAQZK6.js +0 -9234
  205. package/Build/Workers/chunk-6FHT43QR.js +0 -140
  206. package/Build/Workers/chunk-6HK6IXK2.js +0 -138
  207. package/Build/Workers/chunk-6R5X2GUA.js +0 -1284
  208. package/Build/Workers/chunk-6YR6JBMY.js +0 -163
  209. package/Build/Workers/chunk-7A2OGDHT.js +0 -305
  210. package/Build/Workers/chunk-7CGEQUM2.js +0 -305
  211. package/Build/Workers/chunk-7D2HZKH7.js +0 -455
  212. package/Build/Workers/chunk-7I325HV6.js +0 -1344
  213. package/Build/Workers/chunk-7KVKHY7O.js +0 -147
  214. package/Build/Workers/chunk-7TKLTCZW.js +0 -219
  215. package/Build/Workers/chunk-7UUKBDH6.js +0 -1054
  216. package/Build/Workers/chunk-7W6DUHAB.js +0 -693
  217. package/Build/Workers/chunk-7XM5JK5F.js +0 -162
  218. package/Build/Workers/chunk-7YG3ND3P.js +0 -454
  219. package/Build/Workers/chunk-A3O6EDBK.js +0 -73
  220. package/Build/Workers/chunk-A6X24AZI.js +0 -1992
  221. package/Build/Workers/chunk-A7TTWVTF.js +0 -2719
  222. package/Build/Workers/chunk-ACTVJHSP.js +0 -519
  223. package/Build/Workers/chunk-ADX3CBKD.js +0 -9234
  224. package/Build/Workers/chunk-AF7DTMJ7.js +0 -398
  225. package/Build/Workers/chunk-AJSFRY4U.js +0 -1344
  226. package/Build/Workers/chunk-ARZICEEP.js +0 -301
  227. package/Build/Workers/chunk-B4CQSLZJ.js +0 -305
  228. package/Build/Workers/chunk-BKPQFCXH.js +0 -511
  229. package/Build/Workers/chunk-BSPCI2LO.js +0 -959
  230. package/Build/Workers/chunk-BUJWSX5S.js +0 -301
  231. package/Build/Workers/chunk-C7JQVRLM.js +0 -497
  232. package/Build/Workers/chunk-C7QDUNI3.js +0 -138
  233. package/Build/Workers/chunk-CDJDJ5LK.js +0 -44
  234. package/Build/Workers/chunk-CEEZE3YZ.js +0 -476
  235. package/Build/Workers/chunk-CIV5DJOQ.js +0 -778
  236. package/Build/Workers/chunk-CLCTQVVL.js +0 -241
  237. package/Build/Workers/chunk-CQNFIAZU.js +0 -56
  238. package/Build/Workers/chunk-CUTRKXUQ.js +0 -288
  239. package/Build/Workers/chunk-DBD5WWG2.js +0 -959
  240. package/Build/Workers/chunk-DIGUUD6G.js +0 -171
  241. package/Build/Workers/chunk-DZBQUULR.js +0 -138
  242. package/Build/Workers/chunk-E2NKV5YT.js +0 -3820
  243. package/Build/Workers/chunk-E7NZJOK7.js +0 -3792
  244. package/Build/Workers/chunk-EB3Y5P3A.js +0 -368
  245. package/Build/Workers/chunk-EHTS2YPT.js +0 -2719
  246. package/Build/Workers/chunk-ELE6SC2C.js +0 -837
  247. package/Build/Workers/chunk-ENNFMWDW.js +0 -789
  248. package/Build/Workers/chunk-ERKUET22.js +0 -3201
  249. package/Build/Workers/chunk-F2IMBMZY.js +0 -241
  250. package/Build/Workers/chunk-F4CSNRZO.js +0 -219
  251. package/Build/Workers/chunk-FBP4DUQJ.js +0 -693
  252. package/Build/Workers/chunk-FDK4K5IA.js +0 -280
  253. package/Build/Workers/chunk-FGQFQHN5.js +0 -1054
  254. package/Build/Workers/chunk-FJWZMGOQ.js +0 -1992
  255. package/Build/Workers/chunk-FQ42MT7M.js +0 -58
  256. package/Build/Workers/chunk-GGNWQWSB.js +0 -301
  257. package/Build/Workers/chunk-GNKXEN4C.js +0 -682
  258. package/Build/Workers/chunk-GSWMAFTE.js +0 -9230
  259. package/Build/Workers/chunk-GXDHRC4J.js +0 -1344
  260. package/Build/Workers/chunk-GYSYP6PC.js +0 -1067
  261. package/Build/Workers/chunk-H2WCFXLP.js +0 -241
  262. package/Build/Workers/chunk-HHV3MCGV.js +0 -162
  263. package/Build/Workers/chunk-HLW2ZRVK.js +0 -368
  264. package/Build/Workers/chunk-HS6AD4P2.js +0 -398
  265. package/Build/Workers/chunk-HT6FASOT.js +0 -973
  266. package/Build/Workers/chunk-IDVHUDZT.js +0 -352
  267. package/Build/Workers/chunk-IGAZBTFZ.js +0 -3201
  268. package/Build/Workers/chunk-IOO7Z2AV.js +0 -57
  269. package/Build/Workers/chunk-IUIFLOYO.js +0 -44
  270. package/Build/Workers/chunk-JALGQYDY.js +0 -288
  271. package/Build/Workers/chunk-JW6OZT4R.js +0 -288
  272. package/Build/Workers/chunk-JXYLJCTC.js +0 -124
  273. package/Build/Workers/chunk-K27QOAW6.js +0 -97
  274. package/Build/Workers/chunk-KMV25A63.js +0 -789
  275. package/Build/Workers/chunk-KZWFWJML.js +0 -2719
  276. package/Build/Workers/chunk-LCXRRALY.js +0 -387
  277. package/Build/Workers/chunk-LD64RPYV.js +0 -368
  278. package/Build/Workers/chunk-LGNDTZVX.js +0 -97
  279. package/Build/Workers/chunk-LNSQVXFH.js +0 -1800
  280. package/Build/Workers/chunk-M4JZ6TSZ.js +0 -959
  281. package/Build/Workers/chunk-MCJDRDJQ.js +0 -102
  282. package/Build/Workers/chunk-MEENMEAH.js +0 -198
  283. package/Build/Workers/chunk-NAWU5RF4.js +0 -162
  284. package/Build/Workers/chunk-NIWITKQK.js +0 -693
  285. package/Build/Workers/chunk-OA6MYL2C.js +0 -837
  286. package/Build/Workers/chunk-OBEU25PI.js +0 -1067
  287. package/Build/Workers/chunk-OHP4ELS7.js +0 -198
  288. package/Build/Workers/chunk-PCL3Y7H5.js +0 -82
  289. package/Build/Workers/chunk-PD4GK4EM.js +0 -57
  290. package/Build/Workers/chunk-PEDU33QG.js +0 -2342
  291. package/Build/Workers/chunk-PVTSNNVI.js +0 -288
  292. package/Build/Workers/chunk-QHPZH22L.js +0 -241
  293. package/Build/Workers/chunk-QIZDWZK6.js +0 -301
  294. package/Build/Workers/chunk-QV6DG2YX.js +0 -1483
  295. package/Build/Workers/chunk-QVLAFFJY.js +0 -56
  296. package/Build/Workers/chunk-R4FPNAZ2.js +0 -352
  297. package/Build/Workers/chunk-R4K7EHOU.js +0 -171
  298. package/Build/Workers/chunk-R7JGHDD6.js +0 -789
  299. package/Build/Workers/chunk-RASQEYD4.js +0 -1483
  300. package/Build/Workers/chunk-RG4F5R57.js +0 -454
  301. package/Build/Workers/chunk-RW6ITX7Q.js +0 -3820
  302. package/Build/Workers/chunk-RYSQVJR6.js +0 -398
  303. package/Build/Workers/chunk-S6RJU5NM.js +0 -1054
  304. package/Build/Workers/chunk-SDFHDNS4.js +0 -147
  305. package/Build/Workers/chunk-SF6K72D7.js +0 -124
  306. package/Build/Workers/chunk-SGRGNDOD.js +0 -682
  307. package/Build/Workers/chunk-SM2CDCYF.js +0 -198
  308. package/Build/Workers/chunk-SS5ABQGY.js +0 -102
  309. package/Build/Workers/chunk-T5QBPLE3.js +0 -414
  310. package/Build/Workers/chunk-TN35HP5B.js +0 -1067
  311. package/Build/Workers/chunk-TNWKJNUZ.js +0 -454
  312. package/Build/Workers/chunk-TOAF47AQ.js +0 -102
  313. package/Build/Workers/chunk-TQ4QCOXT.js +0 -2719
  314. package/Build/Workers/chunk-TSDSILQB.js +0 -124
  315. package/Build/Workers/chunk-TVZD72WJ.js +0 -778
  316. package/Build/Workers/chunk-U5LV3F3Z.js +0 -1054
  317. package/Build/Workers/chunk-UEY73NRN.js +0 -38
  318. package/Build/Workers/chunk-UF46SZEZ.js +0 -789
  319. package/Build/Workers/chunk-UNRTMCET.js +0 -398
  320. package/Build/Workers/chunk-UTB7U3O6.js +0 -1992
  321. package/Build/Workers/chunk-UVO6COT2.js +0 -352
  322. package/Build/Workers/chunk-V46YGZE6.js +0 -352
  323. package/Build/Workers/chunk-VAL7DYNR.js +0 -278
  324. package/Build/Workers/chunk-VDGOCROW.js +0 -57
  325. package/Build/Workers/chunk-VFWSSBPT.js +0 -511
  326. package/Build/Workers/chunk-VVYMXI3I.js +0 -1284
  327. package/Build/Workers/chunk-VXWHPYQM.js +0 -837
  328. package/Build/Workers/chunk-VXYUBRSB.js +0 -219
  329. package/Build/Workers/chunk-VZLDLEWI.js +0 -387
  330. package/Build/Workers/chunk-W5OCKMPJ.js +0 -101
  331. package/Build/Workers/chunk-WBSY7HDY.js +0 -837
  332. package/Build/Workers/chunk-WN3F4CVG.js +0 -3201
  333. package/Build/Workers/chunk-WPRUWXGV.js +0 -693
  334. package/Build/Workers/chunk-WTO2ERBP.js +0 -414
  335. package/Build/Workers/chunk-WVHMDVG4.js +0 -959
  336. package/Build/Workers/chunk-XGA23TAX.js +0 -73
  337. package/Build/Workers/chunk-XLXSDIP5.js +0 -973
  338. package/Build/Workers/chunk-XQ3SKCMM.js +0 -140
  339. package/Build/Workers/chunk-XQH66YJC.js +0 -147
  340. package/Build/Workers/chunk-XTA7BXJG.js +0 -682
  341. package/Build/Workers/chunk-XTIDAFRS.js +0 -476
  342. package/Build/Workers/chunk-XUEDWBUD.js +0 -682
  343. package/Build/Workers/chunk-XYFLRH3H.js +0 -124
  344. package/Build/Workers/chunk-Y7JRTRTO.js +0 -305
  345. package/Build/Workers/chunk-Y7QSMDCJ.js +0 -352
  346. package/Build/Workers/chunk-YCB5TYTR.js +0 -1483
  347. package/Build/Workers/chunk-YEYOSTJX.js +0 -219
  348. package/Build/Workers/chunk-YGFVAGYF.js +0 -630
  349. package/Build/Workers/chunk-YIIACKQO.js +0 -368
  350. package/Build/Workers/chunk-YJGSP6PE.js +0 -511
  351. package/Build/Workers/chunk-YKU2Q3A2.js +0 -1287
  352. package/Build/Workers/chunk-Z4LR5EHE.js +0 -454
  353. package/Build/Workers/chunk-Z66EVE2A.js +0 -44
  354. package/Build/Workers/chunk-ZHIHHHTB.js +0 -414
  355. package/Build/Workers/chunk-ZMBHFYOX.js +0 -1344
  356. package/Build/Workers/chunk-ZNWHFSLE.js +0 -171
  357. package/Build/Workers/chunk-ZQLZG4IN.js +0 -2342
  358. package/Build/Workers/chunk-ZRTSMUZ2.js +0 -414
  359. package/Build/Workers/chunk-ZSGUV73H.js +0 -2342
  360. package/Build/Workers/chunk-ZZUVT5BM.js +0 -476
  361. package/Source/Shaders/Builtin/Functions/clipPolygons.glsl +0 -37
  362. package/Source/Shaders/Builtin/Functions/clipPolygons.js +0 -39
  363. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.glsl +0 -14
  364. package/Source/Shaders/Builtin/Functions/unpackClippingExtents.js +0 -15
  365. package/Source/Shaders/PolygonSignedDistanceFS.glsl +0 -131
  366. package/Source/Shaders/PolygonSignedDistanceFS.js +0 -132
@@ -0,0 +1,369 @@
1
+ import Cartesian3 from "./Cartesian3.js";
2
+ import Cartesian4 from "./Cartesian4.js";
3
+ import Cartographic from "./Cartographic.js";
4
+ import Check from "./Check.js";
5
+ import Frozen from "./Frozen.js";
6
+ import CesiumMath from "./Math.js";
7
+ import defined from "./defined.js";
8
+ import Ion from "./Ion.js";
9
+ import IonResource from "./IonResource.js";
10
+ import IonSnapMode from "./IonSnapMode.js";
11
+ import Matrix4 from "./Matrix4.js";
12
+ import Resource from "./Resource.js";
13
+ import RuntimeError from "./RuntimeError.js";
14
+
15
+ /**
16
+ * Convert a WGS84 degrees point object returned by the ion REST API to a
17
+ * Cartesian3, or undefined when absent.
18
+ * @private
19
+ */
20
+ function cartesianFromApiPoint(point) {
21
+ if (
22
+ !defined(point) ||
23
+ !defined(point.longitude) ||
24
+ !defined(point.latitude)
25
+ ) {
26
+ return undefined;
27
+ }
28
+ return Cartesian3.fromDegrees(
29
+ point.longitude,
30
+ point.latitude,
31
+ point.height ?? 0.0,
32
+ );
33
+ }
34
+
35
+ /**
36
+ * Convert a Cartesian3 (ECEF) to the WGS84 degrees object shape the ion REST
37
+ * API expects.
38
+ * @private
39
+ */
40
+ function apiPointFromCartesian(cartesian) {
41
+ const carto = Cartographic.fromCartesian(cartesian);
42
+ return {
43
+ longitude: CesiumMath.toDegrees(carto.longitude),
44
+ latitude: CesiumMath.toDegrees(carto.latitude),
45
+ height: carto.height,
46
+ };
47
+ }
48
+
49
+ /**
50
+ * Convert a Matrix4 to the row-major array-of-rows shape the ion REST API
51
+ * expects for <code>worldToView</code>.
52
+ * @private
53
+ */
54
+ function rowsFromMatrix4(matrix) {
55
+ const rows = [];
56
+ const row = new Cartesian4();
57
+ for (let i = 0; i < 4; i++) {
58
+ Matrix4.getRow(matrix, i, row);
59
+ rows.push([row.x, row.y, row.z, row.w]);
60
+ }
61
+ return rows;
62
+ }
63
+
64
+ /**
65
+ * Build the clip-space -> pixel-space (projective) viewport matrix:
66
+ * <pre>
67
+ * px = (ndcX * 0.5 + 0.5) * width
68
+ * py = (1 - (ndcY * 0.5 + 0.5)) * height (y-down, top-left origin)
69
+ * pz = ndcZ * 0.5 + 0.5 ([-1,1] -> [0,1] depth)
70
+ * </pre>
71
+ * @private
72
+ */
73
+ function viewportMatrix(width, height, result) {
74
+ return Matrix4.fromRowMajorArray(
75
+ // prettier-ignore
76
+ [
77
+ width / 2, 0, 0, width / 2,
78
+ 0, -height / 2, 0, height / 2,
79
+ 0, 0, 0.5, 0.5,
80
+ 0, 0, 0, 1,
81
+ ],
82
+ result,
83
+ );
84
+ }
85
+
86
+ const scratchViewport = new Matrix4();
87
+ const scratchWorldToView = new Matrix4();
88
+
89
+ /**
90
+ * The result of a successful {@link IonSnapService#snap}. Extends
91
+ * {@link SnapService.Result} with ion-specific fields.
92
+ *
93
+ * @typedef {object} IonSnapService.Result
94
+ * @property {Cartesian3} [snapPoint] The snapped point. This is the point to consume.
95
+ * @property {Cartesian3} [hitPoint] The point where the cursor hit the geometry: the nearest edge point when within the snap aperture, otherwise the surface point under the cursor.
96
+ * @property {IonSnapHeat} [heat] How close the snap point is to the close point in view space.
97
+ * @property {IonSnapGeometryType} [geometryType] The type of geometry snapped to.
98
+ * @property {IonSnapParentGeometryType} [parentGeometryType] The type of the parent geometry snapped to.
99
+ * @property {object} [normal] The surface normal at the snap point, in the model's local cartesian frame.
100
+ * @property {object} [curve] The curve geometry near the snap point, with points as WGS84 degrees objects.
101
+ */
102
+
103
+ /**
104
+ * Provides interactive snap-to-geometry against a Cesium ion 3D Tiles asset
105
+ * backed by a BIM/CAD Database model, using the ion REST API's element snap
106
+ * endpoint.
107
+ *
108
+ * This class handles conversions between the reference frame of a
109
+ * source BIM/CAD Database and the view-dependent screen space pixel
110
+ * coordinates. Each snap, it transforms using the ion asset's source
111
+ * reference frame, the camera's transform, and the canvas
112
+ * dimensions so that view-dependent features— such as the pixel aperture,
113
+ * nearest position, or surface tracking— behave correctly.
114
+ *
115
+ * This object is normally not instantiated directly, use {@link IonSnapService.fromAssetId}.
116
+ *
117
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
118
+ *
119
+ * @see Ion
120
+ * @see SnapService
121
+ *
122
+ * @example
123
+ * const snapper = await Cesium.IonSnapService.fromAssetId(123456);
124
+ * const canvas = viewer.scene.canvas;
125
+ * const result = await snapper.snap({
126
+ * elementId: "0x30000000df2",
127
+ * testPoint: pickedPosition,
128
+ * camera: viewer.camera,
129
+ * canvasWidth: canvas.clientWidth,
130
+ * canvasHeight: canvas.clientHeight,
131
+ * });
132
+ * if (Cesium.defined(result)) {
133
+ * console.log("snapped to", result.snapPoint);
134
+ * }
135
+ */
136
+ class IonSnapService {
137
+ /**
138
+ * @param {object} options Object with the following properties:
139
+ * @param {number} options.assetId The ion asset id.
140
+ * @param {Resource} options.resource The asset's ion API resource.
141
+ * @param {Matrix4} options.ecefTransform A 4x4 transformation matrix from the source BIM/CAD Database reference frame local to the world's fixed reference frame.
142
+ */
143
+ constructor(options) {
144
+ this._assetId = options.assetId;
145
+ this._resource = options.resource;
146
+
147
+ /**
148
+ * A 4x4 transformation matrix from the source BIM/CAD Database reference frame local to the world's fixed reference frame.
149
+ * @type {Matrix4}
150
+ * @readonly
151
+ */
152
+ this.ecefTransform = options.ecefTransform;
153
+ }
154
+
155
+ /**
156
+ * The ion asset id this snapper operates on.
157
+ * @type {number}
158
+ * @readonly
159
+ */
160
+ get assetId() {
161
+ return this._assetId;
162
+ }
163
+
164
+ /**
165
+ * Creates an {@link IonSnapService} for the given ion asset, fetching
166
+ * the asset's ECEF transform from the ion REST API.
167
+ *
168
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
169
+ *
170
+ * @param {number} assetId The ion ID of a 3D Tiles asset backed by a BIM/CAD Database model.
171
+ * @param {object} [options] Object with the following properties:
172
+ * @param {string} [options.accessToken=Ion.defaultAccessToken] The ion access token to use.
173
+ * @param {string|Resource} [options.server=Ion.defaultServer] The ion API server to use.
174
+ * @returns {Promise<IonSnapService>} A snapper bound to the asset.
175
+ *
176
+ * @exception {RuntimeError} The asset is not geolocated, so view-correct snapping is not possible.
177
+ */
178
+ static async fromAssetId(assetId, options) {
179
+ //>>includeStart('debug', pragmas.debug);
180
+ Check.typeOf.number("assetId", assetId);
181
+ //>>includeEnd('debug');
182
+
183
+ options = options ?? Frozen.EMPTY_OBJECT;
184
+ const accessToken = options.accessToken ?? Ion.defaultAccessToken;
185
+ const server = Resource.createIfNeeded(options.server ?? Ion.defaultServer);
186
+ server.appendForwardSlash();
187
+
188
+ const resourceOptions = {
189
+ // Trailing slash so derived resource urls resolve under the asset id.
190
+ url: `assets/${assetId}/`,
191
+ headers: IonResource._addClientHeaders(),
192
+ };
193
+ if (defined(accessToken)) {
194
+ resourceOptions.queryParameters = { access_token: accessToken };
195
+ }
196
+ const resource = server.getDerivedResource(resourceOptions);
197
+
198
+ const ecefResponse = await resource
199
+ .getDerivedResource({ url: "ecef" })
200
+ .fetchJson();
201
+
202
+ if (!defined(ecefResponse?.ecefTransform)) {
203
+ throw new RuntimeError(
204
+ `Cesium ion asset ${assetId} is not geolocated; snapping requires geolocation`,
205
+ );
206
+ }
207
+
208
+ const ecefTransform = Matrix4.fromRowMajorArray(
209
+ ecefResponse.ecefTransform.flat(),
210
+ );
211
+
212
+ return new IonSnapService({
213
+ assetId: assetId,
214
+ resource: resource,
215
+ ecefTransform: ecefTransform,
216
+ });
217
+ }
218
+
219
+ /**
220
+ * Computes the world-to-view matrix the native snapper needs: a projective
221
+ * transform from model-world coordinates to view (CSS pixel) coordinates,
222
+ * composed as <code>V * P * Vm * E</code> where
223
+ * <ul>
224
+ * <li><code>E</code>: model -> ECEF (this asset's {@link IonSnapService#ecefTransform})</li>
225
+ * <li><code>Vm</code>: ECEF -> eye (<code>camera.viewMatrix</code>)</li>
226
+ * <li><code>P</code>: eye -> clip (<code>camera.frustum.projectionMatrix</code>)</li>
227
+ * <li><code>V</code>: clip -> pixels (y-down viewport matrix)</li>
228
+ * </ul>
229
+ * The viewport term uses CSS pixel dimensions so pixel-valued snap apertures
230
+ * mean CSS pixels regardless of the display's device pixel ratio.
231
+ *
232
+ * @param {Camera} camera The camera defining the view.
233
+ * @param {number} canvasWidth The canvas width in CSS pixels.
234
+ * @param {number} canvasHeight The canvas height in CSS pixels.
235
+ * @param {Matrix4} [result] The object onto which to store the result.
236
+ * @returns {Matrix4} The model-world to view (pixels) matrix.
237
+ *
238
+ * @private
239
+ */
240
+ _computeWorldToView(camera, canvasWidth, canvasHeight, result) {
241
+ //>>includeStart('debug', pragmas.debug);
242
+ Check.defined("camera", camera);
243
+ Check.typeOf.number("canvasWidth", canvasWidth);
244
+ Check.typeOf.number("canvasHeight", canvasHeight);
245
+ //>>includeEnd('debug');
246
+
247
+ result = result ?? new Matrix4();
248
+
249
+ const V = viewportMatrix(canvasWidth, canvasHeight, scratchViewport);
250
+
251
+ // result = V * P * Vm * E, built up right-to-left
252
+ Matrix4.multiply(camera.viewMatrix, this.ecefTransform, result);
253
+ Matrix4.multiply(camera.frustum.projectionMatrix, result, result);
254
+ return Matrix4.multiply(V, result, result);
255
+ }
256
+
257
+ /**
258
+ * Requests a snap against an element of this asset.
259
+ *
260
+ * A view-correct world-to-view matrix is composed from
261
+ * <code>options.camera</code>, <code>options.canvasWidth</code>, and
262
+ * <code>options.canvasHeight</code> so view-dependent snapping (nearest
263
+ * ordering, pixel apertures, surface tracking) matches the current view.
264
+ *
265
+ * Only 3D views are supported: the camera must be viewing in
266
+ * {@link SceneMode.SCENE3D}.
267
+ *
268
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
269
+ *
270
+ * @param {object} options Object with the following properties:
271
+ * @param {string} options.elementId The element id to snap to, as a hex string, e.g. <code>"0x30000000df2"</code>.
272
+ * @param {Cartesian3} options.testPoint The point to snap from, typically the picked cursor position.
273
+ * @param {Camera} options.camera The camera defining the current view. Must be viewing in {@link SceneMode.SCENE3D}.
274
+ * @param {number} options.canvasWidth The canvas width in CSS pixels.
275
+ * @param {number} options.canvasHeight The canvas height in CSS pixels.
276
+ * @param {Cartesian3} [options.closePoint=options.testPoint] A reference point near the target geometry that seeds the snap search.
277
+ * @param {number} [options.snapAperture=IonSnapService.DEFAULT_SNAP_APERTURE] The snap tolerance in CSS pixels of the world-to-view output space.
278
+ * @param {IonSnapMode} [options.snapMode=IonSnapMode.NEAREST] The type of snap to perform.
279
+ * @returns {Promise<IonSnapService.Result|undefined>} The snap result, or <code>undefined</code> if the element was not found or no snap was possible for it.
280
+ */
281
+ async snap(options) {
282
+ //>>includeStart('debug', pragmas.debug);
283
+ Check.defined("options", options);
284
+ Check.typeOf.string("options.elementId", options.elementId);
285
+ Check.defined("options.testPoint", options.testPoint);
286
+ Check.defined("options.camera", options.camera);
287
+ Check.typeOf.number("options.canvasWidth", options.canvasWidth);
288
+ Check.typeOf.number("options.canvasHeight", options.canvasHeight);
289
+ //>>includeEnd('debug');
290
+
291
+ const worldToView = this._computeWorldToView(
292
+ options.camera,
293
+ options.canvasWidth,
294
+ options.canvasHeight,
295
+ scratchWorldToView,
296
+ );
297
+
298
+ const body = {
299
+ testPoint: apiPointFromCartesian(options.testPoint),
300
+ closePoint: apiPointFromCartesian(
301
+ options.closePoint ?? options.testPoint,
302
+ ),
303
+ snapAperture:
304
+ options.snapAperture ?? IonSnapService.DEFAULT_SNAP_APERTURE,
305
+ snapMode: options.snapMode ?? IonSnapMode.NEAREST,
306
+ worldToView: rowsFromMatrix4(worldToView),
307
+ };
308
+
309
+ let response;
310
+ try {
311
+ response = await this._resource
312
+ .getDerivedResource({
313
+ url: `elements/${options.elementId}/snap`,
314
+ })
315
+ .post(JSON.stringify(body), {
316
+ headers: {
317
+ "Content-Type": "application/json",
318
+ },
319
+ responseType: "json",
320
+ });
321
+ } catch (error) {
322
+ // The snap endpoint responds 404 when the element does not exist, and
323
+ // 400 with a "No snap possible" message when the element has no
324
+ // snappable geometry or the test point is too far from it. Treat both
325
+ // as "no snap".
326
+ if (error?.statusCode === 404) {
327
+ return undefined;
328
+ }
329
+ if (
330
+ error?.statusCode === 400 &&
331
+ typeof error.response?.message === "string" &&
332
+ error.response.message.includes("No snap possible")
333
+ ) {
334
+ return undefined;
335
+ }
336
+ throw error;
337
+ }
338
+
339
+ if (!defined(response)) {
340
+ return undefined;
341
+ }
342
+
343
+ const result = {
344
+ heat: response.heat,
345
+ geometryType: response.geomType,
346
+ parentGeometryType: response.parentGeomType,
347
+ normal: response.normal,
348
+ curve: response.curve,
349
+ };
350
+ result.snapPoint = cartesianFromApiPoint(response.snapPoint);
351
+ result.hitPoint = cartesianFromApiPoint(response.hitPoint);
352
+ return result;
353
+ }
354
+ }
355
+
356
+ /**
357
+ * The default snap tolerance used by {@link IonSnapService#snap} when
358
+ * <code>options.snapAperture</code> is not provided, in CSS pixels of the
359
+ * world-to-view output space. This is {@link SnapService}'s
360
+ * <code>DEFAULT_SNAP_APERTURE</code> for this implementation.
361
+ *
362
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
363
+ *
364
+ * @type {number}
365
+ * @constant
366
+ */
367
+ IonSnapService.DEFAULT_SNAP_APERTURE = 12;
368
+
369
+ export default IonSnapService;
@@ -0,0 +1,63 @@
1
+ import DeveloperError from "./DeveloperError.js";
2
+
3
+ /**
4
+ * The result of a successful {@link SnapService#snap}.
5
+ *
6
+ * Implementations may return additional properties beyond those listed here.
7
+ *
8
+ * @typedef {object} SnapService.Result
9
+ * @property {Cartesian3} [snapPoint] The snapped point. This is the point to consume.
10
+ * @property {Cartesian3} [hitPoint] The point where the cursor hit the geometry: the nearest edge point when within the snap aperture, otherwise the surface point under the cursor.
11
+ */
12
+
13
+ /**
14
+ * Provides snap-to-geometry through an external service, which snaps against
15
+ * source geometry hosted remotely rather than geometry loaded in the scene.
16
+ * This type describes an interface and is not intended to be used.
17
+ *
18
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
19
+ *
20
+ * @see IonSnapService
21
+ */
22
+ class SnapService {
23
+ constructor() {
24
+ DeveloperError.throwInstantiationError();
25
+ }
26
+
27
+ /**
28
+ * Requests a snap against geometry known to the service.
29
+ *
30
+ * The camera and canvas dimensions describe the current view so the
31
+ * implementation can perform view-dependent snapping (nearest ordering,
32
+ * pixel apertures, surface tracking) correctly.
33
+ *
34
+ * Implementations may accept additional options beyond those listed here.
35
+ *
36
+ * @param {object} options Object with the following properties:
37
+ * @param {string} options.elementId An implementation-defined identifier of the geometry to snap to.
38
+ * @param {Cartesian3} options.testPoint The point to snap from, typically the picked cursor position.
39
+ * @param {Camera} options.camera The camera defining the current view.
40
+ * @param {number} options.canvasWidth The canvas width in CSS pixels.
41
+ * @param {number} options.canvasHeight The canvas height in CSS pixels.
42
+ * @param {Cartesian3} [options.closePoint=options.testPoint] A reference point near the target geometry that seeds the snap search.
43
+ * @param {number} [options.snapAperture=SnapService.DEFAULT_SNAP_APERTURE] The snap tolerance in CSS pixels.
44
+ * @returns {Promise<SnapService.Result|undefined>} The snap result, or <code>undefined</code> if no snap was possible.
45
+ */
46
+ async snap(options) {
47
+ DeveloperError.throwInstantiationError();
48
+ }
49
+ }
50
+
51
+ /**
52
+ * The default snap tolerance used by {@link SnapService#snap} when
53
+ * <code>options.snapAperture</code> is not provided, in CSS pixels.
54
+ * The value is implementation-defined.
55
+ *
56
+ * @experimental This feature is not final and is subject to change without Cesium's standard deprecation policy.
57
+ *
58
+ * @type {number}
59
+ * @constant
60
+ */
61
+ SnapService.DEFAULT_SNAP_APERTURE = undefined;
62
+
63
+ export default SnapService;