@cesium/engine 2.0.0 → 2.2.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 (828) hide show
  1. package/Build/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
  2. package/Build/Workers/{AttributeCompression-b646d393.js → AttributeCompression-8a5a065e.js} +24 -24
  3. package/Build/Workers/{AxisAlignedBoundingBox-47525601.js → AxisAlignedBoundingBox-379015ef.js} +3 -3
  4. package/Build/Workers/{BoundingRectangle-93b263ac.js → BoundingRectangle-57f2b24f.js} +18 -18
  5. package/Build/Workers/{BoxGeometry-8c4b4125.js → BoxGeometry-ecabfc78.js} +9 -9
  6. package/Build/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
  7. package/Build/Workers/{Color-52c60ed7.js → Color-14d1a36d.js} +59 -59
  8. package/Build/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
  9. package/Build/Workers/{CoplanarPolygonGeometryLibrary-33c4c1f8.js → CoplanarPolygonGeometryLibrary-048c3c14.js} +1 -1
  10. package/Build/Workers/{CorridorGeometryLibrary-5039cd8e.js → CorridorGeometryLibrary-520c8619.js} +1 -1
  11. package/Build/Workers/{CylinderGeometry-3ac44974.js → CylinderGeometry-119068b8.js} +12 -12
  12. package/Build/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-135b0858.js} +1 -1
  13. package/Build/Workers/{EllipseGeometry-a9c9b3be.js → EllipseGeometry-2dfc3523.js} +20 -20
  14. package/Build/Workers/{EllipseGeometryLibrary-855d4681.js → EllipseGeometryLibrary-0a1e0170.js} +1 -1
  15. package/Build/Workers/{EllipseOutlineGeometry-017a5929.js → EllipseOutlineGeometry-c5251669.js} +15 -15
  16. package/Build/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-dcff5cbd.js} +6 -6
  17. package/Build/Workers/{EllipsoidGeometry-826e7bce.js → EllipsoidGeometry-d10a5221.js} +14 -14
  18. package/Build/Workers/{EllipsoidOutlineGeometry-784dcdb5.js → EllipsoidOutlineGeometry-7039a0ae.js} +15 -15
  19. package/Build/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-b672d507.js} +9 -9
  20. package/Build/Workers/{EllipsoidTangentPlane-ed9443a1.js → EllipsoidTangentPlane-857186be.js} +1 -1
  21. package/Build/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-e8bbca36.js} +6 -6
  22. package/Build/Workers/{FrustumGeometry-9f1ee4d8.js → FrustumGeometry-400fa1b7.js} +109 -109
  23. package/Build/Workers/{GeometryAttribute-334718f8.js → GeometryAttribute-7a2de5c6.js} +20 -20
  24. package/Build/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
  25. package/Build/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-3fb607b7.js} +6 -6
  26. package/Build/Workers/{GeometryPipeline-8fb0db69.js → GeometryPipeline-916636fa.js} +22 -22
  27. package/Build/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-b8f3e09d.js} +13 -13
  28. package/Build/Workers/{IntersectionTests-27d49265.js → IntersectionTests-b4d02d4d.js} +37 -37
  29. package/Build/Workers/{Math-2dbd6b93.js → Math-dad82b4d.js} +137 -137
  30. package/Build/Workers/{Matrix2-13178034.js → Matrix2-1e403d0e.js} +256 -256
  31. package/Build/Workers/{Matrix3-315394f6.js → Matrix3-fa806b97.js} +150 -150
  32. package/Build/Workers/{OrientedBoundingBox-79ee7cbb.js → OrientedBoundingBox-96fe1752.js} +19 -17
  33. package/Build/Workers/{Plane-900aa728.js → Plane-c27e1ac6.js} +5 -5
  34. package/Build/Workers/{PolygonGeometryLibrary-6b5a29e9.js → PolygonGeometryLibrary-931f1ec6.js} +6 -6
  35. package/Build/Workers/{PolygonPipeline-21668b3f.js → PolygonPipeline-32fc92cc.js} +14 -14
  36. package/Build/Workers/{PolylinePipeline-5e2e1b21.js → PolylinePipeline-6d5c63e5.js} +16 -16
  37. package/Build/Workers/{PolylineVolumeGeometryLibrary-97f0b94e.js → PolylineVolumeGeometryLibrary-f068c1fb.js} +7 -7
  38. package/Build/Workers/{PrimitivePipeline-5640850a.js → PrimitivePipeline-879f996a.js} +6 -6
  39. package/Build/Workers/{RectangleGeometryLibrary-d5457f7b.js → RectangleGeometryLibrary-2d6f36f3.js} +1 -1
  40. package/Build/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
  41. package/Build/Workers/{TerrainEncoding-bfdf2021.js → TerrainEncoding-82882059.js} +30 -30
  42. package/Build/Workers/{Transforms-a05e5e6e.js → Transforms-9052372a.js} +531 -530
  43. package/Build/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
  44. package/Build/Workers/{WallGeometryLibrary-6db0ebb6.js → WallGeometryLibrary-db7a64fb.js} +1 -1
  45. package/Build/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
  46. package/Build/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-76a3fcc0.js} +6 -6
  47. package/Build/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-fac118a8.js} +5 -5
  48. package/Build/Workers/cesiumWorkerBootstrapper.js +5 -5
  49. package/Build/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
  50. package/Build/Workers/combineGeometry.js +1 -1
  51. package/Build/Workers/createBoxGeometry.js +1 -1
  52. package/Build/Workers/createBoxOutlineGeometry.js +9 -9
  53. package/Build/Workers/createCircleGeometry.js +13 -13
  54. package/Build/Workers/createCircleOutlineGeometry.js +13 -13
  55. package/Build/Workers/createCoplanarPolygonGeometry.js +11 -11
  56. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
  57. package/Build/Workers/createCorridorGeometry.js +14 -14
  58. package/Build/Workers/createCorridorOutlineGeometry.js +12 -12
  59. package/Build/Workers/createCylinderGeometry.js +1 -1
  60. package/Build/Workers/createCylinderOutlineGeometry.js +13 -13
  61. package/Build/Workers/createEllipseGeometry.js +1 -1
  62. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  63. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  64. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  65. package/Build/Workers/createFrustumGeometry.js +1 -1
  66. package/Build/Workers/createFrustumOutlineGeometry.js +8 -8
  67. package/Build/Workers/createGeometry.js +1 -1
  68. package/Build/Workers/createGroundPolylineGeometry.js +33 -33
  69. package/Build/Workers/createPlaneGeometry.js +8 -8
  70. package/Build/Workers/createPlaneOutlineGeometry.js +6 -6
  71. package/Build/Workers/createPolygonGeometry.js +25 -25
  72. package/Build/Workers/createPolygonOutlineGeometry.js +17 -17
  73. package/Build/Workers/createPolylineGeometry.js +11 -11
  74. package/Build/Workers/createPolylineVolumeGeometry.js +9 -9
  75. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
  76. package/Build/Workers/createRectangleGeometry.js +16 -16
  77. package/Build/Workers/createRectangleOutlineGeometry.js +12 -12
  78. package/Build/Workers/createSimplePolylineGeometry.js +10 -10
  79. package/Build/Workers/createSphereGeometry.js +11 -11
  80. package/Build/Workers/createSphereOutlineGeometry.js +12 -12
  81. package/Build/Workers/createTaskProcessorWorker.js +2 -2
  82. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  83. package/Build/Workers/createVectorTileGeometries.js +8 -8
  84. package/Build/Workers/createVectorTilePoints.js +1 -1
  85. package/Build/Workers/createVectorTilePolygons.js +1 -1
  86. package/Build/Workers/createVectorTilePolylines.js +1 -1
  87. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  88. package/Build/Workers/createVerticesFromHeightmap.js +23 -21
  89. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
  90. package/Build/Workers/createWallGeometry.js +14 -14
  91. package/Build/Workers/createWallOutlineGeometry.js +14 -14
  92. package/Build/Workers/decodeDraco.js +1 -1
  93. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
  94. package/Build/Workers/decodeI3S.js +1 -1
  95. package/Build/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
  96. package/Build/Workers/package.js +1 -1
  97. package/Build/Workers/transcodeKTX2.js +26 -26
  98. package/Build/Workers/transferTypedArrayTest.js +1 -1
  99. package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  100. package/Source/Core/ApproximateTerrainHeights.js +3 -3
  101. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +308 -208
  102. package/Source/Core/ArcType.js +4 -4
  103. package/Source/Core/ArticulationStageType.js +1 -1
  104. package/Source/Core/AssociativeArray.js +7 -7
  105. package/Source/Core/AttributeCompression.js +12 -12
  106. package/Source/Core/AxisAlignedBoundingBox.js +2 -2
  107. package/Source/Core/BingMapsGeocoderService.js +6 -6
  108. package/Source/Core/BoundingRectangle.js +17 -17
  109. package/Source/Core/BoundingSphere.js +25 -25
  110. package/Source/Core/BoxGeometry.js +8 -8
  111. package/Source/Core/BoxOutlineGeometry.js +8 -8
  112. package/Source/Core/Cartesian2.js +38 -38
  113. package/Source/Core/Cartesian3.js +50 -50
  114. package/Source/Core/Cartesian4.js +44 -44
  115. package/Source/Core/Cartographic.js +19 -19
  116. package/Source/Core/CartographicGeocoderService.js +1 -1
  117. package/Source/Core/CatmullRomSpline.js +10 -10
  118. package/Source/Core/CesiumTerrainProvider.js +598 -461
  119. package/Source/Core/Check.js +17 -17
  120. package/Source/Core/CircleGeometry.js +12 -12
  121. package/Source/Core/CircleOutlineGeometry.js +12 -12
  122. package/Source/Core/Clock.js +7 -7
  123. package/Source/Core/ClockRange.js +4 -4
  124. package/Source/Core/ClockStep.js +4 -4
  125. package/Source/Core/Color.js +58 -58
  126. package/Source/Core/ColorGeometryInstanceAttribute.js +7 -7
  127. package/Source/Core/ComponentDatatype.js +15 -15
  128. package/Source/Core/CompressedTextureBuffer.js +7 -7
  129. package/Source/Core/ConstantSpline.js +9 -9
  130. package/Source/Core/CoplanarPolygonGeometry.js +10 -10
  131. package/Source/Core/CoplanarPolygonOutlineGeometry.js +8 -8
  132. package/Source/Core/CornerType.js +4 -4
  133. package/Source/Core/CorridorGeometry.js +13 -13
  134. package/Source/Core/CorridorOutlineGeometry.js +11 -11
  135. package/Source/Core/Credit.js +7 -7
  136. package/Source/Core/CubicRealPolynomial.js +10 -10
  137. package/Source/Core/CullingVolume.js +7 -7
  138. package/Source/Core/CustomHeightmapTerrainProvider.js +40 -28
  139. package/Source/Core/CylinderGeometry.js +11 -11
  140. package/Source/Core/CylinderOutlineGeometry.js +12 -12
  141. package/Source/Core/DefaultProxy.js +3 -3
  142. package/Source/Core/DeveloperError.js +4 -4
  143. package/Source/Core/DistanceDisplayCondition.js +12 -12
  144. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +5 -5
  145. package/Source/Core/DoubleEndedPriorityQueue.js +5 -5
  146. package/Source/Core/EarthOrientationParameters.js +6 -6
  147. package/Source/Core/EarthOrientationParametersSample.js +10 -10
  148. package/Source/Core/EasingFunction.js +2 -2
  149. package/Source/Core/EllipseGeometry.js +19 -19
  150. package/Source/Core/EllipseOutlineGeometry.js +14 -14
  151. package/Source/Core/Ellipsoid.js +20 -20
  152. package/Source/Core/EllipsoidGeodesic.js +5 -5
  153. package/Source/Core/EllipsoidGeometry.js +13 -13
  154. package/Source/Core/EllipsoidOutlineGeometry.js +14 -14
  155. package/Source/Core/EllipsoidRhumbLine.js +8 -8
  156. package/Source/Core/EllipsoidTerrainProvider.js +35 -28
  157. package/Source/Core/EllipsoidalOccluder.js +9 -9
  158. package/Source/Core/EncodedCartesian3.js +5 -5
  159. package/Source/Core/Event.js +4 -4
  160. package/Source/Core/EventHelper.js +1 -1
  161. package/Source/Core/ExtrapolationType.js +4 -4
  162. package/Source/Core/FeatureDetection.js +9 -9
  163. package/Source/Core/FrustumGeometry.js +8 -8
  164. package/Source/Core/FrustumOutlineGeometry.js +7 -7
  165. package/Source/Core/Fullscreen.js +8 -8
  166. package/Source/Core/GeocodeType.js +3 -3
  167. package/Source/Core/GeocoderService.js +3 -3
  168. package/Source/Core/GeographicTilingScheme.js +16 -16
  169. package/Source/Core/Geometry.js +5 -5
  170. package/Source/Core/GeometryAttribute.js +6 -6
  171. package/Source/Core/GeometryInstance.js +5 -5
  172. package/Source/Core/GeometryInstanceAttribute.js +7 -7
  173. package/Source/Core/GeometryPipeline.js +11 -11
  174. package/Source/Core/GoogleEarthEnterpriseMetadata.js +107 -55
  175. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +29 -29
  176. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +137 -100
  177. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +14 -14
  178. package/Source/Core/GregorianDate.js +16 -16
  179. package/Source/Core/GroundPolylineGeometry.js +13 -13
  180. package/Source/Core/HeadingPitchRange.js +6 -6
  181. package/Source/Core/HeadingPitchRoll.js +18 -18
  182. package/Source/Core/Heap.js +7 -7
  183. package/Source/Core/HeightmapEncoding.js +3 -3
  184. package/Source/Core/HeightmapTerrainData.js +44 -44
  185. package/Source/Core/HeightmapTessellator.js +16 -16
  186. package/Source/Core/HermitePolynomialApproximation.js +17 -17
  187. package/Source/Core/HermiteSpline.js +17 -17
  188. package/Source/Core/HilbertOrder.js +7 -7
  189. package/Source/Core/Iau2006XysData.js +13 -13
  190. package/Source/Core/Iau2006XysSample.js +6 -6
  191. package/Source/Core/IauOrientationParameters.js +4 -4
  192. package/Source/Core/IndexDatatype.js +12 -12
  193. package/Source/Core/InterpolationAlgorithm.js +17 -17
  194. package/Source/Core/InterpolationType.js +1 -1
  195. package/Source/Core/Intersect.js +4 -4
  196. package/Source/Core/IntersectionTests.js +5 -5
  197. package/Source/Core/Intersections2D.js +23 -23
  198. package/Source/Core/Interval.js +4 -4
  199. package/Source/Core/Ion.js +3 -3
  200. package/Source/Core/IonGeocoderService.js +4 -4
  201. package/Source/Core/IonResource.js +20 -9
  202. package/Source/Core/JulianDate.js +27 -27
  203. package/Source/Core/KeyboardEventModifier.js +4 -4
  204. package/Source/Core/LagrangePolynomialApproximation.js +8 -8
  205. package/Source/Core/LeapSecond.js +2 -2
  206. package/Source/Core/LinearApproximation.js +8 -8
  207. package/Source/Core/LinearSpline.js +13 -13
  208. package/Source/Core/ManagedArray.js +8 -8
  209. package/Source/Core/Math.js +136 -136
  210. package/Source/Core/Matrix2.js +44 -44
  211. package/Source/Core/Matrix3.js +59 -59
  212. package/Source/Core/Matrix4.js +91 -91
  213. package/Source/Core/MorphWeightSpline.js +14 -14
  214. package/Source/Core/MortonOrder.js +21 -21
  215. package/Source/Core/NearFarScalar.js +16 -16
  216. package/Source/Core/Occluder.js +5 -5
  217. package/Source/Core/OffsetGeometryInstanceAttribute.js +5 -5
  218. package/Source/Core/OpenCageGeocoderService.js +18 -18
  219. package/Source/Core/OrientedBoundingBox.js +18 -16
  220. package/Source/Core/OrthographicFrustum.js +23 -23
  221. package/Source/Core/OrthographicOffCenterFrustum.js +21 -21
  222. package/Source/Core/Packable.js +7 -7
  223. package/Source/Core/PackableForInterpolation.js +11 -11
  224. package/Source/Core/PeliasGeocoderService.js +2 -2
  225. package/Source/Core/PerspectiveFrustum.js +28 -28
  226. package/Source/Core/PerspectiveOffCenterFrustum.js +21 -21
  227. package/Source/Core/PinBuilder.js +9 -9
  228. package/Source/Core/PixelFormat.js +23 -23
  229. package/Source/Core/Plane.js +4 -4
  230. package/Source/Core/PlaneGeometry.js +7 -7
  231. package/Source/Core/PlaneOutlineGeometry.js +5 -5
  232. package/Source/Core/PolygonGeometry.js +24 -24
  233. package/Source/Core/PolygonGeometryLibrary.js +4 -4
  234. package/Source/Core/PolygonOutlineGeometry.js +16 -16
  235. package/Source/Core/PolygonPipeline.js +10 -10
  236. package/Source/Core/PolylineGeometry.js +10 -10
  237. package/Source/Core/PolylinePipeline.js +15 -15
  238. package/Source/Core/PolylineVolumeGeometry.js +8 -8
  239. package/Source/Core/PolylineVolumeOutlineGeometry.js +8 -8
  240. package/Source/Core/PrimitiveType.js +8 -8
  241. package/Source/Core/Proxy.js +2 -2
  242. package/Source/Core/QuadraticRealPolynomial.js +8 -8
  243. package/Source/Core/QuantizedMeshTerrainData.js +37 -37
  244. package/Source/Core/QuarticRealPolynomial.js +12 -12
  245. package/Source/Core/Quaternion.js +42 -42
  246. package/Source/Core/QuaternionSpline.js +10 -10
  247. package/Source/Core/Queue.js +2 -2
  248. package/Source/Core/Ray.js +1 -1
  249. package/Source/Core/Rectangle.js +38 -38
  250. package/Source/Core/RectangleCollisionChecker.js +3 -3
  251. package/Source/Core/RectangleGeometry.js +15 -15
  252. package/Source/Core/RectangleOutlineGeometry.js +11 -11
  253. package/Source/Core/ReferenceFrame.js +3 -3
  254. package/Source/Core/Request.js +13 -13
  255. package/Source/Core/RequestErrorEvent.js +7 -7
  256. package/Source/Core/RequestScheduler.js +15 -15
  257. package/Source/Core/RequestState.js +7 -7
  258. package/Source/Core/RequestType.js +5 -5
  259. package/Source/Core/Resource.js +225 -225
  260. package/Source/Core/RuntimeError.js +4 -4
  261. package/Source/Core/S2Cell.js +15 -15
  262. package/Source/Core/ScreenSpaceEventHandler.js +7 -7
  263. package/Source/Core/ScreenSpaceEventType.js +16 -16
  264. package/Source/Core/ShowGeometryInstanceAttribute.js +4 -4
  265. package/Source/Core/SimplePolylineGeometry.js +9 -9
  266. package/Source/Core/SphereGeometry.js +10 -10
  267. package/Source/Core/SphereOutlineGeometry.js +11 -11
  268. package/Source/Core/Spherical.js +13 -13
  269. package/Source/Core/Spline.js +14 -14
  270. package/Source/Core/SteppedSpline.js +14 -14
  271. package/Source/Core/TaskProcessor.js +10 -10
  272. package/Source/Core/TerrainData.js +25 -25
  273. package/Source/Core/TerrainEncoding.js +14 -14
  274. package/Source/Core/TerrainExaggeration.js +3 -3
  275. package/Source/Core/TerrainMesh.js +18 -18
  276. package/Source/Core/TerrainProvider.js +32 -37
  277. package/Source/Core/TerrainQuantization.js +3 -3
  278. package/Source/Core/TileAvailability.js +16 -16
  279. package/Source/Core/TileProviderError.js +19 -19
  280. package/Source/Core/TilingScheme.js +13 -13
  281. package/Source/Core/TimeConstants.js +10 -10
  282. package/Source/Core/TimeInterval.js +23 -23
  283. package/Source/Core/TimeIntervalCollection.js +39 -39
  284. package/Source/Core/TimeStandard.js +3 -3
  285. package/Source/Core/Tipsify.js +10 -10
  286. package/Source/Core/Transforms.js +2 -2
  287. package/Source/Core/TranslationRotationScale.js +1 -1
  288. package/Source/Core/TridiagonalSystemSolver.js +3 -3
  289. package/Source/Core/TrustedServers.js +5 -5
  290. package/Source/Core/VRTheWorldTerrainProvider.js +210 -141
  291. package/Source/Core/VertexFormat.js +13 -13
  292. package/Source/Core/VideoSynchronizer.js +4 -4
  293. package/Source/Core/Visibility.js +4 -4
  294. package/Source/Core/VulkanConstants.js +1 -1
  295. package/Source/Core/WallGeometry.js +13 -13
  296. package/Source/Core/WallOutlineGeometry.js +13 -13
  297. package/Source/Core/WebGLConstants.js +1 -1
  298. package/Source/Core/WebMercatorProjection.js +5 -5
  299. package/Source/Core/WebMercatorTilingScheme.js +16 -16
  300. package/Source/Core/WindingOrder.js +3 -3
  301. package/Source/Core/WireframeIndexGenerator.js +3 -3
  302. package/Source/Core/arrayRemoveDuplicates.js +4 -4
  303. package/Source/Core/binarySearch.js +2 -2
  304. package/Source/Core/buildModuleUrl.js +8 -7
  305. package/Source/Core/clone.js +3 -3
  306. package/Source/Core/combine.js +4 -4
  307. package/Source/Core/createGuid.js +1 -1
  308. package/Source/Core/createWorldTerrain.js +23 -5
  309. package/Source/Core/createWorldTerrainAsync.js +48 -0
  310. package/Source/Core/defaultValue.js +1 -1
  311. package/Source/Core/defer.js +1 -1
  312. package/Source/Core/defined.js +1 -1
  313. package/Source/Core/deprecationWarning.js +2 -2
  314. package/Source/Core/destroyObject.js +2 -2
  315. package/Source/Core/formatError.js +1 -1
  316. package/Source/Core/getAbsoluteUri.js +3 -3
  317. package/Source/Core/getBaseUri.js +3 -3
  318. package/Source/Core/getExtensionFromUri.js +2 -2
  319. package/Source/Core/getFilenameFromUri.js +2 -2
  320. package/Source/Core/getImageFromTypedArray.js +2 -2
  321. package/Source/Core/getImagePixels.js +4 -3
  322. package/Source/Core/getJsonFromTypedArray.js +3 -3
  323. package/Source/Core/getStringFromTypedArray.js +3 -3
  324. package/Source/Core/getTimestamp.js +1 -1
  325. package/Source/Core/isBlobUri.js +2 -2
  326. package/Source/Core/isDataUri.js +2 -2
  327. package/Source/Core/isLeapYear.js +2 -2
  328. package/Source/Core/loadKTX2.js +8 -8
  329. package/Source/Core/mergeSort.js +1 -1
  330. package/Source/Core/objectToQuery.js +2 -2
  331. package/Source/Core/oneTimeWarning.js +2 -2
  332. package/Source/Core/parseResponseHeaders.js +2 -2
  333. package/Source/Core/pointInsideTriangle.js +1 -1
  334. package/Source/Core/queryToObject.js +2 -2
  335. package/Source/Core/sampleTerrain.js +16 -17
  336. package/Source/Core/sampleTerrainMostDetailed.js +67 -73
  337. package/Source/Core/scaleToGeodeticSurface.js +1 -1
  338. package/Source/Core/subdivideArray.js +1 -1
  339. package/Source/Core/writeTextToCanvas.js +10 -9
  340. package/Source/DataSources/BillboardGraphics.js +1 -1
  341. package/Source/DataSources/BillboardVisualizer.js +2 -2
  342. package/Source/DataSources/BoundingSphereState.js +1 -1
  343. package/Source/DataSources/BoxGraphics.js +1 -1
  344. package/Source/DataSources/CallbackProperty.js +8 -8
  345. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  346. package/Source/DataSources/Cesium3DTilesetVisualizer.js +39 -28
  347. package/Source/DataSources/CheckerboardMaterialProperty.js +6 -6
  348. package/Source/DataSources/ColorMaterialProperty.js +5 -5
  349. package/Source/DataSources/CompositeEntityCollection.js +8 -8
  350. package/Source/DataSources/CompositeMaterialProperty.js +5 -5
  351. package/Source/DataSources/CompositePositionProperty.js +2 -2
  352. package/Source/DataSources/CompositeProperty.js +4 -4
  353. package/Source/DataSources/ConstantPositionProperty.js +4 -4
  354. package/Source/DataSources/ConstantProperty.js +5 -5
  355. package/Source/DataSources/CorridorGraphics.js +1 -1
  356. package/Source/DataSources/CustomDataSource.js +5 -5
  357. package/Source/DataSources/CylinderGraphics.js +1 -1
  358. package/Source/DataSources/CzmlDataSource.js +26 -26
  359. package/Source/DataSources/DataSource.js +4 -4
  360. package/Source/DataSources/DataSourceClock.js +2 -2
  361. package/Source/DataSources/DataSourceCollection.js +11 -11
  362. package/Source/DataSources/DataSourceDisplay.js +5 -5
  363. package/Source/DataSources/DynamicGeometryUpdater.js +1 -1
  364. package/Source/DataSources/EllipseGraphics.js +1 -1
  365. package/Source/DataSources/EllipsoidGeometryUpdater.js +2 -2
  366. package/Source/DataSources/EllipsoidGraphics.js +1 -1
  367. package/Source/DataSources/Entity.js +20 -15
  368. package/Source/DataSources/EntityCluster.js +16 -16
  369. package/Source/DataSources/EntityCollection.js +8 -8
  370. package/Source/DataSources/GeoJsonDataSource.js +27 -27
  371. package/Source/DataSources/GeometryUpdater.js +22 -22
  372. package/Source/DataSources/GeometryVisualizer.js +2 -2
  373. package/Source/DataSources/GpxDataSource.js +23 -23
  374. package/Source/DataSources/GridMaterialProperty.js +7 -7
  375. package/Source/DataSources/GroundGeometryUpdater.js +5 -5
  376. package/Source/DataSources/ImageMaterialProperty.js +8 -8
  377. package/Source/DataSources/KmlDataSource.js +32 -32
  378. package/Source/DataSources/KmlTour.js +7 -7
  379. package/Source/DataSources/KmlTourFlyTo.js +6 -6
  380. package/Source/DataSources/KmlTourWait.js +2 -2
  381. package/Source/DataSources/LabelGraphics.js +1 -1
  382. package/Source/DataSources/LabelVisualizer.js +2 -2
  383. package/Source/DataSources/MaterialProperty.js +5 -5
  384. package/Source/DataSources/ModelGraphics.js +3 -3
  385. package/Source/DataSources/ModelVisualizer.js +101 -33
  386. package/Source/DataSources/NodeTransformationProperty.js +3 -3
  387. package/Source/DataSources/PathGraphics.js +1 -1
  388. package/Source/DataSources/PathVisualizer.js +2 -2
  389. package/Source/DataSources/PlaneGraphics.js +1 -1
  390. package/Source/DataSources/PointGraphics.js +1 -1
  391. package/Source/DataSources/PointVisualizer.js +2 -2
  392. package/Source/DataSources/PolygonGraphics.js +4 -4
  393. package/Source/DataSources/PolylineArrowMaterialProperty.js +5 -5
  394. package/Source/DataSources/PolylineDashMaterialProperty.js +8 -8
  395. package/Source/DataSources/PolylineGeometryUpdater.js +13 -13
  396. package/Source/DataSources/PolylineGlowMaterialProperty.js +8 -8
  397. package/Source/DataSources/PolylineGraphics.js +2 -2
  398. package/Source/DataSources/PolylineOutlineMaterialProperty.js +7 -7
  399. package/Source/DataSources/PolylineVisualizer.js +2 -2
  400. package/Source/DataSources/PolylineVolumeGraphics.js +3 -3
  401. package/Source/DataSources/PositionProperty.js +2 -2
  402. package/Source/DataSources/PositionPropertyArray.js +2 -2
  403. package/Source/DataSources/Property.js +4 -4
  404. package/Source/DataSources/PropertyArray.js +2 -2
  405. package/Source/DataSources/PropertyBag.js +10 -10
  406. package/Source/DataSources/RectangleGraphics.js +1 -1
  407. package/Source/DataSources/ReferenceProperty.js +10 -10
  408. package/Source/DataSources/Rotation.js +14 -14
  409. package/Source/DataSources/SampledPositionProperty.js +11 -11
  410. package/Source/DataSources/SampledProperty.js +12 -12
  411. package/Source/DataSources/StripeMaterialProperty.js +8 -8
  412. package/Source/DataSources/StripeOrientation.js +3 -3
  413. package/Source/DataSources/TerrainOffsetProperty.js +1 -1
  414. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +3 -3
  415. package/Source/DataSources/TimeIntervalCollectionProperty.js +4 -4
  416. package/Source/DataSources/VelocityOrientationProperty.js +2 -2
  417. package/Source/DataSources/VelocityVectorProperty.js +4 -4
  418. package/Source/DataSources/Visualizer.js +2 -2
  419. package/Source/DataSources/WallGraphics.js +4 -4
  420. package/Source/DataSources/exportKml.js +9 -9
  421. package/Source/Renderer/Buffer.js +4 -4
  422. package/Source/Renderer/ClearCommand.js +3 -3
  423. package/Source/Renderer/ComputeCommand.js +3 -3
  424. package/Source/Renderer/Context.js +46 -46
  425. package/Source/Renderer/ContextLimits.js +22 -22
  426. package/Source/Renderer/CubeMapFace.js +11 -11
  427. package/Source/Renderer/DrawCommand.js +15 -15
  428. package/Source/Renderer/Framebuffer.js +4 -4
  429. package/Source/Renderer/FramebufferManager.js +9 -9
  430. package/Source/Renderer/MultisampleFramebuffer.js +1 -1
  431. package/Source/Renderer/PassState.js +2 -2
  432. package/Source/Renderer/PixelDatatype.js +1 -1
  433. package/Source/Renderer/RenderState.js +1 -1
  434. package/Source/Renderer/ShaderBuilder.js +24 -24
  435. package/Source/Renderer/ShaderCache.js +8 -8
  436. package/Source/Renderer/ShaderDestination.js +2 -2
  437. package/Source/Renderer/ShaderFunction.js +3 -3
  438. package/Source/Renderer/ShaderSource.js +8 -8
  439. package/Source/Renderer/ShaderStruct.js +4 -4
  440. package/Source/Renderer/Texture.js +18 -18
  441. package/Source/Renderer/TextureMagnificationFilter.js +4 -4
  442. package/Source/Renderer/TextureMinificationFilter.js +8 -8
  443. package/Source/Renderer/UniformState.js +14 -14
  444. package/Source/Renderer/VertexArray.js +2 -2
  445. package/Source/Renderer/createUniform.js +12 -12
  446. package/Source/Renderer/createUniformArray.js +12 -12
  447. package/Source/Renderer/freezeRenderState.js +2 -2
  448. package/Source/Renderer/loadCubeMap.js +3 -3
  449. package/Source/Scene/AlphaMode.js +4 -4
  450. package/Source/Scene/Appearance.js +14 -14
  451. package/Source/Scene/ArcGisMapServerImageryProvider.js +585 -409
  452. package/Source/Scene/AttributeType.js +11 -11
  453. package/Source/Scene/AutoExposure.js +6 -6
  454. package/Source/Scene/Axis.js +6 -6
  455. package/Source/Scene/B3dmParser.js +2 -2
  456. package/Source/Scene/BatchTable.js +13 -13
  457. package/Source/Scene/BatchTableHierarchy.js +22 -22
  458. package/Source/Scene/BatchTexture.js +14 -14
  459. package/Source/Scene/Billboard.js +17 -17
  460. package/Source/Scene/BillboardCollection.js +13 -13
  461. package/Source/Scene/BingMapsImageryProvider.js +541 -335
  462. package/Source/Scene/BingMapsStyle.js +11 -11
  463. package/Source/Scene/BlendEquation.js +6 -6
  464. package/Source/Scene/BlendFunction.js +16 -16
  465. package/Source/Scene/BlendOption.js +4 -4
  466. package/Source/Scene/BlendingState.js +4 -4
  467. package/Source/Scene/BufferLoader.js +33 -38
  468. package/Source/Scene/Camera.js +57 -57
  469. package/Source/Scene/CameraEventAggregator.js +26 -16
  470. package/Source/Scene/CameraEventType.js +6 -6
  471. package/Source/Scene/Cesium3DContentGroup.js +1 -1
  472. package/Source/Scene/Cesium3DTile.js +409 -272
  473. package/Source/Scene/Cesium3DTileBatchTable.js +3 -3
  474. package/Source/Scene/Cesium3DTileColorBlendMode.js +4 -4
  475. package/Source/Scene/Cesium3DTileContent.js +31 -15
  476. package/Source/Scene/Cesium3DTileContentFactory.js +4 -4
  477. package/Source/Scene/Cesium3DTileContentType.js +17 -17
  478. package/Source/Scene/Cesium3DTileFeature.js +16 -16
  479. package/Source/Scene/Cesium3DTileOptimizationHint.js +1 -1
  480. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  481. package/Source/Scene/Cesium3DTilePass.js +8 -11
  482. package/Source/Scene/Cesium3DTilePassState.js +1 -1
  483. package/Source/Scene/Cesium3DTilePointFeature.js +23 -23
  484. package/Source/Scene/Cesium3DTileRefine.js +3 -3
  485. package/Source/Scene/Cesium3DTileStyle.js +17 -17
  486. package/Source/Scene/Cesium3DTileStyleEngine.js +1 -1
  487. package/Source/Scene/Cesium3DTilesVoxelProvider.js +226 -118
  488. package/Source/Scene/Cesium3DTileset.js +817 -543
  489. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +301 -0
  490. package/Source/Scene/Cesium3DTilesetHeatmap.js +4 -4
  491. package/Source/Scene/Cesium3DTilesetMetadata.js +5 -5
  492. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +33 -46
  493. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +421 -0
  494. package/Source/Scene/Cesium3DTilesetTraversal.js +219 -671
  495. package/Source/Scene/CircleEmitter.js +2 -2
  496. package/Source/Scene/ClassificationPrimitive.js +32 -25
  497. package/Source/Scene/ClassificationType.js +4 -4
  498. package/Source/Scene/ClippingPlane.js +2 -2
  499. package/Source/Scene/ClippingPlaneCollection.js +17 -17
  500. package/Source/Scene/CloudCollection.js +16 -16
  501. package/Source/Scene/CloudType.js +3 -3
  502. package/Source/Scene/ColorBlendMode.js +1 -1
  503. package/Source/Scene/Composite3DTileContent.js +69 -26
  504. package/Source/Scene/ConditionsExpression.js +11 -11
  505. package/Source/Scene/ConeEmitter.js +2 -2
  506. package/Source/Scene/ContentMetadata.js +16 -16
  507. package/Source/Scene/CreditDisplay.js +22 -6
  508. package/Source/Scene/CullFace.js +4 -4
  509. package/Source/Scene/CumulusCloud.js +3 -3
  510. package/Source/Scene/DebugAppearance.js +17 -17
  511. package/Source/Scene/DebugCameraPrimitive.js +7 -7
  512. package/Source/Scene/DebugModelMatrixPrimitive.js +9 -9
  513. package/Source/Scene/DepthFunction.js +9 -9
  514. package/Source/Scene/DepthPlane.js +1 -1
  515. package/Source/Scene/DeviceOrientationCameraController.js +1 -1
  516. package/Source/Scene/DirectionalLight.js +3 -3
  517. package/Source/Scene/DiscardEmptyTileImagePolicy.js +2 -2
  518. package/Source/Scene/DiscardMissingTileImagePolicy.js +5 -5
  519. package/Source/Scene/DracoLoader.js +4 -4
  520. package/Source/Scene/EllipsoidPrimitive.js +8 -8
  521. package/Source/Scene/EllipsoidSurfaceAppearance.js +19 -19
  522. package/Source/Scene/Empty3DTileContent.js +31 -1
  523. package/Source/Scene/Expression.js +14 -14
  524. package/Source/Scene/Fog.js +5 -5
  525. package/Source/Scene/FrameRateMonitor.js +14 -14
  526. package/Source/Scene/FrameState.js +36 -36
  527. package/Source/Scene/FrustumCommands.js +2 -2
  528. package/Source/Scene/Geometry3DTileContent.js +47 -7
  529. package/Source/Scene/GetFeatureInfoFormat.js +2 -2
  530. package/Source/Scene/Globe.js +39 -35
  531. package/Source/Scene/GlobeSurfaceTile.js +3 -2
  532. package/Source/Scene/GlobeSurfaceTileProvider.js +56 -33
  533. package/Source/Scene/GlobeTranslucency.js +3 -3
  534. package/Source/Scene/GltfBufferViewLoader.js +52 -96
  535. package/Source/Scene/GltfDracoLoader.js +117 -119
  536. package/Source/Scene/GltfImageLoader.js +77 -84
  537. package/Source/Scene/GltfIndexBufferLoader.js +118 -131
  538. package/Source/Scene/GltfJsonLoader.js +81 -80
  539. package/Source/Scene/GltfLoader.js +413 -301
  540. package/Source/Scene/GltfLoaderUtil.js +11 -11
  541. package/Source/Scene/GltfPipeline/addBuffer.js +2 -2
  542. package/Source/Scene/GltfPipeline/addDefaults.js +2 -2
  543. package/Source/Scene/GltfPipeline/addExtensionsRequired.js +2 -2
  544. package/Source/Scene/GltfPipeline/addExtensionsUsed.js +2 -2
  545. package/Source/Scene/GltfPipeline/addPipelineExtras.js +2 -2
  546. package/Source/Scene/GltfPipeline/addToArray.js +2 -2
  547. package/Source/Scene/GltfPipeline/findAccessorMinMax.js +2 -2
  548. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +3 -3
  549. package/Source/Scene/GltfPipeline/getAccessorByteStride.js +3 -3
  550. package/Source/Scene/GltfPipeline/getComponentReader.js +5 -5
  551. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -2
  552. package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +2 -2
  553. package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +2 -2
  554. package/Source/Scene/GltfPipeline/parseGlb.js +1 -1
  555. package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
  556. package/Source/Scene/GltfPipeline/removeExtension.js +2 -2
  557. package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +2 -2
  558. package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +2 -2
  559. package/Source/Scene/GltfPipeline/removePipelineExtras.js +2 -2
  560. package/Source/Scene/GltfPipeline/removeUnusedElements.js +2 -2
  561. package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +2 -2
  562. package/Source/Scene/GltfPipeline/updateVersion.js +4 -4
  563. package/Source/Scene/GltfPipeline/usesExtension.js +3 -3
  564. package/Source/Scene/GltfStructuralMetadataLoader.js +117 -118
  565. package/Source/Scene/GltfTextureLoader.js +104 -103
  566. package/Source/Scene/GltfVertexBufferLoader.js +140 -145
  567. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +377 -249
  568. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +520 -360
  569. package/Source/Scene/GridImageryProvider.js +292 -129
  570. package/Source/Scene/GroundPolylinePrimitive.js +32 -21
  571. package/Source/Scene/GroundPrimitive.js +34 -27
  572. package/Source/Scene/GroupMetadata.js +17 -17
  573. package/Source/Scene/HeightReference.js +4 -4
  574. package/Source/Scene/HorizontalOrigin.js +4 -4
  575. package/Source/Scene/I3SDataProvider.js +221 -120
  576. package/Source/Scene/I3SFeature.js +8 -7
  577. package/Source/Scene/I3SField.js +5 -5
  578. package/Source/Scene/I3SGeometry.js +8 -8
  579. package/Source/Scene/I3SLayer.js +33 -44
  580. package/Source/Scene/I3SNode.js +65 -72
  581. package/Source/Scene/I3dmParser.js +2 -2
  582. package/Source/Scene/ImageBasedLighting.js +21 -17
  583. package/Source/Scene/Imagery.js +6 -1
  584. package/Source/Scene/ImageryLayer.js +324 -73
  585. package/Source/Scene/ImageryLayerCollection.js +37 -11
  586. package/Source/Scene/ImageryLayerFeatureInfo.js +6 -6
  587. package/Source/Scene/ImageryProvider.js +151 -133
  588. package/Source/Scene/Implicit3DTileContent.js +128 -79
  589. package/Source/Scene/ImplicitAvailabilityBitstream.js +10 -10
  590. package/Source/Scene/ImplicitMetadataView.js +16 -16
  591. package/Source/Scene/ImplicitSubdivisionScheme.js +4 -4
  592. package/Source/Scene/ImplicitSubtree.js +113 -92
  593. package/Source/Scene/ImplicitSubtreeCache.js +6 -6
  594. package/Source/Scene/ImplicitSubtreeMetadata.js +16 -16
  595. package/Source/Scene/ImplicitTileCoordinates.js +27 -27
  596. package/Source/Scene/ImplicitTileset.js +10 -10
  597. package/Source/Scene/InstanceAttributeSemantic.js +5 -5
  598. package/Source/Scene/IonImageryProvider.js +493 -286
  599. package/Source/Scene/IonWorldImageryStyle.js +4 -4
  600. package/Source/Scene/JsonMetadataTable.js +11 -11
  601. package/Source/Scene/KeyframeNode.js +1 -1
  602. package/Source/Scene/Label.js +14 -14
  603. package/Source/Scene/LabelCollection.js +12 -11
  604. package/Source/Scene/LabelStyle.js +4 -4
  605. package/Source/Scene/Light.js +1 -1
  606. package/Source/Scene/MapMode2D.js +3 -3
  607. package/Source/Scene/MapboxImageryProvider.js +301 -141
  608. package/Source/Scene/MapboxStyleImageryProvider.js +301 -142
  609. package/Source/Scene/Material.js +47 -47
  610. package/Source/Scene/MaterialAppearance.js +21 -21
  611. package/Source/Scene/Megatexture.js +15 -15
  612. package/Source/Scene/MetadataClass.js +16 -16
  613. package/Source/Scene/MetadataClassProperty.js +41 -41
  614. package/Source/Scene/MetadataComponentType.js +21 -21
  615. package/Source/Scene/MetadataEntity.js +31 -31
  616. package/Source/Scene/MetadataEnum.js +14 -14
  617. package/Source/Scene/MetadataEnumValue.js +10 -10
  618. package/Source/Scene/MetadataSchema.js +16 -16
  619. package/Source/Scene/MetadataSchemaLoader.js +31 -41
  620. package/Source/Scene/MetadataSemantic.js +17 -17
  621. package/Source/Scene/MetadataTable.js +24 -24
  622. package/Source/Scene/MetadataTableProperty.js +9 -9
  623. package/Source/Scene/MetadataType.js +15 -15
  624. package/Source/Scene/Model/B3dmLoader.js +54 -58
  625. package/Source/Scene/Model/ClassificationModelDrawCommand.js +3 -3
  626. package/Source/Scene/Model/CustomShader.js +18 -18
  627. package/Source/Scene/Model/CustomShaderMode.js +4 -4
  628. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +4 -4
  629. package/Source/Scene/Model/GeoJsonLoader.js +12 -36
  630. package/Source/Scene/Model/I3dmLoader.js +58 -84
  631. package/Source/Scene/Model/LightingModel.js +3 -3
  632. package/Source/Scene/Model/MaterialPipelineStage.js +6 -6
  633. package/Source/Scene/Model/MetadataPipelineStage.js +25 -26
  634. package/Source/Scene/Model/Model.js +531 -193
  635. package/Source/Scene/Model/Model3DTileContent.js +83 -31
  636. package/Source/Scene/Model/ModelAlphaOptions.js +1 -1
  637. package/Source/Scene/Model/ModelAnimation.js +11 -11
  638. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  639. package/Source/Scene/Model/ModelAnimationCollection.js +21 -21
  640. package/Source/Scene/Model/ModelArticulation.js +4 -4
  641. package/Source/Scene/Model/ModelArticulationStage.js +5 -5
  642. package/Source/Scene/Model/ModelDrawCommand.js +18 -29
  643. package/Source/Scene/Model/ModelFeature.js +12 -12
  644. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  645. package/Source/Scene/Model/ModelLightingOptions.js +1 -1
  646. package/Source/Scene/Model/ModelNode.js +3 -3
  647. package/Source/Scene/Model/ModelRenderResources.js +4 -4
  648. package/Source/Scene/Model/ModelRuntimeNode.js +7 -7
  649. package/Source/Scene/Model/ModelRuntimePrimitive.js +3 -3
  650. package/Source/Scene/Model/ModelSceneGraph.js +11 -11
  651. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +1 -1
  652. package/Source/Scene/Model/ModelSkin.js +1 -1
  653. package/Source/Scene/Model/ModelStatistics.js +7 -7
  654. package/Source/Scene/Model/ModelType.js +8 -8
  655. package/Source/Scene/Model/ModelUtility.js +26 -26
  656. package/Source/Scene/Model/NodeRenderResources.js +7 -7
  657. package/Source/Scene/Model/PntsLoader.js +32 -37
  658. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -1
  659. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +28 -28
  660. package/Source/Scene/Model/PrimitiveRenderResources.js +10 -10
  661. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  662. package/Source/Scene/Model/TextureManager.js +3 -3
  663. package/Source/Scene/Model/TextureUniform.js +6 -6
  664. package/Source/Scene/Model/UniformType.js +17 -17
  665. package/Source/Scene/Model/VaryingType.js +8 -8
  666. package/Source/Scene/ModelAnimationLoop.js +4 -4
  667. package/Source/Scene/ModelComponents.js +61 -61
  668. package/Source/Scene/Moon.js +8 -8
  669. package/Source/Scene/Multiple3DTileContent.js +146 -127
  670. package/Source/Scene/NeverTileDiscardPolicy.js +2 -2
  671. package/Source/Scene/OIT.js +9 -9
  672. package/Source/Scene/OctahedralProjectedCubeMap.js +28 -39
  673. package/Source/Scene/OpenStreetMapImageryProvider.js +6 -6
  674. package/Source/Scene/OrderedGroundPrimitiveCollection.js +9 -9
  675. package/Source/Scene/Particle.js +13 -13
  676. package/Source/Scene/ParticleBurst.js +8 -8
  677. package/Source/Scene/ParticleSystem.js +41 -36
  678. package/Source/Scene/PerInstanceColorAppearance.js +18 -18
  679. package/Source/Scene/PerformanceDisplay.js +2 -2
  680. package/Source/Scene/PntsParser.js +1 -1
  681. package/Source/Scene/PointCloud.js +11 -19
  682. package/Source/Scene/PointCloudEyeDomeLighting.js +1 -1
  683. package/Source/Scene/PointCloudShading.js +20 -20
  684. package/Source/Scene/PointPrimitive.js +6 -6
  685. package/Source/Scene/PointPrimitiveCollection.js +11 -11
  686. package/Source/Scene/Polyline.js +9 -9
  687. package/Source/Scene/PolylineCollection.js +11 -11
  688. package/Source/Scene/PolylineColorAppearance.js +13 -13
  689. package/Source/Scene/PolylineMaterialAppearance.js +13 -13
  690. package/Source/Scene/PostProcessStage.js +15 -15
  691. package/Source/Scene/PostProcessStageCollection.js +10 -10
  692. package/Source/Scene/PostProcessStageComposite.js +13 -13
  693. package/Source/Scene/PostProcessStageLibrary.js +8 -8
  694. package/Source/Scene/PostProcessStageSampleMode.js +3 -3
  695. package/Source/Scene/PostProcessStageTextureCache.js +4 -4
  696. package/Source/Scene/Primitive.js +50 -30
  697. package/Source/Scene/PrimitiveCollection.js +20 -20
  698. package/Source/Scene/PrimitiveLoadPlan.js +6 -6
  699. package/Source/Scene/PropertyAttribute.js +9 -9
  700. package/Source/Scene/PropertyAttributeProperty.js +6 -6
  701. package/Source/Scene/PropertyTable.js +34 -34
  702. package/Source/Scene/PropertyTexture.js +9 -9
  703. package/Source/Scene/PropertyTextureProperty.js +8 -8
  704. package/Source/Scene/QuadtreePrimitive.js +11 -9
  705. package/Source/Scene/QuadtreeTile.js +11 -11
  706. package/Source/Scene/QuadtreeTileLoadState.js +1 -1
  707. package/Source/Scene/QuadtreeTileProvider.js +10 -14
  708. package/Source/Scene/ResourceCache.js +85 -143
  709. package/Source/Scene/ResourceCacheKey.js +42 -42
  710. package/Source/Scene/ResourceCacheStatistics.js +26 -60
  711. package/Source/Scene/ResourceLoader.js +9 -21
  712. package/Source/Scene/ResourceLoaderState.js +16 -8
  713. package/Source/Scene/SDFSettings.js +4 -4
  714. package/Source/Scene/Scene.js +153 -88
  715. package/Source/Scene/SceneMode.js +6 -6
  716. package/Source/Scene/SceneTransitioner.js +1 -1
  717. package/Source/Scene/ScreenSpaceCameraController.js +41 -23
  718. package/Source/Scene/ShadowMap.js +22 -22
  719. package/Source/Scene/ShadowMapShader.js +1 -1
  720. package/Source/Scene/ShadowMode.js +5 -5
  721. package/Source/Scene/ShadowVolumeAppearance.js +17 -17
  722. package/Source/Scene/SingleTileImageryProvider.js +403 -230
  723. package/Source/Scene/SkyAtmosphere.js +10 -10
  724. package/Source/Scene/SkyBox.js +6 -6
  725. package/Source/Scene/SpatialNode.js +103 -87
  726. package/Source/Scene/SphereEmitter.js +2 -2
  727. package/Source/Scene/SplitDirection.js +4 -4
  728. package/Source/Scene/Splitter.js +2 -2
  729. package/Source/Scene/StencilFunction.js +9 -9
  730. package/Source/Scene/StencilOperation.js +9 -9
  731. package/Source/Scene/StructuralMetadata.js +11 -11
  732. package/Source/Scene/StyleExpression.js +8 -8
  733. package/Source/Scene/Sun.js +3 -3
  734. package/Source/Scene/SunLight.js +3 -3
  735. package/Source/Scene/SupportedImageFormats.js +3 -3
  736. package/Source/Scene/Terrain.js +196 -0
  737. package/Source/Scene/TextureAtlas.js +16 -16
  738. package/Source/Scene/TileBoundingRegion.js +6 -6
  739. package/Source/Scene/TileBoundingS2Cell.js +6 -6
  740. package/Source/Scene/TileBoundingSphere.js +5 -5
  741. package/Source/Scene/TileBoundingVolume.js +2 -2
  742. package/Source/Scene/TileCoordinatesImageryProvider.js +289 -126
  743. package/Source/Scene/TileDiscardPolicy.js +2 -2
  744. package/Source/Scene/TileImagery.js +3 -3
  745. package/Source/Scene/TileMapServiceImageryProvider.js +185 -93
  746. package/Source/Scene/TileMetadata.js +16 -16
  747. package/Source/Scene/TileOrientedBoundingBox.js +2 -2
  748. package/Source/Scene/TileReplacementQueue.js +1 -1
  749. package/Source/Scene/TileSelectionResult.js +1 -1
  750. package/Source/Scene/Tileset3DTileContent.js +47 -5
  751. package/Source/Scene/TilesetMetadata.js +15 -15
  752. package/Source/Scene/TimeDynamicImagery.js +8 -8
  753. package/Source/Scene/TimeDynamicPointCloud.js +24 -11
  754. package/Source/Scene/Tonemapper.js +5 -5
  755. package/Source/Scene/TranslucentTileClassification.js +1 -1
  756. package/Source/Scene/TweenCollection.js +31 -31
  757. package/Source/Scene/UrlTemplateImageryProvider.js +380 -252
  758. package/Source/Scene/Vector3DTileBatch.js +7 -7
  759. package/Source/Scene/Vector3DTileClampedPolylines.js +105 -93
  760. package/Source/Scene/Vector3DTileContent.js +47 -22
  761. package/Source/Scene/Vector3DTileGeometry.js +65 -60
  762. package/Source/Scene/Vector3DTilePoints.js +79 -75
  763. package/Source/Scene/Vector3DTilePolygons.js +128 -127
  764. package/Source/Scene/Vector3DTilePolylines.js +95 -91
  765. package/Source/Scene/Vector3DTilePrimitive.js +8 -9
  766. package/Source/Scene/VertexAttributeSemantic.js +15 -15
  767. package/Source/Scene/VerticalOrigin.js +5 -5
  768. package/Source/Scene/ViewportQuad.js +2 -2
  769. package/Source/Scene/VoxelBoxShape.js +27 -118
  770. package/Source/Scene/VoxelContent.js +63 -65
  771. package/Source/Scene/VoxelCylinderShape.js +21 -21
  772. package/Source/Scene/VoxelEllipsoidShape.js +13 -13
  773. package/Source/Scene/VoxelPrimitive.js +83 -135
  774. package/Source/Scene/VoxelProvider.js +15 -15
  775. package/Source/Scene/VoxelRenderResources.js +6 -3
  776. package/Source/Scene/VoxelShape.js +9 -9
  777. package/Source/Scene/VoxelShapeType.js +4 -4
  778. package/Source/Scene/VoxelTraversal.js +86 -144
  779. package/Source/Scene/WebMapServiceImageryProvider.js +313 -152
  780. package/Source/Scene/WebMapTileServiceImageryProvider.js +305 -142
  781. package/Source/Scene/buildVoxelDrawCommands.js +1 -0
  782. package/Source/Scene/computeFlyToLocationForRectangle.js +33 -37
  783. package/Source/Scene/createBillboardPointCallback.js +5 -5
  784. package/Source/Scene/createElevationBandMaterial.js +5 -5
  785. package/Source/Scene/createOsmBuildings.js +9 -3
  786. package/Source/Scene/createOsmBuildingsAsync.js +82 -0
  787. package/Source/Scene/createTangentSpaceDebugPrimitive.js +2 -2
  788. package/Source/Scene/createWorldImagery.js +15 -6
  789. package/Source/Scene/createWorldImageryAsync.js +39 -0
  790. package/Source/Scene/findContentMetadata.js +1 -1
  791. package/Source/Scene/findGroupMetadata.js +1 -1
  792. package/Source/Scene/findTileMetadata.js +1 -1
  793. package/Source/Scene/getClipAndStyleCode.js +4 -4
  794. package/Source/Scene/getClippingFunction.js +1 -1
  795. package/Source/Scene/hasExtension.js +3 -3
  796. package/Source/Scene/parseBatchTable.js +14 -14
  797. package/Source/Scene/parseBoundingVolumeSemantics.js +7 -7
  798. package/Source/Scene/parseFeatureMetadataLegacy.js +4 -4
  799. package/Source/Scene/parseStructuralMetadata.js +4 -4
  800. package/Source/Scene/preprocess3DTileContent.js +2 -2
  801. package/Source/Scene/processVoxelProperties.js +8 -7
  802. package/Source/Shaders/Voxels/IntersectBox.glsl +52 -58
  803. package/Source/Shaders/Voxels/IntersectBox.js +52 -58
  804. package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +38 -30
  805. package/Source/Shaders/Voxels/IntersectClippingPlanes.js +38 -30
  806. package/Source/Shaders/Voxels/IntersectDepth.glsl +1 -1
  807. package/Source/Shaders/Voxels/IntersectDepth.js +1 -1
  808. package/Source/Shaders/Voxels/Intersection.glsl +10 -12
  809. package/Source/Shaders/Voxels/Intersection.js +10 -12
  810. package/Source/Shaders/Voxels/IntersectionUtils.glsl +52 -59
  811. package/Source/Shaders/Voxels/IntersectionUtils.js +52 -59
  812. package/Source/Shaders/Voxels/Octree.glsl +72 -73
  813. package/Source/Shaders/Voxels/Octree.js +72 -73
  814. package/Source/Shaders/Voxels/VoxelFS.glsl +42 -22
  815. package/Source/Shaders/Voxels/VoxelFS.js +42 -22
  816. package/Source/Shaders/Voxels/convertUvToBox.glsl +13 -5
  817. package/Source/Shaders/Voxels/convertUvToBox.js +13 -5
  818. package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +91 -91
  819. package/Source/ThirdParty/draco_decoder.wasm +0 -0
  820. package/Source/Widget/CesiumWidget.js +78 -50
  821. package/Source/Workers/cesiumWorkerBootstrapper.js +18 -18
  822. package/Source/WorkersES6/createTaskProcessorWorker.js +3 -3
  823. package/index.d.ts +2172 -1432
  824. package/index.js +8 -3
  825. package/package.json +1 -1
  826. package/Source/Core/cancelAnimationFrame.js +0 -53
  827. package/Source/Core/requestAnimationFrame.js +0 -83
  828. /package/Build/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
