deeptwins-cesium-engine 0.0.43 → 0.1.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 (770) hide show
  1. package/LICENSE.md +32 -25
  2. package/Source/Core/ApproximateTerrainHeights.js +2 -3
  3. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +8 -8
  4. package/Source/Core/ArcType.js +6 -1
  5. package/Source/Core/ArticulationStageType.js +5 -1
  6. package/Source/Core/AssociativeArray.js +100 -94
  7. package/Source/Core/AttributeCompression.js +53 -6
  8. package/Source/Core/AxisAlignedBoundingBox.js +38 -3
  9. package/Source/Core/BingMapsGeocoderService.js +2 -2
  10. package/Source/Core/BoundingRectangle.js +7 -8
  11. package/Source/Core/BoundingSphere.js +1296 -1301
  12. package/Source/Core/BoxGeometry.js +8 -8
  13. package/Source/Core/BoxOutlineGeometry.js +7 -9
  14. package/Source/Core/Cartesian2.js +691 -685
  15. package/Source/Core/Cartesian3.js +1045 -1044
  16. package/Source/Core/Cartesian4.js +817 -813
  17. package/Source/Core/Cartographic.js +257 -250
  18. package/Source/Core/CatmullRomSpline.js +2 -2
  19. package/Source/Core/Cesium3DTilesTerrainData.js +932 -0
  20. package/Source/Core/Cesium3DTilesTerrainGeometryProcessor.js +1868 -0
  21. package/Source/Core/Cesium3DTilesTerrainProvider.js +1052 -0
  22. package/Source/Core/CesiumTerrainProvider.js +13 -16
  23. package/Source/Core/Check.d.ts +4 -1
  24. package/Source/Core/CircleGeometry.js +2 -2
  25. package/Source/Core/CircleOutlineGeometry.js +2 -2
  26. package/Source/Core/Clock.js +7 -10
  27. package/Source/Core/ClockRange.js +6 -1
  28. package/Source/Core/ClockStep.js +6 -1
  29. package/Source/Core/Color.js +847 -819
  30. package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
  31. package/Source/Core/ComponentDatatype.js +43 -7
  32. package/Source/Core/CoplanarPolygonGeometry.js +8 -10
  33. package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
  34. package/Source/Core/CornerType.js +7 -2
  35. package/Source/Core/CorridorGeometry.js +16 -21
  36. package/Source/Core/CorridorOutlineGeometry.js +10 -15
  37. package/Source/Core/Credit.js +121 -125
  38. package/Source/Core/CullingVolume.js +1 -2
  39. package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
  40. package/Source/Core/CylinderGeometry.js +7 -7
  41. package/Source/Core/CylinderOutlineGeometry.js +7 -7
  42. package/Source/Core/DeveloperError.js +2 -1
  43. package/Source/Core/DistanceDisplayCondition.js +4 -5
  44. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
  45. package/Source/Core/EarthOrientationParameters.js +4 -4
  46. package/Source/Core/EllipseGeometry.js +17 -23
  47. package/Source/Core/EllipseOutlineGeometry.js +12 -15
  48. package/Source/Core/Ellipsoid.js +640 -655
  49. package/Source/Core/EllipsoidGeodesic.js +1 -2
  50. package/Source/Core/EllipsoidGeometry.js +15 -15
  51. package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
  52. package/Source/Core/EllipsoidRhumbLine.js +2 -3
  53. package/Source/Core/EllipsoidTangentPlane.js +1 -2
  54. package/Source/Core/EllipsoidTerrainProvider.js +4 -4
  55. package/Source/Core/EllipsoidalOccluder.js +4 -5
  56. package/Source/Core/Event.js +94 -53
  57. package/Source/Core/ExtrapolationType.js +6 -1
  58. package/Source/Core/FeatureDetection.js +2 -36
  59. package/Source/Core/FrustumGeometry.js +7 -8
  60. package/Source/Core/FrustumOutlineGeometry.js +3 -4
  61. package/Source/Core/GeocodeType.js +6 -1
  62. package/Source/Core/GeographicProjection.js +74 -75
  63. package/Source/Core/GeographicTilingScheme.js +180 -205
  64. package/Source/Core/Geometry.js +5 -8
  65. package/Source/Core/GeometryAttribute.js +3 -3
  66. package/Source/Core/GeometryAttributes.js +2 -2
  67. package/Source/Core/GeometryInstance.js +4 -6
  68. package/Source/Core/GeometryInstanceAttribute.js +3 -3
  69. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  70. package/Source/Core/GeometryPipeline.js +3 -4
  71. package/Source/Core/GeometryType.js +7 -1
  72. package/Source/Core/GoogleEarthEnterpriseMetadata.js +14 -25
  73. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +11 -13
  74. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +4 -4
  75. package/Source/Core/GoogleGeocoderService.js +2 -2
  76. package/Source/Core/GoogleMaps.js +25 -4
  77. package/Source/Core/GregorianDate.js +8 -9
  78. package/Source/Core/GroundPolylineGeometry.js +8 -8
  79. package/Source/Core/HeadingPitchRange.js +3 -4
  80. package/Source/Core/HeadingPitchRoll.js +3 -4
  81. package/Source/Core/Heap.js +3 -4
  82. package/Source/Core/HeightmapEncoding.js +6 -1
  83. package/Source/Core/HeightmapTerrainData.js +33 -59
  84. package/Source/Core/HeightmapTessellator.js +21 -37
  85. package/Source/Core/HermitePolynomialApproximation.js +1 -2
  86. package/Source/Core/HermiteSpline.js +5 -5
  87. package/Source/Core/HilbertOrder.js +0 -6
  88. package/Source/Core/ITwinPlatform.js +87 -22
  89. package/Source/Core/Iau2006XysData.js +32 -23
  90. package/Source/Core/IndexDatatype.js +3 -1
  91. package/Source/Core/InterpolationType.js +5 -1
  92. package/Source/Core/Intersect.js +6 -1
  93. package/Source/Core/IntersectionTests.js +83 -4
  94. package/Source/Core/Interval.js +2 -4
  95. package/Source/Core/Ion.js +1 -1
  96. package/Source/Core/IonGeocodeProviderType.js +5 -1
  97. package/Source/Core/IonGeocoderService.js +6 -10
  98. package/Source/Core/IonResource.js +59 -19
  99. package/Source/Core/JulianDate.js +852 -851
  100. package/Source/Core/KeyboardEventModifier.js +6 -1
  101. package/Source/Core/LinearSpline.js +2 -2
  102. package/Source/Core/ManagedArray.js +2 -3
  103. package/Source/Core/MapProjection.js +40 -44
  104. package/Source/Core/Math.js +36 -27
  105. package/Source/Core/Matrix2.js +906 -894
  106. package/Source/Core/Matrix3.js +1643 -1576
  107. package/Source/Core/Matrix4.js +2904 -2873
  108. package/Source/Core/MorphWeightSpline.js +2 -2
  109. package/Source/Core/NearFarScalar.js +6 -7
  110. package/Source/Core/Occluder.js +1 -2
  111. package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
  112. package/Source/Core/OpenCageGeocoderService.js +3 -5
  113. package/Source/Core/OrientedBoundingBox.js +7 -8
  114. package/Source/Core/OrthographicFrustum.js +6 -6
  115. package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
  116. package/Source/Core/PerspectiveFrustum.js +8 -8
  117. package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
  118. package/Source/Core/PinBuilder.js +1 -1
  119. package/Source/Core/PixelFormat.js +60 -22
  120. package/Source/Core/PlaneGeometry.js +5 -5
  121. package/Source/Core/PolygonGeometry.js +18 -20
  122. package/Source/Core/PolygonGeometryLibrary.js +1 -2
  123. package/Source/Core/PolygonOutlineGeometry.js +11 -14
  124. package/Source/Core/PolygonPipeline.js +5 -6
  125. package/Source/Core/PolylineGeometry.js +11 -16
  126. package/Source/Core/PolylinePipeline.js +7 -14
  127. package/Source/Core/PolylineVolumeGeometry.js +9 -14
  128. package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
  129. package/Source/Core/PrimitiveType.js +11 -1
  130. package/Source/Core/QuantizedMeshTerrainData.js +36 -73
  131. package/Source/Core/Quaternion.js +7 -8
  132. package/Source/Core/QuaternionSpline.js +2 -2
  133. package/Source/Core/Ray.js +62 -61
  134. package/Source/Core/Rectangle.js +913 -905
  135. package/Source/Core/RectangleGeometry.js +18 -26
  136. package/Source/Core/RectangleGeometryLibrary.js +1 -1
  137. package/Source/Core/RectangleOutlineGeometry.js +11 -14
  138. package/Source/Core/ReferenceFrame.js +6 -1
  139. package/Source/Core/Request.js +6 -6
  140. package/Source/Core/RequestScheduler.js +12 -9
  141. package/Source/Core/RequestState.js +6 -1
  142. package/Source/Core/RequestType.js +6 -1
  143. package/Source/Core/Resource.js +34 -29
  144. package/Source/Core/S2Cell.js +10 -23
  145. package/Source/Core/ScreenSpaceEventHandler.js +59 -54
  146. package/Source/Core/ScreenSpaceEventType.js +6 -1
  147. package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
  148. package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
  149. package/Source/Core/SimplePolylineGeometry.js +8 -11
  150. package/Source/Core/SphereGeometry.js +1 -2
  151. package/Source/Core/SphereOutlineGeometry.js +1 -2
  152. package/Source/Core/Spherical.js +4 -5
  153. package/Source/Core/Spline.js +1 -2
  154. package/Source/Core/SteppedSpline.js +2 -2
  155. package/Source/Core/TaskProcessor.js +3 -10
  156. package/Source/Core/TerrainData.js +2 -1
  157. package/Source/Core/TerrainEncoding.js +219 -49
  158. package/Source/Core/TerrainMesh.js +227 -10
  159. package/Source/Core/TerrainPicker.js +625 -0
  160. package/Source/Core/TerrainProvider.js +152 -1
  161. package/Source/Core/TerrainQuantization.js +6 -1
  162. package/Source/Core/TexturePacker.js +27 -12
  163. package/Source/Core/TileProviderError.js +1 -2
  164. package/Source/Core/TilingScheme.js +100 -98
  165. package/Source/Core/TimeConstants.js +6 -1
  166. package/Source/Core/TimeInterval.js +7 -7
  167. package/Source/Core/TimeIntervalCollection.js +7 -7
  168. package/Source/Core/TimeStandard.js +6 -1
  169. package/Source/Core/Tipsify.js +5 -5
  170. package/Source/Core/TrackingReferenceFrame.js +6 -1
  171. package/Source/Core/Transforms.js +38 -34
  172. package/Source/Core/TranslationRotationScale.js +3 -6
  173. package/Source/Core/VRTheWorldTerrainProvider.js +7 -7
  174. package/Source/Core/VertexFormat.js +10 -10
  175. package/Source/Core/VerticalExaggeration.js +1 -1
  176. package/Source/Core/VideoSynchronizer.js +7 -7
  177. package/Source/Core/Visibility.js +6 -1
  178. package/Source/Core/VulkanConstants.js +6 -1
  179. package/Source/Core/WallGeometry.js +10 -13
  180. package/Source/Core/WallOutlineGeometry.js +8 -11
  181. package/Source/Core/WebGLConstants.js +6 -1
  182. package/Source/Core/WebMercatorProjection.js +108 -110
  183. package/Source/Core/WebMercatorTilingScheme.js +247 -249
  184. package/Source/Core/WindingOrder.js +3 -1
  185. package/Source/Core/addAllToArray.js +40 -0
  186. package/Source/Core/arrayRemoveDuplicates.js +1 -2
  187. package/Source/Core/assert.js +27 -0
  188. package/Source/Core/binarySearch.js +1 -1
  189. package/Source/Core/clone.js +1 -3
  190. package/Source/Core/combine.js +1 -2
  191. package/Source/Core/createColorRamp.js +37 -0
  192. package/Source/Core/createWorldBathymetryAsync.js +5 -5
  193. package/Source/Core/createWorldTerrainAsync.js +7 -7
  194. package/Source/Core/destroyObject.js +1 -5
  195. package/Source/Core/getAbsoluteUri.js +1 -2
  196. package/Source/Core/getMagic.js +1 -2
  197. package/Source/Core/getStringFromTypedArray.js +2 -3
  198. package/Source/Core/globalTypes.js +45 -0
  199. package/Source/Core/loadImageFromTypedArray.js +11 -9
  200. package/Source/Core/mergeSort.js +1 -1
  201. package/Source/Core/oneTimeWarning.js +1 -2
  202. package/Source/Core/writeTextToCanvas.js +50 -99
  203. package/Source/DataSources/BillboardGraphics.js +29 -55
  204. package/Source/DataSources/BillboardVisualizer.js +7 -4
  205. package/Source/DataSources/BoxGraphics.js +14 -19
  206. package/Source/DataSources/CallbackPositionProperty.js +2 -3
  207. package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
  208. package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
  209. package/Source/DataSources/CompositePositionProperty.js +1 -2
  210. package/Source/DataSources/ConstantPositionProperty.js +1 -2
  211. package/Source/DataSources/CorridorGraphics.js +24 -36
  212. package/Source/DataSources/CylinderGraphics.js +18 -25
  213. package/Source/DataSources/CzmlDataSource.js +44 -61
  214. package/Source/DataSources/DataSourceClock.js +12 -13
  215. package/Source/DataSources/DataSourceCollection.js +2 -3
  216. package/Source/DataSources/DataSourceDisplay.js +2 -5
  217. package/Source/DataSources/EllipseGraphics.js +27 -41
  218. package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
  219. package/Source/DataSources/EllipsoidGraphics.js +22 -33
  220. package/Source/DataSources/Entity.js +8 -10
  221. package/Source/DataSources/EntityCluster.js +11 -11
  222. package/Source/DataSources/EntityView.js +1 -2
  223. package/Source/DataSources/GeoJsonDataSource.js +14 -14
  224. package/Source/DataSources/GeometryUpdater.js +12 -17
  225. package/Source/DataSources/GeometryVisualizer.js +2 -3
  226. package/Source/DataSources/GpxDataSource.js +5 -8
  227. package/Source/DataSources/GridMaterialProperty.js +2 -2
  228. package/Source/DataSources/GroundGeometryUpdater.js +1 -2
  229. package/Source/DataSources/ImageMaterialProperty.js +2 -2
  230. package/Source/DataSources/KmlDataSource.js +147 -222
  231. package/Source/DataSources/KmlTour.js +1 -1
  232. package/Source/DataSources/LabelGraphics.js +28 -57
  233. package/Source/DataSources/LabelVisualizer.js +1 -2
  234. package/Source/DataSources/ModelGraphics.js +30 -64
  235. package/Source/DataSources/ModelVisualizer.js +1 -2
  236. package/Source/DataSources/NodeTransformationProperty.js +2 -2
  237. package/Source/DataSources/PathGraphics.js +23 -12
  238. package/Source/DataSources/PathVisualizer.js +330 -18
  239. package/Source/DataSources/PlaneGraphics.js +14 -16
  240. package/Source/DataSources/PointGraphics.js +17 -32
  241. package/Source/DataSources/PolygonGraphics.js +29 -46
  242. package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
  243. package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
  244. package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
  245. package/Source/DataSources/PolylineGraphics.js +17 -24
  246. package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
  247. package/Source/DataSources/PolylineVisualizer.js +2 -3
  248. package/Source/DataSources/PolylineVolumeGraphics.js +16 -18
  249. package/Source/DataSources/PositionPropertyArray.js +1 -2
  250. package/Source/DataSources/Property.js +1 -2
  251. package/Source/DataSources/PropertyArray.js +2 -2
  252. package/Source/DataSources/PropertyBag.js +1 -2
  253. package/Source/DataSources/RectangleGraphics.js +24 -36
  254. package/Source/DataSources/Rotation.js +4 -5
  255. package/Source/DataSources/SampledPositionProperty.js +2 -3
  256. package/Source/DataSources/SampledProperty.js +6 -11
  257. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  258. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  259. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +58 -27
  260. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +5 -3
  261. package/Source/DataSources/StripeMaterialProperty.js +2 -2
  262. package/Source/DataSources/StripeOrientation.js +6 -1
  263. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
  264. package/Source/DataSources/VelocityOrientationProperty.js +1 -2
  265. package/Source/DataSources/VelocityVectorProperty.js +1 -2
  266. package/Source/DataSources/WallGraphics.js +16 -24
  267. package/Source/DataSources/createPropertyDescriptor.js +2 -3
  268. package/Source/DataSources/exportKml.js +39 -45
  269. package/Source/Renderer/AutomaticUniforms.js +61 -0
  270. package/Source/Renderer/Buffer.js +37 -5
  271. package/Source/Renderer/BufferUsage.js +21 -8
  272. package/Source/Renderer/ClearCommand.js +2 -2
  273. package/Source/Renderer/ComputeCommand.js +3 -3
  274. package/Source/Renderer/Context.js +130 -77
  275. package/Source/Renderer/ContextLimits.js +66 -33
  276. package/Source/Renderer/CubeMap.js +6 -6
  277. package/Source/Renderer/CubeMapFace.js +11 -12
  278. package/Source/Renderer/DrawCommand.js +436 -415
  279. package/Source/Renderer/Framebuffer.js +3 -3
  280. package/Source/Renderer/FramebufferManager.js +25 -39
  281. package/Source/Renderer/MipmapHint.js +5 -1
  282. package/Source/Renderer/MultisampleFramebuffer.js +2 -2
  283. package/Source/Renderer/Pass.js +18 -9
  284. package/Source/Renderer/PickId.js +44 -0
  285. package/Source/Renderer/PixelDatatype.js +3 -1
  286. package/Source/Renderer/RenderState.js +65 -94
  287. package/Source/Renderer/Renderbuffer.js +8 -6
  288. package/Source/Renderer/RenderbufferFormat.js +5 -1
  289. package/Source/Renderer/Sampler.js +15 -2
  290. package/Source/Renderer/ShaderBuilder.js +9 -9
  291. package/Source/Renderer/ShaderDestination.js +58 -14
  292. package/Source/Renderer/ShaderProgram.js +3 -3
  293. package/Source/Renderer/ShaderSource.js +22 -21
  294. package/Source/Renderer/SharedContext.js +186 -0
  295. package/Source/Renderer/Sync.js +104 -0
  296. package/Source/Renderer/Texture.js +22 -19
  297. package/Source/Renderer/Texture3D.js +166 -7
  298. package/Source/Renderer/TextureAtlas.js +81 -49
  299. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  300. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  301. package/Source/Renderer/TextureWrap.js +5 -1
  302. package/Source/Renderer/UniformState.js +18 -11
  303. package/Source/Renderer/VertexArray.js +128 -32
  304. package/Source/Renderer/VertexArrayFacade.js +7 -11
  305. package/Source/Renderer/createUniform.js +348 -239
  306. package/Source/Renderer/createUniformArray.js +494 -381
  307. package/Source/Scene/AlphaMode.js +5 -1
  308. package/Source/Scene/Appearance.js +5 -5
  309. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  310. package/Source/Scene/ArcGisMapServerImageryProvider.js +24 -38
  311. package/Source/Scene/ArcGisMapService.js +1 -1
  312. package/Source/Scene/AttributeType.js +3 -1
  313. package/Source/Scene/Axis.js +3 -1
  314. package/Source/Scene/Azure2DImageryProvider.js +393 -0
  315. package/Source/Scene/B3dmParser.js +2 -3
  316. package/Source/Scene/BatchTable.js +2 -2
  317. package/Source/Scene/BatchTableHierarchy.js +8 -63
  318. package/Source/Scene/Billboard.js +108 -77
  319. package/Source/Scene/BillboardCollection.js +165 -409
  320. package/Source/Scene/BillboardTexture.js +61 -9
  321. package/Source/Scene/BingMapsImageryProvider.js +8 -8
  322. package/Source/Scene/BingMapsStyle.js +6 -1
  323. package/Source/Scene/BlendEquation.js +6 -1
  324. package/Source/Scene/BlendFunction.js +6 -1
  325. package/Source/Scene/BlendOption.js +6 -1
  326. package/Source/Scene/BlendingState.js +6 -1
  327. package/Source/Scene/BoundingVolumeSemantics.js +54 -62
  328. package/Source/Scene/BoxEmitter.js +1 -2
  329. package/Source/Scene/BufferLoader.js +66 -77
  330. package/Source/Scene/BufferPoint.js +149 -0
  331. package/Source/Scene/BufferPointCollection.js +151 -0
  332. package/Source/Scene/BufferPointMaterial.js +95 -0
  333. package/Source/Scene/BufferPolygon.js +517 -0
  334. package/Source/Scene/BufferPolygonCollection.js +380 -0
  335. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  336. package/Source/Scene/BufferPolyline.js +186 -0
  337. package/Source/Scene/BufferPolylineCollection.js +140 -0
  338. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  339. package/Source/Scene/BufferPrimitive.js +347 -0
  340. package/Source/Scene/BufferPrimitiveCollection.js +869 -0
  341. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  342. package/Source/Scene/Camera.js +52 -60
  343. package/Source/Scene/CameraEventAggregator.js +30 -18
  344. package/Source/Scene/CameraEventType.js +6 -1
  345. package/Source/Scene/CameraFlightPath.js +6 -6
  346. package/Source/Scene/Cesium3DContentGroup.js +2 -2
  347. package/Source/Scene/Cesium3DTile.js +60 -8
  348. package/Source/Scene/Cesium3DTileBatchTable.js +12 -53
  349. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  350. package/Source/Scene/Cesium3DTileContent.js +196 -251
  351. package/Source/Scene/Cesium3DTileContentFactory.js +31 -0
  352. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  353. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  354. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  355. package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
  356. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  357. package/Source/Scene/Cesium3DTilePass.js +5 -1
  358. package/Source/Scene/Cesium3DTilePointFeature.js +442 -528
  359. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  360. package/Source/Scene/Cesium3DTileStyle.js +30 -10
  361. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  362. package/Source/Scene/Cesium3DTilesVoxelProvider.js +58 -35
  363. package/Source/Scene/Cesium3DTileset.js +361 -150
  364. package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
  365. package/Source/Scene/CircleEmitter.js +2 -3
  366. package/Source/Scene/ClassificationPrimitive.js +15 -26
  367. package/Source/Scene/ClassificationType.js +3 -1
  368. package/Source/Scene/ClippingPlaneCollection.js +12 -17
  369. package/Source/Scene/ClippingPolygon.js +92 -4
  370. package/Source/Scene/ClippingPolygonCollection.js +274 -107
  371. package/Source/Scene/CloudCollection.js +11 -13
  372. package/Source/Scene/CloudType.js +3 -1
  373. package/Source/Scene/ColorBlendMode.js +4 -1
  374. package/Source/Scene/Composite3DTileContent.js +254 -293
  375. package/Source/Scene/ConditionsExpression.js +3 -2
  376. package/Source/Scene/ConeEmitter.js +1 -2
  377. package/Source/Scene/ContentMetadata.js +2 -2
  378. package/Source/Scene/CreditDisplay.js +6 -10
  379. package/Source/Scene/CubeMapPanorama.js +351 -0
  380. package/Source/Scene/CullFace.js +6 -1
  381. package/Source/Scene/CumulusCloud.js +10 -16
  382. package/Source/Scene/DebugAppearance.js +7 -7
  383. package/Source/Scene/DebugCameraPrimitive.js +5 -5
  384. package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
  385. package/Source/Scene/DepthFunction.js +6 -1
  386. package/Source/Scene/DepthPlane.js +1 -2
  387. package/Source/Scene/DerivedCommand.js +1 -24
  388. package/Source/Scene/DirectionalLight.js +2 -3
  389. package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
  390. package/Source/Scene/DracoLoader.js +79 -78
  391. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  392. package/Source/Scene/DynamicEnvironmentMapManager.js +55 -49
  393. package/Source/Scene/EdgeDisplayMode.js +50 -0
  394. package/Source/Scene/EdgeFramebuffer.js +245 -0
  395. package/Source/Scene/EllipsoidPrimitive.js +11 -19
  396. package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
  397. package/Source/Scene/Empty3DTileContent.js +100 -132
  398. package/Source/Scene/EquirectangularPanorama.js +265 -0
  399. package/Source/Scene/ExpressionNodeType.js +6 -1
  400. package/Source/Scene/Fog.js +1 -1
  401. package/Source/Scene/FrameRateMonitor.js +12 -21
  402. package/Source/Scene/FrameState.js +19 -0
  403. package/Source/Scene/FrustumCommands.js +2 -3
  404. package/Source/Scene/GaussianSplat3DTileContent.js +778 -0
  405. package/Source/Scene/GaussianSplatPrimitive.js +2147 -0
  406. package/Source/Scene/GaussianSplatRenderResources.js +81 -0
  407. package/Source/Scene/GaussianSplatSorter.js +73 -0
  408. package/Source/Scene/GaussianSplatTextureGenerator.js +64 -0
  409. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  410. package/Source/Scene/Geometry3DTileContent.js +160 -201
  411. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  412. package/Source/Scene/Globe.js +10 -16
  413. package/Source/Scene/GlobeSurfaceShaderSet.js +40 -37
  414. package/Source/Scene/GlobeSurfaceTile.js +28 -70
  415. package/Source/Scene/GlobeSurfaceTileProvider.js +20 -18
  416. package/Source/Scene/GlobeTranslucencyState.js +12 -25
  417. package/Source/Scene/GltfBufferViewLoader.js +125 -118
  418. package/Source/Scene/GltfDracoLoader.js +168 -179
  419. package/Source/Scene/GltfImageLoader.js +92 -105
  420. package/Source/Scene/GltfIndexBufferLoader.js +229 -246
  421. package/Source/Scene/GltfJsonLoader.js +91 -102
  422. package/Source/Scene/GltfLoader.js +786 -368
  423. package/Source/Scene/GltfLoaderUtil.js +25 -11
  424. package/Source/Scene/GltfPipeline/ForEach.js +7 -7
  425. package/Source/Scene/GltfPipeline/addDefaults.js +36 -64
  426. package/Source/Scene/GltfPipeline/addToArray.js +2 -2
  427. package/Source/Scene/GltfPipeline/findAccessorMinMax.js +1 -1
  428. package/Source/Scene/GltfPipeline/getComponentReader.js +16 -16
  429. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +3 -6
  430. package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +3 -3
  431. package/Source/Scene/GltfPipeline/parseGlb.js +2 -6
  432. package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
  433. package/Source/Scene/GltfPipeline/removeUnusedElements.js +6 -8
  434. package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +1 -1
  435. package/Source/Scene/GltfPipeline/updateVersion.js +34 -55
  436. package/Source/Scene/GltfSpzLoader.js +324 -0
  437. package/Source/Scene/GltfStructuralMetadataLoader.js +185 -193
  438. package/Source/Scene/GltfTextureLoader.js +218 -234
  439. package/Source/Scene/GltfVertexBufferLoader.js +391 -255
  440. package/Source/Scene/Google2DImageryProvider.js +621 -0
  441. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
  442. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +4 -5
  443. package/Source/Scene/GoogleStreetViewCubeMapPanoramaProvider.js +341 -0
  444. package/Source/Scene/GridImageryProvider.js +10 -13
  445. package/Source/Scene/GroundPolylinePrimitive.js +11 -22
  446. package/Source/Scene/GroundPrimitive.js +13 -24
  447. package/Source/Scene/GroupMetadata.js +2 -2
  448. package/Source/Scene/HeightReference.js +6 -2
  449. package/Source/Scene/HorizontalOrigin.js +6 -1
  450. package/Source/Scene/I3SDataProvider.js +11 -16
  451. package/Source/Scene/I3SDecoder.js +3 -3
  452. package/Source/Scene/I3SNode.js +1 -6
  453. package/Source/Scene/I3SSublayer.js +1 -2
  454. package/Source/Scene/I3SSymbology.js +2 -3
  455. package/Source/Scene/I3dmParser.js +1 -2
  456. package/Source/Scene/ITwinData.js +61 -31
  457. package/Source/Scene/ImageBasedLighting.js +10 -6
  458. package/Source/Scene/ImageryLayer.js +74 -88
  459. package/Source/Scene/ImageryLayerCollection.js +7 -7
  460. package/Source/Scene/ImageryProvider.js +3 -3
  461. package/Source/Scene/ImageryState.js +6 -1
  462. package/Source/Scene/Implicit3DTileContent.js +199 -224
  463. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
  464. package/Source/Scene/ImplicitMetadataView.js +2 -2
  465. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  466. package/Source/Scene/ImplicitSubtree.js +11 -18
  467. package/Source/Scene/ImplicitSubtreeCache.js +3 -3
  468. package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
  469. package/Source/Scene/ImplicitTileset.js +2 -2
  470. package/Source/Scene/InstanceAttributeSemantic.js +4 -2
  471. package/Source/Scene/IonImageryProvider.js +18 -66
  472. package/Source/Scene/IonImageryProviderFactory.js +194 -0
  473. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  474. package/Source/Scene/JobType.js +6 -1
  475. package/Source/Scene/Label.js +58 -41
  476. package/Source/Scene/LabelCollection.js +136 -65
  477. package/Source/Scene/LabelStyle.js +6 -1
  478. package/Source/Scene/MVTDataProvider.js +147 -0
  479. package/Source/Scene/MapMode2D.js +6 -1
  480. package/Source/Scene/MapboxImageryProvider.js +4 -4
  481. package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
  482. package/Source/Scene/Material.js +269 -101
  483. package/Source/Scene/MaterialAppearance.js +13 -19
  484. package/Source/Scene/Megatexture.js +175 -243
  485. package/Source/Scene/MetadataClass.js +4 -4
  486. package/Source/Scene/MetadataClassProperty.js +236 -20
  487. package/Source/Scene/MetadataComponentType.js +254 -125
  488. package/Source/Scene/MetadataEnum.js +4 -7
  489. package/Source/Scene/MetadataEnumValue.js +2 -2
  490. package/Source/Scene/MetadataSchema.js +4 -4
  491. package/Source/Scene/MetadataSchemaLoader.js +61 -70
  492. package/Source/Scene/MetadataSemantic.js +6 -2
  493. package/Source/Scene/MetadataTable.js +16 -2
  494. package/Source/Scene/MetadataTableProperty.js +36 -41
  495. package/Source/Scene/MetadataType.js +3 -1
  496. package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
  497. package/Source/Scene/Model/B3dmLoader.js +217 -239
  498. package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
  499. package/Source/Scene/Model/CartesianRectangle.js +108 -0
  500. package/Source/Scene/Model/ClassificationModelDrawCommand.js +9 -8
  501. package/Source/Scene/Model/CustomShader.js +16 -13
  502. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  503. package/Source/Scene/Model/CustomShaderPipelineStage.js +124 -7
  504. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  505. package/Source/Scene/Model/EdgeDetectionPipelineStage.js +42 -0
  506. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +1039 -0
  507. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
  508. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  509. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  510. package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
  511. package/Source/Scene/Model/GeoJsonLoader.js +60 -71
  512. package/Source/Scene/Model/GeometryPipelineStage.js +17 -3
  513. package/Source/Scene/Model/I3dmLoader.js +233 -252
  514. package/Source/Scene/Model/ImageryConfiguration.js +26 -0
  515. package/Source/Scene/Model/ImageryCoverage.js +488 -0
  516. package/Source/Scene/Model/ImageryFlags.js +31 -0
  517. package/Source/Scene/Model/ImageryInput.js +60 -0
  518. package/Source/Scene/Model/ImageryPipelineStage.js +1046 -0
  519. package/Source/Scene/Model/InstancingPipelineStage.js +4 -9
  520. package/Source/Scene/Model/LightingModel.js +5 -1
  521. package/Source/Scene/Model/MappedPositions.js +84 -0
  522. package/Source/Scene/Model/MaterialPipelineStage.js +359 -6
  523. package/Source/Scene/Model/MetadataPipelineStage.js +444 -28
  524. package/Source/Scene/Model/Model.js +116 -63
  525. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  526. package/Source/Scene/Model/ModelAnimation.js +5 -6
  527. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  528. package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
  529. package/Source/Scene/Model/ModelArticulation.js +2 -2
  530. package/Source/Scene/Model/ModelArticulationStage.js +2 -2
  531. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +8 -2
  532. package/Source/Scene/Model/ModelDrawCommand.js +106 -3
  533. package/Source/Scene/Model/ModelFeatureTable.js +3 -9
  534. package/Source/Scene/Model/ModelImagery.js +410 -0
  535. package/Source/Scene/Model/ModelImageryMapping.js +489 -0
  536. package/Source/Scene/Model/ModelLightingOptions.js +3 -3
  537. package/Source/Scene/Model/ModelNode.js +1 -1
  538. package/Source/Scene/Model/ModelPrimitiveImagery.js +972 -0
  539. package/Source/Scene/Model/ModelReader.js +1281 -0
  540. package/Source/Scene/Model/ModelRenderResources.js +13 -0
  541. package/Source/Scene/Model/ModelRuntimeNode.js +4 -4
  542. package/Source/Scene/Model/ModelRuntimePrimitive.js +36 -4
  543. package/Source/Scene/Model/ModelSceneGraph.js +152 -33
  544. package/Source/Scene/Model/ModelSkin.js +2 -2
  545. package/Source/Scene/Model/ModelType.js +3 -1
  546. package/Source/Scene/Model/ModelUtility.js +9 -1
  547. package/Source/Scene/Model/NodeRenderResources.js +11 -1
  548. package/Source/Scene/Model/PickingPipelineStage.js +1 -2
  549. package/Source/Scene/Model/PntsLoader.js +92 -98
  550. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
  551. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
  552. package/Source/Scene/Model/PrimitiveRenderResources.js +1 -1
  553. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
  554. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  555. package/Source/Scene/Model/TextureUniform.js +5 -8
  556. package/Source/Scene/Model/UniformType.js +6 -2
  557. package/Source/Scene/Model/VaryingType.js +7 -3
  558. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +691 -0
  559. package/Source/Scene/Model/pickModel.js +95 -301
  560. package/Source/Scene/ModelAnimationLoop.js +6 -1
  561. package/Source/Scene/ModelAnimationState.js +6 -1
  562. package/Source/Scene/ModelComponents.js +1683 -1528
  563. package/Source/Scene/Moon.js +5 -5
  564. package/Source/Scene/Multiple3DTileContent.js +291 -334
  565. package/Source/Scene/OIT.js +11 -1
  566. package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
  567. package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
  568. package/Source/Scene/Panorama.js +53 -0
  569. package/Source/Scene/PanoramaProvider.js +43 -0
  570. package/Source/Scene/Particle.js +11 -17
  571. package/Source/Scene/ParticleBurst.js +5 -5
  572. package/Source/Scene/ParticleSystem.js +26 -56
  573. package/Source/Scene/PerInstanceColorAppearance.js +8 -8
  574. package/Source/Scene/PerformanceDisplay.js +3 -3
  575. package/Source/Scene/PickFramebuffer.js +136 -53
  576. package/Source/Scene/PickedMetadataInfo.js +1 -0
  577. package/Source/Scene/Picking.js +235 -90
  578. package/Source/Scene/PntsParser.js +72 -5
  579. package/Source/Scene/PointCloud.js +6 -12
  580. package/Source/Scene/PointCloudShading.js +9 -18
  581. package/Source/Scene/PointPrimitive.js +12 -22
  582. package/Source/Scene/PointPrimitiveCollection.js +20 -36
  583. package/Source/Scene/Polyline.js +5 -6
  584. package/Source/Scene/PolylineCollection.js +6 -14
  585. package/Source/Scene/PolylineColorAppearance.js +8 -17
  586. package/Source/Scene/PolylineMaterialAppearance.js +8 -17
  587. package/Source/Scene/PostProcessStage.js +2 -2
  588. package/Source/Scene/PostProcessStageCollection.js +1 -1
  589. package/Source/Scene/PostProcessStageComposite.js +3 -6
  590. package/Source/Scene/Primitive.js +27 -43
  591. package/Source/Scene/PrimitiveCollection.js +36 -10
  592. package/Source/Scene/PrimitiveLoadPlan.js +23 -0
  593. package/Source/Scene/PrimitivePipeline.js +1 -2
  594. package/Source/Scene/PrimitiveState.js +130 -1
  595. package/Source/Scene/PropertyAttribute.js +2 -2
  596. package/Source/Scene/PropertyAttributeProperty.js +4 -4
  597. package/Source/Scene/PropertyTable.js +52 -14
  598. package/Source/Scene/PropertyTexture.js +3 -3
  599. package/Source/Scene/PropertyTextureProperty.js +4 -101
  600. package/Source/Scene/QuadtreeOccluders.js +20 -15
  601. package/Source/Scene/QuadtreePrimitive.js +129 -96
  602. package/Source/Scene/QuadtreeTile.js +581 -385
  603. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  604. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  605. package/Source/Scene/ResourceCache.js +71 -14
  606. package/Source/Scene/ResourceCacheKey.js +50 -12
  607. package/Source/Scene/ResourceLoader.js +84 -93
  608. package/Source/Scene/ResourceLoaderState.js +8 -2
  609. package/Source/Scene/Scene.js +298 -74
  610. package/Source/Scene/SceneMode.js +4 -1
  611. package/Source/Scene/ScreenSpaceCameraController.js +26 -13
  612. package/Source/Scene/SensorVolumePortionToDisplay.js +6 -6
  613. package/Source/Scene/ShadowMap.js +16 -17
  614. package/Source/Scene/ShadowMode.js +3 -1
  615. package/Source/Scene/ShadowVolumeAppearance.js +1 -2
  616. package/Source/Scene/SingleTileImageryProvider.js +7 -7
  617. package/Source/Scene/SkyAtmosphere.js +1 -2
  618. package/Source/Scene/SkyBox.js +38 -165
  619. package/Source/Scene/SphereEmitter.js +2 -3
  620. package/Source/Scene/SplitDirection.js +6 -1
  621. package/Source/Scene/StencilFunction.js +6 -1
  622. package/Source/Scene/StencilOperation.js +6 -1
  623. package/Source/Scene/StructuralMetadata.js +20 -5
  624. package/Source/Scene/SunLight.js +4 -4
  625. package/Source/Scene/SupportedImageFormats.js +4 -4
  626. package/Source/Scene/Terrain.js +5 -5
  627. package/Source/Scene/TerrainFillMesh.js +1 -0
  628. package/Source/Scene/TerrainState.js +7 -1
  629. package/Source/Scene/TileBoundingRegion.js +5 -6
  630. package/Source/Scene/TileBoundingS2Cell.js +4 -5
  631. package/Source/Scene/TileBoundingSphere.js +1 -1
  632. package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
  633. package/Source/Scene/TileMapServiceImageryProvider.js +20 -29
  634. package/Source/Scene/TileMetadata.js +2 -2
  635. package/Source/Scene/TileState.js +7 -1
  636. package/Source/Scene/Tileset3DTileContent.js +113 -146
  637. package/Source/Scene/TilesetMetadata.js +2 -2
  638. package/Source/Scene/TimeDynamicImagery.js +2 -2
  639. package/Source/Scene/TimeDynamicPointCloud.js +8 -10
  640. package/Source/Scene/Tonemapper.js +5 -1
  641. package/Source/Scene/TweenCollection.js +20 -16
  642. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
  643. package/Source/Scene/UrlTemplateImageryProvider.js +12 -16
  644. package/Source/Scene/Vector3DTileClampedPolylines.js +2 -7
  645. package/Source/Scene/Vector3DTileContent.js +224 -256
  646. package/Source/Scene/Vector3DTileGeometry.js +1 -2
  647. package/Source/Scene/Vector3DTilePoints.js +10 -0
  648. package/Source/Scene/Vector3DTilePolygons.js +2 -3
  649. package/Source/Scene/Vector3DTilePolylines.js +2 -7
  650. package/Source/Scene/Vector3DTilePrimitive.js +9 -13
  651. package/Source/Scene/VectorGltf3DTileContent.js +452 -0
  652. package/Source/Scene/VertexAttributeSemantic.js +49 -1
  653. package/Source/Scene/VerticalOrigin.js +6 -1
  654. package/Source/Scene/View.js +3 -0
  655. package/Source/Scene/VoxelBoundsCollection.js +494 -0
  656. package/Source/Scene/VoxelBoxShape.js +252 -155
  657. package/Source/Scene/VoxelContent.js +2 -0
  658. package/Source/Scene/VoxelCylinderShape.js +418 -447
  659. package/Source/Scene/VoxelEllipsoidShape.js +422 -190
  660. package/Source/Scene/VoxelMetadataOrder.js +20 -3
  661. package/Source/Scene/VoxelPrimitive.js +484 -503
  662. package/Source/Scene/VoxelProvider.js +64 -102
  663. package/Source/Scene/VoxelRenderResources.js +35 -39
  664. package/Source/Scene/VoxelShape.js +23 -6
  665. package/Source/Scene/VoxelShapeType.js +3 -1
  666. package/Source/Scene/VoxelTraversal.js +17 -66
  667. package/Source/Scene/WebMapServiceImageryProvider.js +22 -28
  668. package/Source/Scene/WebMapTileServiceImageryProvider.js +369 -159
  669. package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
  670. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  671. package/Source/Scene/buildVoxelDrawCommands.js +61 -20
  672. package/Source/Scene/createElevationBandMaterial.js +5 -5
  673. package/Source/Scene/createGooglePhotorealistic3DTileset.js +9 -17
  674. package/Source/Scene/createOsmBuildingsAsync.js +3 -6
  675. package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
  676. package/Source/Scene/createWorldImageryAsync.js +4 -4
  677. package/Source/Scene/decodeMVT.js +634 -0
  678. package/Source/Scene/findContentMetadata.js +2 -5
  679. package/Source/Scene/findTileMetadata.js +2 -5
  680. package/Source/Scene/getClippingFunction.js +79 -88
  681. package/Source/Scene/getMeshPrimitives.js +72 -0
  682. package/Source/Scene/parseBatchTable.js +1 -5
  683. package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
  684. package/Source/Scene/parseStructuralMetadata.js +306 -2
  685. package/Source/Scene/processVoxelProperties.js +42 -101
  686. package/Source/Scene/renderBufferPointCollection.js +331 -0
  687. package/Source/Scene/renderBufferPolygonCollection.js +386 -0
  688. package/Source/Scene/renderBufferPolylineCollection.js +677 -0
  689. package/Source/Shaders/BillboardCollectionFS.glsl +85 -81
  690. package/Source/Shaders/BillboardCollectionVS.glsl +60 -118
  691. package/Source/Shaders/BufferPointMaterialFS.glsl +28 -0
  692. package/Source/Shaders/BufferPointMaterialVS.glsl +58 -0
  693. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  694. package/Source/Shaders/BufferPolygonMaterialVS.glsl +39 -0
  695. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  696. package/Source/Shaders/BufferPolylineMaterialVS.glsl +63 -0
  697. package/Source/Shaders/Builtin/Constants/passCesium3DTile.glsl +1 -1
  698. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassification.glsl +1 -1
  699. package/Source/Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow.glsl +1 -1
  700. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdges.glsl +10 -0
  701. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  702. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +9 -0
  703. package/Source/Shaders/Builtin/Constants/passOpaque.glsl +1 -1
  704. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  705. package/Source/Shaders/Builtin/Constants/passTranslucent.glsl +1 -1
  706. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +1 -1
  707. package/Source/Shaders/Builtin/Functions/columbusViewMorph.glsl +8 -1
  708. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  709. package/Source/Shaders/Builtin/Functions/decodeRGB8.glsl +22 -0
  710. package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.glsl +2 -1
  711. package/Source/Shaders/Builtin/Functions/unpackTexture.glsl +35 -0
  712. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +0 -1
  713. package/Source/Shaders/CubeMapPanoramaVS.glsl +11 -0
  714. package/Source/Shaders/EllipsoidVS.glsl +4 -4
  715. package/Source/Shaders/FXAA3_11.glsl +2 -0
  716. package/Source/Shaders/GlobeFS.glsl +22 -0
  717. package/Source/Shaders/GlobeVS.glsl +3 -2
  718. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  719. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  720. package/Source/Shaders/Model/EdgeDetectionStageFS.glsl +58 -0
  721. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +69 -0
  722. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +97 -0
  723. package/Source/Shaders/Model/MaterialStageFS.glsl +50 -20
  724. package/Source/Shaders/Model/MetadataStageFS.glsl +2 -1
  725. package/Source/Shaders/Model/MetadataStageVS.glsl +2 -1
  726. package/Source/Shaders/Model/ModelFS.glsl +32 -2
  727. package/Source/Shaders/Model/ModelVS.glsl +15 -1
  728. package/Source/Shaders/Model/PointCloudStylingStageVS.glsl +1 -1
  729. package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +0 -1
  730. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +8 -39
  731. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  732. package/Source/Shaders/PolylineCommon.glsl +1 -1
  733. package/Source/Shaders/PrimitiveGaussianSplatFS.glsl +18 -0
  734. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +196 -0
  735. package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +7 -15
  736. package/Source/Shaders/SkyAtmosphereVS.glsl +2 -1
  737. package/Source/Shaders/Voxels/IntersectBox.glsl +20 -33
  738. package/Source/Shaders/Voxels/IntersectCylinder.glsl +28 -32
  739. package/Source/Shaders/Voxels/IntersectDepth.glsl +10 -6
  740. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +12 -20
  741. package/Source/Shaders/Voxels/IntersectLongitude.glsl +21 -9
  742. package/Source/Shaders/Voxels/{IntersectClippingPlanes.glsl → IntersectPlane.glsl} +5 -3
  743. package/Source/Shaders/Voxels/Intersection.glsl +3 -5
  744. package/Source/Shaders/Voxels/IntersectionUtils.glsl +2 -1
  745. package/Source/Shaders/Voxels/Megatexture.glsl +15 -83
  746. package/Source/Shaders/Voxels/Octree.glsl +53 -61
  747. package/Source/Shaders/Voxels/VoxelFS.glsl +67 -52
  748. package/Source/Shaders/Voxels/VoxelUtils.glsl +0 -19
  749. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +29 -0
  750. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +95 -0
  751. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +183 -0
  752. package/Source/Widget/CesiumWidget.js +29 -30
  753. package/Source/Workers/createGeometry.js +1 -2
  754. package/Source/Workers/createVerticesFromCesium3DTilesTerrain.js +46 -0
  755. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
  756. package/Source/Workers/decodeDraco.js +3 -0
  757. package/Source/Workers/decodeI3S.js +6 -7
  758. package/Source/Workers/gaussianSplatSorter.js +34 -0
  759. package/Source/Workers/gaussianSplatTextureGenerator.js +39 -0
  760. package/Source/Workers/incrementallyBuildTerrainPicker.js +122 -0
  761. package/Source/Workers/transcodeKTX2.js +1 -2
  762. package/Source/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +55 -0
  763. package/index.js +1 -1
  764. package/package.json +11 -7
  765. package/Build/Unminified/index.js +0 -253841
  766. package/Build/Unminified/index.js.map +0 -7
  767. package/Source/Core/defaultValue.js +0 -29
  768. package/Source/Shaders/Voxels/convertUvToBox.glsl +0 -45
  769. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +0 -99
  770. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +0 -139
