@cesium/engine 14.0.0 → 16.0.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 (578) hide show
  1. package/Build/Workers/{chunk-WVNLSTOF.js → chunk-2TQ64T4I.js} +2 -2
  2. package/Build/Workers/{chunk-ED6GLQTK.js → chunk-34EWMUFG.js} +1 -1
  3. package/Build/Workers/{chunk-HEZHXDYB.js → chunk-4LHK6E47.js} +1 -1
  4. package/Build/Workers/{chunk-7EO56M5R.js → chunk-5TN3LG2T.js} +2 -2
  5. package/Build/Workers/{chunk-7ZB2RVIQ.js → chunk-6B7KGA5P.js} +16 -19
  6. package/Build/Workers/{chunk-3QLSKXKF.js → chunk-B75OO2DU.js} +7 -10
  7. package/Build/Workers/{chunk-Q4ZVWJXX.js → chunk-COOLDICB.js} +9 -11
  8. package/Build/Workers/{chunk-3PIZQT3I.js → chunk-CQNYYX3N.js} +4 -4
  9. package/Build/Workers/{chunk-JPDKYBLF.js → chunk-CUJH7PS5.js} +27 -29
  10. package/Build/Workers/{chunk-CI2HEJFC.js → chunk-EAWYQ44R.js} +39 -41
  11. package/Build/Workers/{chunk-SDIDRZDG.js → chunk-EJJDBH5W.js} +7 -7
  12. package/Build/Workers/{chunk-5KWRW7YL.js → chunk-EO44CO62.js} +2 -2
  13. package/Build/Workers/{chunk-N2XAJBC6.js → chunk-EOIUWEAK.js} +26 -28
  14. package/Build/Workers/{chunk-YJX7X577.js → chunk-ERKJ7IWJ.js} +21 -23
  15. package/Build/Workers/{chunk-J7IH4EYI.js → chunk-ESED7XBA.js} +13 -16
  16. package/Build/Workers/{chunk-F4CUH4MR.js → chunk-FW2OX42E.js} +18 -21
  17. package/Build/Workers/{chunk-FX4R4MTH.js → chunk-GH6I7PBY.js} +6 -9
  18. package/Build/Workers/{chunk-FYGLNDKG.js → chunk-GQVSADCI.js} +19 -22
  19. package/Build/Workers/{chunk-TY4DKOWR.js → chunk-ICU72UPR.js} +4 -4
  20. package/Build/Workers/{chunk-DT5NFR5C.js → chunk-ILVAXLMC.js} +7 -7
  21. package/Build/Workers/{chunk-ZGFIT57T.js → chunk-KKV6XBF5.js} +27 -23
  22. package/Build/Workers/{chunk-HKHQ3EDR.js → chunk-KV6TEHXY.js} +4 -4
  23. package/Build/Workers/{chunk-B4GSRXE3.js → chunk-LCSH4ZOB.js} +7 -10
  24. package/Build/Workers/{chunk-LNSWJ43X.js → chunk-M5J3S3HY.js} +17 -26
  25. package/Build/Workers/{chunk-LJBJM6VI.js → chunk-NB6D74SQ.js} +6 -6
  26. package/Build/Workers/{chunk-4CHMVQTQ.js → chunk-NREPBWCX.js} +14 -14
  27. package/Build/Workers/{chunk-PWF4EY5P.js → chunk-OD4Q7HE5.js} +4 -4
  28. package/Build/Workers/{chunk-77XPS7ZA.js → chunk-OMFZ4IN6.js} +15 -24
  29. package/Build/Workers/{chunk-HUFQVUMY.js → chunk-OMZGZVHI.js} +12 -17
  30. package/Build/Workers/{chunk-LOZ4NKY3.js → chunk-ORIMMEHO.js} +18 -20
  31. package/Build/Workers/{chunk-5S5OOA6U.js → chunk-OWLBD6BL.js} +1 -1
  32. package/Build/Workers/{chunk-VCNOFQYH.js → chunk-PB6SE3SZ.js} +9 -12
  33. package/Build/Workers/{chunk-3JBEPBPL.js → chunk-PT6U7UNY.js} +25 -30
  34. package/Build/Workers/{chunk-G3BVMPWG.js → chunk-RWAFHSX3.js} +2 -2
  35. package/Build/Workers/{chunk-KHWLAQVA.js → chunk-S2NKKWYE.js} +1 -1
  36. package/Build/Workers/{chunk-FFBJDW4A.js → chunk-S3IQBSIB.js} +6 -6
  37. package/Build/Workers/{chunk-3LYROPON.js → chunk-SCUQTTCN.js} +16 -19
  38. package/Build/Workers/{chunk-ZMNLEL6W.js → chunk-TBSA4MNF.js} +5 -8
  39. package/Build/Workers/{chunk-EWDGNOJE.js → chunk-TEUGW455.js} +9 -12
  40. package/Build/Workers/{chunk-XK4OP6VA.js → chunk-TL5YKZJF.js} +33 -41
  41. package/Build/Workers/{chunk-KM6MITPF.js → chunk-V4Y7C25O.js} +46 -42
  42. package/Build/Workers/{chunk-OMXHEJTK.js → chunk-VNDECE6N.js} +2 -2
  43. package/Build/Workers/{chunk-LS3KVHYY.js → chunk-VVTAI2TN.js} +6 -9
  44. package/Build/Workers/{chunk-WEHZP4SE.js → chunk-VXAAIRJ7.js} +129 -146
  45. package/Build/Workers/{chunk-MVM4JV5U.js → chunk-WGIOUM2S.js} +9 -12
  46. package/Build/Workers/{chunk-JHBPC4LK.js → chunk-XF6EBVKV.js} +7 -7
  47. package/Build/Workers/{chunk-D7ZBZPHV.js → chunk-XMKE4XB2.js} +5 -5
  48. package/Build/Workers/{chunk-7UHKH6M3.js → chunk-YA4XALD5.js} +34 -36
  49. package/Build/Workers/{chunk-KSYBJA4M.js → chunk-YFXXUW6U.js} +6 -12
  50. package/Build/Workers/{chunk-Z3QWTHI7.js → chunk-YL26OJCG.js} +21 -23
  51. package/Build/Workers/{chunk-K4AH3TDT.js → chunk-ZLJDDRGB.js} +14 -17
  52. package/Build/Workers/combineGeometry.js +21 -22
  53. package/Build/Workers/createBoxGeometry.js +15 -16
  54. package/Build/Workers/createBoxOutlineGeometry.js +20 -25
  55. package/Build/Workers/createCircleGeometry.js +26 -28
  56. package/Build/Workers/createCircleOutlineGeometry.js +19 -21
  57. package/Build/Workers/createCoplanarPolygonGeometry.js +38 -42
  58. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +34 -36
  59. package/Build/Workers/createCorridorGeometry.js +42 -49
  60. package/Build/Workers/createCorridorOutlineGeometry.js +36 -43
  61. package/Build/Workers/createCylinderGeometry.js +17 -18
  62. package/Build/Workers/createCylinderOutlineGeometry.js +23 -25
  63. package/Build/Workers/createEllipseGeometry.js +23 -24
  64. package/Build/Workers/createEllipseOutlineGeometry.js +16 -17
  65. package/Build/Workers/createEllipsoidGeometry.js +16 -17
  66. package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -16
  67. package/Build/Workers/createFrustumGeometry.js +15 -16
  68. package/Build/Workers/createFrustumOutlineGeometry.js +18 -21
  69. package/Build/Workers/createGeometry.js +22 -25
  70. package/Build/Workers/createGroundPolylineGeometry.js +34 -42
  71. package/Build/Workers/createPlaneGeometry.js +19 -21
  72. package/Build/Workers/createPlaneOutlineGeometry.js +12 -13
  73. package/Build/Workers/createPolygonGeometry.js +45 -50
  74. package/Build/Workers/createPolygonOutlineGeometry.js +39 -44
  75. package/Build/Workers/createPolylineGeometry.js +33 -40
  76. package/Build/Workers/createPolylineVolumeGeometry.js +37 -44
  77. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -39
  78. package/Build/Workers/createRectangleGeometry.js +41 -51
  79. package/Build/Workers/createRectangleOutlineGeometry.js +28 -33
  80. package/Build/Workers/createSimplePolylineGeometry.js +29 -34
  81. package/Build/Workers/createSphereGeometry.js +17 -20
  82. package/Build/Workers/createSphereOutlineGeometry.js +16 -19
  83. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  84. package/Build/Workers/createVectorTileClampedPolylines.js +12 -13
  85. package/Build/Workers/createVectorTileGeometries.js +21 -22
  86. package/Build/Workers/createVectorTilePoints.js +11 -12
  87. package/Build/Workers/createVectorTilePolygons.js +19 -20
  88. package/Build/Workers/createVectorTilePolylines.js +12 -13
  89. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -23
  90. package/Build/Workers/createVerticesFromHeightmap.js +31 -58
  91. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -18
  92. package/Build/Workers/createWallGeometry.js +30 -35
  93. package/Build/Workers/createWallOutlineGeometry.js +28 -33
  94. package/Build/Workers/decodeDraco.js +10 -11
  95. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  96. package/Build/Workers/decodeI3S.js +10 -16
  97. package/Build/Workers/transcodeKTX2.js +50 -46
  98. package/Build/Workers/transferTypedArrayTest.js +1 -1
  99. package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -20
  100. package/Source/Core/ApproximateTerrainHeights.js +2 -3
  101. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +6 -6
  102. package/Source/Core/AxisAlignedBoundingBox.js +2 -3
  103. package/Source/Core/BingMapsGeocoderService.js +2 -2
  104. package/Source/Core/BoundingRectangle.js +7 -8
  105. package/Source/Core/BoundingSphere.js +10 -11
  106. package/Source/Core/BoxGeometry.js +7 -7
  107. package/Source/Core/BoxOutlineGeometry.js +7 -9
  108. package/Source/Core/Cartesian2.js +4 -5
  109. package/Source/Core/Cartesian3.js +7 -8
  110. package/Source/Core/Cartesian4.js +6 -7
  111. package/Source/Core/Cartographic.js +5 -6
  112. package/Source/Core/CatmullRomSpline.js +2 -2
  113. package/Source/Core/CesiumTerrainProvider.js +11 -14
  114. package/Source/Core/CircleGeometry.js +2 -2
  115. package/Source/Core/CircleOutlineGeometry.js +2 -2
  116. package/Source/Core/Clock.js +7 -10
  117. package/Source/Core/Color.js +28 -28
  118. package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
  119. package/Source/Core/ComponentDatatype.js +4 -6
  120. package/Source/Core/CoplanarPolygonGeometry.js +8 -10
  121. package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
  122. package/Source/Core/CorridorGeometry.js +15 -20
  123. package/Source/Core/CorridorOutlineGeometry.js +10 -15
  124. package/Source/Core/Credit.js +1 -2
  125. package/Source/Core/CullingVolume.js +1 -2
  126. package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
  127. package/Source/Core/CylinderGeometry.js +7 -7
  128. package/Source/Core/CylinderOutlineGeometry.js +7 -7
  129. package/Source/Core/DistanceDisplayCondition.js +4 -5
  130. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
  131. package/Source/Core/EarthOrientationParameters.js +4 -4
  132. package/Source/Core/EllipseGeometry.js +17 -23
  133. package/Source/Core/EllipseOutlineGeometry.js +12 -15
  134. package/Source/Core/Ellipsoid.js +7 -8
  135. package/Source/Core/EllipsoidGeodesic.js +1 -2
  136. package/Source/Core/EllipsoidGeometry.js +15 -15
  137. package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
  138. package/Source/Core/EllipsoidRhumbLine.js +3 -4
  139. package/Source/Core/EllipsoidTangentPlane.js +1 -2
  140. package/Source/Core/EllipsoidTerrainProvider.js +4 -4
  141. package/Source/Core/EllipsoidalOccluder.js +2 -3
  142. package/Source/Core/FeatureDetection.js +1 -2
  143. package/Source/Core/Frozen.js +24 -0
  144. package/Source/Core/FrustumGeometry.js +7 -8
  145. package/Source/Core/FrustumOutlineGeometry.js +3 -4
  146. package/Source/Core/GeographicProjection.js +1 -2
  147. package/Source/Core/GeographicTilingScheme.js +6 -12
  148. package/Source/Core/Geometry.js +4 -7
  149. package/Source/Core/GeometryAttribute.js +3 -3
  150. package/Source/Core/GeometryAttributes.js +2 -2
  151. package/Source/Core/GeometryInstance.js +4 -6
  152. package/Source/Core/GeometryInstanceAttribute.js +3 -3
  153. package/Source/Core/GeometryPipeline.js +3 -4
  154. package/Source/Core/GoogleEarthEnterpriseMetadata.js +13 -24
  155. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +9 -12
  156. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +3 -3
  157. package/Source/Core/GoogleGeocoderService.js +2 -2
  158. package/Source/Core/GregorianDate.js +8 -9
  159. package/Source/Core/GroundPolylineGeometry.js +8 -8
  160. package/Source/Core/HeadingPitchRange.js +3 -4
  161. package/Source/Core/HeadingPitchRoll.js +3 -4
  162. package/Source/Core/Heap.js +3 -4
  163. package/Source/Core/HeightmapTerrainData.js +22 -38
  164. package/Source/Core/HeightmapTessellator.js +21 -37
  165. package/Source/Core/HermitePolynomialApproximation.js +1 -2
  166. package/Source/Core/HermiteSpline.js +5 -5
  167. package/Source/Core/ITwinPlatform.js +66 -12
  168. package/Source/Core/Iau2006XysData.js +8 -10
  169. package/Source/Core/IntersectionTests.js +1 -2
  170. package/Source/Core/Interval.js +2 -4
  171. package/Source/Core/Ion.js +1 -1
  172. package/Source/Core/IonGeocoderService.js +6 -10
  173. package/Source/Core/IonResource.js +6 -6
  174. package/Source/Core/JulianDate.js +11 -12
  175. package/Source/Core/LinearSpline.js +2 -2
  176. package/Source/Core/ManagedArray.js +2 -3
  177. package/Source/Core/Math.js +36 -27
  178. package/Source/Core/Matrix2.js +7 -8
  179. package/Source/Core/Matrix3.js +12 -13
  180. package/Source/Core/Matrix4.js +28 -28
  181. package/Source/Core/MorphWeightSpline.js +2 -2
  182. package/Source/Core/NearFarScalar.js +6 -7
  183. package/Source/Core/Occluder.js +1 -2
  184. package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
  185. package/Source/Core/OpenCageGeocoderService.js +1 -2
  186. package/Source/Core/OrientedBoundingBox.js +7 -8
  187. package/Source/Core/OrthographicFrustum.js +6 -6
  188. package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
  189. package/Source/Core/PerspectiveFrustum.js +8 -8
  190. package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
  191. package/Source/Core/PlaneGeometry.js +5 -5
  192. package/Source/Core/PolygonGeometry.js +16 -19
  193. package/Source/Core/PolygonGeometryLibrary.js +27 -6
  194. package/Source/Core/PolygonOutlineGeometry.js +11 -14
  195. package/Source/Core/PolygonPipeline.js +5 -6
  196. package/Source/Core/PolylineGeometry.js +10 -15
  197. package/Source/Core/PolylinePipeline.js +7 -14
  198. package/Source/Core/PolylineVolumeGeometry.js +8 -13
  199. package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
  200. package/Source/Core/QuantizedMeshTerrainData.js +12 -16
  201. package/Source/Core/Quaternion.js +7 -8
  202. package/Source/Core/QuaternionSpline.js +2 -2
  203. package/Source/Core/Ray.js +2 -3
  204. package/Source/Core/Rectangle.js +18 -19
  205. package/Source/Core/RectangleGeometry.js +17 -25
  206. package/Source/Core/RectangleGeometryLibrary.js +1 -1
  207. package/Source/Core/RectangleOutlineGeometry.js +10 -13
  208. package/Source/Core/Request.js +6 -6
  209. package/Source/Core/RequestScheduler.js +4 -6
  210. package/Source/Core/Resource.js +13 -16
  211. package/Source/Core/S2Cell.js +2 -3
  212. package/Source/Core/ScreenSpaceEventHandler.js +1 -2
  213. package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
  214. package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
  215. package/Source/Core/SimplePolylineGeometry.js +8 -11
  216. package/Source/Core/SphereGeometry.js +1 -2
  217. package/Source/Core/SphereOutlineGeometry.js +1 -2
  218. package/Source/Core/Spherical.js +4 -5
  219. package/Source/Core/Spline.js +1 -2
  220. package/Source/Core/SteppedSpline.js +2 -2
  221. package/Source/Core/TaskProcessor.js +2 -9
  222. package/Source/Core/TerrainData.js +1 -1
  223. package/Source/Core/TerrainEncoding.js +4 -11
  224. package/Source/Core/TerrainMesh.js +1 -3
  225. package/Source/Core/TerrainProvider.js +1 -1
  226. package/Source/Core/TexturePacker.js +166 -0
  227. package/Source/Core/TileProviderError.js +1 -2
  228. package/Source/Core/TimeInterval.js +7 -7
  229. package/Source/Core/TimeIntervalCollection.js +7 -7
  230. package/Source/Core/Tipsify.js +5 -5
  231. package/Source/Core/Transforms.js +10 -15
  232. package/Source/Core/TranslationRotationScale.js +3 -6
  233. package/Source/Core/VRTheWorldTerrainProvider.js +5 -5
  234. package/Source/Core/VertexFormat.js +10 -10
  235. package/Source/Core/VerticalExaggeration.js +1 -1
  236. package/Source/Core/VideoSynchronizer.js +6 -6
  237. package/Source/Core/WallGeometry.js +8 -11
  238. package/Source/Core/WallOutlineGeometry.js +7 -10
  239. package/Source/Core/WebMercatorProjection.js +1 -2
  240. package/Source/Core/WebMercatorTilingScheme.js +5 -11
  241. package/Source/Core/arrayRemoveDuplicates.js +1 -2
  242. package/Source/Core/clone.js +1 -3
  243. package/Source/Core/combine.js +1 -2
  244. package/Source/Core/createWorldBathymetryAsync.js +3 -3
  245. package/Source/Core/createWorldTerrainAsync.js +4 -4
  246. package/Source/Core/defaultValue.js +20 -1
  247. package/Source/Core/destroyObject.js +1 -5
  248. package/Source/Core/getAbsoluteUri.js +1 -2
  249. package/Source/Core/getMagic.js +1 -2
  250. package/Source/Core/getStringFromTypedArray.js +2 -3
  251. package/Source/Core/loadImageFromTypedArray.js +2 -6
  252. package/Source/Core/oneTimeWarning.js +1 -2
  253. package/Source/Core/writeTextToCanvas.js +10 -13
  254. package/Source/DataSources/BillboardGraphics.js +27 -53
  255. package/Source/DataSources/BillboardVisualizer.js +3 -3
  256. package/Source/DataSources/BoxGraphics.js +13 -18
  257. package/Source/DataSources/CallbackPositionProperty.js +1 -2
  258. package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
  259. package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
  260. package/Source/DataSources/CompositePositionProperty.js +1 -2
  261. package/Source/DataSources/ConstantPositionProperty.js +1 -2
  262. package/Source/DataSources/CorridorGraphics.js +23 -35
  263. package/Source/DataSources/CylinderGraphics.js +18 -25
  264. package/Source/DataSources/CzmlDataSource.js +34 -60
  265. package/Source/DataSources/DataSourceClock.js +12 -13
  266. package/Source/DataSources/DataSourceCollection.js +2 -3
  267. package/Source/DataSources/DataSourceDisplay.js +2 -5
  268. package/Source/DataSources/EllipseGraphics.js +26 -40
  269. package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
  270. package/Source/DataSources/EllipsoidGraphics.js +21 -32
  271. package/Source/DataSources/Entity.js +7 -9
  272. package/Source/DataSources/EntityCluster.js +53 -28
  273. package/Source/DataSources/EntityView.js +1 -2
  274. package/Source/DataSources/GeoJsonDataSource.js +12 -12
  275. package/Source/DataSources/GeometryUpdater.js +12 -17
  276. package/Source/DataSources/GeometryVisualizer.js +2 -3
  277. package/Source/DataSources/GpxDataSource.js +4 -7
  278. package/Source/DataSources/GridMaterialProperty.js +2 -2
  279. package/Source/DataSources/GroundGeometryUpdater.js +1 -2
  280. package/Source/DataSources/ImageMaterialProperty.js +2 -2
  281. package/Source/DataSources/KmlDataSource.js +84 -158
  282. package/Source/DataSources/LabelGraphics.js +27 -56
  283. package/Source/DataSources/LabelVisualizer.js +1 -2
  284. package/Source/DataSources/ModelGraphics.js +29 -63
  285. package/Source/DataSources/ModelVisualizer.js +1 -2
  286. package/Source/DataSources/NodeTransformationProperty.js +2 -2
  287. package/Source/DataSources/PathGraphics.js +10 -12
  288. package/Source/DataSources/PlaneGraphics.js +13 -15
  289. package/Source/DataSources/PointGraphics.js +17 -32
  290. package/Source/DataSources/PolygonGraphics.js +28 -45
  291. package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
  292. package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
  293. package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
  294. package/Source/DataSources/PolylineGraphics.js +16 -23
  295. package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
  296. package/Source/DataSources/PolylineVisualizer.js +2 -3
  297. package/Source/DataSources/PolylineVolumeGraphics.js +15 -17
  298. package/Source/DataSources/PositionPropertyArray.js +1 -2
  299. package/Source/DataSources/Property.js +1 -2
  300. package/Source/DataSources/PropertyBag.js +1 -2
  301. package/Source/DataSources/RectangleGraphics.js +23 -35
  302. package/Source/DataSources/Rotation.js +4 -5
  303. package/Source/DataSources/SampledPositionProperty.js +2 -3
  304. package/Source/DataSources/SampledProperty.js +6 -11
  305. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -2
  306. package/Source/DataSources/StripeMaterialProperty.js +2 -2
  307. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
  308. package/Source/DataSources/VelocityOrientationProperty.js +1 -2
  309. package/Source/DataSources/VelocityVectorProperty.js +1 -2
  310. package/Source/DataSources/WallGraphics.js +15 -23
  311. package/Source/DataSources/createPropertyDescriptor.js +2 -3
  312. package/Source/DataSources/exportKml.js +11 -14
  313. package/Source/Renderer/Buffer.js +5 -5
  314. package/Source/Renderer/ClearCommand.js +2 -2
  315. package/Source/Renderer/ComputeCommand.js +3 -3
  316. package/Source/Renderer/Context.js +22 -37
  317. package/Source/Renderer/CubeMap.js +6 -6
  318. package/Source/Renderer/CubeMapFace.js +11 -12
  319. package/Source/Renderer/DrawCommand.js +14 -25
  320. package/Source/Renderer/Framebuffer.js +3 -3
  321. package/Source/Renderer/FramebufferManager.js +25 -39
  322. package/Source/Renderer/MultisampleFramebuffer.js +2 -2
  323. package/Source/Renderer/RenderState.js +63 -92
  324. package/Source/Renderer/Renderbuffer.js +4 -4
  325. package/Source/Renderer/Sampler.js +2 -2
  326. package/Source/Renderer/ShaderBuilder.js +2 -3
  327. package/Source/Renderer/ShaderProgram.js +3 -3
  328. package/Source/Renderer/ShaderSource.js +3 -3
  329. package/Source/Renderer/Texture.js +16 -15
  330. package/Source/Renderer/TextureAtlas.js +802 -0
  331. package/Source/Renderer/UniformState.js +6 -11
  332. package/Source/Renderer/VertexArray.js +14 -23
  333. package/Source/Renderer/VertexArrayFacade.js +7 -11
  334. package/Source/Scene/Appearance.js +4 -4
  335. package/Source/Scene/ArcGisMapServerImageryProvider.js +23 -37
  336. package/Source/Scene/ArcGisMapService.js +1 -1
  337. package/Source/Scene/B3dmParser.js +2 -3
  338. package/Source/Scene/BatchTableHierarchy.js +6 -13
  339. package/Source/Scene/Billboard.js +105 -182
  340. package/Source/Scene/BillboardCollection.js +140 -224
  341. package/Source/Scene/BillboardLoadState.js +44 -0
  342. package/Source/Scene/BillboardTexture.js +348 -0
  343. package/Source/Scene/BingMapsImageryProvider.js +6 -6
  344. package/Source/Scene/BoxEmitter.js +1 -2
  345. package/Source/Scene/BufferLoader.js +2 -2
  346. package/Source/Scene/Camera.js +45 -64
  347. package/Source/Scene/CameraFlightPath.js +6 -6
  348. package/Source/Scene/Cesium3DContentGroup.js +2 -2
  349. package/Source/Scene/Cesium3DTile.js +3 -4
  350. package/Source/Scene/Cesium3DTileBatchTable.js +6 -49
  351. package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
  352. package/Source/Scene/Cesium3DTilePointFeature.js +10 -18
  353. package/Source/Scene/Cesium3DTileStyle.js +4 -7
  354. package/Source/Scene/Cesium3DTilesVoxelProvider.js +419 -137
  355. package/Source/Scene/Cesium3DTileset.js +77 -143
  356. package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
  357. package/Source/Scene/Cesium3DTilesetStatistics.js +0 -1
  358. package/Source/Scene/CircleEmitter.js +2 -3
  359. package/Source/Scene/ClassificationPrimitive.js +15 -26
  360. package/Source/Scene/ClippingPlaneCollection.js +7 -12
  361. package/Source/Scene/ClippingPolygon.js +1 -2
  362. package/Source/Scene/ClippingPolygonCollection.js +4 -4
  363. package/Source/Scene/CloudCollection.js +9 -11
  364. package/Source/Scene/Composite3DTileContent.js +1 -2
  365. package/Source/Scene/ConeEmitter.js +1 -2
  366. package/Source/Scene/ContentMetadata.js +2 -2
  367. package/Source/Scene/CreditDisplay.js +5 -9
  368. package/Source/Scene/CumulusCloud.js +9 -15
  369. package/Source/Scene/DebugAppearance.js +7 -7
  370. package/Source/Scene/DebugCameraPrimitive.js +5 -5
  371. package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
  372. package/Source/Scene/DepthPlane.js +1 -2
  373. package/Source/Scene/DirectionalLight.js +2 -3
  374. package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
  375. package/Source/Scene/DynamicEnvironmentMapManager.js +15 -24
  376. package/Source/Scene/EllipsoidPrimitive.js +11 -19
  377. package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
  378. package/Source/Scene/Expression.js +1 -0
  379. package/Source/Scene/FrameRateMonitor.js +12 -21
  380. package/Source/Scene/FrustumCommands.js +2 -3
  381. package/Source/Scene/Geometry3DTileContent.js +9 -16
  382. package/Source/Scene/Globe.js +3 -4
  383. package/Source/Scene/GlobeSurfaceTileProvider.js +9 -18
  384. package/Source/Scene/GlobeTranslucencyState.js +12 -25
  385. package/Source/Scene/GltfBufferViewLoader.js +4 -4
  386. package/Source/Scene/GltfDracoLoader.js +2 -2
  387. package/Source/Scene/GltfImageLoader.js +2 -2
  388. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  389. package/Source/Scene/GltfJsonLoader.js +2 -2
  390. package/Source/Scene/GltfLoader.js +22 -37
  391. package/Source/Scene/GltfLoaderUtil.js +11 -11
  392. package/Source/Scene/GltfPipeline/addDefaults.js +37 -64
  393. package/Source/Scene/GltfPipeline/addToArray.js +1 -3
  394. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -5
  395. package/Source/Scene/GltfPipeline/parseGlb.js +1 -5
  396. package/Source/Scene/GltfPipeline/removeUnusedElements.js +1 -2
  397. package/Source/Scene/GltfPipeline/updateVersion.js +28 -49
  398. package/Source/Scene/GltfStructuralMetadataLoader.js +5 -6
  399. package/Source/Scene/GltfTextureLoader.js +3 -3
  400. package/Source/Scene/GltfVertexBufferLoader.js +5 -5
  401. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
  402. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +3 -4
  403. package/Source/Scene/GridImageryProvider.js +10 -13
  404. package/Source/Scene/GroundPolylinePrimitive.js +11 -22
  405. package/Source/Scene/GroundPrimitive.js +13 -24
  406. package/Source/Scene/GroupMetadata.js +2 -2
  407. package/Source/Scene/I3SDataProvider.js +10 -15
  408. package/Source/Scene/I3SNode.js +1 -6
  409. package/Source/Scene/I3SSublayer.js +1 -2
  410. package/Source/Scene/I3SSymbology.js +2 -3
  411. package/Source/Scene/I3dmParser.js +1 -2
  412. package/Source/Scene/ITwinData.js +11 -6
  413. package/Source/Scene/ImageBasedLighting.js +2 -2
  414. package/Source/Scene/ImageryLayer.js +42 -71
  415. package/Source/Scene/ImageryLayerCollection.js +2 -3
  416. package/Source/Scene/Implicit3DTileContent.js +3 -4
  417. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
  418. package/Source/Scene/ImplicitMetadataView.js +2 -2
  419. package/Source/Scene/ImplicitSubtree.js +10 -15
  420. package/Source/Scene/ImplicitSubtreeCache.js +3 -3
  421. package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
  422. package/Source/Scene/InstanceAttributeSemantic.js +1 -1
  423. package/Source/Scene/IonImageryProvider.js +3 -3
  424. package/Source/Scene/KeyframeNode.js +16 -2
  425. package/Source/Scene/Label.js +19 -36
  426. package/Source/Scene/LabelCollection.js +218 -196
  427. package/Source/Scene/MapboxImageryProvider.js +4 -4
  428. package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
  429. package/Source/Scene/Material.js +14 -20
  430. package/Source/Scene/MaterialAppearance.js +12 -18
  431. package/Source/Scene/Megatexture.js +145 -82
  432. package/Source/Scene/MetadataClass.js +4 -4
  433. package/Source/Scene/MetadataClassProperty.js +11 -14
  434. package/Source/Scene/MetadataEnum.js +4 -7
  435. package/Source/Scene/MetadataEnumValue.js +2 -2
  436. package/Source/Scene/MetadataSchema.js +4 -4
  437. package/Source/Scene/MetadataSchemaLoader.js +2 -2
  438. package/Source/Scene/MetadataTable.js +2 -2
  439. package/Source/Scene/MetadataTableProperty.js +17 -31
  440. package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
  441. package/Source/Scene/Model/B3dmLoader.js +15 -26
  442. package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
  443. package/Source/Scene/Model/ClassificationModelDrawCommand.js +2 -2
  444. package/Source/Scene/Model/CustomShader.js +10 -14
  445. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
  446. package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
  447. package/Source/Scene/Model/GeoJsonLoader.js +5 -8
  448. package/Source/Scene/Model/I3dmLoader.js +13 -21
  449. package/Source/Scene/Model/MaterialPipelineStage.js +1 -2
  450. package/Source/Scene/Model/Model.js +41 -63
  451. package/Source/Scene/Model/ModelAnimation.js +5 -6
  452. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  453. package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
  454. package/Source/Scene/Model/ModelArticulation.js +2 -2
  455. package/Source/Scene/Model/ModelArticulationStage.js +2 -2
  456. package/Source/Scene/Model/ModelDrawCommand.js +3 -3
  457. package/Source/Scene/Model/ModelFeatureTable.js +3 -9
  458. package/Source/Scene/Model/ModelLightingOptions.js +3 -3
  459. package/Source/Scene/Model/ModelNode.js +1 -1
  460. package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
  461. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -2
  462. package/Source/Scene/Model/ModelSceneGraph.js +2 -2
  463. package/Source/Scene/Model/ModelSkin.js +2 -2
  464. package/Source/Scene/Model/ModelUtility.js +5 -1
  465. package/Source/Scene/Model/PickingPipelineStage.js +1 -2
  466. package/Source/Scene/Model/PntsLoader.js +6 -6
  467. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
  468. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
  469. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
  470. package/Source/Scene/Model/TextureUniform.js +5 -8
  471. package/Source/Scene/Model/VaryingType.js +2 -2
  472. package/Source/Scene/Model/pickModel.js +4 -5
  473. package/Source/Scene/Moon.js +5 -5
  474. package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
  475. package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
  476. package/Source/Scene/Particle.js +11 -17
  477. package/Source/Scene/ParticleBurst.js +5 -5
  478. package/Source/Scene/ParticleSystem.js +24 -54
  479. package/Source/Scene/PerInstanceColorAppearance.js +8 -8
  480. package/Source/Scene/PerformanceDisplay.js +3 -3
  481. package/Source/Scene/PickFramebuffer.js +4 -5
  482. package/Source/Scene/Picking.js +3 -4
  483. package/Source/Scene/PntsParser.js +1 -2
  484. package/Source/Scene/PointCloud.js +6 -12
  485. package/Source/Scene/PointCloudShading.js +9 -18
  486. package/Source/Scene/PointPrimitive.js +11 -21
  487. package/Source/Scene/PointPrimitiveCollection.js +6 -14
  488. package/Source/Scene/Polyline.js +5 -5
  489. package/Source/Scene/PolylineCollection.js +5 -10
  490. package/Source/Scene/PolylineColorAppearance.js +7 -11
  491. package/Source/Scene/PolylineMaterialAppearance.js +7 -11
  492. package/Source/Scene/PostProcessStage.js +2 -2
  493. package/Source/Scene/PostProcessStageComposite.js +3 -6
  494. package/Source/Scene/Primitive.js +21 -42
  495. package/Source/Scene/PrimitiveCollection.js +4 -4
  496. package/Source/Scene/PrimitivePipeline.js +1 -2
  497. package/Source/Scene/PropertyAttribute.js +2 -2
  498. package/Source/Scene/PropertyAttributeProperty.js +4 -4
  499. package/Source/Scene/PropertyTable.js +2 -2
  500. package/Source/Scene/PropertyTexture.js +2 -2
  501. package/Source/Scene/PropertyTextureProperty.js +4 -4
  502. package/Source/Scene/QuadtreePrimitive.js +84 -66
  503. package/Source/Scene/QuadtreeTile.js +170 -0
  504. package/Source/Scene/ResourceCache.js +11 -11
  505. package/Source/Scene/ResourceCacheKey.js +11 -11
  506. package/Source/Scene/Scene.js +66 -40
  507. package/Source/Scene/ScreenSpaceCameraController.js +10 -20
  508. package/Source/Scene/ShadowMap.js +15 -15
  509. package/Source/Scene/ShadowVolumeAppearance.js +1 -2
  510. package/Source/Scene/SingleTileImageryProvider.js +4 -4
  511. package/Source/Scene/SkyAtmosphere.js +1 -2
  512. package/Source/Scene/SkyBox.js +1 -2
  513. package/Source/Scene/SpatialNode.js +4 -11
  514. package/Source/Scene/SphereEmitter.js +2 -3
  515. package/Source/Scene/StructuralMetadata.js +2 -2
  516. package/Source/Scene/SunLight.js +4 -4
  517. package/Source/Scene/SupportedImageFormats.js +4 -4
  518. package/Source/Scene/TileBoundingRegion.js +4 -5
  519. package/Source/Scene/TileBoundingS2Cell.js +3 -4
  520. package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
  521. package/Source/Scene/TileMapServiceImageryProvider.js +18 -27
  522. package/Source/Scene/TileMetadata.js +2 -2
  523. package/Source/Scene/TilesetMetadata.js +2 -2
  524. package/Source/Scene/TimeDynamicImagery.js +2 -2
  525. package/Source/Scene/TimeDynamicPointCloud.js +8 -10
  526. package/Source/Scene/TweenCollection.js +13 -16
  527. package/Source/Scene/UrlTemplateImageryProvider.js +11 -15
  528. package/Source/Scene/Vector3DTileClampedPolylines.js +1 -2
  529. package/Source/Scene/Vector3DTileContent.js +16 -20
  530. package/Source/Scene/Vector3DTileGeometry.js +1 -2
  531. package/Source/Scene/Vector3DTilePoints.js +2 -5
  532. package/Source/Scene/Vector3DTilePolygons.js +2 -3
  533. package/Source/Scene/Vector3DTilePolylines.js +1 -2
  534. package/Source/Scene/Vector3DTilePrimitive.js +9 -13
  535. package/Source/Scene/VoxelBoxShape.js +14 -8
  536. package/Source/Scene/VoxelCell.js +6 -5
  537. package/Source/Scene/VoxelContent.js +171 -107
  538. package/Source/Scene/VoxelCylinderShape.js +69 -69
  539. package/Source/Scene/VoxelEllipsoidShape.js +17 -8
  540. package/Source/Scene/VoxelMetadataOrder.js +24 -0
  541. package/Source/Scene/VoxelPrimitive.js +134 -79
  542. package/Source/Scene/VoxelProvider.js +22 -29
  543. package/Source/Scene/VoxelRenderResources.js +26 -7
  544. package/Source/Scene/VoxelShape.js +10 -3
  545. package/Source/Scene/VoxelTraversal.js +260 -180
  546. package/Source/Scene/WebMapServiceImageryProvider.js +17 -24
  547. package/Source/Scene/WebMapTileServiceImageryProvider.js +7 -10
  548. package/Source/Scene/createElevationBandMaterial.js +4 -4
  549. package/Source/Scene/createGooglePhotorealistic3DTileset.js +8 -16
  550. package/Source/Scene/createOsmBuildingsAsync.js +3 -6
  551. package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
  552. package/Source/Scene/createWorldImageryAsync.js +3 -3
  553. package/Source/Scene/findContentMetadata.js +2 -5
  554. package/Source/Scene/findTileMetadata.js +2 -5
  555. package/Source/Scene/parseBatchTable.js +1 -5
  556. package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
  557. package/Source/Scene/parseStructuralMetadata.js +2 -2
  558. package/Source/Scene/processVoxelProperties.js +3 -0
  559. package/Source/Shaders/GlobeFS.glsl +10 -1
  560. package/Source/Shaders/GlobeFS.js +10 -1
  561. package/Source/Shaders/Voxels/Megatexture.glsl +4 -16
  562. package/Source/Shaders/Voxels/Megatexture.js +4 -16
  563. package/Source/Shaders/Voxels/Octree.glsl +44 -7
  564. package/Source/Shaders/Voxels/Octree.js +44 -7
  565. package/Source/Shaders/Voxels/VoxelFS.glsl +9 -15
  566. package/Source/Shaders/Voxels/VoxelFS.js +9 -15
  567. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +15 -15
  568. package/Source/Shaders/Voxels/convertUvToCylinder.js +15 -15
  569. package/Source/Widget/CesiumWidget.js +17 -25
  570. package/Source/Workers/createGeometry.js +1 -2
  571. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
  572. package/Source/Workers/decodeI3S.js +1 -5
  573. package/Source/Workers/transcodeKTX2.js +1 -2
  574. package/index.d.ts +231 -92
  575. package/index.js +315 -310
  576. package/package.json +3 -3
  577. package/Build/Workers/chunk-TVL3F7IU.js +0 -39
  578. package/Source/Scene/TextureAtlas.js +0 -558