@@ -9,11 +9,11 @@ export default "// These octree flags must be in sync with GpuOctreeFlag in Voxe
9
9
  uniform sampler2D u_octreeInternalNodeTexture;\n\
10
10
  uniform vec2 u_octreeInternalNodeTexelSizeUv;\n\
11
11
  uniform int u_octreeInternalNodeTilesPerRow;\n\
12
+ #if (SAMPLE_COUNT > 1)\n\
12
13
  uniform sampler2D u_octreeLeafNodeTexture;\n\
13
14
  uniform vec2 u_octreeLeafNodeTexelSizeUv;\n\
14
15
  uniform int u_octreeLeafNodeTilesPerRow;\n\
15
- \n\
16
- uniform float u_stepSize;\n\
16
+ #endif\n\
17
17
  \n\
18
18
  struct OctreeNodeData {\n\
19
19
  int data;\n\
@@ -21,14 +21,13 @@ struct OctreeNodeData {\n\
21
21
  };\n\
22
22
  \n\
23
23
  struct TraversalData {\n\
24
- float stepT;\n\
25
24
  ivec4 octreeCoords;\n\
26
25
  int parentOctreeIndex;\n\
27
26
  };\n\
28
27
  \n\
29
28
  struct SampleData {\n\
30
29
  int megatextureIndex;\n\
31
- bool usingParentMegatextureIndex;\n\
30
+ ivec4 tileCoords;\n\
32
31
  vec3 tileUv;\n\
33
32
  #if (SAMPLE_COUNT > 1)\n\
34
33
  float weight;\n\
@@ -80,85 +79,78 @@ int getOctreeParentIndex(in int octreeIndex) {\n\
80
79
  * into the uv-space of a tile within the tileset\n\
81
80
  */\n\
82
81
  vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {\n\
83
- // TODO: use bit-shifting (only in WebGL2)\n\
82
+ // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2)\n\
84
83
  float dimAtLevel = pow(2.0, float(octreeCoords.w));\n\
85
84
  return shapePosition * dimAtLevel - vec3(octreeCoords.xyz);\n\
86
85
  }\n\
87
86
  \n\
88
- void setSampleUv(in vec3 shapePosition, in ivec4 octreeCoords, inout SampleData sampleData) {\n\
89
- ivec4 sampleCoords = sampleData.usingParentMegatextureIndex\n\
87
+ void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {\n\
88
+ sampleData.megatextureIndex = data.data;\n\
89
+ sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)\n\
90
90
  ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)\n\
91
91
  : octreeCoords;\n\
92
- sampleData.tileUv = getTileUv(shapePosition, sampleCoords);\n\
93
- }\n\
94
- \n\
95
- void getOctreeLeafSampleData(in OctreeNodeData data, out SampleData sampleData) {\n\
96
- sampleData.megatextureIndex = data.data;\n\
97
- sampleData.usingParentMegatextureIndex = data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT;\n\
98
92
  }\n\
99
93
  \n\
100
94
  #if (SAMPLE_COUNT > 1)\n\
101
- void getOctreeLeafSampleDatas(in OctreeNodeData data, out SampleData sampleData0, out SampleData sampleData1) {\n\
95
+ void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) {\n\
102
96
  int leafIndex = data.data;\n\
103
97
  int leafNodeTexelCount = 2;\n\
104
98
  // Adding 0.5 moves to the center of the texel\n\
105
99
  float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5;\n\
106
100
  float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5;\n\
107
101
  \n\
102
+ // Get an interpolation weight and a flag to determine whether to read the parent texture\n\
108
103
  vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY);\n\
109
- vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);\n\
110
104
  vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0);\n\