package/LICENSE.md CHANGED
@@ -305,35 +305,42 @@ https://gist.github.com/banksean/300494
305
305
  >
306
306
  > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
307
307
 
308
- ### NVIDIA GameWorks Graphics Samples
308
+ ### NVIDIA GameWorks FXAA Shader
309
309
 
310
- https://github.com/NVIDIAGameWorks/GraphicsSamples
310
+ Original source (archived): https://archive.org/details/nvidiagame-works-graphics-samples-master
311
+ Fork: https://github.com/lyntel/GraphicsSamples/blob/3d30817ebeeade64fe6a4fc3aa1fe4265c29b6fd/samples/es3-kepler/FXAA/FXAA3_11.h
311
312
 
312
- > Copyright 2016 NVIDIA Corporation
313
+ > ----------------------------------------------------------------------------------
314
+ > File: es3-kepler\FXAA/FXAA3_11.h
315
+ > SDK Version: v3.00
316
+ > Email: gameworks@nvidia.com
317
+ > Site: http://developer.nvidia.com/
313
318
  >
314
- > BY DOWNLOADING THE SOFTWARE AND OTHER AVAILABLE MATERIALS, YOU ("DEVELOPER") AGREE TO BE BOUND BY THE FOLLOWING TERMS AND CONDITIONS
319
+ > Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
315
320
  >
