@cesium/engine 24.0.0 → 26.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 (362) hide show
  1. package/Build/Workers/{chunk-6WLHJFD3.js → chunk-3VFEWOBI.js} +59 -32
  2. package/Build/Workers/{chunk-UQU4RXLT.js → chunk-424RNO3D.js} +50 -45
  3. package/Build/Workers/chunk-4MGMYHOO.js +147 -0
  4. package/Build/Workers/{chunk-AMIHNSST.js → chunk-4S7IE3LB.js} +2 -2
  5. package/Build/Workers/{chunk-J6AW5YHS.js → chunk-52JDLOEM.js} +14 -14
  6. package/Build/Workers/{chunk-6RMS4S72.js → chunk-54I6Y66F.js} +6 -6
  7. package/Build/Workers/{chunk-C6P4IG5P.js → chunk-6YEE6JDR.js} +6 -6
  8. package/Build/Workers/{chunk-72VYSVEW.js → chunk-7J2HKPRH.js} +11 -10
  9. package/Build/Workers/{chunk-7O5XJTVE.js → chunk-7WM2PX4V.js} +5 -5
  10. package/Build/Workers/{chunk-5A2SW66E.js → chunk-ACXQXN46.js} +16 -16
  11. package/Build/Workers/{chunk-VLDEUTOP.js → chunk-AYKR4VBR.js} +2 -2
  12. package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-C6J67V5A.js} +3 -2
  13. package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-C6KNZ7T4.js} +17 -17
  14. package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-CFQP6LYM.js} +4 -4
  15. package/Build/Workers/{chunk-YAOZMOFL.js → chunk-CXOYE2WM.js} +5 -5
  16. package/Build/Workers/{chunk-B6SCUUFP.js → chunk-CZEYZU4N.js} +10 -10
  17. package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DBOEKL43.js} +7 -7
  18. package/Build/Workers/{chunk-44EMEGKW.js → chunk-DDWSZVMY.js} +5 -5
  19. package/Build/Workers/{chunk-7X322WP2.js → chunk-DOBXCNC3.js} +13 -13
  20. package/Build/Workers/{chunk-JCI63T3K.js → chunk-E7VQ76KE.js} +6 -6
  21. package/Build/Workers/{chunk-7TYLCBGK.js → chunk-EBSIOBXY.js} +12 -10
  22. package/Build/Workers/{chunk-GQUNK2XC.js → chunk-EF2QYXGA.js} +14 -14
  23. package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-EPYXRCDB.js} +12 -12
  24. package/Build/Workers/{chunk-63SIWPLS.js → chunk-F6QDY6HU.js} +13 -13
  25. package/Build/Workers/{chunk-XY6HMDGI.js → chunk-FRQZECAO.js} +5 -5
  26. package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-G7PXZRVF.js} +7 -7
  27. package/Build/Workers/{chunk-N65BAKSH.js → chunk-INUEEEQA.js} +8 -8
  28. package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-IRBKFCEJ.js} +2 -2
  29. package/Build/Workers/{chunk-UIGVOKKI.js → chunk-IYOUHCZB.js} +3 -2
  30. package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-J6BWOHUF.js} +3 -3
  31. package/Build/Workers/{chunk-A47HVBC5.js → chunk-KFSTQKNM.js} +7 -7
  32. package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-KKOSKAZB.js} +17 -17
  33. package/Build/Workers/{chunk-6MPGQEHA.js → chunk-KSSWJIZW.js} +2 -2
  34. package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-M3B5JKSM.js} +3 -2
  35. package/Build/Workers/chunk-MPZHGZU6.js +2342 -0
  36. package/Build/Workers/{chunk-YJZGW74L.js → chunk-MYP774IS.js} +2213 -1349
  37. package/Build/Workers/{chunk-LIB2H534.js → chunk-O3EA5HS7.js} +12 -11
  38. package/Build/Workers/{chunk-ILMFADZA.js → chunk-P3CK7MCY.js} +27 -5
  39. package/Build/Workers/chunk-Q3PY526V.js +3201 -0
  40. package/Build/Workers/chunk-QN67VG36.js +973 -0
  41. package/Build/Workers/{chunk-XJRBB253.js → chunk-QRWGUWI6.js} +11 -11
  42. package/Build/Workers/{chunk-AF3MU2RL.js → chunk-S4MCOY6I.js} +7 -6
  43. package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-SMQZZOW6.js} +10 -10
  44. package/Build/Workers/{chunk-PVV64VFW.js → chunk-TKKIREQ6.js} +3 -2
  45. package/Build/Workers/{chunk-MKM27KGV.js → chunk-U3ZA64U7.js} +2 -2
  46. package/Build/Workers/{chunk-2N4KDHS3.js → chunk-UA25D5MX.js} +12 -11
  47. package/Build/Workers/{chunk-RQNJD3O4.js → chunk-UOOIQ3KX.js} +12 -12
  48. package/Build/Workers/{chunk-GOQBUCXH.js → chunk-V7VQKN6N.js} +709 -431
  49. package/Build/Workers/{chunk-LXMCPFFS.js → chunk-VQYETPWC.js} +4 -4
  50. package/Build/Workers/{chunk-NKT5K3K3.js → chunk-VWV2IJRB.js} +13 -12
  51. package/Build/Workers/chunk-XZMBNNDX.js +1287 -0
  52. package/Build/Workers/{chunk-ISY4EZCA.js → chunk-Y57HREW5.js} +4 -4
  53. package/Build/Workers/{chunk-EDXL4W76.js → chunk-Y5BF6AFU.js} +2 -2
  54. package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-YLY7NKAB.js} +4 -4
  55. package/Build/Workers/{chunk-4TIG36AW.js → chunk-ZK3CF7ZD.js} +12 -12
  56. package/Build/Workers/{chunk-AJLTU6PF.js → chunk-ZP7JMQV4.js} +4 -1
  57. package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-ZZ46LWL6.js} +1 -1
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +175 -118
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +24 -23
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +12 -9
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian2.js +1 -1
  116. package/Source/Core/Cartesian3.js +2 -3
  117. package/Source/Core/Cartesian4.js +1 -1
  118. package/Source/Core/Cartographic.js +257 -249
  119. package/Source/Core/ClockRange.js +6 -1
  120. package/Source/Core/ClockStep.js +6 -1
  121. package/Source/Core/Color.js +844 -835
  122. package/Source/Core/ComponentDatatype.js +39 -1
  123. package/Source/Core/CornerType.js +6 -1
  124. package/Source/Core/Credit.js +121 -124
  125. package/Source/Core/Ellipsoid.js +637 -660
  126. package/Source/Core/ExtrapolationType.js +6 -1
  127. package/Source/Core/GeocodeType.js +6 -1
  128. package/Source/Core/GeographicProjection.js +74 -74
  129. package/Source/Core/GeographicTilingScheme.js +179 -198
  130. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  131. package/Source/Core/GeometryType.js +7 -1
  132. package/Source/Core/HeightmapEncoding.js +6 -1
  133. package/Source/Core/Iau2006XysData.js +24 -13
  134. package/Source/Core/IndexDatatype.js +3 -1
  135. package/Source/Core/InterpolationType.js +5 -1
  136. package/Source/Core/Intersect.js +6 -1
  137. package/Source/Core/Ion.js +1 -1
  138. package/Source/Core/IonGeocodeProviderType.js +5 -1
  139. package/Source/Core/JulianDate.js +850 -848
  140. package/Source/Core/KeyboardEventModifier.js +6 -1
  141. package/Source/Core/MapProjection.js +40 -44
  142. package/Source/Core/Matrix2.js +906 -893
  143. package/Source/Core/Matrix3.js +1643 -1575
  144. package/Source/Core/Matrix4.js +2903 -2872
  145. package/Source/Core/PixelFormat.js +3 -1
  146. package/Source/Core/PrimitiveType.js +11 -1
  147. package/Source/Core/Ray.js +62 -60
  148. package/Source/Core/Rectangle.js +913 -904
  149. package/Source/Core/ReferenceFrame.js +6 -1
  150. package/Source/Core/RequestScheduler.js +8 -3
  151. package/Source/Core/RequestState.js +6 -1
  152. package/Source/Core/RequestType.js +6 -1
  153. package/Source/Core/Resource.js +1 -1
  154. package/Source/Core/ScreenSpaceEventHandler.js +51 -41
  155. package/Source/Core/ScreenSpaceEventType.js +6 -1
  156. package/Source/Core/TerrainQuantization.js +6 -1
  157. package/Source/Core/TilingScheme.js +100 -98
  158. package/Source/Core/TimeConstants.js +6 -1
  159. package/Source/Core/TimeStandard.js +6 -1
  160. package/Source/Core/TrackingReferenceFrame.js +6 -1
  161. package/Source/Core/Visibility.js +6 -1
  162. package/Source/Core/VulkanConstants.js +6 -1
  163. package/Source/Core/WebGLConstants.js +6 -1
  164. package/Source/Core/WebMercatorProjection.js +108 -109
  165. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  166. package/Source/Core/WindingOrder.js +3 -1
  167. package/Source/Core/createColorRamp.js +37 -0
  168. package/Source/Core/globalTypes.js +25 -0
  169. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
  170. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
  171. package/Source/DataSources/StripeOrientation.js +6 -1
  172. package/Source/Renderer/BufferUsage.js +20 -9
  173. package/Source/Renderer/Context.js +2 -29
  174. package/Source/Renderer/DrawCommand.js +435 -403
  175. package/Source/Renderer/MipmapHint.js +5 -1
  176. package/Source/Renderer/Pass.js +10 -3
  177. package/Source/Renderer/PickId.js +44 -0
  178. package/Source/Renderer/PixelDatatype.js +3 -1
  179. package/Source/Renderer/RenderbufferFormat.js +5 -1
  180. package/Source/Renderer/ShaderDestination.js +4 -1
  181. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  182. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  183. package/Source/Renderer/TextureWrap.js +5 -1
  184. package/Source/Renderer/createUniform.js +346 -239
  185. package/Source/Renderer/createUniformArray.js +494 -381
  186. package/Source/Scene/AlphaMode.js +5 -1
  187. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  188. package/Source/Scene/ArcGisMapService.js +1 -1
  189. package/Source/Scene/AttributeType.js +3 -1
  190. package/Source/Scene/Axis.js +3 -1
  191. package/Source/Scene/BingMapsStyle.js +6 -1
  192. package/Source/Scene/BlendEquation.js +6 -1
  193. package/Source/Scene/BlendFunction.js +6 -1
  194. package/Source/Scene/BlendOption.js +6 -1
  195. package/Source/Scene/BlendingState.js +6 -1
  196. package/Source/Scene/BufferLoader.js +0 -2
  197. package/Source/Scene/BufferPoint.js +1 -0
  198. package/Source/Scene/BufferPointCollection.js +17 -1
  199. package/Source/Scene/BufferPolygon.js +3 -2
  200. package/Source/Scene/BufferPolygonCollection.js +13 -1
  201. package/Source/Scene/BufferPolyline.js +1 -0
  202. package/Source/Scene/BufferPolylineCollection.js +5 -1
  203. package/Source/Scene/BufferPrimitiveCollection.js +210 -43
  204. package/Source/Scene/CameraEventAggregator.js +30 -18
  205. package/Source/Scene/CameraEventType.js +6 -1
  206. package/Source/Scene/Cesium3DTile.js +54 -1
  207. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  208. package/Source/Scene/Cesium3DTileContent.js +195 -254
  209. package/Source/Scene/Cesium3DTileContentFactory.js +10 -2
  210. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  211. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  212. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  213. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  214. package/Source/Scene/Cesium3DTilePass.js +5 -1
  215. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  216. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  217. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  218. package/Source/Scene/Cesium3DTileset.js +46 -6
  219. package/Source/Scene/ClassificationType.js +3 -1
  220. package/Source/Scene/CloudType.js +3 -1
  221. package/Source/Scene/ColorBlendMode.js +4 -1
  222. package/Source/Scene/Composite3DTileContent.js +254 -292
  223. package/Source/Scene/CullFace.js +6 -1
  224. package/Source/Scene/DepthFunction.js +6 -1
  225. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  226. package/Source/Scene/EdgeDisplayMode.js +50 -0
  227. package/Source/Scene/Empty3DTileContent.js +100 -132
  228. package/Source/Scene/EquirectangularPanorama.js +1 -0
  229. package/Source/Scene/ExpressionNodeType.js +6 -1
  230. package/Source/Scene/GaussianSplat3DTileContent.js +436 -478
  231. package/Source/Scene/GeoJsonPrimitive.js +874 -0
  232. package/Source/Scene/Geometry3DTileContent.js +151 -185
  233. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  234. package/Source/Scene/GltfDracoLoader.js +0 -2
  235. package/Source/Scene/GltfImageLoader.js +0 -3
  236. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  237. package/Source/Scene/GltfJsonLoader.js +0 -2
  238. package/Source/Scene/GltfLoader.js +109 -5
  239. package/Source/Scene/GltfLoaderUtil.js +14 -0
  240. package/Source/Scene/GltfSpzLoader.js +0 -2
  241. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  242. package/Source/Scene/GltfTextureLoader.js +0 -2
  243. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  244. package/Source/Scene/HeightReference.js +5 -1
  245. package/Source/Scene/HorizontalOrigin.js +6 -1
  246. package/Source/Scene/ImageryProvider.js +1 -1
  247. package/Source/Scene/ImageryState.js +6 -1
  248. package/Source/Scene/Implicit3DTileContent.js +179 -214
  249. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  250. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  251. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  252. package/Source/Scene/JobType.js +6 -1
  253. package/Source/Scene/LabelStyle.js +6 -1
  254. package/Source/Scene/MVTDataProvider.js +147 -0
  255. package/Source/Scene/MapMode2D.js +6 -1
  256. package/Source/Scene/MetadataComponentType.js +3 -1
  257. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  258. package/Source/Scene/MetadataSemantic.js +6 -2
  259. package/Source/Scene/MetadataType.js +3 -1
  260. package/Source/Scene/Model/B3dmLoader.js +0 -3
  261. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  262. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  263. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +78 -337
  264. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  265. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  266. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  267. package/Source/Scene/Model/I3dmLoader.js +0 -3
  268. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  269. package/Source/Scene/Model/LightingModel.js +5 -1
  270. package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
  271. package/Source/Scene/Model/Model.js +34 -0
  272. package/Source/Scene/Model/Model3DTileContent.js +424 -458
  273. package/Source/Scene/Model/ModelDrawCommand.js +31 -3
  274. package/Source/Scene/Model/ModelReader.js +474 -3
  275. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  276. package/Source/Scene/Model/ModelType.js +3 -1
  277. package/Source/Scene/Model/ModelUtility.js +4 -0
  278. package/Source/Scene/Model/PntsLoader.js +4 -3
  279. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  280. package/Source/Scene/Model/UniformType.js +5 -1
  281. package/Source/Scene/Model/VaryingType.js +5 -1
  282. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +500 -139
  283. package/Source/Scene/Model/pickModel.js +94 -299
  284. package/Source/Scene/ModelAnimationLoop.js +6 -1
  285. package/Source/Scene/ModelAnimationState.js +6 -1
  286. package/Source/Scene/ModelComponents.js +47 -2
  287. package/Source/Scene/Multiple3DTileContent.js +291 -334
  288. package/Source/Scene/PrimitiveState.js +7 -1
  289. package/Source/Scene/QuadtreeOccluders.js +20 -15
  290. package/Source/Scene/QuadtreeTile.js +547 -541
  291. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  292. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  293. package/Source/Scene/ResourceLoader.js +0 -1
  294. package/Source/Scene/ResourceLoaderState.js +7 -1
  295. package/Source/Scene/Scene.js +26 -0
  296. package/Source/Scene/SceneMode.js +4 -1
  297. package/Source/Scene/ShadowMode.js +3 -1
  298. package/Source/Scene/SkyBox.js +1 -1
  299. package/Source/Scene/SplitDirection.js +6 -1
  300. package/Source/Scene/StencilFunction.js +6 -1
  301. package/Source/Scene/StencilOperation.js +6 -1
  302. package/Source/Scene/TerrainState.js +7 -1
  303. package/Source/Scene/TileState.js +7 -1
  304. package/Source/Scene/Tileset3DTileContent.js +113 -146
  305. package/Source/Scene/Tonemapper.js +5 -1
  306. package/Source/Scene/UrlTemplate3DTilesDataProvider.js +499 -0
  307. package/Source/Scene/Vector3DTileContent.js +205 -234
  308. package/Source/Scene/VectorGltf3DTileContent.js +131 -61
  309. package/Source/Scene/VertexAttributeSemantic.js +3 -1
  310. package/Source/Scene/VerticalOrigin.js +6 -1
  311. package/Source/Scene/VoxelBoxShape.js +12 -6
  312. package/Source/Scene/VoxelContent.js +2 -0
  313. package/Source/Scene/VoxelCylinderShape.js +39 -38
  314. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  315. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  316. package/Source/Scene/VoxelPrimitive.js +159 -175
  317. package/Source/Scene/VoxelProvider.js +64 -90
  318. package/Source/Scene/VoxelShapeType.js +3 -1
  319. package/Source/Scene/buildVectorGltfFromMVT.js +1059 -0
  320. package/Source/Scene/buildVoxelCustomShader.js +199 -0
  321. package/Source/Scene/decodeMVT.js +634 -0
  322. package/Source/Scene/renderBufferPointCollection.js +124 -127
  323. package/Source/Scene/renderBufferPolygonCollection.js +122 -122
  324. package/Source/Scene/renderBufferPolylineCollection.js +386 -238
  325. package/Source/Shaders/BufferPointMaterialFS.glsl +1 -0
  326. package/Source/Shaders/BufferPointMaterialFS.js +1 -0
  327. package/Source/Shaders/BufferPointMaterialVS.glsl +19 -9
  328. package/Source/Shaders/BufferPointMaterialVS.js +20 -10
  329. package/Source/Shaders/BufferPolygonMaterialVS.glsl +13 -4
  330. package/Source/Shaders/BufferPolygonMaterialVS.js +14 -5
  331. package/Source/Shaders/BufferPolylineMaterialVS.glsl +16 -2
  332. package/Source/Shaders/BufferPolylineMaterialVS.js +17 -3
  333. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.glsl +9 -0
  334. package/Source/Shaders/Builtin/Constants/passCesium3DTileEdgesDirect.js +11 -0
  335. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  336. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  337. package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
  338. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  339. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  340. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  341. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  342. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  343. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  344. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +0 -1
  345. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +0 -1
  346. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  347. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  348. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  349. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  350. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  351. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  352. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  353. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  354. package/Source/Widget/CesiumWidget.js +11 -4
  355. package/index.d.ts +595 -343
  356. package/index.js +392 -378
  357. package/package.json +3 -3
  358. package/Build/Workers/chunk-DVB56LG7.js +0 -114
  359. package/Build/Workers/chunk-HKUES6UG.js +0 -2357
  360. package/Build/Workers/chunk-HRHRYFHS.js +0 -940
  361. package/Build/Workers/chunk-KLPGTXS3.js +0 -642
  362. package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