111
- vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);\n\
112
- \n\
113
105
  float lerp = normU8x2_toFloat(leafData0.xy);\n\
114
- \n\
115
- sampleData0.megatextureIndex = normU8x2_toInt(leafData1.xy);\n\
116
- sampleData1.megatextureIndex = normU8x2_toInt(leafData1.zw);\n\
106
+ sampleDatas[0].weight = 1.0 - lerp;\n\
107
+ sampleDatas[1].weight = lerp;\n\
117
108
  // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT\n\
118
- sampleData0.usingParentMegatextureIndex = normU8_toInt(leafData0.z) == 1;\n\
119
- sampleData1.usingParentMegatextureIndex = normU8_toInt(leafData0.w) == 1;\n\
120
- sampleData0.weight = 1.0 - lerp;\n\
121
- sampleData1.weight = lerp;\n\
109
+ sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1)\n\
110
+ ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)\n\
111
+ : octreeCoords;\n\
112
+ sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1)\n\
113
+ ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)\n\
114
+ : octreeCoords;\n\
115
+ \n\
116
+ // Get megatexture indices for both samples\n\
117
+ vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);\n\
118
+ vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);\n\
119
+ sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy);\n\
120
+ sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw);\n\
122
121
  }\n\
123
122
  #endif\n\