316
- > The materials available for download to Developers may include software in both sample source ("Source Code") and object code ("Object Code") versions, documentation ("Documentation"), certain art work ("Art Assets") and other materials (collectively, these materials referred to herein as "Materials"). Except as expressly indicated herein, all terms and conditions of this Agreement apply to all of the Materials.
317
- >
318
- > Except as expressly set forth herein, NVIDIA owns all of the Materials and makes them available to Developer only under the terms and conditions set forth in this Agreement.
319
- >
320
- > License: Subject to the terms of this Agreement, NVIDIA hereby grants to Developer a royalty-free, non-exclusive license to possess and to use the Materials. The following terms apply to the specified type of Material:
321
- >
322
- > Source Code: Developer shall have the right to modify and create derivative works with the Source Code. Developer shall own any derivative works ("Derivatives") it creates to the Source Code, provided that Developer uses the Materials in accordance with the terms of this Agreement. Developer may distribute the Derivatives, provided that all NVIDIA copyright notices and trademarks are used properly and the Derivatives include the following statement: "This software contains source code provided by NVIDIA Corporation."
323
- >
324
- > Object Code: Developer agrees not to disassemble, decompile or reverse engineer the Object Code versions of any of the Materials. Developer acknowledges that certain of the Materials provided in Object Code version may contain third party components that may be subject to restrictions, and expressly agrees not to attempt to modify or distribute such Materials without first receiving consent from NVIDIA.
325
- >
326
- > Art Assets: Developer shall have the right to modify and create Derivatives of the Art Assets, but may not distribute any of the Art Assets or Derivatives created therefrom without NVIDIA's prior written consent.
327
- >
328
- > Government End Users: If you are acquiring the Software on behalf of any unit or agency of the United States Government, the following provisions apply. The Government agrees the Software and documentation were developed at private expense and are provided with "RESTRICTED RIGHTS". Use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a)(1995), FAR 52.227-19, (June 1987) or FAR 52.227-14(ALT III) (June 1987),as amended from time to time. In the event that this License, or any part thereof, is deemed inconsistent with the minimum rights identified in the Restricted Rights provisions, the minimum rights shall prevail.
329
- > No Other License. No rights or licenses are granted by NVIDIA under this License, expressly or by implication, with respect to any proprietary information or patent, copyright, trade secret or other intellectual property right owned or controlled by NVIDIA, except as expressly provided in this License.
330
- > Term: This License is effective until terminated. NVIDIA may terminate this Agreement (and with it, all of Developer's right to the Materials) immediately upon written notice (which may include email) to Developer, with or without cause.
331
- >
332
- > Support: NVIDIA has no obligation to support or to continue providing or updating any of the Materials.
333
- >
334
- > No Warranty: THE SOFTWARE AND ANY OTHER MATERIALS PROVIDED BY NVIDIA TO DEVELOPER HEREUNDER ARE PROVIDED "AS IS." NVIDIA DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
335
- >
336
- > LIMITATION OF LIABILITY: NVIDIA SHALL NOT BE LIABLE TO DEVELOPER, DEVELOPER'S CUSTOMERS, OR ANY OTHER PERSON OR ENTITY CLAIMING THROUGH OR UNDER DEVELOPER FOR ANY LOSS OF PROFITS, INCOME, SAVINGS, OR ANY OTHER CONSEQUENTIAL, INCIDENTAL, SPECIAL, PUNITIVE, DIRECT OR INDIRECT DAMAGES (WHETHER IN AN ACTION IN CONTRACT, TORT OR BASED ON A WARRANTY), EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF THE ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. IN NO EVENT SHALL NVIDIA'S AGGREGATE LIABILITY TO DEVELOPER OR ANY OTHER PERSON OR ENTITY CLAIMING THROUGH OR UNDER DEVELOPER EXCEED THE AMOUNT OF MONEY ACTUALLY PAID BY DEVELOPER TO NVIDIA FOR THE SOFTWARE OR ANY OTHER MATERIALS.
321
+ > Redistribution and use in source and binary forms, with or without
322
+ > modification, are permitted provided that the following conditions
323
+ > are met:
324
+ > * Redistributions of source code must retain the above copyright
325
+ > notice, this list of conditions and the following disclaimer.
326
+ > * Redistributions in binary form must reproduce the above copyright
327
+ > notice, this list of conditions and the following disclaimer in the
328
+ > documentation and/or other materials provided with the distribution.
329
+ > * Neither the name of NVIDIA CORPORATION nor the names of its
330
+ > contributors may be used to endorse or promote products derived
331
+ > from this software without specific prior written permission.
332
+ >
333
+ > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
334
+ > EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
335
+ > IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
336
+ > PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
337
+ > CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
338
+ > EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
339
+ > PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
340
+ > PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
341
+ > OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
342
+ > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
343
+ > OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
337
344
 
338
345
  ### jsep
339
346
 
@@ -4,7 +4,6 @@ import Cartesian2 from "./Cartesian2.js";
4
4
  import Cartesian3 from "./Cartesian3.js";
5
5
  import Cartographic from "./Cartographic.js";
6
6
  import Check from "./Check.js";
7
- import defaultValue from "./defaultValue.js";
8
7
  import defined from "./defined.js";
9
8
  import DeveloperError from "./DeveloperError.js";
10
9
  import Ellipsoid from "./Ellipsoid.js";
@@ -71,7 +70,7 @@ ApproximateTerrainHeights.getMinimumMaximumHeights = function (
71
70
  );
72
71
  }