@@ -16,6 +16,7 @@ void main()
16
16
  float innerAlpha = 1.0 - smoothstep(innerLimit - delta, innerLimit, distanceToCenter);
17
17
 
18
18
  vec4 color = vec4(mix(v_outlineColor.rgb, v_color.rgb, innerAlpha), outerAlpha);
19
+ color.a *= mix(v_outlineColor.a, v_color.a, innerAlpha);
19
20
 
20
21
  if (color.a < 0.005) // matches 0/255 and 1/255
21
22
  {
@@ -17,6 +17,7 @@ void main()\n\
17
17
  float innerAlpha = 1.0 - smoothstep(innerLimit - delta, innerLimit, distanceToCenter);\n\
18
18
  \n\
19
19
  vec4 color = vec4(mix(v_outlineColor.rgb, v_color.rgb, innerAlpha), outerAlpha);\n\
20
+ color.a *= mix(v_outlineColor.a, v_color.a, innerAlpha);\n\
20
21
  \n\
21
22
  if (color.a < 0.005) // matches 0/255 and 1/255\n\
22
23
  {\n\
@@ -1,8 +1,12 @@
1
+ #ifdef USE_FLOAT64
1
2
  in vec3 positionHigh;
2
3
  in vec3 positionLow;
4
+ #else
5
+ in vec3 position;
6
+ #endif
3
7
  in vec4 pickColor;
4
- in vec3 showPixelSizeAndColor;
5
- in vec2 outlineWidthAndOutlineColor;
8
+ in vec4 showPixelSizeColorAlpha;
9
+ in vec3 outlineWidthColorAlpha;
6
10
 
7
11
  out vec4 v_pickColor;
8
12
  out vec4 v_color;
@@ -12,11 +16,13 @@ out float v_innerRadiusFrac;
12
16
  void main()
13
17
  {
14
18
  // Unpack attributes.
15
- float show = showPixelSizeAndColor.x;
16
- float pixelSize = showPixelSizeAndColor.y;
17
- vec4 color = czm_decodeRGB8(showPixelSizeAndColor.z);
18
- float outlineWidth = outlineWidthAndOutlineColor.x;
19
- vec4 outlineColor = czm_decodeRGB8(outlineWidthAndOutlineColor.y);
19
+ float show = showPixelSizeColorAlpha.x;
20
+ float pixelSize = showPixelSizeColorAlpha.y;
21
+ vec4 color = czm_decodeRGB8(showPixelSizeColorAlpha.z);
22
+ float alpha = showPixelSizeColorAlpha.w;
23
+ float outlineWidth = outlineWidthColorAlpha.x;
24
+ vec4 outlineColor = czm_decodeRGB8(outlineWidthColorAlpha.y);
25
+ float outlineAlpha = outlineWidthColorAlpha.z;
20
26
 
21
27
  ///////////////////////////////////////////////////////////////////////////
22
28
 
@@ -25,8 +31,12 @@ void main()
25
31
 
26
32
  ///////////////////////////////////////////////////////////////////////////
27
33
 
34
+ #ifdef USE_FLOAT64
28
35
  vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
29
36
  vec4 positionEC = czm_modelViewRelativeToEye * p;
37
+ #else
38
+ vec4 positionEC = czm_modelView * vec4(position, 1.0);
39
+ #endif
30
40
 
31
41
  ///////////////////////////////////////////////////////////////////////////
32
42
 
@@ -36,10 +46,10 @@ void main()
36
46
  v_pickColor = pickColor / 255.0;
37
47
 
38
48
  v_color = color;
39
- v_color.a *= show;
49
+ v_color.a *= alpha * show;
40
50
 
41
51
  v_outlineColor = outlineColor;
42
- v_outlineColor.a *= show;
52
+ v_outlineColor.a *= outlineAlpha * show;
43
53
 
44
54
  v_innerRadiusFrac = innerRadius / outerRadius;
45
55
 
@@ -1,9 +1,13 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "in vec3 positionHigh;\n\
2
+ export default "#ifdef USE_FLOAT64\n\
3
+ in vec3 positionHigh;\n\
3
4
  in vec3 positionLow;\n\
5
+ #else\n\
6
+ in vec3 position;\n\
7
+ #endif\n\
4
8
  in vec4 pickColor;\n\
5
- in vec3 showPixelSizeAndColor;\n\
6
- in vec2 outlineWidthAndOutlineColor;\n\
9
+ in vec4 showPixelSizeColorAlpha;\n\
10
+ in vec3 outlineWidthColorAlpha;\n\
7
11
  \n\
8
12
  out vec4 v_pickColor;\n\
9
13
  out vec4 v_color;\n\
@@ -13,11 +17,13 @@ out float v_innerRadiusFrac;\n\
13
17
  void main()\n\
14
18
  {\n\
15
19
  // Unpack attributes.\n\
16
- float show = showPixelSizeAndColor.x;\n\
17
- float pixelSize = showPixelSizeAndColor.y;\n\
18
- vec4 color = czm_decodeRGB8(showPixelSizeAndColor.z);\n\
19
- float outlineWidth = outlineWidthAndOutlineColor.x;\n\
20
- vec4 outlineColor = czm_decodeRGB8(outlineWidthAndOutlineColor.y);\n\
20
+ float show = showPixelSizeColorAlpha.x;\n\
21
+ float pixelSize = showPixelSizeColorAlpha.y;\n\
22
+ vec4 color = czm_decodeRGB8(showPixelSizeColorAlpha.z);\n\
23
+ float alpha = showPixelSizeColorAlpha.w;\n\
24
+ float outlineWidth = outlineWidthColorAlpha.x;\n\
25
+ vec4 outlineColor = czm_decodeRGB8(outlineWidthColorAlpha.y);\n\
26
+ float outlineAlpha = outlineWidthColorAlpha.z;\n\
21
27
  \n\
22
28
  ///////////////////////////////////////////////////////////////////////////\n\
23
29
  \n\
@@ -26,8 +32,12 @@ void main()\n\
26
32
  \n\
27
33
  ///////////////////////////////////////////////////////////////////////////\n\
28
34
  \n\
35
+ #ifdef USE_FLOAT64\n\
29
36
  vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);\n\
30
37
  vec4 positionEC = czm_modelViewRelativeToEye * p;\n\
38
+ #else\n\
39
+ vec4 positionEC = czm_modelView * vec4(position, 1.0);\n\
40
+ #endif\n\
31
41
  \n\
32
42
  ///////////////////////////////////////////////////////////////////////////\n\
33
43
  \n\
@@ -37,10 +47,10 @@ void main()\n\
37
47
  v_pickColor = pickColor / 255.0;\n\
38
48
  \n\
39
49
  v_color = color;\n\
40
- v_color.a *= show;\n\
50
+ v_color.a *= alpha * show;\n\
41
51
  \n\
42
52
  v_outlineColor = outlineColor;\n\
43
- v_outlineColor.a *= show;\n\
53
+ v_outlineColor.a *= outlineAlpha * show;\n\
44
54
  \n\
45
55
  v_innerRadiusFrac = innerRadius / outerRadius;\n\
46
56
  \n\
@@ -1,20 +1,29 @@
1
+ #ifdef USE_FLOAT64
1
2
  in vec3 positionHigh;
2
3
  in vec3 positionLow;
4
+ #else
5
+ in vec3 position;
6
+ #endif
3
7
  in vec4 pickColor;
4
- in vec2 showAndColor;
8
+ in vec3 showColorAlpha;
5
9
 
6
10
  out vec4 v_pickColor;
7
11
  out vec4 v_color;
8
12
 
9
13
  void main()
10
14
  {
11
- float show = showAndColor.x;
12
- vec4 color = czm_decodeRGB8(showAndColor.y);
15
+ float show = showColorAlpha.x;
16
+ vec4 color = czm_decodeRGB8(showColorAlpha.y);
17
+ float alpha = showColorAlpha.z;
13
18
 
14
19
  ///////////////////////////////////////////////////////////////////////////
15
20
 
21
+ #ifdef USE_FLOAT64
16
22
  vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
17
23
  vec4 positionEC = czm_modelViewRelativeToEye * p;
24
+ #else
25
+ vec4 positionEC = czm_modelView * vec4(position, 1.0);
26
+ #endif
18
27
 
19
28
  ///////////////////////////////////////////////////////////////////////////
20
29
 
@@ -24,7 +33,7 @@ void main()
24
33
  v_pickColor = pickColor / 255.0;
25
34
 
26
35
  v_color = color;
27
- v_color.a *= show;
36
+ v_color.a *= alpha * show;
28
37
 
29
38
  gl_Position *= show;
30
39
  }
@@ -1,21 +1,30 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "in vec3 positionHigh;\n\
2
+ export default "#ifdef USE_FLOAT64\n\
3
+ in vec3 positionHigh;\n\
3
4
  in vec3 positionLow;\n\
5
+ #else\n\
6
+ in vec3 position;\n\
7
+ #endif\n\
4
8
  in vec4 pickColor;\n\
5
- in vec2 showAndColor;\n\
9
+ in vec3 showColorAlpha;\n\
6
10
  \n\
7
11
  out vec4 v_pickColor;\n\
8
12
  out vec4 v_color;\n\
9
13
  \n\
10
14
  void main()\n\
11
15
  {\n\
12
- float show = showAndColor.x;\n\
13
- vec4 color = czm_decodeRGB8(showAndColor.y);\n\
16
+ float show = showColorAlpha.x;\n\
17
+ vec4 color = czm_decodeRGB8(showColorAlpha.y);\n\
18
+ float alpha = showColorAlpha.z;\n\
14
19
  \n\
15
20
  ///////////////////////////////////////////////////////////////////////////\n\
16
21
  \n\
22
+ #ifdef USE_FLOAT64\n\
17
23
  vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);\n\
18
24
  vec4 positionEC = czm_modelViewRelativeToEye * p;\n\
25
+ #else\n\
26
+ vec4 positionEC = czm_modelView * vec4(position, 1.0);\n\
27
+ #endif\n\
19
28
  \n\
20
29
  ///////////////////////////////////////////////////////////////////////////\n\
21
30
  \n\
@@ -25,7 +34,7 @@ void main()\n\
25
34
  v_pickColor = pickColor / 255.0;\n\
26
35
  \n\
27
36
  v_color = color;\n\
28
- v_color.a *= show;\n\
37
+ v_color.a *= alpha * show;\n\
29
38
  \n\
30
39
  gl_Position *= show;\n\
31
40
  }\n\
@@ -1,11 +1,18 @@
1
+ #ifdef USE_FLOAT64
1
2
  in vec3 positionHigh;
2
3
  in vec3 positionLow;
3
4
  in vec3 prevPositionHigh;
4
5
  in vec3 prevPositionLow;
5
6
  in vec3 nextPositionHigh;
6
7
  in vec3 nextPositionLow;
8
+ #else
9
+ in vec3 position;
10
+ in vec3 prevPosition;
11
+ in vec3 nextPosition;
12
+ #endif
7
13
  in vec4 pickColor;
8
14
  in vec4 showColorWidthAndTexCoord;
15
+ in float alpha;
9
16
 
10
17
  out vec4 v_pickColor;
11
18
  out vec4 v_color;
@@ -26,11 +33,18 @@ void main()
26
33
  float expandDir = gl_VertexID % 2 == 1 ? 1.0 : -1.0;
27
34
  float polylineAngle;
28
35
 
36
+ #ifdef USE_FLOAT64
29
37
  vec4 positionEC = czm_translateRelativeToEye(positionHigh, positionLow);
30
38
  vec4 prevPositionEC = czm_translateRelativeToEye(prevPositionHigh, prevPositionLow);
31
39
  vec4 nextPositionEC = czm_translateRelativeToEye(nextPositionHigh, nextPositionLow);
32
-
33
40
  vec4 positionWC = getPolylineWindowCoordinates(positionEC, prevPositionEC, nextPositionEC, expandDir, width, usePrevious, polylineAngle);
41
+ #else
42
+ vec4 positionEC = czm_modelView * vec4(position, 1.0);
43
+ vec4 prevPositionEC = czm_modelView * vec4(prevPosition, 1.0);
44
+ vec4 nextPositionEC = czm_modelView * vec4(nextPosition, 1.0);
45
+ // Positions are already in eye space; use the EC variant to skip the redundant transform.
46
+ vec4 positionWC = getPolylineWindowCoordinatesEC(positionEC, prevPositionEC, nextPositionEC, expandDir, width, usePrevious, polylineAngle);
47
+ #endif
34
48
 
35
49
  ///////////////////////////////////////////////////////////////////////////
36
50
 
@@ -39,7 +53,7 @@ void main()
39
53
  v_pickColor = pickColor / 255.0;
40
54
 
41
55
  v_color = color;
42
- v_color.a *= show;
56
+ v_color.a *= alpha / 255.0 * show;
43
57
 
44
58
  v_st.s = texCoord;
45
59
  v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w);
@@ -1,12 +1,19 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "in vec3 positionHigh;\n\
2
+ export default "#ifdef USE_FLOAT64\n\
3
+ in vec3 positionHigh;\n\
3
4
  in vec3 positionLow;\n\
4
5
  in vec3 prevPositionHigh;\n\
5
6
  in vec3 prevPositionLow;\n\
6
7
  in vec3 nextPositionHigh;\n\
7
8
  in vec3 nextPositionLow;\n\
9
+ #else\n\
10
+ in vec3 position;\n\
11
+ in vec3 prevPosition;\n\
12
+ in vec3 nextPosition;\n\
13
+ #endif\n\
8
14
  in vec4 pickColor;\n\
9
15
  in vec4 showColorWidthAndTexCoord;\n\
16
+ in float alpha;\n\
10
17
  \n\
11
18
  out vec4 v_pickColor;\n\
12
19
  out vec4 v_color;\n\
@@ -27,11 +34,18 @@ void main()\n\
27
34
  float expandDir = gl_VertexID % 2 == 1 ? 1.0 : -1.0;\n\
28
35
  float polylineAngle;\n\
29
36
  \n\
37
+ #ifdef USE_FLOAT64\n\
30
38
  vec4 positionEC = czm_translateRelativeToEye(positionHigh, positionLow);\n\
31
39
  vec4 prevPositionEC = czm_translateRelativeToEye(prevPositionHigh, prevPositionLow);\n\
32
40
  vec4 nextPositionEC = czm_translateRelativeToEye(nextPositionHigh, nextPositionLow);\n\
33
- \n\
34
41
  vec4 positionWC = getPolylineWindowCoordinates(positionEC, prevPositionEC, nextPositionEC, expandDir, width, usePrevious, polylineAngle);\n\
42
+ #else\n\
43
+ vec4 positionEC = czm_modelView * vec4(position, 1.0);\n\
44
+ vec4 prevPositionEC = czm_modelView * vec4(prevPosition, 1.0);\n\
45
+ vec4 nextPositionEC = czm_modelView * vec4(nextPosition, 1.0);\n\
46
+ // Positions are already in eye space; use the EC variant to skip the redundant transform.\n\
47
+ vec4 positionWC = getPolylineWindowCoordinatesEC(positionEC, prevPositionEC, nextPositionEC, expandDir, width, usePrevious, polylineAngle);\n\
48
+ #endif\n\
35
49
  \n\
36
50
  ///////////////////////////////////////////////////////////////////////////\n\
37
51
  \n\
@@ -40,7 +54,7 @@ void main()\n\
40
54
  v_pickColor = pickColor / 255.0;\n\
41
55
  \n\
42
56
  v_color = color;\n\
43
- v_color.a *= show;\n\
57
+ v_color.a *= alpha / 255.0 * show;\n\
44
58
  \n\
45
59
  v_st.s = texCoord;\n\
46
60
  v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w);\n\
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_EDGES_DIRECT}
3
+ *
4
+ * @name czm_passCesium3DTileEdgesDirect
5
+ * @glslConstant
6
+ *
7
+ * @see czm_pass
8
+ */
9
+ const float czm_passCesium3DTileEdgesDirect = 12.0;
@@ -0,0 +1,11 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "/**\n\
3
+ * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_EDGES_DIRECT}\n\
4
+ *\n\
5
+ * @name czm_passCesium3DTileEdgesDirect\n\
6
+ * @glslConstant\n\
7
+ *\n\
8
+ * @see czm_pass\n\
9
+ */\n\
10
+ const float czm_passCesium3DTileEdgesDirect = 12.0;\n\
11
+ ";
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * @see czm_pass
8
8
  */