124
123
  \n\
125
- void traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) {\n\
124
+ OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) {\n\
126
125
  float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w));\n\
127
126
  vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel;\n\
128
127
  vec3 end = start + vec3(sizeAtLevel);\n\
128
+ OctreeNodeData childData;\n\
129
129
  \n\
130
130
  for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {\n\
131
131
  // Find out which octree child contains the position\n\
132
132
  // 0 if before center, 1 if after\n\
133
133
  vec3 center = 0.5 * (start + end);\n\
134
134
  vec3 childCoord = step(center, shapePosition);\n\
135
- \n\
136
- OctreeNodeData childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));\n\
137
135
  \n\
138
136
  // Get octree coords for the next level down\n\
139
137
  ivec4 octreeCoords = traversalData.octreeCoords;\n\
140
138
  traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1);\n\
141
139
  \n\
142
- if (childData.flag == OCTREE_FLAG_INTERNAL) {\n\
143
- // interior tile - keep going deeper\n\
144
- start = mix(start, center, childCoord);\n\
145
- end = mix(center, end, childCoord);\n\
146
- traversalData.parentOctreeIndex = childData.data;\n\
147
- } else {\n\
140
+ childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));\n\
141
+ \n\
142
+ if (childData.flag != OCTREE_FLAG_INTERNAL) {\n\
148
143
  // leaf tile - stop traversing\n\
149
- float dimAtLevel = pow(2.0, float(traversalData.octreeCoords.w));\n\
150
- traversalData.stepT = u_stepSize / dimAtLevel;\n\
151
- #if (SAMPLE_COUNT == 1)\n\
152
- getOctreeLeafSampleData(childData, sampleDatas[0]);\n\
153
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
154
- #else\n\
155
- getOctreeLeafSampleDatas(childData, sampleDatas[0], sampleDatas[1]);\n\
156
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
157
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);\n\
158
- #endif\n\
159
- return;\n\
144
+ break;\n\
160
145
  }\n\