@@ -1,4 +1,4 @@
1
- import defaultValue from "../Core/defaultValue.js";
1
+ import Frozen from "../Core/Frozen.js";
2
2
  import defined from "../Core/defined.js";
3
3
  import DeveloperError from "../Core/DeveloperError.js";
4
4
  import GeographicTilingScheme from "../Core/GeographicTilingScheme.js";
@@ -101,7 +101,7 @@ const excludesReverseAxis = [
101
101
  * viewer.imageryLayers.add(imageryLayer);
102
102
  */
103
103
  function WebMapServiceImageryProvider(options) {
104
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
104
+ options = options ?? Frozen.EMPTY_OBJECT;
105
105
 
106
106
  //>>includeStart('debug', pragmas.debug);
107
107
  if (!defined(options.url)) {
@@ -129,10 +129,7 @@ function WebMapServiceImageryProvider(options) {
129
129
  this._defaultMinificationFilter = undefined;
130
130
  this._defaultMagnificationFilter = undefined;
131
131
 
132
- this._getFeatureInfoUrl = defaultValue(
133
- options.getFeatureInfoUrl,
134
- options.url,
135
- );
132
+ this._getFeatureInfoUrl = options.getFeatureInfoUrl ?? options.url;
136
133
 
137
134
  const resource = Resource.createIfNeeded(options.url);
138
135
  const pickFeatureResource = Resource.createIfNeeded(this._getFeatureInfoUrl);
@@ -185,13 +182,12 @@ function WebMapServiceImageryProvider(options) {
185
182
  // Use CRS with 1.3.0 and going forward.
186
183
  // For GeographicTilingScheme, use CRS:84 vice EPSG:4326 to specify lon, lat (x, y) ordering for
187
184
  // bbox requests.
188
- parameters.crs = defaultValue(
189
- options.crs,
190
- options.tilingScheme &&
191
- options.tilingScheme.projection instanceof WebMercatorProjection
185
+ parameters.crs =
186
+ options.crs ??
187
+ (options.tilingScheme &&
188
+ options.tilingScheme.projection instanceof WebMercatorProjection
192
189
  ? "EPSG:3857"
193
- : "CRS:84",
194
- );
190
+ : "CRS:84");
195
191
 
196
192
  // The axis order in previous versions of the WMS specifications was to always use easting (x or lon ) and northing (y or
197
193
  // lat). WMS 1.3.0 specifies that, depending on the particular CRS, the x axis may or may not be oriented West-to-East,
@@ -213,13 +209,12 @@ function WebMapServiceImageryProvider(options) {
213
209
  }
214
210
  } else {
215
211
  // SRS for WMS 1.1.0 or 1.1.1.
216
- parameters.srs = defaultValue(
217
- options.srs,
218
- options.tilingScheme &&
219
- options.tilingScheme.projection instanceof WebMercatorProjection
212
+ parameters.srs =
213
+ options.srs ??
214
+ (options.tilingScheme &&
215
+ options.tilingScheme.projection instanceof WebMercatorProjection
220
216
  ? "EPSG:3857"
221
- : "EPSG:4326",
222
- );
217
+ : "EPSG:4326");
223
218
  }
224
219
 
225
220
  resource.setQueryParameters(parameters, true);
@@ -247,10 +242,9 @@ function WebMapServiceImageryProvider(options) {
247
242
  this._tileProvider = new UrlTemplateImageryProvider({
248
243
  url: resource,
249
244
  pickFeaturesUrl: pickFeatureResource,
250
- tilingScheme: defaultValue(
251
- options.tilingScheme,
245
+ tilingScheme:
246
+ options.tilingScheme ??
252
247
  new GeographicTilingScheme({ ellipsoid: options.ellipsoid }),
253
- ),
254
248
  rectangle: options.rectangle,
255
249
  tileWidth: options.tileWidth,
256
250
  tileHeight: options.tileHeight,
@@ -259,10 +253,9 @@ function WebMapServiceImageryProvider(options) {
259
253
  subdomains: options.subdomains,
260
254
  tileDiscardPolicy: options.tileDiscardPolicy,
261
255
  credit: options.credit,
262
- getFeatureInfoFormats: defaultValue(
263
- options.getFeatureInfoFormats,
256
+ getFeatureInfoFormats:
257
+ options.getFeatureInfoFormats ??
264
258
  WebMapServiceImageryProvider.DefaultGetFeatureInfoFormats,
265
- ),
266
259
  enablePickFeatures: options.enablePickFeatures,
267
260
  });
268
261
  }
@@ -1,6 +1,6 @@
1
1
  import combine from "../Core/combine.js";
2
2
  import Credit from "../Core/Credit.js";
3
- import defaultValue from "../Core/defaultValue.js";
3
+ import Frozen from "../Core/Frozen.js";
4
4
  import defined from "../Core/defined.js";
5
5
  import DeveloperError from "../Core/DeveloperError.js";
6
6
  import Event from "../Core/Event.js";
@@ -114,7 +114,7 @@ const defaultParameters = Object.freeze({
114
114
  * @see UrlTemplateImageryProvider
115
115
  */
116
116
  function WebMapTileServiceImageryProvider(options) {
117
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
117
+ options = options ?? Frozen.EMPTY_OBJECT;
118
118
 
119
119
  //>>includeStart('debug', pragmas.debug);
120
120
  if (!defined(options.url)) {
@@ -176,22 +176,19 @@ function WebMapTileServiceImageryProvider(options) {
176
176
  this._style = style;
177
177
  this._tileMatrixSetID = tileMatrixSetID;
178
178
  this._tileMatrixLabels = options.tileMatrixLabels;
179
- this._format = defaultValue(options.format, "image/jpeg");
179
+ this._format = options.format ?? "image/jpeg";
180
180
  this._tileDiscardPolicy = options.tileDiscardPolicy;
181
181
 
182
182
  this._tilingScheme = defined(options.tilingScheme)
183
183
  ? options.tilingScheme
184
184
  : new WebMercatorTilingScheme({ ellipsoid: options.ellipsoid });
185
- this._tileWidth = defaultValue(options.tileWidth, 256);
186
- this._tileHeight = defaultValue(options.tileHeight, 256);
185
+ this._tileWidth = options.tileWidth ?? 256;
186
+ this._tileHeight = options.tileHeight ?? 256;
187
187
 
188
- this._minimumLevel = defaultValue(options.minimumLevel, 0);
188
+ this._minimumLevel = options.minimumLevel ?? 0;
189
189
  this._maximumLevel = options.maximumLevel;
190
190
 
191
- this._rectangle = defaultValue(
192
- options.rectangle,
193
- this._tilingScheme.rectangle,
194
- );
191
+ this._rectangle = options.rectangle ?? this._tilingScheme.rectangle;
195
192
  this._dimensions = options.dimensions;
196
193
 
197
194
  const that = this;
@@ -2,7 +2,7 @@ import Cartesian4 from "../Core/Cartesian4.js";
2
2
  import CesiumMath from "../Core/Math.js";
3
3
  import Check from "../Core/Check.js";
4
4
  import Color from "../Core/Color.js";
5
- import defaultValue from "../Core/defaultValue.js";
5
+ import Frozen from "../Core/Frozen.js";
6
6
  import defined from "../Core/defined.js";
7
7
  import DeveloperError from "../Core/DeveloperError.js";
8
8
  import mergeSort from "../Core/mergeSort.js";
@@ -159,8 +159,8 @@ function preprocess(layers) {
159
159
  });
160
160
  }
161
161
 
162
- let extendDownwards = defaultValue(layer.extendDownwards, false);
163
- let extendUpwards = defaultValue(layer.extendUpwards, false);
162
+ let extendDownwards = layer.extendDownwards ?? false;
163
+ let extendUpwards = layer.extendUpwards ?? false;
164
164
 
165
165
  // Interpret a single entry to extend all the way up and down.
166
166
  if (entries.length === 1 && !extendDownwards && !extendUpwards) {
@@ -462,7 +462,7 @@ function createLayeredEntries(layers) {
462
462
  * });
463
463
  */
464
464
  function createElevationBandMaterial(options) {
465
- const { scene, layers } = defaultValue(options, defaultValue.EMPTY_OBJECT);
465
+ const { scene, layers } = options ?? Frozen.EMPTY_OBJECT;
466
466
 
467
467
  //>>includeStart('debug', pragmas.debug);
468
468
  Check.typeOf.object("options.scene", scene);
@@ -1,6 +1,6 @@
1
1
  import Cesium3DTileset from "./Cesium3DTileset.js";
2
2
  import Check from "../Core/Check.js";
3
- import defaultValue from "../Core/defaultValue.js";
3
+ import Frozen from "../Core/Frozen.js";
4
4
  import defined from "../Core/defined.js";
5
5
  import IonResource from "../Core/IonResource.js";
6
6
  import GoogleMaps from "../Core/GoogleMaps.js";
@@ -58,21 +58,13 @@ import oneTimeWarning from "../Core/oneTimeWarning.js";
58
58
  * }
59
59
  */
60
60
  async function createGooglePhotorealistic3DTileset(apiOptions, tilesetOptions) {
61
- tilesetOptions = defaultValue(tilesetOptions, {});
62
- tilesetOptions.cacheBytes = defaultValue(
63
- tilesetOptions.cacheBytes,
64
- 1536 * 1024 * 1024,
65
- );
66
- tilesetOptions.maximumCacheOverflowBytes = defaultValue(
67
- tilesetOptions.maximumCacheOverflowBytes,
68
- 1024 * 1024 * 1024,
69
- );
70
- tilesetOptions.enableCollision = defaultValue(
71
- tilesetOptions.enableCollision,
72
- true,
73
- );
61
+ tilesetOptions = tilesetOptions ?? {};
62
+ tilesetOptions.cacheBytes = tilesetOptions.cacheBytes ?? 1536 * 1024 * 1024;
63
+ tilesetOptions.maximumCacheOverflowBytes =
64
+ tilesetOptions.maximumCacheOverflowBytes ?? 1024 * 1024 * 1024;
65
+ tilesetOptions.enableCollision = tilesetOptions.enableCollision ?? true;
74
66
 
75
- apiOptions = defaultValue(apiOptions, defaultValue.EMPTY_OBJECT);
67
+ apiOptions = apiOptions ?? Frozen.EMPTY_OBJECT;
76
68
  //>>includeStart('debug', pragmas.debug);
77
69
  Check.typeOf.object("apiOptions", apiOptions);
78
70
  //>>includeEnd('debug');
@@ -84,7 +76,7 @@ async function createGooglePhotorealistic3DTileset(apiOptions, tilesetOptions) {
84
76
  );
85
77
  }
86
78
 
87
- const key = defaultValue(apiOptions.key, GoogleMaps.defaultApiKey);
79
+ const key = apiOptions.key ?? GoogleMaps.defaultApiKey;
88
80
  if (!defined(key)) {
89
81
  return requestCachedIonTileset(tilesetOptions);
90
82
  }
@@ -1,5 +1,5 @@
1
1
  import Color from "../Core/Color.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import Cesium3DTileset from "./Cesium3DTileset.js";
5
5
  import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
@@ -60,15 +60,12 @@ import Cesium3DTileStyle from "./Cesium3DTileStyle.js";
60
60
  async function createOsmBuildingsAsync(options) {
61
61
  const tileset = await Cesium3DTileset.fromIonAssetId(96188, options);
62
62
 
63
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
63
+ options = options ?? Frozen.EMPTY_OBJECT;
64
64
 
65
65
  let style = options.style;
66
66
 
67
67
  if (!defined(style)) {
68
- const color = defaultValue(
69
- options.defaultColor,
70
- Color.WHITE,
71
- ).toCssColorString();
68
+ const color = (options.defaultColor ?? Color.WHITE).toCssColorString();
72
69
  style = new Cesium3DTileStyle({
73
70
  color: `Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${color}`,
74
71
  });
@@ -1,5 +1,5 @@
1
1
  import ColorGeometryInstanceAttribute from "../Core/ColorGeometryInstanceAttribute.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import DeveloperError from "../Core/DeveloperError.js";
5
5
  import GeometryInstance from "../Core/GeometryInstance.js";
@@ -30,7 +30,7 @@ import Primitive from "./Primitive.js";
30
30
  * }));
31
31
  */
32
32
  function createTangentSpaceDebugPrimitive(options) {
33
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
33
+ options = options ?? Frozen.EMPTY_OBJECT;
34
34
  const instances = [];
35
35
  let geometry = options.geometry;
36
36
 
@@ -47,10 +47,8 @@ function createTangentSpaceDebugPrimitive(options) {
47
47
  }
48
48
 
49
49
  const attributes = geometry.attributes;
50
- const modelMatrix = Matrix4.clone(
51
- defaultValue(options.modelMatrix, Matrix4.IDENTITY),
52
- );
53
- const length = defaultValue(options.length, 10000.0);
50
+ const modelMatrix = Matrix4.clone(options.modelMatrix ?? Matrix4.IDENTITY);
51
+ const length = options.length ?? 10000.0;
54
52
 
55
53
  if (defined(attributes.normal)) {
56
54
  instances.push(
@@ -1,4 +1,4 @@
1
- import defaultValue from "../Core/defaultValue.js";
1
+ import Frozen from "../Core/Frozen.js";
2
2
  import IonImageryProvider from "./IonImageryProvider.js";
3
3
  import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
4
4
 
@@ -32,8 +32,8 @@ import IonWorldImageryStyle from "./IonWorldImageryStyle.js";
32
32
  * }
33
33
  */
34
34
  function createWorldImageryAsync(options) {
35
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
36
- const style = defaultValue(options.style, IonWorldImageryStyle.AERIAL);
35
+ options = options ?? Frozen.EMPTY_OBJECT;
36
+ const style = options.style ?? IonWorldImageryStyle.AERIAL;
37
37
  return IonImageryProvider.fromAssetId(style);
38
38
  }
39
39
  export default createWorldImageryAsync;
@@ -1,5 +1,5 @@
1
1
  import ContentMetadata from "./ContentMetadata.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import hasExtension from "./hasExtension.js";
5
5
  import oneTimeWarning from "../Core/oneTimeWarning.js";
@@ -34,10 +34,7 @@ function findContentMetadata(tileset, contentHeader) {
34
34
  return undefined;
35
35
  }
36
36
 
37
- const classes = defaultValue(
38
- tileset.schema.classes,
39
- defaultValue.EMPTY_OBJECT,
40
- );
37
+ const classes = tileset.schema.classes ?? Frozen.EMPTY_OBJECT;
41
38
  if (defined(metadataJson.class)) {
42
39
  const contentClass = classes[metadataJson.class];
43
40
  return new ContentMetadata({
@@ -1,4 +1,4 @@
1
- import defaultValue from "../Core/defaultValue.js";
1
+ import Frozen from "../Core/Frozen.js";
2
2
  import defined from "../Core/defined.js";
3
3
  import hasExtension from "./hasExtension.js";
4
4
  import TileMetadata from "./TileMetadata.js";
@@ -36,10 +36,7 @@ function findTileMetadata(tileset, tileHeader) {
36
36
  return undefined;
37
37
  }
38
38
 
39
- const classes = defaultValue(
40
- tileset.schema.classes,
41
- defaultValue.EMPTY_OBJECT,
42
- );
39
+ const classes = tileset.schema.classes ?? Frozen.EMPTY_OBJECT;
43
40
  if (defined(metadataJson.class)) {
44
41
  const tileClass = classes[metadataJson.class];
45
42
  return new TileMetadata({
@@ -1,7 +1,6 @@
1
1
  import Check from "../Core/Check.js";
2
2
  import ComponentDatatype from "../Core/ComponentDatatype.js";
3
3
  import defined from "../Core/defined.js";
4
- import defaultValue from "../Core/defaultValue.js";
5
4
  import deprecationWarning from "../Core/deprecationWarning.js";
6
5
  import DeveloperError from "../Core/DeveloperError.js";
7
6
  import RuntimeError from "../Core/RuntimeError.js";
@@ -45,10 +44,7 @@ function parseBatchTable(options) {
45
44
  const featureCount = options.count;
46
45
  const batchTable = options.batchTable;
47
46
  const binaryBody = options.binaryBody;
48
- const parseAsPropertyAttributes = defaultValue(
49
- options.parseAsPropertyAttributes,
50
- false,
51
- );
47
+ const parseAsPropertyAttributes = options.parseAsPropertyAttributes ?? false;
52
48
  const customAttributeOutput = options.customAttributeOutput;
53
49
 
54
50
  //>>includeStart('debug', pragmas.debug);
@@ -1,6 +1,6 @@
1
1
  import Check from "../Core/Check.js";
2
2
  import combine from "../Core/combine.js";
3
- import defaultValue from "../Core/defaultValue.js";
3
+ import Frozen from "../Core/Frozen.js";
4
4
  import defined from "../Core/defined.js";
5
5
  import PropertyTable from "./PropertyTable.js";
6
6
  import PropertyTexture from "./PropertyTexture.js";
@@ -21,7 +21,7 @@ import MetadataTable from "./MetadataTable.js";
21
21
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
22
22
  */
23
23
  function parseFeatureMetadataLegacy(options) {
24
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
24
+ options = options ?? Frozen.EMPTY_OBJECT;
25
25
  const extension = options.extension;
26
26
 
27
27
  // The calling code is responsible for loading the schema.
@@ -1,5 +1,5 @@
1
1
  import Check from "../Core/Check.js";
2
- import defaultValue from "../Core/defaultValue.js";
2
+ import Frozen from "../Core/Frozen.js";
3
3
  import defined from "../Core/defined.js";
4
4
  import PropertyTable from "./PropertyTable.js";
5
5
  import PropertyTexture from "./PropertyTexture.js";
@@ -21,7 +21,7 @@ import MetadataTable from "./MetadataTable.js";
21
21
  * @experimental This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.
22
22
  */
23
23
  function parseStructuralMetadata(options) {
24
- options = defaultValue(options, defaultValue.EMPTY_OBJECT);
24
+ options = options ?? Frozen.EMPTY_OBJECT;
25
25
  const extension = options.extension;
26
26
 
27
27
  // The calling code is responsible for loading the schema.
@@ -310,6 +310,9 @@ function processVoxelProperties(renderResources, primitive) {
310
310
  const glslField = getGlslField(type, j);
311
311
  const minimumValue = minimumValues[i][j];
312
312
  const maximumValue = maximumValues[i][j];
313
+ if (!defined(minimumValue) || !defined(maximumValue)) {
314
+ continue;
315
+ }
313
316
  shaderBuilder.addFunctionLines(functionId, [
314
317
  `${statisticsFieldName}.${name}.min${glslField} = ${getGlslNumberAsFloat(
315
318
  minimumValue,
@@ -285,7 +285,16 @@ vec3 computeEllipsoidPosition()
285
285
  vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);
286
286
  xy *= czm_viewport.zw * mpp * 0.5;
287
287
 
288
- vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x));
288
+ vec3 direction;
289
+ if (czm_orthographicIn3D == 1.0)
290
+ {
291
+ direction = vec3(0.0, 0.0, -1.0);
292
+ }
293
+ else
294
+ {
295
+ direction = normalize(vec3(xy, -czm_currentFrustum.x));
296
+ }
297
+
289
298
  czm_ray ray = czm_ray(vec3(0.0), direction);
290
299
 
291
300
  vec3 ellipsoid_center = czm_view[3].xyz;
@@ -286,7 +286,16 @@ vec3 computeEllipsoidPosition()\n\
286
286
  vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);\n\
287
287
  xy *= czm_viewport.zw * mpp * 0.5;\n\
288
288
  \n\
289
- vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x));\n\
289
+ vec3 direction;\n\
290
+ if (czm_orthographicIn3D == 1.0)\n\
291
+ {\n\
292
+ direction = vec3(0.0, 0.0, -1.0);\n\
293
+ }\n\
294
+ else\n\
295
+ {\n\
296
+ direction = normalize(vec3(xy, -czm_currentFrustum.x));\n\
297
+ }\n\
298
+ \n\
290
299
  czm_ray ray = czm_ray(vec3(0.0), direction);\n\
291
300
  \n\
292
301
  vec3 ellipsoid_center = czm_view[3].xyz;\n\
@@ -12,12 +12,6 @@ uniform vec2 u_megatextureVoxelSizeUv;
12
12
  uniform vec2 u_megatextureSliceSizeUv;
13
13
  uniform vec2 u_megatextureTileSizeUv;
14
14
 
15
- uniform ivec3 u_dimensions; // does not include padding
16
- #if defined(PADDING)
17
- uniform ivec3 u_paddingBefore;
18
- uniform ivec3 u_paddingAfter;
19
- #endif
20
-
21
15
  // Integer min, max, clamp: For WebGL1 only
22
16
  int intMin(int a, int b) {
23
17
  return a <= b ? a : b;
@@ -72,14 +66,8 @@ vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale)
72
66
 
73
67
  Properties getPropertiesFromMegatexture(in SampleData sampleData) {
74
68
  int tileIndex = sampleData.megatextureIndex;
75
- vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions);
76
- ivec3 voxelDimensions = u_dimensions;
77
-
78
- #if defined(PADDING)
79
- voxelDimensions += u_paddingBefore + u_paddingAfter;
80
- voxelCoord += vec3(u_paddingBefore);
81
- #endif
82
69
 
70
+ vec3 voxelCoord = sampleData.inputCoordinate;
83
71
  #if defined(NEAREST_SAMPLING)
84
72
  // Round to the center of the nearest voxel
85
73
  voxelCoord = floor(voxelCoord) + vec3(0.5);
@@ -91,11 +79,11 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {
91
79
  // Slice location
92
80
  float slice = voxelCoord.z - 0.5;
93
81
  int sliceIndex = int(floor(slice));
94
- int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1);
82
+ int sliceIndex0 = intClamp(sliceIndex, 0, u_inputDimensions.z - 1);
95
83
  vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
96
84
 
97
85
  // Voxel location
98
- vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;
86
+ vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(u_inputDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;
99
87
 
100
88
  // Final location in the megatexture
101
89
  vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset;
@@ -104,7 +92,7 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {
104
92
  return getPropertiesFromMegatextureAtUv(uv0);
105
93
  #else
106
94
  float sliceLerp = fract(slice);
107
- int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1);
95
+ int sliceIndex1 = intMin(sliceIndex + 1, u_inputDimensions.z - 1);
108
96
  vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
109
97
  vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset;
110
98
  Properties properties0 = getPropertiesFromMegatextureAtUv(uv0);
@@ -13,12 +13,6 @@ uniform vec2 u_megatextureVoxelSizeUv;\n\
13
13
  uniform vec2 u_megatextureSliceSizeUv;\n\
14
14
  uniform vec2 u_megatextureTileSizeUv;\n\
15
15
  \n\
16
- uniform ivec3 u_dimensions; // does not include padding\n\
17
- #if defined(PADDING)\n\
18
- uniform ivec3 u_paddingBefore;\n\
19
- uniform ivec3 u_paddingAfter;\n\
20
- #endif\n\
21
- \n\
22
16
  // Integer min, max, clamp: For WebGL1 only\n\
23
17
  int intMin(int a, int b) {\n\
24
18
  return a <= b ? a : b;\n\
@@ -73,14 +67,8 @@ vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale)\n\
73
67
  \n\
74
68
  Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
75
69
  int tileIndex = sampleData.megatextureIndex;\n\
76
- vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions);\n\
77
- ivec3 voxelDimensions = u_dimensions;\n\
78
- \n\
79
- #if defined(PADDING)\n\
80
- voxelDimensions += u_paddingBefore + u_paddingAfter;\n\
81
- voxelCoord += vec3(u_paddingBefore);\n\
82
- #endif\n\
83
70
  \n\
71
+ vec3 voxelCoord = sampleData.inputCoordinate;\n\
84
72
  #if defined(NEAREST_SAMPLING)\n\
85
73
  // Round to the center of the nearest voxel\n\
86
74
  voxelCoord = floor(voxelCoord) + vec3(0.5);\n\
@@ -92,11 +80,11 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
92
80
  // Slice location\n\
93
81
  float slice = voxelCoord.z - 0.5;\n\
94
82
  int sliceIndex = int(floor(slice));\n\
95
- int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1);\n\
83
+ int sliceIndex0 = intClamp(sliceIndex, 0, u_inputDimensions.z - 1);\n\
96
84
  vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);\n\
97
85
  \n\
98
86
  // Voxel location\n\
99
- vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;\n\
87
+ vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(u_inputDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;\n\
100
88
  \n\
101
89
  // Final location in the megatexture\n\
102
90
  vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset;\n\
@@ -105,7 +93,7 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
105
93
  return getPropertiesFromMegatextureAtUv(uv0);\n\
106
94
  #else\n\
107
95
  float sliceLerp = fract(slice);\n\
108
- int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1);\n\
96
+ int sliceIndex1 = intMin(sliceIndex + 1, u_inputDimensions.z - 1);\n\
109
97
  vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);\n\
110
98
  vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset;\n\
111
99
  Properties properties0 = getPropertiesFromMegatextureAtUv(uv0);\n\
@@ -13,6 +13,11 @@ uniform sampler2D u_octreeLeafNodeTexture;
13
13
  uniform vec2 u_octreeLeafNodeTexelSizeUv;
14
14
  uniform int u_octreeLeafNodeTilesPerRow;
15
15
  #endif
16
+ uniform ivec3 u_dimensions; // does not include padding, and is in the z-up orientation
17
+ uniform ivec3 u_inputDimensions; // includes padding, and is in the orientation of the input data
18
+ #if defined(PADDING)
19
+ uniform ivec3 u_paddingBefore;
20
+ #endif
16
21
 
17
22
  struct OctreeNodeData {
18
23
  int data;
@@ -28,6 +33,7 @@ struct SampleData {
28
33
  int megatextureIndex;
29
34
  ivec4 tileCoords;
30
35
  vec3 tileUv;
36
+ vec3 inputCoordinate;
31
37
  #if (SAMPLE_COUNT > 1)
32
38
  float weight;
33
39
  #endif
@@ -88,6 +94,37 @@ vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
88
94
  return clamp(tileUv, vec3(0.0), vec3(1.0));
89
95
  }
90
96
 
97
+ void addSampleCoordinates(in vec3 shapePosition, inout SampleData sampleData) {
98
+ vec3 tileUv = getClampedTileUv(shapePosition, sampleData.tileCoords);
99
+
100
+ vec3 inputCoordinate = tileUv * vec3(u_dimensions);
101
+ #if defined(PADDING)
102
+ inputCoordinate += vec3(u_paddingBefore);
103
+ #endif
104
+ #if defined(Y_UP_METADATA_ORDER)
105
+ #if defined(SHAPE_BOX)
106
+ float inputY = inputCoordinate.y;
107
+ inputCoordinate.y = float(u_inputDimensions.y) - inputCoordinate.z;
108
+ inputCoordinate.z = inputY;
109
+ #elif defined(SHAPE_CYLINDER)
110
+ float angle = inputCoordinate.y;
111
+ float height = inputCoordinate.z;
112
+ #if (!defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE))
113
+ // Account for the different 0-angle convention in glTF vs 3DTiles
114
+ if (sampleData.tileCoords.w == 0) {
115
+ float angleCount = float(u_inputDimensions.z);
116
+ angle = mod(angle + angleCount / 2.0, angleCount);
117
+ }
118
+ #endif
119
+ inputCoordinate.y = height;
120
+ inputCoordinate.z = angle;
121
+ #endif
122
+ #endif
123
+
124
+ sampleData.tileUv = tileUv;
125
+ sampleData.inputCoordinate = inputCoordinate;
126
+ }
127
+
91
128
  void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {
92
129
  sampleData.megatextureIndex = data.data;
93
130
  sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)
@@ -172,11 +209,11 @@ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traver
172
209
 
173
210
  #if (SAMPLE_COUNT == 1)
174
211
  getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
175
- sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
212
+ addSampleCoordinates(shapePosition, sampleDatas[0]);
176
213
  #else
177
214
  getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
178
- sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
179
- sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords);
215
+ addSampleCoordinates(shapePosition, sampleDatas[0]);
216
+ addSampleCoordinates(shapePosition, sampleDatas[1]);
180
217
  #endif
181
218
  }
182
219
 
@@ -194,7 +231,7 @@ bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {
194
231
  void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {
195
232
  if (insideTile(shapePosition, traversalData.octreeCoords)) {
196
233
  for (int i = 0; i < SAMPLE_COUNT; i++) {
197
- sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
234
+ addSampleCoordinates(shapePosition, sampleDatas[i]);
198
235
  }
199
236
  return;
200
237
  }
@@ -216,10 +253,10 @@ void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData trave
216
253
 
217
254
  #if (SAMPLE_COUNT == 1)
218
255
  getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
219
- sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
256
+ addSampleCoordinates(shapePosition, sampleDatas[0]);
220
257
  #else
221
258
  getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
222
- sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
223
- sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords);
259
+ addSampleCoordinates(shapePosition, sampleDatas[0]);
260
+ addSampleCoordinates(shapePosition, sampleDatas[1]);
224
261
  #endif
225
262
  }