9
- const float czm_passOverlay = 12.0;
9
+ const float czm_passOverlay = 13.0;
@@ -7,5 +7,5 @@ export default "/**\n\
7
7
  *\n\
8
8
  * @see czm_pass\n\
9
9
  */\n\
10
- const float czm_passOverlay = 12.0;\n\
10
+ const float czm_passOverlay = 13.0;\n\
11
11
  ";
@@ -15,6 +15,7 @@ import czm_passCesium3DTile from './Constants/passCesium3DTile.js'
15
15
  import czm_passCesium3DTileClassification from './Constants/passCesium3DTileClassification.js'
16
16
  import czm_passCesium3DTileClassificationIgnoreShow from './Constants/passCesium3DTileClassificationIgnoreShow.js'
17
17
  import czm_passCesium3DTileEdges from './Constants/passCesium3DTileEdges.js'
18
+ import czm_passCesium3DTileEdgesDirect from './Constants/passCesium3DTileEdgesDirect.js'
18
19
  import czm_passClassification from './Constants/passClassification.js'
19
20
  import czm_passCompute from './Constants/passCompute.js'
20
21
  import czm_passEnvironment from './Constants/passEnvironment.js'
@@ -71,6 +72,7 @@ import czm_computeAtmosphereColor from './Functions/computeAtmosphereColor.js'
71
72
  import czm_computeGroundAtmosphereScattering from './Functions/computeGroundAtmosphereScattering.js'