73
72
  //>>includeEnd('debug');
74
- ellipsoid = defaultValue(ellipsoid, Ellipsoid.default);
73
+ ellipsoid = ellipsoid ?? Ellipsoid.default;
75
74
 
76
75
  const xyLevel = getTileXYLevel(rectangle);
77
76
 
@@ -142,7 +141,7 @@ ApproximateTerrainHeights.getBoundingSphere = function (rectangle, ellipsoid) {
142
141
  );
143
142
  }
144
143
  //>>includeEnd('debug');
145
- ellipsoid = defaultValue(ellipsoid, Ellipsoid.default);
144
+ ellipsoid = ellipsoid ?? Ellipsoid.default;
146
145
 
147
146
  const xyLevel = getTileXYLevel(rectangle);
148
147
 
@@ -1,7 +1,7 @@
1
1
  import Cartesian2 from "./Cartesian2.js";
2
2
  import Check from "./Check.js";
3
3
  import Credit from "./Credit.js";
4
- import defaultValue from "./defaultValue.js";
4
+ import Frozen from "./Frozen.js";
5
5
  import defined from "./defined.js";
6
6
  import Ellipsoid from "./Ellipsoid.js";
7
7
  import Event from "./Event.js";
@@ -22,7 +22,7 @@ import WebMercatorTilingScheme from "./WebMercatorTilingScheme.js";
22
22
  const ALL_CHILDREN = 15;