146
+ \n\
147
+ // interior tile - keep going deeper\n\
148
+ start = mix(start, center, childCoord);\n\
149
+ end = mix(center, end, childCoord);\n\
150
+ traversalData.parentOctreeIndex = childData.data;\n\
161
151
  }\n\
152
+ \n\
153
+ return childData;\n\
162
154
  }\n\
163
155
  \n\
164
156
  /**\n\
@@ -169,21 +161,19 @@ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traver
169
161
  traversalData.octreeCoords = ivec4(0);\n\
170
162
  traversalData.parentOctreeIndex = 0;\n\
171
163
  \n\
172
- OctreeNodeData rootData = getOctreeNodeData(vec2(0.0));\n\
173
- if (rootData.flag == OCTREE_FLAG_LEAF) {\n\
174
- // No child data, only the root tile has data\n\
175
- traversalData.stepT = u_stepSize;\n\
176
- #if (SAMPLE_COUNT == 1)\n\
177
- getOctreeLeafSampleData(rootData, sampleDatas[0]);\n\
178
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
179
- #else\n\
180
- getOctreeLeafSampleDatas(rootData, sampleDatas[0], sampleDatas[1]);\n\
181
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
182
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);\n\
183
- #endif\n\
184
- } else {\n\
185
- traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);\n\
164
+ OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0));\n\
165
+ if (nodeData.flag != OCTREE_FLAG_LEAF) {\n\
166
+ nodeData = traverseOctreeDownwards(shapePosition, traversalData);\n\
186
167
  }\n\
168
+ \n\
169
+ #if (SAMPLE_COUNT == 1)\n\
170
+ getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);\n\
171
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
172
+ #else\n\
173
+ getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);\n\
174
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
175
+ sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);\n\
176
+ #endif\n\
187
177
  }\n\
188
178
  \n\
189
179
  bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) {\n\
@@ -200,24 +190,33 @@ bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {\n\
200
190
  void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {\n\
201
191
  if (insideTile(shapePosition, traversalData.octreeCoords)) {\n\
202
192
  for (int i = 0; i < SAMPLE_COUNT; i++) {\n\
203
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[i]);\n\
193
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
204
194
  }\n\
205
- } else {\n\
206
- // Go up tree\n\
207
- for (int i = 0; i < OCTREE_MAX_LEVELS; ++i)\n\
208
- {\n\
209
- traversalData.octreeCoords.xyz /= 2;\n\
210
- traversalData.octreeCoords.w -= 1;\n\
211
- \n\
212
- if (!insideTile(shapePosition, traversalData.octreeCoords)) {\n\
213
- traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);\n\
214
- } else {\n\
215
- break;\n\
216
- }\n\
195
+ return;\n\
196
+ }\n\
197
+ \n\
198
+ // Go up tree until we find a parent tile containing shapePosition\n\
199
+ for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {\n\
200
+ traversalData.octreeCoords.xyz /= 2;\n\
201
+ traversalData.octreeCoords.w -= 1;\n\
202
+ \n\
203
+ if (insideTile(shapePosition, traversalData.octreeCoords)) {\n\
204
+ break;\n\
217
205
  }\n\
218
206
  \n\
219
- // Go down tree\n\
220
- traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);\n\
207
+ traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);\n\
221
208
  }\n\
209
+ \n\
210
+ // Go down tree\n\
211
+ OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData);\n\
212
+ \n\
213
+ #if (SAMPLE_COUNT == 1)\n\
214
+ getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);\n\
215
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
216
+ #else\n\
217
+ getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);\n\
218
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
219
+ sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);\n\
220
+ #endif\n\
222
221
  }\n\
223
222
  ";
@@ -13,6 +13,7 @@
13
13
 
14
14
  uniform mat3 u_transformDirectionViewToLocal;
15
15
  uniform vec3 u_cameraPositionUv;
16
+ uniform float u_stepSize;
16
17
 
17
18
  #if defined(PICKING)
18
19
  uniform vec4 u_pickColor;
@@ -27,6 +28,20 @@ float hash(vec2 p)
27
28
  }
28
29
  #endif
29
30
 
31
+ vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) {
32
+ #if defined(SHAPE_BOX)
33
+ Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv);
34
+ RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox);
35
+ vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry;
36
+ float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w);
37
+ float dt = (exit - entry.w) * RAY_SCALE;
38
+ return vec4(normalize(entry.xyz), dt);
39
+ #else
40
+ float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w));
41
+ return vec4(viewRay.dir, u_stepSize / dimAtLevel);
42
+ #endif
43
+ }
44
+
30
45
  void main()
31
46
  {
32
47
  vec4 fragCoord = gl_FragCoord;
@@ -35,34 +50,36 @@ void main()
35
50
  vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case
36
51
  vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case
37
52
  vec3 viewPosUv = u_cameraPositionUv;
53
+ #if defined(SHAPE_BOX)
54
+ vec3 dInv = 1.0 / viewDirUv;
55
+ Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv);
56
+ #else
57
+ Ray viewRayUv = Ray(viewPosUv, viewDirUv);
58
+ #endif
38
59
 
39
60
  Intersections ix;
40
- vec2 entryExitT = intersectScene(screenCoord, viewPosUv, viewDirUv, ix);
61
+ RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix);
41
62
 
42
63
  // Exit early if the scene was completely missed.
43
- if (entryExitT.x == NO_HIT) {
64
+ if (shapeIntersection.entry.w == NO_HIT) {
44
65
  discard;
45
66
  }
46
67
 
47
- float currT = entryExitT.x;
48
- float endT = entryExitT.y;
68
+ float currT = shapeIntersection.entry.w * RAY_SCALE;
69
+ float endT = shapeIntersection.exit.w;
49
70
  vec3 positionUv = viewPosUv + currT * viewDirUv;
50
- // TODO: is it possible for this to be out of bounds, and does it matter?
51
71
  vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);
52
72
 
53
73
  // Traverse the tree from the start position
54
74
  TraversalData traversalData;
55
75
  SampleData sampleDatas[SAMPLE_COUNT];
56
76
  traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas);
77
+ vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);
57
78
 
58
- // TODO:
59
- // - jitter doesn't affect the first traversal?
60
- // - jitter is always > 0?
61
- // - jitter is only applied at one step?
62
79
  #if defined(JITTER)
63
80
  float noise = hash(screenCoord); // [0,1]
64
- currT += noise * traversalData.stepT;
65
- positionUv += noise * traversalData.stepT * viewDirUv;
81
+ currT += noise * step.w;
82
+ positionUv += noise * step.w * viewDirUv;
66
83
  #endif
67
84
 
68
85
  FragmentInput fragmentInput;
@@ -83,7 +100,8 @@ void main()
83
100
  fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv;
84
101
  fragmentInput.voxel.viewDirUv = viewDirUv;
85
102
  fragmentInput.voxel.viewDirWorld = viewDirWorld;
86
- fragmentInput.voxel.travelDistance = traversalData.stepT;
103
+ fragmentInput.voxel.surfaceNormal = step.xyz;
104
+ fragmentInput.voxel.travelDistance = step.w;
87
105
 
88
106
  // Run the custom shader
89
107
  czm_modelMaterial materialOutput;
@@ -103,36 +121,38 @@ void main()
103
121
  break;
104
122
  }
105
123
 
106
- if (traversalData.stepT == 0.0) {
107
- // Shape is infinitely thin, no need to traverse further
108
- break;
124
+ if (step.w == 0.0) {
125
+ // Shape is infinitely thin. The ray may have hit the edge of a
126
+ // foreground voxel. Step ahead slightly to check for more voxels
127
+ step.w == 0.00001;
109
128
  }
110
129
 
111
130
  // Keep raymarching
112
- currT += traversalData.stepT;
113
- positionUv += traversalData.stepT * viewDirUv;
131
+ currT += step.w;
132
+ positionUv += step.w * viewDirUv;
114
133
 
115
134
  // Check if there's more intersections.
116
135
  if (currT > endT) {
117
136
  #if (INTERSECTION_COUNT == 1)
118
137
  break;
119
138
  #else
120
- vec2 entryExitT = nextIntersection(ix);
121
- if (entryExitT.x == NO_HIT) {
139
+ shapeIntersection = nextIntersection(ix);
140
+ if (shapeIntersection.entry.w == NO_HIT) {
122
141
  break;
123
142
  } else {
124
143
  // Found another intersection. Resume raymarching there
125
- currT = entryExitT.x;
126
- endT = entryExitT.y;
144
+ currT = shapeIntersection.entry.w * RAY_SCALE;
145
+ endT = shapeIntersection.exit.w;
127
146
  positionUv = viewPosUv + currT * viewDirUv;
128
147
  }
129
148
  #endif
130
149
  }
131
150
 
132
151
  // Traverse the tree from the current ray position.
133
- // This is similar to traverseOctree but is faster when the ray is in the same tile as the previous step.
152
+ // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step.
134
153
  positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);
135
154
  traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas);
155
+ step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);
136
156
  }
137
157
 
138
158
  // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1]
@@ -14,6 +14,7 @@ export default "// See Intersection.glsl for the definition of intersectScene\n\
14
14
  \n\
15
15
  uniform mat3 u_transformDirectionViewToLocal;\n\
16
16
  uniform vec3 u_cameraPositionUv;\n\
17
+ uniform float u_stepSize;\n\
17
18
  \n\
18
19
  #if defined(PICKING)\n\
19
20
  uniform vec4 u_pickColor;\n\
@@ -28,6 +29,20 @@ float hash(vec2 p)\n\
28
29
  }\n\
29
30
  #endif\n\
30
31
  \n\
32
+ vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) {\n\
33
+ #if defined(SHAPE_BOX)\n\
34
+ Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv);\n\
35
+ RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox);\n\
36
+ vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry;\n\
37
+ float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w);\n\
38
+ float dt = (exit - entry.w) * RAY_SCALE;\n\
39
+ return vec4(normalize(entry.xyz), dt);\n\
40
+ #else\n\
41
+ float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w));\n\
42
+ return vec4(viewRay.dir, u_stepSize / dimAtLevel);\n\
43
+ #endif\n\
44
+ }\n\
45
+ \n\
31
46
  void main()\n\
32
47
  {\n\
33
48
  vec4 fragCoord = gl_FragCoord;\n\
@@ -36,34 +51,36 @@ void main()\n\
36
51
  vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case\n\
37
52
  vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case\n\
38
53
  vec3 viewPosUv = u_cameraPositionUv;\n\
54
+ #if defined(SHAPE_BOX)\n\
55
+ vec3 dInv = 1.0 / viewDirUv;\n\
56
+ Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv);\n\
57
+ #else\n\
58
+ Ray viewRayUv = Ray(viewPosUv, viewDirUv);\n\
59
+ #endif\n\
39
60
  \n\
40
61
  Intersections ix;\n\
41
- vec2 entryExitT = intersectScene(screenCoord, viewPosUv, viewDirUv, ix);\n\
62
+ RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix);\n\
42
63
  \n\
43
64
  // Exit early if the scene was completely missed.\n\
44
- if (entryExitT.x == NO_HIT) {\n\
65
+ if (shapeIntersection.entry.w == NO_HIT) {\n\
45
66
  discard;\n\
46
67
  }\n\
47
68
  \n\
48
- float currT = entryExitT.x;\n\
49
- float endT = entryExitT.y;\n\
69
+ float currT = shapeIntersection.entry.w * RAY_SCALE;\n\
70
+ float endT = shapeIntersection.exit.w;\n\
50
71
  vec3 positionUv = viewPosUv + currT * viewDirUv;\n\
51
- // TODO: is it possible for this to be out of bounds, and does it matter?\n\
52
72
  vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);\n\
53
73
  \n\
54
74
  // Traverse the tree from the start position\n\
55
75
  TraversalData traversalData;\n\
56
76
  SampleData sampleDatas[SAMPLE_COUNT];\n\
57
77
  traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas);\n\
78
+ vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);\n\
58
79
  \n\
59
- // TODO:\n\
60
- // - jitter doesn't affect the first traversal?\n\
61
- // - jitter is always > 0?\n\
62
- // - jitter is only applied at one step?\n\
63
80
  #if defined(JITTER)\n\
64
81
  float noise = hash(screenCoord); // [0,1]\n\
65
- currT += noise * traversalData.stepT;\n\
66
- positionUv += noise * traversalData.stepT * viewDirUv;\n\
82
+ currT += noise * step.w;\n\
83
+ positionUv += noise * step.w * viewDirUv;\n\
67
84
  #endif\n\
68
85
  \n\
69
86
  FragmentInput fragmentInput;\n\
@@ -84,7 +101,8 @@ void main()\n\
84
101
  fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv;\n\
85
102
  fragmentInput.voxel.viewDirUv = viewDirUv;\n\
86
103
  fragmentInput.voxel.viewDirWorld = viewDirWorld;\n\
87
- fragmentInput.voxel.travelDistance = traversalData.stepT;\n\
104
+ fragmentInput.voxel.surfaceNormal = step.xyz;\n\
105
+ fragmentInput.voxel.travelDistance = step.w;\n\
88
106
  \n\
89
107
  // Run the custom shader\n\
90
108
  czm_modelMaterial materialOutput;\n\
@@ -104,36 +122,38 @@ void main()\n\
104
122
  break;\n\
105
123
  }\n\
106
124
  \n\
107
- if (traversalData.stepT == 0.0) {\n\
108
- // Shape is infinitely thin, no need to traverse further\n\
109
- break;\n\
125
+ if (step.w == 0.0) {\n\
126
+ // Shape is infinitely thin. The ray may have hit the edge of a\n\
127
+ // foreground voxel. Step ahead slightly to check for more voxels\n\
128
+ step.w == 0.00001;\n\
110
129
  }\n\
111
130
  \n\
112
131
  // Keep raymarching\n\
113
- currT += traversalData.stepT;\n\
114
- positionUv += traversalData.stepT * viewDirUv;\n\
132
+ currT += step.w;\n\
133
+ positionUv += step.w * viewDirUv;\n\
115
134
  \n\
116
135
  // Check if there's more intersections.\n\
117
136
  if (currT > endT) {\n\
118
137
  #if (INTERSECTION_COUNT == 1)\n\
119
138
  break;\n\
120
139
  #else\n\
121
- vec2 entryExitT = nextIntersection(ix);\n\
122
- if (entryExitT.x == NO_HIT) {\n\
140
+ shapeIntersection = nextIntersection(ix);\n\
141
+ if (shapeIntersection.entry.w == NO_HIT) {\n\
123
142
  break;\n\
124
143
  } else {\n\
125
144
  // Found another intersection. Resume raymarching there\n\
126
- currT = entryExitT.x;\n\
127
- endT = entryExitT.y;\n\
145
+ currT = shapeIntersection.entry.w * RAY_SCALE;\n\
146
+ endT = shapeIntersection.exit.w;\n\
128
147
  positionUv = viewPosUv + currT * viewDirUv;\n\
129
148
  }\n\
130
149
  #endif\n\
131
150
  }\n\
132
151
  \n\
133
152
  // Traverse the tree from the current ray position.\n\
134
- // This is similar to traverseOctree but is faster when the ray is in the same tile as the previous step.\n\
153
+ // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step.\n\
135
154
  positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);\n\
136
155
  traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas);\n\
156
+ step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);\n\
137
157
  }\n\
138
158
  \n\
139
159
  // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1]\n\
@@ -8,9 +8,17 @@
8
8
  #endif
9
9
 
10
10
  vec3 convertUvToShapeUvSpace(in vec3 positionUv) {
11
- #if defined(BOX_HAS_SHAPE_BOUNDS)
12
- return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate;
13
- #else
14
- return positionUv;
15
- #endif
11
+ #if defined(BOX_HAS_SHAPE_BOUNDS)
12
+ return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate;
13
+ #else
14
+ return positionUv;
15
+ #endif
16
+ }
17
+
18
+ vec3 convertShapeUvToUvSpace(in vec3 shapeUv) {
19
+ #if defined(BOX_HAS_SHAPE_BOUNDS)
20
+ return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale;
21
+ #else
22
+ return shapeUv;
23
+ #endif
16
24
  }
@@ -9,10 +9,18 @@ export default "/* Box defines (set in Scene/VoxelBoxShape.js)\n\
9
9
  #endif\n\
10
10
  \n\
11
11
  vec3 convertUvToShapeUvSpace(in vec3 positionUv) {\n\
12
- #if defined(BOX_HAS_SHAPE_BOUNDS)\n\
13
- return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate;\n\
14
- #else\n\
15
- return positionUv;\n\
16
- #endif\n\
12
+ #if defined(BOX_HAS_SHAPE_BOUNDS)\n\
13
+ return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate;\n\
14
+ #else\n\
15
+ return positionUv;\n\
16
+ #endif\n\
17
+ }\n\
18
+ \n\
19
+ vec3 convertShapeUvToUvSpace(in vec3 shapeUv) {\n\
20
+ #if defined(BOX_HAS_SHAPE_BOUNDS)\n\
21
+ return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale;\n\
22
+ #else\n\
23
+ return shapeUv;\n\
24
+ #endif\n\
17
25
  }\n\
18
26
  ";