72
73
  import czm_computePosition from './Functions/computePosition.js'
73
74
  import czm_computeScattering from './Functions/computeScattering.js'
75
+ import czm_computeTextureTransform from './Functions/computeTextureTransform.js'
74
76
  import czm_cosineAndSine from './Functions/cosineAndSine.js'
75
77
  import czm_decodeRGB8 from './Functions/decodeRGB8.js'
76
78
  import czm_decompressTextureCoordinates from './Functions/decompressTextureCoordinates.js'
@@ -157,6 +159,7 @@ export default {
157
159
  czm_passCesium3DTileClassification : czm_passCesium3DTileClassification,
158
160
  czm_passCesium3DTileClassificationIgnoreShow : czm_passCesium3DTileClassificationIgnoreShow,
159
161
  czm_passCesium3DTileEdges : czm_passCesium3DTileEdges,
162
+ czm_passCesium3DTileEdgesDirect : czm_passCesium3DTileEdgesDirect,
160
163
  czm_passClassification : czm_passClassification,
161
164
  czm_passCompute : czm_passCompute,
162
165
  czm_passEnvironment : czm_passEnvironment,
@@ -213,6 +216,7 @@ export default {
213
216
  czm_computeGroundAtmosphereScattering : czm_computeGroundAtmosphereScattering,
214
217
  czm_computePosition : czm_computePosition,
215
218
  czm_computeScattering : czm_computeScattering,
219
+ czm_computeTextureTransform : czm_computeTextureTransform,
216
220
  czm_cosineAndSine : czm_cosineAndSine,
217
221
  czm_decodeRGB8 : czm_decodeRGB8,
218
222
  czm_decompressTextureCoordinates : czm_decompressTextureCoordinates,
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Applies a 2D texture transformation matrix to texture coordinates.
3
+ * This function applies translation, rotation, and scaling transformations
4
+ * as specified by the KHR_texture_transform glTF extension.
5
+ *
6
+ * @name czm_computeTextureTransform
7
+ * @glslFunction
8
+ *
9
+ * @param {vec2} texCoord The texture coordinates to transform.
10
+ * @param {mat3} textureTransform The 3x3 transformation matrix.
11
+ *
12
+ * @returns {vec2} The transformed texture coordinates.
13
+ *
14
+ * @example
15
+ * // GLSL declaration
16
+ * vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform);
17
+ *
18
+ * // Apply texture transform to UV coordinates
19
+ * vec2 transformedUV = czm_computeTextureTransform(uv, u_textureTransform);
20
+ */
21
+ vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform)
22
+ {
23
+ return vec2(textureTransform * vec3(texCoord, 1.0));
24
+ }
@@ -0,0 +1,25 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "/**\n\
3
+ * Applies a 2D texture transformation matrix to texture coordinates.\n\
4
+ * This function applies translation, rotation, and scaling transformations\n\
5
+ * as specified by the KHR_texture_transform glTF extension.\n\
6
+ *\n\
7
+ * @name czm_computeTextureTransform\n\
8
+ * @glslFunction\n\
9
+ *\n\
10
+ * @param {vec2} texCoord The texture coordinates to transform.\n\
11
+ * @param {mat3} textureTransform The 3x3 transformation matrix.\n\
12
+ *\n\
13
+ * @returns {vec2} The transformed texture coordinates.\n\
14
+ *\n\
15
+ * @example\n\
16
+ * // GLSL declaration\n\
17
+ * vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform);\n\
18
+ *\n\
19
+ * // Apply texture transform to UV coordinates\n\
20
+ * vec2 transformedUV = czm_computeTextureTransform(uv, u_textureTransform);\n\
21
+ */\n\
22
+ vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform)\n\
23
+ {\n\
24
+ return vec2(textureTransform * vec3(texCoord, 1.0));\n\
25
+ }";
@@ -0,0 +1,60 @@
1
+ #ifdef HAS_CONSTANT_LOD
2
+
3
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams) {
4
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;
5
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;
6
+ bool atClampBoundary = atMaxClamp || atMinClamp;
7
+
8
+ float effectiveDistance = atMaxClamp ? constantLodParams.y :
9
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);
10
+
11
+ float logDepth = log2(effectiveDistance);
12
+ logDepth = clamp(logDepth, -10.0, 20.0);
13
+
14
+ float f = fract(logDepth);
15
+ float p = floor(logDepth);
16
+
17
+ if (atClampBoundary) {
18
+ float clampedP = ceil(logDepth);
19
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;
20
+ return texture(textureSampler, tc);
21
+ }
22
+
23
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;
24
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;
25
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);
26
+ }
27
+
28
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams, mat3 textureTransform) {
29
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;
30
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;
31
+ bool atClampBoundary = atMaxClamp || atMinClamp;
32
+
33
+ float effectiveDistance = atMaxClamp ? constantLodParams.y :
34
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);
35
+
36
+ float logDepth = log2(effectiveDistance);
37
+ logDepth = clamp(logDepth, -10.0, 20.0);
38
+
39
+ float f = fract(logDepth);
40
+ float p = floor(logDepth);
41
+
42
+ if (atClampBoundary) {
43
+ float clampedP = ceil(logDepth);
44
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;
45
+ // Apply texture transform to the final texture coordinates
46
+ tc = czm_computeTextureTransform(tc, textureTransform);
47
+ return texture(textureSampler, tc);
48
+ }
49
+
50
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;
51
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;
52
+
53
+ // Apply texture transform to both LOD texture coordinates before mixing
54
+ tc1 = czm_computeTextureTransform(tc1, textureTransform);
55
+ tc2 = czm_computeTextureTransform(tc2, textureTransform);
56
+
57
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);
58
+ }
59
+
60
+ #endif
@@ -0,0 +1,62 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "#ifdef HAS_CONSTANT_LOD\n\
3
+ \n\
4
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams) {\n\
5
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;\n\
6
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;\n\
7
+ bool atClampBoundary = atMaxClamp || atMinClamp;\n\
8
+ \n\
9
+ float effectiveDistance = atMaxClamp ? constantLodParams.y : \n\
10
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);\n\
11
+ \n\
12
+ float logDepth = log2(effectiveDistance);\n\
13
+ logDepth = clamp(logDepth, -10.0, 20.0);\n\
14
+ \n\
15
+ float f = fract(logDepth);\n\
16
+ float p = floor(logDepth);\n\
17
+ \n\
18
+ if (atClampBoundary) {\n\
19
+ float clampedP = ceil(logDepth);\n\
20
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;\n\
21
+ return texture(textureSampler, tc);\n\
22
+ }\n\
23
+ \n\
24
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;\n\
25
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;\n\
26
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);\n\
27
+ }\n\
28
+ \n\
29
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams, mat3 textureTransform) {\n\
30
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;\n\
31
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;\n\
32
+ bool atClampBoundary = atMaxClamp || atMinClamp;\n\
33
+ \n\
34
+ float effectiveDistance = atMaxClamp ? constantLodParams.y : \n\
35
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);\n\
36
+ \n\
37
+ float logDepth = log2(effectiveDistance);\n\
38
+ logDepth = clamp(logDepth, -10.0, 20.0);\n\
39
+ \n\
40
+ float f = fract(logDepth);\n\
41
+ float p = floor(logDepth);\n\
42
+ \n\
43
+ if (atClampBoundary) {\n\
44
+ float clampedP = ceil(logDepth);\n\
45
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;\n\
46
+ // Apply texture transform to the final texture coordinates\n\
47
+ tc = czm_computeTextureTransform(tc, textureTransform);\n\
48
+ return texture(textureSampler, tc);\n\
49
+ }\n\
50
+ \n\
51
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;\n\
52
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;\n\
53
+ \n\
54
+ // Apply texture transform to both LOD texture coordinates before mixing\n\
55
+ tc1 = czm_computeTextureTransform(tc1, textureTransform);\n\
56
+ tc2 = czm_computeTextureTransform(tc2, textureTransform);\n\
57
+ \n\
58
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);\n\
59
+ }\n\
60
+ \n\
61
+ #endif\n\
62
+ ";
@@ -0,0 +1,12 @@
1
+ #ifdef HAS_CONSTANT_LOD
2
+ // Extract model scale to compensate for minimumPixelSize scaling
3
+ float modelScaleX = length(czm_model[0].xyz);
4
+ float modelScaleY = length(czm_model[1].xyz);
5
+ float modelScaleZ = length(czm_model[2].xyz);
6
+ float modelScale = (modelScaleX + modelScaleY + modelScaleZ) / 3.0;
7
+
8
+ // Transform model position through ENU but as direction only (w=0) to avoid position-dependent rotation
9
+ vec3 enuDir = (u_constantLodWorldToEnu * czm_model * vec4(v_positionMC, 0.0)).xyz;
10
+ v_constantLodUvCustom.xy = (enuDir.yx + u_constantLodOffset) / modelScale;
11
+ v_constantLodUvCustom.z = u_constantLodDistance / modelScale;
12
+ #endif
@@ -0,0 +1,13 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "#ifdef HAS_CONSTANT_LOD\n\
3
+ // Extract model scale to compensate for minimumPixelSize scaling\n\
4
+ float modelScaleX = length(czm_model[0].xyz);\n\
5
+ float modelScaleY = length(czm_model[1].xyz);\n\
6
+ float modelScaleZ = length(czm_model[2].xyz);\n\
7
+ float modelScale = (modelScaleX + modelScaleY + modelScaleZ) / 3.0;\n\
8
+ \n\
9
+ // Transform model position through ENU but as direction only (w=0) to avoid position-dependent rotation\n\
10
+ vec3 enuDir = (u_constantLodWorldToEnu * czm_model * vec4(v_positionMC, 0.0)).xyz;\n\
11
+ v_constantLodUvCustom.xy = (enuDir.yx + u_constantLodOffset) / modelScale;\n\
12
+ v_constantLodUvCustom.z = u_constantLodDistance / modelScale;\n\
13
+ #endif";
@@ -5,7 +5,6 @@ void edgeVisibilityStageVS() {
5
5
  }
6
6
 
7
7
  v_edgeType = a_edgeType;
8
- v_silhouetteNormalView = czm_normal * a_silhouetteNormal;
9
8
  v_faceNormalAView = czm_normal * a_faceNormalA;
10
9
  v_faceNormalBView = czm_normal * a_faceNormalB;
11
10
  v_edgeOffset = a_edgeOffset;
@@ -6,7 +6,6 @@ void edgeVisibilityStageVS() {\n\
6
6
  }\n\
7
7
  \n\
8
8
  v_edgeType = a_edgeType;\n\
9
- v_silhouetteNormalView = czm_normal * a_silhouetteNormal;\n\
10
9
  v_faceNormalAView = czm_normal * a_faceNormalA;\n\
11
10
  v_faceNormalBView = czm_normal * a_faceNormalB;\n\
12
11
  v_edgeOffset = a_edgeOffset;\n\