23
23
 
24
24
  /**
25
- * @typedef {Object} ArcGISTiledElevationTerrainProvider.ConstructorOptions
25
+ * @typedef {object} ArcGISTiledElevationTerrainProvider.ConstructorOptions
26
26
  *
27
27
  * Initialization options for the ArcGISTiledElevationTerrainProvider constructor
28
28
  *
@@ -41,7 +41,7 @@ const ALL_CHILDREN = 15;
41
41
  * @param {ArcGISTiledElevationTerrainProvider.ConstructorOptions} [options] An object describing initialization options.
42
42
  */
43
43
  function TerrainProviderBuilder(options) {
44
- this.ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.default);
44
+ this.ellipsoid = options.ellipsoid ?? Ellipsoid.default;
45
45
 
46
46
  this.credit = undefined;
47
47
  this.tilingScheme = undefined;
@@ -85,7 +85,7 @@ function parseMetadataSuccess(terrainProviderBuilder, metadata) {
85
85
  }
86
86
 
87
87
  const spatialReference = metadata.spatialReference;
88
- const wkid = defaultValue(spatialReference.latestWkid, spatialReference.wkid);
88
+ const wkid = spatialReference.latestWkid ?? spatialReference.wkid;
89
89
  const extent = metadata.extent;
90
90
  const tilingSchemeOptions = {
91
91
  ellipsoid: terrainProviderBuilder.ellipsoid,
@@ -234,7 +234,7 @@ async function requestMetadata(
234
234
  * @see TerrainProvider
235
235
  */
236
236
  function ArcGISTiledElevationTerrainProvider(options) {
237
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
237
+ options = options ?? Frozen.EMPTY_OBJECT;
238
238
 
239
239
  this._resource = undefined;
240
240
  this._credit = undefined;
@@ -325,7 +325,7 @@ Object.defineProperties(ArcGISTiledElevationTerrainProvider.prototype, {
325
325
  * at points and in rectangles. This property may be undefined if availability
326
326
  * information is not available.
327
327
  * @memberof ArcGISTiledElevationTerrainProvider.prototype
328
- * @type {TileAvailability}
328
+ * @type {TileAvailability|undefined}
329
329
  * @readonly
330
330
  */
331
331
  availability: {
@@ -339,7 +339,7 @@ Object.defineProperties(ArcGISTiledElevationTerrainProvider.prototype, {
339
339
  * Creates a {@link TerrainProvider} that produces terrain geometry by tessellating height maps
340
340
  * retrieved from Elevation Tiles of an an ArcGIS ImageService.
341
341
  *
342
- * @param {Resource|String|Promise<Resource>|Promise<String>} url The URL of the ArcGIS ImageServer service.
342
+ * @param {Resource|string|Promise<Resource>|Promise<string>} url The URL of the ArcGIS ImageServer service.
343
343
  * @param {ArcGISTiledElevationTerrainProvider.ConstructorOptions} [options] A url or an object describing initialization options.
344
344
  * @returns {Promise<ArcGISTiledElevationTerrainProvider>}
345
345
  *
@@ -357,7 +357,7 @@ ArcGISTiledElevationTerrainProvider.fromUrl = async function (url, options) {
357
357
  Check.defined("url", url);
358
358
  //>>includeEnd('debug');
359
359
 
360
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
360
+ options = options ?? Frozen.EMPTY_OBJECT;
361
361
 
362
362
  url = await Promise.resolve(url);
363
363
  let resource = Resource.createIfNeeded(url);
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * ArcType defines the path that should be taken connecting vertices.
3
5
  *
@@ -28,4 +30,7 @@ const ArcType = {
28
30
  */
29
31
  RHUMB: 2,
30
32
  };
31
- export default Object.freeze(ArcType);
33
+
34
+ Object.freeze(ArcType);
35
+
36
+ export default ArcType;
@@ -1,3 +1,5 @@
1
+ // @ts-check
2
+
1
3
  /**
2
4
  * An enum describing the type of motion that is defined by an articulation stage
3
5
  * in the AGI_articulations extension.
@@ -20,4 +22,6 @@ const ArticulationStageType = {
20
22
  UNIFORMSCALE: "uniformScale",
21
23
  };
22
24
 
23
- export default Object.freeze(ArticulationStageType);
25
+ Object.freeze(ArticulationStageType);
26
+
27
+ export default ArticulationStageType;
@@ -1,127 +1,133 @@
1
+ // @ts-check
2
+
1
3
  import defined from "./defined.js";
2
4
  import DeveloperError from "./DeveloperError.js";
3
5
 
4
6
  /**
5
7
  * A collection of key-value pairs that is stored as a hash for easy
6
8
  * lookup but also provides an array for fast iteration.
7
- * @alias AssociativeArray
8
- * @constructor
9
+ *
10
+ * @template T = unknown
9
11
  */
10
- function AssociativeArray() {
11
- this._array = [];
12
- this._hash = {};
13
- }
12
+ class AssociativeArray {
13
+ constructor() {
14
+ /**
15
+ * @type {T[]}
16
+ * @private
17
+ */
18
+ this._array = [];
19
+ /**
20
+ * @type {Object<string|number, T>}
21
+ * @private
22
+ */
23
+ this._hash = {};
24
+ }
14
25
 
15
- Object.defineProperties(AssociativeArray.prototype, {
16
26
  /**
17
27
  * Gets the number of items in the collection.
18
- * @memberof AssociativeArray.prototype
19
28
  *
20
29
  * @type {number}
21
30
  */
22
- length: {
23
- get: function () {
24
- return this._array.length;
25
- },
26
- },
31
+ get length() {
32
+ return this._array.length;
33
+ }
34
+
27
35
  /**
28
36
  * Gets an unordered array of all values in the collection.
29
37
  * This is a live array that will automatically reflect the values in the collection,
30
38
  * it should not be modified directly.
31
- * @memberof AssociativeArray.prototype
32
39
  *
33
- * @type {Array}
40
+ * @type {Array<T>}
34
41
  */
35
- values: {
36
- get: function () {
37
- return this._array;
38
- },
39
- },
40
- });
41
-
42
- /**
43
- * Determines if the provided key is in the array.
44
- *
45
- * @param {string|number} key The key to check.
46
- * @returns {boolean} <code>true</code> if the key is in the array, <code>false</code> otherwise.
47
- */
48
- AssociativeArray.prototype.contains = function (key) {
49
- //>>includeStart('debug', pragmas.debug);
50
- if (typeof key !== "string" && typeof key !== "number") {
51
- throw new DeveloperError("key is required to be a string or number.");
42
+ get values() {
43
+ return this._array;
52
44
  }
53
- //>>includeEnd('debug');
54
- return defined(this._hash[key]);
55
- };
56
45
 
57
- /**
58
- * Associates the provided key with the provided value. If the key already
59
- * exists, it is overwritten with the new value.
60
- *
61
- * @param {string|number} key A unique identifier.
62
- * @param {*} value The value to associate with the provided key.
63
- */
64
- AssociativeArray.prototype.set = function (key, value) {
65
- //>>includeStart('debug', pragmas.debug);
66
- if (typeof key !== "string" && typeof key !== "number") {
67
- throw new DeveloperError("key is required to be a string or number.");
46
+ /**
47
+ * Determines if the provided key is in the array.
48
+ *
49
+ * @param {string|number} key The key to check.
50
+ * @returns {boolean} <code>true</code> if the key is in the array, <code>false</code> otherwise.
51
+ */
52
+ contains(key) {
53
+ //>>includeStart('debug', pragmas.debug);
54
+ if (typeof key !== "string" && typeof key !== "number") {
55
+ throw new DeveloperError("key is required to be a string or number.");
56
+ }
57
+ //>>includeEnd('debug');
58
+ return defined(this._hash[key]);
68
59
  }
69
- //>>includeEnd('debug');
70
60
 
71
- const oldValue = this._hash[key];
72
- if (value !== oldValue) {
73
- this.remove(key);
74
- this._hash[key] = value;
75
- this._array.push(value);
61
+ /**
62
+ * Associates the provided key with the provided value. If the key already
63
+ * exists, it is overwritten with the new value.
64
+ *
65
+ * @param {string|number} key A unique identifier.
66
+ * @param {T} value The value to associate with the provided key.
67
+ */
68
+ set(key, value) {
69
+ //>>includeStart('debug', pragmas.debug);
70
+ if (typeof key !== "string" && typeof key !== "number") {
71
+ throw new DeveloperError("key is required to be a string or number.");
72
+ }
73
+ //>>includeEnd('debug');
74
+
75
+ const oldValue = this._hash[key];
76
+ if (value !== oldValue) {
77
+ this.remove(key);
78
+ this._hash[key] = value;
79
+ this._array.push(value);
80
+ }
76
81
  }
77
- };
78
82
 
79
- /**
80
- * Retrieves the value associated with the provided key.
81
- *
82
- * @param {string|number} key The key whose value is to be retrieved.
83
- * @returns {*} The associated value, or undefined if the key does not exist in the collection.
84
- */
85
- AssociativeArray.prototype.get = function (key) {
86
- //>>includeStart('debug', pragmas.debug);
87
- if (typeof key !== "string" && typeof key !== "number") {
88
- throw new DeveloperError("key is required to be a string or number.");
83
+ /**
84
+ * Retrieves the value associated with the provided key.
85
+ *
86
+ * @param {string|number} key The key whose value is to be retrieved.
87
+ * @returns {T} The associated value, or undefined if the key does not exist in the collection.
88
+ */
89
+ get(key) {
90
+ //>>includeStart('debug', pragmas.debug);
91
+ if (typeof key !== "string" && typeof key !== "number") {
92
+ throw new DeveloperError("key is required to be a string or number.");
93
+ }
94
+ //>>includeEnd('debug');
95
+ return this._hash[key];
89
96
  }
90
- //>>includeEnd('debug');
91
- return this._hash[key];
92
- };
93
97
 
94
- /**
95
- * Removes a key-value pair from the collection.
96
- *
97
- * @param {string|number} key The key to be removed.
98
- * @returns {boolean} True if it was removed, false if the key was not in the collection.
99
- */
100
- AssociativeArray.prototype.remove = function (key) {
101
- //>>includeStart('debug', pragmas.debug);
102
- if (defined(key) && typeof key !== "string" && typeof key !== "number") {
103
- throw new DeveloperError("key is required to be a string or number.");
98
+ /**
99
+ * Removes a key-value pair from the collection.
100
+ *
101
+ * @param {string|number} key The key to be removed.
102
+ * @returns {boolean} True if it was removed, false if the key was not in the collection.
103
+ */
104
+ remove(key) {
105
+ //>>includeStart('debug', pragmas.debug);
106
+ if (defined(key) && typeof key !== "string" && typeof key !== "number") {
107
+ throw new DeveloperError("key is required to be a string or number.");
108
+ }
109
+ //>>includeEnd('debug');
110
+
111
+ const value = this._hash[key];
112
+ const hasValue = defined(value);
113
+ if (hasValue) {
114
+ const array = this._array;
115
+ array.splice(array.indexOf(value), 1);
116
+ delete this._hash[key];
117
+ }
118
+ return hasValue;
104
119
  }
105
- //>>includeEnd('debug');
106
120
 
107
- const value = this._hash[key];
108
- const hasValue = defined(value);
109
- if (hasValue) {
121
+ /**
122
+ * Clears the collection.
123
+ */
124
+ removeAll() {
110
125
  const array = this._array;
111
- array.splice(array.indexOf(value), 1);
112
- delete this._hash[key];
126
+ if (array.length > 0) {
127
+ this._hash = {};
128
+ array.length = 0;
129
+ }
113
130
  }
114
- return hasValue;
115
- };
131
+ }
116
132
 
117
- /**
118
- * Clears the collection.
119
- */
120
- AssociativeArray.prototype.removeAll = function () {
121
- const array = this._array;
122
- if (array.length > 0) {
123
- this._hash = {};
124
- array.length = 0;
125
- }
126
- };
127
133
  export default AssociativeArray;
@@ -7,8 +7,9 @@ import DeveloperError from "./DeveloperError.js";
7
7
  import CesiumMath from "./Math.js";
8
8
  import AttributeType from "../Scene/AttributeType.js";
9
9
 
10
- const RIGHT_SHIFT = 1.0 / 256.0;
11
- const LEFT_SHIFT = 256.0;
10
+ const RIGHT_SHIFT8 = 1.0 / 256.0;
11
+ const LEFT_SHIFT16 = 65536.0;
12
+ const LEFT_SHIFT8 = 256.0;
12
13
 
13
14
  /**
14
15
  * Attribute compression and decompression functions.
@@ -96,9 +97,9 @@ function forceUint8(value) {
96
97
  */
97
98
  AttributeCompression.octEncodeToCartesian4 = function (vector, result) {
98
99
  AttributeCompression.octEncodeInRange(vector, 65535, octEncodeScratch);
99
- result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT);
100
+ result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT8);
100
101
  result.y = forceUint8(octEncodeScratch.x);
101
- result.z = forceUint8(octEncodeScratch.y * RIGHT_SHIFT);
102
+ result.z = forceUint8(octEncodeScratch.y * RIGHT_SHIFT8);
102
103
  result.w = forceUint8(octEncodeScratch.y);
103
104
  return result;
104
105
  };
@@ -193,8 +194,8 @@ AttributeCompression.octDecodeFromCartesian4 = function (encoded, result) {
193
194
  }
194
195
  //>>includeEnd('debug');
195
196
 
196
- const xOct16 = x * LEFT_SHIFT + y;
197
- const yOct16 = z * LEFT_SHIFT + w;
197
+ const xOct16 = x * LEFT_SHIFT8 + y;
198
+ const yOct16 = z * LEFT_SHIFT8 + w;
198
199
  return AttributeCompression.octDecodeInRange(xOct16, yOct16, 65535, result);
199
200
  };
200
201
 
@@ -478,6 +479,52 @@ AttributeCompression.dequantize = function (
478
479
  return dequantizedTypedArray;
479
480
  };
480
481
 
482
+ /**
483
+ * Encodes RGB values at 8-bit precision into a single float, equivalent
484
+ * to 0xFFFFFF representation in JavaScript. Perceptually near-lossless
485
+ * in the "srgb" color space; "srgb-linear" and wide-gamut color spaces
486
+ * benefit from 10+ bit precision.
487
+ *
488
+ * @param {Color} color
489
+ * @returns {number}
490
+ */
491
+ AttributeCompression.encodeRGB8 = function (color) {
492
+ //>>includeStart('debug', pragmas.debug);
493
+ Check.typeOf.object("color", color);
494
+ //>>includeEnd('debug');
495
+
496
+ return (
497
+ Math.round(CesiumMath.clamp(color.red * 255, 0, 255)) * LEFT_SHIFT16 +
498
+ Math.round(CesiumMath.clamp(color.green * 255, 0, 255)) * LEFT_SHIFT8 +
499
+ Math.round(CesiumMath.clamp(color.blue * 255, 0, 255))
500
+ );
501
+ };
502
+
503
+ /**
504
+ * Decodes RGB values at 8-bit precision from a signle float, equivalent
505
+ * to 0xFFFFFF representation in JavaScript. Perceptually near-lossless
506
+ * in the "srgb" color space; "srgb-linear" and wide-gamut color spaces
507
+ * benefit from 10+ bit precision.
508
+ *
509
+ * @param {number} encoded
510
+ * @param {Color} result
511
+ * @returns {Color}
512
+ */
513
+ AttributeCompression.decodeRGB8 = function (encoded, result) {
514
+ //>>includeStart('debug', pragmas.debug);
515
+ Check.typeOf.number("encoded", encoded);
516
+ Check.typeOf.object("result", result);
517
+ //>>includeEnd('debug');
518
+
519
+ encoded = Math.floor(encoded);
520
+
521
+ result.red = ((encoded >> 16) & 255) / 255;
522
+ result.green = ((encoded >> 8) & 255) / 255;
523
+ result.blue = (encoded & 255) / 255;
524
+
525
+ return result;
526
+ };
527
+
481
528
  /**
482
529
  * Decode RGB565-encoded colors into a floating point typed array containing
483
530
  * normalized RGB values.
@@ -1,6 +1,5 @@
1
1
  import Cartesian3 from "./Cartesian3.js";
2
2
  import Check from "./Check.js";
3
- import defaultValue from "./defaultValue.js";
4
3
  import defined from "./defined.js";
5
4
  import Intersect from "./Intersect.js";
6
5
 
@@ -22,14 +21,14 @@ function AxisAlignedBoundingBox(minimum, maximum, center) {
22
21
  * @type {Cartesian3}
23
22
  * @default {@link Cartesian3.ZERO}
24
23
  */
25
- this.minimum = Cartesian3.clone(defaultValue(minimum, Cartesian3.ZERO));
24
+ this.minimum = Cartesian3.clone(minimum ?? Cartesian3.ZERO);
26
25
 
27
26
  /**
28
27
  * The maximum point defining the bounding box.
29
28
  * @type {Cartesian3}
30
29
  * @default {@link Cartesian3.ZERO}
31
30
  */
32
- this.maximum = Cartesian3.clone(defaultValue(maximum, Cartesian3.ZERO));
31
+ this.maximum = Cartesian3.clone(maximum ?? Cartesian3.ZERO);
33
32
 
34
33
  // If center was not defined, compute it.
35
34
  if (!defined(center)) {
@@ -223,6 +222,30 @@ AxisAlignedBoundingBox.intersectPlane = function (box, plane) {
223
222
  return Intersect.INTERSECTING;
224
223
  };
225
224
 
225
+ /**
226
+ * Determines whether two axis aligned bounding boxes intersect.
227
+ *
228
+ * @param {AxisAlignedBoundingBox} box first box
229
+ * @param {AxisAlignedBoundingBox} other second box
230
+ * @returns {boolean} <code>true</code> if the boxes intersect; otherwise, <code>false</code>.
231
+ */
232
+ AxisAlignedBoundingBox.intersectAxisAlignedBoundingBox = function (box, other) {
233
+ //>>includeStart('debug', pragmas.debug);
234
+ Check.defined("box", box);
235
+ Check.defined("other", other);
236
+ //>>includeEnd('debug');
237
+
238
+ // This short circuits in favor of AABBs that do not intersect.
239
+ return (
240
+ box.minimum.x <= other.maximum.x &&
241
+ box.maximum.x >= other.minimum.x &&
242
+ box.minimum.y <= other.maximum.y &&
243
+ box.maximum.y >= other.minimum.y &&
244
+ box.minimum.z <= other.maximum.z &&
245
+ box.maximum.z >= other.minimum.z
246
+ );
247
+ };
248
+
226
249
  /**
227
250
  * Duplicates this AxisAlignedBoundingBox instance.
228
251
  *
@@ -246,6 +269,18 @@ AxisAlignedBoundingBox.prototype.intersectPlane = function (plane) {
246
269
  return AxisAlignedBoundingBox.intersectPlane(this, plane);
247
270
  };
248
271
 
272
+ /**
273
+ * Determines whether some other axis aligned bounding box intersects this box.
274
+ *
275
+ * @param {AxisAlignedBoundingBox} other The other axis aligned bounding box.
276
+ * @returns {boolean} <code>true</code> if the boxes intersect; otherwise, <code>false</code>.
277
+ */
278
+ AxisAlignedBoundingBox.prototype.intersectAxisAlignedBoundingBox = function (
279
+ other,
280
+ ) {
281
+ return AxisAlignedBoundingBox.intersectAxisAlignedBoundingBox(this, other);
282
+ };
283
+
249
284
  /**
250
285
  * Compares this AxisAlignedBoundingBox against the provided AxisAlignedBoundingBox componentwise and returns
251
286
  * <code>true</code> if they are equal, <code>false</code> otherwise.
@@ -1,6 +1,6 @@
1
1
  import Check from "./Check.js";
2
2
  import Credit from "./Credit.js";
3
- import defaultValue from "./defaultValue.js";
3
+ import Frozen from "./Frozen.js";
4
4
  import Rectangle from "./Rectangle.js";
5
5
  import Resource from "./Resource.js";
6
6
  import defined from "./defined.js";
@@ -20,7 +20,7 @@ const url = "https://dev.virtualearth.net/REST/v1/Locations";
20
20
  * @param {string} [options.culture] A Bing Maps {@link https://docs.microsoft.com/en-us/bingmaps/rest-services/common-parameters-and-types/supported-culture-codes|Culture Code} to return results in a specific culture and language.
21
21
  */
22
22
  function BingMapsGeocoderService(options) {
23
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
23
+ options = options ?? Frozen.EMPTY_OBJECT;
24
24
  const key = options.key;
25
25
  //>>includeStart('debug', pragmas.debug);
26
26
  if (!defined(key)) {