@itwin/core-frontend 5.0.0-dev.90 → 5.0.0-dev.92

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 (330) hide show
  1. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  2. package/lib/cjs/ContextRealityModelState.js +2 -0
  3. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  4. package/lib/cjs/ModelState.d.ts.map +1 -1
  5. package/lib/cjs/ModelState.js +4 -0
  6. package/lib/cjs/ModelState.js.map +1 -1
  7. package/lib/cjs/NoRenderApp.d.ts +1 -1
  8. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  9. package/lib/cjs/NoRenderApp.js +1 -1
  10. package/lib/cjs/NoRenderApp.js.map +1 -1
  11. package/lib/cjs/Viewport.d.ts +1 -0
  12. package/lib/cjs/Viewport.d.ts.map +1 -1
  13. package/lib/cjs/Viewport.js +4 -1
  14. package/lib/cjs/Viewport.js.map +1 -1
  15. package/lib/cjs/common/internal/render/MeshParams.d.ts +2 -0
  16. package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -1
  17. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
  18. package/lib/cjs/internal/render/{RealityMeshGraphicParams.d.ts → MeshMapLayerGraphicParams.d.ts} +4 -4
  19. package/lib/cjs/internal/render/MeshMapLayerGraphicParams.d.ts.map +1 -0
  20. package/lib/cjs/internal/render/{RealityMeshGraphicParams.js → MeshMapLayerGraphicParams.js} +1 -1
  21. package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -0
  22. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
  23. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  24. package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts +54 -0
  25. package/lib/cjs/internal/render/webgl/MapLayerParams.d.ts.map +1 -0
  26. package/lib/cjs/internal/render/webgl/MapLayerParams.js +198 -0
  27. package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -0
  28. package/lib/cjs/internal/render/webgl/Mesh.js +1 -1
  29. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  30. package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
  31. package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
  32. package/lib/cjs/internal/render/webgl/RealityMesh.d.ts +6 -35
  33. package/lib/cjs/internal/render/webgl/RealityMesh.d.ts.map +1 -1
  34. package/lib/cjs/internal/render/webgl/RealityMesh.js +41 -154
  35. package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
  36. package/lib/cjs/internal/render/webgl/RenderFlags.d.ts +7 -1
  37. package/lib/cjs/internal/render/webgl/RenderFlags.d.ts.map +1 -1
  38. package/lib/cjs/internal/render/webgl/RenderFlags.js +7 -0
  39. package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
  40. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +12 -11
  41. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  42. package/lib/cjs/internal/render/webgl/ShaderBuilder.js +13 -8
  43. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  44. package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts +5 -2
  45. package/lib/cjs/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  46. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js +49 -3
  47. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  48. package/lib/cjs/internal/render/webgl/System.d.ts +2 -2
  49. package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
  50. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  51. package/lib/cjs/internal/render/webgl/Target.d.ts +1 -1
  52. package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
  53. package/lib/cjs/internal/render/webgl/Target.js +11 -2
  54. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  55. package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js +1 -1
  56. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
  57. package/lib/cjs/internal/render/webgl/glsl/Blur.js +1 -1
  58. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +1 -1
  59. package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js +1 -1
  60. package/lib/cjs/internal/render/webgl/glsl/Clipping.js +1 -1
  61. package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js +1 -1
  62. package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js +1 -1
  63. package/lib/cjs/internal/render/webgl/glsl/Composite.js +1 -1
  64. package/lib/cjs/internal/render/webgl/glsl/CopyColor.js +1 -1
  65. package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js +1 -1
  66. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +5 -5
  67. package/lib/cjs/internal/render/webgl/glsl/EDL.js +4 -4
  68. package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js +1 -1
  69. package/lib/cjs/internal/render/webgl/glsl/Edge.js +1 -1
  70. package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js +2 -2
  71. package/lib/cjs/internal/render/webgl/glsl/Fragment.js +9 -9
  72. package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  73. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.d.ts +12 -0
  74. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.d.ts.map +1 -0
  75. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js +116 -0
  76. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -0
  77. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +3 -3
  78. package/lib/cjs/internal/render/webgl/glsl/PointCloud.js +2 -2
  79. package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  80. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  81. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +6 -91
  82. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  83. package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  84. package/lib/cjs/internal/render/webgl/glsl/SkyBox.js +1 -1
  85. package/lib/cjs/internal/render/webgl/glsl/SkySphere.js +1 -1
  86. package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js +1 -1
  87. package/lib/cjs/internal/render/webgl/glsl/Surface.d.ts +1 -1
  88. package/lib/cjs/internal/render/webgl/glsl/Surface.d.ts.map +1 -1
  89. package/lib/cjs/internal/render/webgl/glsl/Surface.js +73 -7
  90. package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
  91. package/lib/cjs/internal/render/webgl/glsl/Translucency.js +1 -1
  92. package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js +1 -1
  93. package/lib/cjs/internal/tile/B3dmReader.d.ts +2 -1
  94. package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -1
  95. package/lib/cjs/internal/tile/B3dmReader.js +5 -5
  96. package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
  97. package/lib/cjs/internal/tile/I3dmReader.d.ts +2 -1
  98. package/lib/cjs/internal/tile/I3dmReader.d.ts.map +1 -1
  99. package/lib/cjs/internal/tile/I3dmReader.js +4 -4
  100. package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
  101. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  102. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  103. package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts +2 -0
  104. package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  105. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +1 -0
  106. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  107. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  108. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts +14 -3
  109. package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  110. package/lib/cjs/internal/tile/RealityModelTileTree.js +51 -11
  111. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  112. package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
  113. package/lib/cjs/internal/tile/RealityTileLoader.js +8 -2
  114. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  115. package/lib/cjs/render/RealityMeshParams.d.ts +3 -0
  116. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
  117. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  118. package/lib/cjs/render/RenderSystem.d.ts +4 -3
  119. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  120. package/lib/cjs/render/RenderSystem.js +2 -1
  121. package/lib/cjs/render/RenderSystem.js.map +1 -1
  122. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  123. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  124. package/lib/cjs/render/RenderTarget.js +1 -1
  125. package/lib/cjs/render/RenderTarget.js.map +1 -1
  126. package/lib/cjs/tile/GltfReader.d.ts +8 -2
  127. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  128. package/lib/cjs/tile/GltfReader.js +11 -2
  129. package/lib/cjs/tile/GltfReader.js.map +1 -1
  130. package/lib/cjs/tile/ImdlReader.d.ts +2 -1
  131. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  132. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  133. package/lib/cjs/tile/LayerTileTreeHandler.d.ts +47 -0
  134. package/lib/cjs/tile/LayerTileTreeHandler.d.ts.map +1 -0
  135. package/lib/cjs/tile/LayerTileTreeHandler.js +54 -0
  136. package/lib/cjs/tile/LayerTileTreeHandler.js.map +1 -0
  137. package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts +36 -0
  138. package/lib/cjs/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
  139. package/lib/cjs/tile/LayerTileTreeReferenceHandler.js +150 -0
  140. package/lib/cjs/tile/LayerTileTreeReferenceHandler.js.map +1 -0
  141. package/lib/cjs/tile/Tile.d.ts +2 -0
  142. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  143. package/lib/cjs/tile/Tile.js +7 -0
  144. package/lib/cjs/tile/Tile.js.map +1 -1
  145. package/lib/cjs/tile/TileTree.d.ts +3 -1
  146. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  147. package/lib/cjs/tile/TileTree.js +2 -0
  148. package/lib/cjs/tile/TileTree.js.map +1 -1
  149. package/lib/cjs/tile/internal.d.ts +2 -0
  150. package/lib/cjs/tile/internal.d.ts.map +1 -1
  151. package/lib/cjs/tile/internal.js +2 -0
  152. package/lib/cjs/tile/internal.js.map +1 -1
  153. package/lib/cjs/tile/map/MapTile.d.ts +8 -2
  154. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  155. package/lib/cjs/tile/map/MapTile.js +10 -16
  156. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  157. package/lib/cjs/tile/map/MapTileTree.d.ts +8 -36
  158. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  159. package/lib/cjs/tile/map/MapTileTree.js +47 -176
  160. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  161. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +9 -9
  162. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  163. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  164. package/lib/esm/ContextRealityModelState.js +2 -0
  165. package/lib/esm/ContextRealityModelState.js.map +1 -1
  166. package/lib/esm/ModelState.d.ts.map +1 -1
  167. package/lib/esm/ModelState.js +4 -0
  168. package/lib/esm/ModelState.js.map +1 -1
  169. package/lib/esm/NoRenderApp.d.ts +1 -1
  170. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  171. package/lib/esm/NoRenderApp.js +1 -1
  172. package/lib/esm/NoRenderApp.js.map +1 -1
  173. package/lib/esm/Viewport.d.ts +1 -0
  174. package/lib/esm/Viewport.d.ts.map +1 -1
  175. package/lib/esm/Viewport.js +4 -1
  176. package/lib/esm/Viewport.js.map +1 -1
  177. package/lib/esm/common/internal/render/MeshParams.d.ts +2 -0
  178. package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -1
  179. package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
  180. package/lib/esm/internal/render/{RealityMeshGraphicParams.d.ts → MeshMapLayerGraphicParams.d.ts} +4 -4
  181. package/lib/esm/internal/render/MeshMapLayerGraphicParams.d.ts.map +1 -0
  182. package/lib/esm/internal/render/{RealityMeshGraphicParams.js → MeshMapLayerGraphicParams.js} +1 -1
  183. package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -0
  184. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
  185. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  186. package/lib/esm/internal/render/webgl/MapLayerParams.d.ts +54 -0
  187. package/lib/esm/internal/render/webgl/MapLayerParams.d.ts.map +1 -0
  188. package/lib/esm/internal/render/webgl/MapLayerParams.js +192 -0
  189. package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -0
  190. package/lib/esm/internal/render/webgl/Mesh.js +1 -1
  191. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  192. package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
  193. package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
  194. package/lib/esm/internal/render/webgl/RealityMesh.d.ts +6 -35
  195. package/lib/esm/internal/render/webgl/RealityMesh.d.ts.map +1 -1
  196. package/lib/esm/internal/render/webgl/RealityMesh.js +41 -153
  197. package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
  198. package/lib/esm/internal/render/webgl/RenderFlags.d.ts +7 -1
  199. package/lib/esm/internal/render/webgl/RenderFlags.d.ts.map +1 -1
  200. package/lib/esm/internal/render/webgl/RenderFlags.js +7 -0
  201. package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
  202. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +12 -11
  203. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  204. package/lib/esm/internal/render/webgl/ShaderBuilder.js +13 -8
  205. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  206. package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts +5 -2
  207. package/lib/esm/internal/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  208. package/lib/esm/internal/render/webgl/SurfaceGeometry.js +50 -4
  209. package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  210. package/lib/esm/internal/render/webgl/System.d.ts +2 -2
  211. package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
  212. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  213. package/lib/esm/internal/render/webgl/Target.d.ts +1 -1
  214. package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
  215. package/lib/esm/internal/render/webgl/Target.js +11 -2
  216. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  217. package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js +1 -1
  218. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
  219. package/lib/esm/internal/render/webgl/glsl/Blur.js +1 -1
  220. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +1 -1
  221. package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js +1 -1
  222. package/lib/esm/internal/render/webgl/glsl/Clipping.js +1 -1
  223. package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js +1 -1
  224. package/lib/esm/internal/render/webgl/glsl/CombineTextures.js +1 -1
  225. package/lib/esm/internal/render/webgl/glsl/Composite.js +1 -1
  226. package/lib/esm/internal/render/webgl/glsl/CopyColor.js +1 -1
  227. package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js +1 -1
  228. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +5 -5
  229. package/lib/esm/internal/render/webgl/glsl/EDL.js +4 -4
  230. package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js +1 -1
  231. package/lib/esm/internal/render/webgl/glsl/Edge.js +1 -1
  232. package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js +2 -2
  233. package/lib/esm/internal/render/webgl/glsl/Fragment.js +9 -9
  234. package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  235. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.d.ts +12 -0
  236. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.d.ts.map +1 -0
  237. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js +111 -0
  238. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -0
  239. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +3 -3
  240. package/lib/esm/internal/render/webgl/glsl/PointCloud.js +2 -2
  241. package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  242. package/lib/esm/internal/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  243. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +5 -90
  244. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  245. package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  246. package/lib/esm/internal/render/webgl/glsl/SkyBox.js +1 -1
  247. package/lib/esm/internal/render/webgl/glsl/SkySphere.js +1 -1
  248. package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js +1 -1
  249. package/lib/esm/internal/render/webgl/glsl/Surface.d.ts +1 -1
  250. package/lib/esm/internal/render/webgl/glsl/Surface.d.ts.map +1 -1
  251. package/lib/esm/internal/render/webgl/glsl/Surface.js +73 -7
  252. package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
  253. package/lib/esm/internal/render/webgl/glsl/Translucency.js +1 -1
  254. package/lib/esm/internal/render/webgl/glsl/Wiremesh.js +1 -1
  255. package/lib/esm/internal/tile/B3dmReader.d.ts +2 -1
  256. package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -1
  257. package/lib/esm/internal/tile/B3dmReader.js +5 -5
  258. package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
  259. package/lib/esm/internal/tile/I3dmReader.d.ts +2 -1
  260. package/lib/esm/internal/tile/I3dmReader.d.ts.map +1 -1
  261. package/lib/esm/internal/tile/I3dmReader.js +4 -4
  262. package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
  263. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  264. package/lib/esm/internal/tile/IModelTileTree.js +2 -2
  265. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  266. package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts +2 -0
  267. package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  268. package/lib/esm/internal/tile/ImdlGraphicsCreator.js +1 -0
  269. package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  270. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  271. package/lib/esm/internal/tile/RealityModelTileTree.d.ts +14 -3
  272. package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
  273. package/lib/esm/internal/tile/RealityModelTileTree.js +53 -13
  274. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  275. package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
  276. package/lib/esm/internal/tile/RealityTileLoader.js +8 -2
  277. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  278. package/lib/esm/render/RealityMeshParams.d.ts +3 -0
  279. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
  280. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  281. package/lib/esm/render/RenderSystem.d.ts +4 -3
  282. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  283. package/lib/esm/render/RenderSystem.js +2 -1
  284. package/lib/esm/render/RenderSystem.js.map +1 -1
  285. package/lib/esm/render/RenderTarget.d.ts +1 -1
  286. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  287. package/lib/esm/render/RenderTarget.js +1 -1
  288. package/lib/esm/render/RenderTarget.js.map +1 -1
  289. package/lib/esm/tile/GltfReader.d.ts +8 -2
  290. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  291. package/lib/esm/tile/GltfReader.js +11 -2
  292. package/lib/esm/tile/GltfReader.js.map +1 -1
  293. package/lib/esm/tile/ImdlReader.d.ts +2 -1
  294. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  295. package/lib/esm/tile/ImdlReader.js.map +1 -1
  296. package/lib/esm/tile/LayerTileTreeHandler.d.ts +47 -0
  297. package/lib/esm/tile/LayerTileTreeHandler.d.ts.map +1 -0
  298. package/lib/esm/tile/LayerTileTreeHandler.js +50 -0
  299. package/lib/esm/tile/LayerTileTreeHandler.js.map +1 -0
  300. package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts +36 -0
  301. package/lib/esm/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -0
  302. package/lib/esm/tile/LayerTileTreeReferenceHandler.js +146 -0
  303. package/lib/esm/tile/LayerTileTreeReferenceHandler.js.map +1 -0
  304. package/lib/esm/tile/Tile.d.ts +2 -0
  305. package/lib/esm/tile/Tile.d.ts.map +1 -1
  306. package/lib/esm/tile/Tile.js +7 -0
  307. package/lib/esm/tile/Tile.js.map +1 -1
  308. package/lib/esm/tile/TileTree.d.ts +3 -1
  309. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  310. package/lib/esm/tile/TileTree.js +2 -0
  311. package/lib/esm/tile/TileTree.js.map +1 -1
  312. package/lib/esm/tile/internal.d.ts +2 -0
  313. package/lib/esm/tile/internal.d.ts.map +1 -1
  314. package/lib/esm/tile/internal.js +2 -0
  315. package/lib/esm/tile/internal.js.map +1 -1
  316. package/lib/esm/tile/map/MapTile.d.ts +8 -2
  317. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  318. package/lib/esm/tile/map/MapTile.js +9 -16
  319. package/lib/esm/tile/map/MapTile.js.map +1 -1
  320. package/lib/esm/tile/map/MapTileTree.d.ts +8 -36
  321. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  322. package/lib/esm/tile/map/MapTileTree.js +49 -178
  323. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  324. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +9 -9
  325. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  326. package/package.json +16 -16
  327. package/lib/cjs/internal/render/RealityMeshGraphicParams.d.ts.map +0 -1
  328. package/lib/cjs/internal/render/RealityMeshGraphicParams.js.map +0 -1
  329. package/lib/esm/internal/render/RealityMeshGraphicParams.d.ts.map +0 -1
  330. package/lib/esm/internal/render/RealityMeshGraphicParams.js.map +0 -1
@@ -30,7 +30,7 @@ export function createCombineTexturesProgram(context) {
30
30
  Texture2DHandle.bindSampler(uniform, params.geometry.texture1, TextureUnit.One);
31
31
  });
32
32
  }, 3 /* VariablePrecision.High */);
33
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragData);
33
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragData);
34
34
  builder.vert.headerComment = "//!V! CombineTextures";
35
35
  builder.frag.headerComment = "//!F! CombineTextures";
36
36
  return builder.buildProgram(context);
@@ -113,7 +113,7 @@ export function createCompositeProgram(flags, context) {
113
113
  const frag = builder.frag;
114
114
  frag.addFunction(wantOcclusion ? computeAmbientOcclusion : computeDefaultAmbientOcclusion);
115
115
  frag.addFunction(computeOpaqueColor);
116
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
116
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
117
117
  frag.addUniform("u_opaque", 8 /* VariableType.Sampler2D */, (prog) => {
118
118
  prog.addGraphicUniform("u_opaque", (uniform, params) => {
119
119
  Texture2DHandle.bindSampler(uniform, params.geometry.opaque, TextureUnit.Zero);
@@ -24,7 +24,7 @@ export function createCopyColorProgram(context, copyAlpha = true) {
24
24
  const builder = createViewportQuadBuilder(true);
25
25
  const frag = builder.frag;
26
26
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, copyAlpha ? computeColor : computeColorNoAlpha);
27
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
27
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
28
28
  frag.addUniform("u_color", 8 /* VariableType.Sampler2D */, (prog) => {
29
29
  prog.addGraphicUniform("u_color", (uniform, params) => {
30
30
  const geom = params.geometry;
@@ -29,7 +29,7 @@ export function createCopyPickBuffersProgram(context) {
29
29
  });
30
30
  }, 3 /* VariablePrecision.High */);
31
31
  frag.addDrawBuffersExtension(2);
32
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragData);
32
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragData);
33
33
  builder.vert.headerComment = "//!V! CopyPickBuffers";
34
34
  builder.frag.headerComment = "//!F! CopyPickBuffers";
35
35
  return builder.buildProgram(context);
@@ -52,7 +52,7 @@ export function createVolClassColorUsingStencilProgram(context) {
52
52
  const builder = createViewportQuadBuilder(false);
53
53
  const frag = builder.frag;
54
54
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computehiliteColor);
55
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
55
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
56
56
  frag.addUniform("u_hilite_color", 5 /* VariableType.Vec4 */, (prog) => {
57
57
  prog.addGraphicUniform("u_hilite_color", (uniform, params) => {
58
58
  const useLighting = params.geometry.getFlashMode(params);
@@ -75,7 +75,7 @@ export function createVolClassCopyZProgram(context) {
75
75
  builder.addInlineComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, computeTexCoord); // TODO: I think this is not necessary because it's already added from the create above
76
76
  const frag = builder.frag;
77
77
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeSetBlendColor);
78
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
78
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
79
79
  frag.addUniform("u_blend_color", 5 /* VariableType.Vec4 */, (prog) => {
80
80
  prog.addGraphicUniform("u_blend_color", (uniform, _params) => {
81
81
  scratchColor.set(0.0, 0.0, 0.0, 0.0);
@@ -88,7 +88,7 @@ export function createVolClassCopyZProgram(context) {
88
88
  Texture2DHandle.bindSampler(uniform, geom.texture, TextureUnit.Zero);
89
89
  });
90
90
  });
91
- frag.set(19 /* FragmentShaderComponent.FinalizeDepth */, depthFromTexture);
91
+ frag.set(20 /* FragmentShaderComponent.FinalizeDepth */, depthFromTexture);
92
92
  builder.vert.headerComment = "//!V! VolClassCopyZ";
93
93
  builder.frag.headerComment = "//!F! VolClassCopyZ";
94
94
  return builder.buildProgram(context);
@@ -101,7 +101,7 @@ export function createVolClassSetBlendProgram(context) {
101
101
  addBoundaryTypeConstants(frag);
102
102
  frag.set(0 /* FragmentShaderComponent.CheckForEarlyDiscard */, checkDiscardBackgroundByZ);
103
103
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeSetBlendColor);
104
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
104
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
105
105
  frag.addUniform("u_boundaryType", 1 /* VariableType.Int */, (prog) => {
106
106
  prog.addGraphicUniform("u_boundaryType", (uniform, params) => {
107
107
  const geom = params.geometry;
@@ -144,7 +144,7 @@ export function createVolClassBlendProgram(context) {
144
144
  builder.addInlineComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, computeTexCoord);
145
145
  const frag = builder.frag;
146
146
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeBlendTextureColor);
147
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
147
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
148
148
  frag.addUniform("u_blendTexture", 8 /* VariableType.Sampler2D */, (prog) => {
149
149
  prog.addGraphicUniform("u_blendTexture", (uniform, params) => {
150
150
  const geom = params.geometry;
@@ -45,7 +45,7 @@ export function createEDLCalcBasicProgram(context) {
45
45
  const builder = createViewportQuadBuilder(true);
46
46
  const frag = builder.frag;
47
47
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, calcBasicEDL);
48
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
48
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
49
49
  frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
50
50
  prog.addGraphicUniform("u_texInfo", (uniform, params) => {
51
51
  const geom = params.geometry;
@@ -111,7 +111,7 @@ export function createEDLCalcFullProgram(context) {
111
111
  const builder = createViewportQuadBuilder(true);
112
112
  const frag = builder.frag;
113
113
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, calcFullEDL);
114
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
114
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
115
115
  frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
116
116
  prog.addGraphicUniform("u_texInfo", (uniform, params) => {
117
117
  const geom = params.geometry;
@@ -182,7 +182,7 @@ export function createEDLFilterProgram(context) {
182
182
  const builder = createViewportQuadBuilder(true);
183
183
  const frag = builder.frag;
184
184
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, filterEDL);
185
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
185
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
186
186
  frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
187
187
  prog.addGraphicUniform("u_texInfo", (uniform, params) => {
188
188
  const geom = params.geometry;
@@ -221,7 +221,7 @@ export function createEDLMixProgram(context) {
221
221
  const builder = createViewportQuadBuilder(true);
222
222
  const frag = builder.frag;
223
223
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, mixEDL);
224
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
224
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
225
225
  frag.addUniform("u_colorTexture1", 8 /* VariableType.Sampler2D */, (prog) => {
226
226
  prog.addGraphicUniform("u_colorTexture1", (uniform, params) => {
227
227
  const geom = params.geometry;
@@ -63,7 +63,7 @@ export function createEVSMProgram(context) {
63
63
  addEvsmExponent(frag);
64
64
  frag.addFunction(warpDepth);
65
65
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeEVSM);
66
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
66
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
67
67
  builder.vert.headerComment = "//!V! EVSMFromDepth";
68
68
  builder.frag.headerComment = "//!F! EVSMFromDepth";
69
69
  return builder.buildProgram(context);
@@ -237,7 +237,7 @@ function createBase(type, instanced, isAnimated, positionType) {
237
237
  addRenderOrder(vert);
238
238
  addRenderOrderConstants(vert);
239
239
  builder.addInlineComputedVarying("v_renderOrder", 2 /* VariableType.Float */, computeIndexedRenderOrder);
240
- builder.frag.set(21 /* FragmentShaderComponent.OverrideRenderOrder */, "return v_renderOrder;");
240
+ builder.frag.set(22 /* FragmentShaderComponent.OverrideRenderOrder */, "return v_renderOrder;");
241
241
  }
242
242
  else {
243
243
  vert.addInitializer(decodeEndPointAndQuadIndices);
@@ -297,7 +297,7 @@ export function addHiliter(builder, wantWeight = false) {
297
297
  addEmphasisFlags(builder.frag);
298
298
  addExtractNthBit(builder.frag);
299
299
  builder.frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeHiliteColor);
300
- builder.frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
300
+ builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
301
301
  }
302
302
  function addSamplers(frag, testFeatureId) {
303
303
  if (testFeatureId) {
@@ -663,7 +663,7 @@ export function addUniformHiliter(builder) {
663
663
  addEmphasisFlags(builder.frag);
664
664
  addExtractNthBit(builder.frag);
665
665
  builder.frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeHiliteColor);
666
- builder.frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
666
+ builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
667
667
  }
668
668
  /** For a uniform feature table, the feature ID output to pick buffers is equal to the batch ID.
669
669
  * The following symbology overrides are supported:
@@ -68,7 +68,7 @@ export function addPickBufferOutputs(frag) {
68
68
  frag.addFunction(encodeDepthRgb);
69
69
  frag.addFunction(computeLinearDepth);
70
70
  const prelude = new SourceBuilder();
71
- const overrideOrder = frag.get(21 /* FragmentShaderComponent.OverrideRenderOrder */);
71
+ const overrideOrder = frag.get(22 /* FragmentShaderComponent.OverrideRenderOrder */);
72
72
  if (overrideOrder) {
73
73
  frag.addFunction("float overrideRenderOrder(float currentOrder)", overrideOrder);
74
74
  prelude.addline(" float renderOrder = overrideRenderOrder(u_renderOrder);");
@@ -77,43 +77,43 @@ export function addPickBufferOutputs(frag) {
77
77
  prelude.addline(" float renderOrder = u_renderOrder;");
78
78
  }
79
79
  prelude.add(computePickBufferOutputs);
80
- const overrideColor = frag.get(20 /* FragmentShaderComponent.OverrideColor */);
80
+ const overrideColor = frag.get(21 /* FragmentShaderComponent.OverrideColor */);
81
81
  if (undefined !== overrideColor) {
82
82
  frag.addFunction("vec4 overrideColor(vec4 currentColor)", overrideColor);
83
83
  prelude.addline(" output0 = overrideColor(output0);");
84
84
  }
85
- const overrideFeatureId = frag.get(18 /* FragmentShaderComponent.OverrideFeatureId */);
85
+ const overrideFeatureId = frag.get(19 /* FragmentShaderComponent.OverrideFeatureId */);
86
86
  if (undefined !== overrideFeatureId) {
87
87
  frag.addFunction("vec4 overrideFeatureId(vec4 currentId)", overrideFeatureId);
88
88
  prelude.addline(reassignFeatureId);
89
89
  }
90
90
  addRenderPass(frag);
91
91
  frag.addDrawBuffersExtension(3);
92
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, prelude.source + assignPickBufferOutputsMRT);
92
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, prelude.source + assignPickBufferOutputsMRT);
93
93
  }
94
94
  /** @internal */
95
95
  export function addAltPickBufferOutputs(frag) {
96
96
  const prelude = new SourceBuilder();
97
97
  prelude.add(computeAltPickBufferOutputs);
98
- const overrideColor = frag.get(20 /* FragmentShaderComponent.OverrideColor */);
98
+ const overrideColor = frag.get(21 /* FragmentShaderComponent.OverrideColor */);
99
99
  if (undefined !== overrideColor) {
100
100
  frag.addFunction("vec4 overrideColor(vec4 currentColor)", overrideColor);
101
101
  prelude.addline(" output0 = overrideColor(output0);");
102
102
  }
103
103
  addRenderPass(frag);
104
104
  frag.addDrawBuffersExtension(3);
105
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, prelude.source + assignPickBufferOutputsMRT);
105
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, prelude.source + assignPickBufferOutputsMRT);
106
106
  }
107
107
  /** @internal */
108
108
  export function addFragColorWithPreMultipliedAlpha(frag) {
109
109
  addRenderPass(frag);
110
- const overrideColor = frag.get(20 /* FragmentShaderComponent.OverrideColor */);
110
+ const overrideColor = frag.get(21 /* FragmentShaderComponent.OverrideColor */);
111
111
  if (undefined === overrideColor) {
112
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColorWithPreMultipliedAlpha);
112
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColorWithPreMultipliedAlpha);
113
113
  }
114
114
  else {
115
115
  frag.addFunction("vec4 overrideColor(vec4 currentColor)", overrideColor);
116
- frag.set(17 /* FragmentShaderComponent.AssignFragData */, overrideAndAssignFragColorWithPreMultipliedAlpha);
116
+ frag.set(18 /* FragmentShaderComponent.AssignFragData */, overrideAndAssignFragColorWithPreMultipliedAlpha);
117
117
  }
118
118
  }
119
119
  /** @internal */
@@ -22,6 +22,6 @@ export function addLogDepth(builder) {
22
22
  uniform.setUniform2fv(params.target.uniforms.frustum.logZ);
23
23
  });
24
24
  });
25
- frag.set(19 /* FragmentShaderComponent.FinalizeDepth */, finalizeDepth);
25
+ frag.set(20 /* FragmentShaderComponent.FinalizeDepth */, finalizeDepth);
26
26
  }
27
27
  //# sourceMappingURL=LogarithmicDepthBuffer.js.map
@@ -0,0 +1,12 @@
1
+ /** @packageDocumentation
2
+ * @module WebGL
3
+ */
4
+ import { FragmentShaderBuilder } from "../ShaderBuilder";
5
+ export declare const testInside = "\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\n return dot >= -0.001;\n}\n";
6
+ export declare const applyTexture: (isRealityTile: boolean) => string;
7
+ export declare const overrideFeatureId = "return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;";
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare function addApplySurfaceDraping(frag: FragmentShaderBuilder): void;
12
+ //# sourceMappingURL=MaplayerDraping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaplayerDraping.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/MaplayerDraping.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAyC,MAAM,kBAAkB,CAAC;AAIhG,eAAO,MAAM,UAAU,kRAMtB,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,OAAO,WAoElD,CAAC;AAEF,eAAO,MAAM,iBAAiB,uIAAuI,CAAC;AAwBtK;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,QAQjE"}
@@ -0,0 +1,111 @@
1
+ import { System } from "../System";
2
+ import { addUInt32s } from "./Common";
3
+ export const testInside = `
4
+ bool testInside(float x0, float y0, float x1, float y1, float x, float y) {
5
+ vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);
6
+ float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);
7
+ return dot >= -0.001;
8
+ }
9
+ `;
10
+ export const applyTexture = (isRealityTile) => `
11
+ bool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {
12
+ vec2 uv;
13
+ float layerAlpha;
14
+ bool isProjected = params[0][0] != 0.0;
15
+ float imageCount = params[0][1];
16
+ vec2 classPos;
17
+
18
+ if (isProjected) {
19
+ vec4 eye4 = vec4(v_eyeSpace, 1.0);
20
+ vec4 classPos4 = matrix * eye4;
21
+ classPos = classPos4.xy / classPos4.w;
22
+
23
+ if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y)
24
+ ${isRealityTile ? "||" : "&&"}
25
+ !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y)
26
+ ${isRealityTile ? "||" : "&&"}
27
+ !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y)
28
+ ${isRealityTile ? "||" : "&&"}
29
+ !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))
30
+ return false;
31
+
32
+ uv.x = classPos.x;
33
+ uv.y = classPos.y / imageCount;
34
+ layerAlpha = params[0][2];
35
+
36
+ if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)
37
+ return false;
38
+
39
+ } else {
40
+ vec4 texTransform = matrix[0].xyzw;
41
+ vec4 texClip = matrix[1].xyzw;
42
+ layerAlpha = matrix[2].x;
43
+ uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);
44
+
45
+ if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])
46
+ return false;
47
+
48
+ uv.y = 1.0 - uv.y;
49
+ }
50
+
51
+ vec4 texCol = TEXTURE(sampler, uv);
52
+ float alpha = layerAlpha * texCol.a;
53
+
54
+ if (alpha > 0.05) {
55
+ vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // If projected, undo premultiplication
56
+ // Texture color is premultiplied earlier by alpha only if projected (from classification).
57
+
58
+ col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;
59
+
60
+ if (isProjected) {
61
+ vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));
62
+ classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;
63
+ } else {
64
+ featureIncrement = matrix[2].y;
65
+ classifierId = vec4(0);
66
+ }
67
+
68
+ if (alpha > col.a)
69
+ col.a = alpha;
70
+
71
+ return true;
72
+ }
73
+
74
+ // If texture color is transparent but base color is not, return true (don't discard)
75
+ // Else return false (discard) if both the texture and base color are transparent
76
+ return (col.a > 0.05);
77
+ }
78
+ `;
79
+ export const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;
80
+ function applyDraping() {
81
+ const applyTextureStrings = [];
82
+ for (let i = 0; i < System.instance.maxRealityImageryLayers; i++)
83
+ applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);
84
+ return `
85
+ if (!u_texturesPresent) {
86
+ vec4 col = baseColor;
87
+ return col;
88
+ }
89
+
90
+ bool doDiscard = baseColor.a < 0.05;
91
+ vec4 col = baseColor;
92
+ ${applyTextureStrings.join("\n ")}
93
+ if (doDiscard)
94
+ discard;
95
+
96
+ return col;
97
+ `;
98
+ }
99
+ /**
100
+ * @internal
101
+ */
102
+ export function addApplySurfaceDraping(frag) {
103
+ frag.addGlobal("featureIncrement", 2 /* VariableType.Float */, "0.0");
104
+ frag.addGlobal("classifierId", 5 /* VariableType.Vec4 */);
105
+ frag.addFunction(addUInt32s);
106
+ frag.addFunction(testInside);
107
+ frag.addFunction(applyTexture(false));
108
+ frag.set(14 /* FragmentShaderComponent.ApplyDraping */, applyDraping());
109
+ frag.set(19 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
110
+ }
111
+ //# sourceMappingURL=MaplayerDraping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaplayerDraping.js","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/MaplayerDraping.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;CAMzB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,aAAsB,EAAE,EAAE,CAAC;;;;;;;;;;;;;;UAc9C,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;UAE3B,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;UAE3B,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDpC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,oIAAoI,CAAC;AAEtK,SAAS,YAAY;IACnB,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,EAAE;QAC9D,mBAAmB,CAAC,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;IAE1H,OAAO;;;;;;;;IAQL,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;GAKjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA2B;IAChE,IAAI,CAAC,SAAS,CAAC,kBAAkB,8BAAsB,KAAK,CAAC,CAAC;IAC9D,IAAI,CAAC,SAAS,CAAC,cAAc,4BAAoB,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,gDAAuC,YAAY,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,qDAA4C,iBAAiB,CAAC,CAAC;AACzE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\nimport { FragmentShaderBuilder, FragmentShaderComponent, VariableType } from \"../ShaderBuilder\";\nimport { System } from \"../System\";\nimport { addUInt32s } from \"./Common\";\n\nexport const testInside = `\nbool testInside(float x0, float y0, float x1, float y1, float x, float y) {\n vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);\n float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);\n return dot >= -0.001;\n}\n`;\n\nexport const applyTexture = (isRealityTile: boolean) => `\nbool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {\n vec2 uv;\n float layerAlpha;\n bool isProjected = params[0][0] != 0.0;\n float imageCount = params[0][1];\n vec2 classPos;\n\n if (isProjected) {\n vec4 eye4 = vec4(v_eyeSpace, 1.0);\n vec4 classPos4 = matrix * eye4;\n classPos = classPos4.xy / classPos4.w;\n\n if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y)\n ${isRealityTile ? \"||\" : \"&&\"}\n !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y)\n ${isRealityTile ? \"||\" : \"&&\"}\n !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y)\n ${isRealityTile ? \"||\" : \"&&\"}\n !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))\n return false;\n\n uv.x = classPos.x;\n uv.y = classPos.y / imageCount;\n layerAlpha = params[0][2];\n\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)\n return false;\n\n } else {\n vec4 texTransform = matrix[0].xyzw;\n vec4 texClip = matrix[1].xyzw;\n layerAlpha = matrix[2].x;\n uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);\n\n if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])\n return false;\n\n uv.y = 1.0 - uv.y;\n }\n\n vec4 texCol = TEXTURE(sampler, uv);\n float alpha = layerAlpha * texCol.a;\n\n if (alpha > 0.05) {\n vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // If projected, undo premultiplication\n // Texture color is premultiplied earlier by alpha only if projected (from classification).\n\n col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;\n\n if (isProjected) {\n vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));\n classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;\n } else {\n featureIncrement = matrix[2].y;\n classifierId = vec4(0);\n }\n\n if (alpha > col.a)\n col.a = alpha;\n\n return true;\n }\n\n // If texture color is transparent but base color is not, return true (don't discard)\n // Else return false (discard) if both the texture and base color are transparent\n return (col.a > 0.05);\n}\n`;\n\nexport const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;\n\nfunction applyDraping(){\n const applyTextureStrings = [];\n\n for (let i = 0; i < System.instance.maxRealityImageryLayers; i++)\n applyTextureStrings.push(`if (applyTexture(col, s_texture${i}, u_texParams${i}, u_texMatrix${i})) doDiscard = false; `);\n\n return `\n if (!u_texturesPresent) {\n vec4 col = baseColor;\n return col;\n }\n\n bool doDiscard = baseColor.a < 0.05;\n vec4 col = baseColor;\n ${applyTextureStrings.join(\"\\n \")}\n if (doDiscard)\n discard;\n\n return col;\n `;\n}\n\n/**\n * @internal\n */\nexport function addApplySurfaceDraping(frag: FragmentShaderBuilder) {\n frag.addGlobal(\"featureIncrement\", VariableType.Float, \"0.0\");\n frag.addGlobal(\"classifierId\", VariableType.Vec4);\n frag.addFunction(addUInt32s);\n frag.addFunction(testInside);\n frag.addFunction(applyTexture(false));\n frag.set(FragmentShaderComponent.ApplyDraping, applyDraping());\n frag.set(FragmentShaderComponent.OverrideFeatureId, overrideFeatureId);\n}"]}
@@ -290,7 +290,7 @@ export function addFeaturePlanarClassifier(builder) {
290
290
  uniform.setUniform4fv(scratchBatchBaseComponents);
291
291
  });
292
292
  });
293
- frag.set(18 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
293
+ frag.set(19 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
294
294
  frag.addFunction(addUInt32s);
295
295
  }
296
296
  /** @internal */
@@ -379,8 +379,8 @@ export function addOverrideClassifierColor(builder, isThematic) {
379
379
  const haveOverrides = undefined !== builder.frag.find("v_feature_emphasis");
380
380
  builder.frag.addFunction(haveOverrides ? encodeNonLocatableWithFeatures : encodeNonLocatable);
381
381
  if (isThematic === 0 /* IsThematic.No */)
382
- builder.frag.set(20 /* FragmentShaderComponent.OverrideColor */, haveOverrides ? overrideClassifierWithFeatures : overrideClassifierForClip);
382
+ builder.frag.set(21 /* FragmentShaderComponent.OverrideColor */, haveOverrides ? overrideClassifierWithFeatures : overrideClassifierForClip);
383
383
  else
384
- builder.frag.set(20 /* FragmentShaderComponent.OverrideColor */, haveOverrides ? overrideClassifierWithFeaturesForThematic : overrideClassifierForClipForThematic);
384
+ builder.frag.set(21 /* FragmentShaderComponent.OverrideColor */, haveOverrides ? overrideClassifierWithFeaturesForThematic : overrideClassifierForClipForThematic);
385
385
  }
386
386
  //# sourceMappingURL=PlanarClassification.js.map
@@ -89,7 +89,7 @@ export function createPointCloudBuilder(classified, featureMode, thematic) {
89
89
  }
90
90
  if (1 /* IsThematic.Yes */ === thematic) {
91
91
  addThematicDisplay(builder, true);
92
- addTexture(builder, 0 /* IsAnimated.No */, 1 /* IsThematic.Yes */, true, false);
92
+ addTexture(builder, 0 /* IsAnimated.No */, 1 /* IsThematic.Yes */, true, false, false);
93
93
  }
94
94
  return builder;
95
95
  }
@@ -98,7 +98,7 @@ export function createPointCloudHiliter(classified) {
98
98
  const builder = createBuilder();
99
99
  if (classified) {
100
100
  addHilitePlanarClassifier(builder, false);
101
- builder.frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
101
+ builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
102
102
  }
103
103
  else {
104
104
  addUniformHiliter(builder);
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/PointCloud.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { AttributeMap } from \"../AttributeMap\";\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { FeatureMode, IsAnimated, IsClassified, IsThematic } from \"../TechniqueFlags\";\nimport { TechniqueId } from \"../TechniqueId\";\nimport { addUniformHiliter } from \"./FeatureSymbology\";\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\nimport { addModelViewProjectionMatrix } from \"./Vertex\";\nimport { addViewportTransformation } from \"./Viewport\";\nimport { addThematicDisplay } from \"./Thematic\";\nimport { addTexture } from \"./Surface\";\nimport { assignFragColor } from \"./Fragment\";\n\n// Revert components if color format is BGR instead of RGB.\nconst computeColor = `\n return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);\n`;\n\nconst computeBaseColor = \"return v_color;\";\n\n// Round the point unless drawing square points.\nconst roundPointDiscard = `\n if (u_pointCloudSettings.w == 1.0)\n return false;\n\n vec2 pointXY = (2.0 * gl_PointCoord - 1.0);\n return dot(pointXY, pointXY) > 1.0;\n`;\n\nconst checkForClassifiedDiscard = \"return baseColor.a == 0.0;\";\n\nconst computePosition = `\n gl_PointSize = 1.0;\n vec4 pos = MAT_MVP * rawPos;\n if (u_pointCloudSettings.x > 0.0) {\n // Size is specified in pixels.\n gl_PointSize = u_pointCloudSettings.x;\n return pos;\n }\n\n // Point size is in meters (voxel size).\n if (pos.w <= 0.0) {\n // Cannot perform perspective divide below.\n return pos;\n }\n\n // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.\n mat4 toView = u_viewportTransformation * MAT_MVP;\n float scale = length(toView[0].xyz);\n gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);\n return pos;\n`;\n\nfunction createBuilder(): ProgramBuilder {\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.PointCloud, false));\n const vert = builder.vert;\n addViewportTransformation(vert);\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\n addModelViewProjectionMatrix(vert);\n\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundPointDiscard);\n\n // Uniforms based on the PointCloudDisplaySettings.\n builder.addUniform(\"u_pointCloudSettings\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_pointCloudSettings\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bind(uniform);\n });\n });\n\n // Uniforms based on the PointCloudGeometry.\n builder.vert.addUniform(\"u_pointCloud\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_pointCloud\", (uniform, params) => {\n assert(params.geometry.asPointCloud !== undefined);\n scratchPointCloud[0] = params.geometry.asPointCloud.voxelSize;\n scratchPointCloud[1] = params.geometry.asPointCloud.colorIsBgr ? 1 : 0;\n uniform.setUniform2fv(scratchPointCloud);\n });\n });\n\n return builder;\n}\n\nconst scratchPointCloud = new Float32Array([0, 0]);\n\n/** @internal */\nexport function createPointCloudBuilder(classified: IsClassified, featureMode: FeatureMode, thematic: IsThematic): ProgramBuilder {\n const builder = createBuilder();\n\n builder.addVarying(\"v_color\", VariableType.Vec4);\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeColor);\n\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n if (classified) {\n addColorPlanarClassifier(builder, false, thematic);\n builder.frag.set(FragmentShaderComponent.CheckForDiscard, checkForClassifiedDiscard);\n\n if (FeatureMode.None !== featureMode)\n addFeaturePlanarClassifier(builder);\n }\n\n if (IsThematic.Yes === thematic) {\n addThematicDisplay(builder, true);\n addTexture(builder, IsAnimated.No, IsThematic.Yes, true, false);\n }\n\n return builder;\n}\n\n/** @internal */\nexport function createPointCloudHiliter(classified: IsClassified): ProgramBuilder {\n const builder = createBuilder();\n if (classified) {\n addHilitePlanarClassifier(builder, false);\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n } else {\n addUniformHiliter(builder);\n }\n\n return builder;\n}\n"]}
1
+ {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/PointCloud.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { AttributeMap } from \"../AttributeMap\";\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { FeatureMode, IsAnimated, IsClassified, IsThematic } from \"../TechniqueFlags\";\nimport { TechniqueId } from \"../TechniqueId\";\nimport { addUniformHiliter } from \"./FeatureSymbology\";\nimport { addColorPlanarClassifier, addFeaturePlanarClassifier, addHilitePlanarClassifier } from \"./PlanarClassification\";\nimport { addModelViewProjectionMatrix } from \"./Vertex\";\nimport { addViewportTransformation } from \"./Viewport\";\nimport { addThematicDisplay } from \"./Thematic\";\nimport { addTexture } from \"./Surface\";\nimport { assignFragColor } from \"./Fragment\";\n\n// Revert components if color format is BGR instead of RGB.\nconst computeColor = `\n return u_pointCloud.y == 1.0 ? vec4(a_color.b, a_color.g, a_color.r, 1.0) : vec4(a_color, 1.0);\n`;\n\nconst computeBaseColor = \"return v_color;\";\n\n// Round the point unless drawing square points.\nconst roundPointDiscard = `\n if (u_pointCloudSettings.w == 1.0)\n return false;\n\n vec2 pointXY = (2.0 * gl_PointCoord - 1.0);\n return dot(pointXY, pointXY) > 1.0;\n`;\n\nconst checkForClassifiedDiscard = \"return baseColor.a == 0.0;\";\n\nconst computePosition = `\n gl_PointSize = 1.0;\n vec4 pos = MAT_MVP * rawPos;\n if (u_pointCloudSettings.x > 0.0) {\n // Size is specified in pixels.\n gl_PointSize = u_pointCloudSettings.x;\n return pos;\n }\n\n // Point size is in meters (voxel size).\n if (pos.w <= 0.0) {\n // Cannot perform perspective divide below.\n return pos;\n }\n\n // Convert voxel size in meters into pixel size, then compute pixel size, taking perspective into account.\n mat4 toView = u_viewportTransformation * MAT_MVP;\n float scale = length(toView[0].xyz);\n gl_PointSize = -u_pointCloudSettings.x * clamp(u_pointCloud.x * scale / pos.w, u_pointCloudSettings.y, u_pointCloudSettings.z);\n return pos;\n`;\n\nfunction createBuilder(): ProgramBuilder {\n const builder = new ProgramBuilder(AttributeMap.findAttributeMap(TechniqueId.PointCloud, false));\n const vert = builder.vert;\n addViewportTransformation(vert);\n vert.set(VertexShaderComponent.ComputePosition, computePosition);\n addModelViewProjectionMatrix(vert);\n\n builder.frag.set(FragmentShaderComponent.CheckForEarlyDiscard, roundPointDiscard);\n\n // Uniforms based on the PointCloudDisplaySettings.\n builder.addUniform(\"u_pointCloudSettings\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_pointCloudSettings\", (uniform, params) => {\n params.target.uniforms.realityModel.pointCloud.bind(uniform);\n });\n });\n\n // Uniforms based on the PointCloudGeometry.\n builder.vert.addUniform(\"u_pointCloud\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_pointCloud\", (uniform, params) => {\n assert(params.geometry.asPointCloud !== undefined);\n scratchPointCloud[0] = params.geometry.asPointCloud.voxelSize;\n scratchPointCloud[1] = params.geometry.asPointCloud.colorIsBgr ? 1 : 0;\n uniform.setUniform2fv(scratchPointCloud);\n });\n });\n\n return builder;\n}\n\nconst scratchPointCloud = new Float32Array([0, 0]);\n\n/** @internal */\nexport function createPointCloudBuilder(classified: IsClassified, featureMode: FeatureMode, thematic: IsThematic): ProgramBuilder {\n const builder = createBuilder();\n\n builder.addVarying(\"v_color\", VariableType.Vec4);\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeColor);\n\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n if (classified) {\n addColorPlanarClassifier(builder, false, thematic);\n builder.frag.set(FragmentShaderComponent.CheckForDiscard, checkForClassifiedDiscard);\n\n if (FeatureMode.None !== featureMode)\n addFeaturePlanarClassifier(builder);\n }\n\n if (IsThematic.Yes === thematic) {\n addThematicDisplay(builder, true);\n addTexture(builder, IsAnimated.No, IsThematic.Yes, true, false, false);\n }\n\n return builder;\n}\n\n/** @internal */\nexport function createPointCloudHiliter(classified: IsClassified): ProgramBuilder {\n const builder = createBuilder();\n if (classified) {\n addHilitePlanarClassifier(builder, false);\n builder.frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n } else {\n addUniformHiliter(builder);\n }\n\n return builder;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,EAA2B,cAAc,EAAE,aAAa,EAAuC,MAAM,kBAAkB,CAAC;AAE/H,OAAO,EAAyC,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAuB1F,eAAO,MAAM,cAAc,uEAE1B,CAAC;AAmNF,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,QAMtD;AAYD,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,cAAc,CAInE;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,cAAc,CAIzD;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAyE9E"}
1
+ {"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/render/webgl/glsl/RealityMesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAQH,OAAO,EAA2B,cAAc,EAAE,aAAa,EAAuC,MAAM,kBAAkB,CAAC;AAE/H,OAAO,EAAyC,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwB1F,eAAO,MAAM,cAAc,uEAE1B,CAAC;AA0HF,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,QAMtD;AAYD,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,cAAc,CAInE;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,IAAI,cAAc,CAIzD;AAED,gBAAgB;AAChB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAyE9E"}
@@ -25,6 +25,7 @@ import { addClassificationTranslucencyDiscard, octDecodeNormal } from "./Surface
25
25
  import { addThematicDisplay, getComputeThematicIndex } from "./Thematic";
26
26
  import { addModelViewProjectionMatrix, addNormalMatrix } from "./Vertex";
27
27
  import { addWiremesh } from "./Wiremesh";
28
+ import { applyTexture, overrideFeatureId, testInside } from "./MaplayerDraping";
28
29
  const computePosition = "gl_PointSize = 1.0; return MAT_MVP * rawPos;";
29
30
  const computeNormal = `
30
31
  vec3 normal = octDecodeNormal(a_norm); // normal coming in for is already in world space
@@ -34,95 +35,10 @@ const computeNormal = `
34
35
  export const finalizeNormal = `
35
36
  return normalize(v_n) * (2.0 * float(gl_FrontFacing) - 1.0);
36
37
  `;
37
- const testInside = `
38
- bool testInside(float x0, float y0, float x1, float y1, float x, float y) {
39
- vec2 perp = vec2(y0 - y1, x1 - x0), test = vec2(x - x0, y - y0);
40
- float dot = (test.x * perp.x + test.y * perp.y) / sqrt(perp.x * perp.x + perp.y * perp.y);
41
- return dot >= -0.001;
42
- }
43
- `;
44
- /* There are two methods of applying a texture to a reality mesh. the first member of "params" denotes which
45
- method is to be used. A value of zero indicates a standard texture and one represents a projected texture.
46
-
47
- A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row
48
- of "matrix". A clip rectangle is packed into second row of "matrix".
49
-
50
- A "projected" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates
51
- are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position
52
- so the matrix in this case is a real transform matrix that contains a mapping from eye to model position
53
- followed by the model to texture projection.
54
- */
55
- const applyTexture = `
56
- bool applyTexture(inout vec4 col, sampler2D sampler, mat4 params, mat4 matrix) {
57
- vec2 uv;
58
- float layerAlpha;
59
- bool isProjected = params[0][0] != 0.0;
60
- float imageCount = params[0][1];
61
- vec2 classPos;
62
-
63
- if (isProjected) {
64
- vec4 eye4 = vec4(v_eyeSpace, 1.0);
65
- vec4 classPos4 = matrix * eye4;
66
- classPos = classPos4.xy / classPos4.w;
67
-
68
- if (!testInside(params[2].x, params[2].y, params[2].z, params[2].w, classPos.x, classPos.y) ||
69
- !testInside(params[2].z, params[2].w, params[3].x, params[3].y, classPos.x, classPos.y) ||
70
- !testInside(params[3].x, params[3].y, params[3].z, params[3].w, classPos.x, classPos.y) ||
71
- !testInside(params[3].z, params[3].w, params[2].x, params[2].y, classPos.x, classPos.y))
72
- return false;
73
-
74
- uv.x = classPos.x;
75
- uv.y = classPos.y / imageCount;
76
- layerAlpha = params[0][2];
77
-
78
- if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0)
79
- return false;
80
-
81
- } else {
82
- vec4 texTransform = matrix[0].xyzw;
83
- vec4 texClip = matrix[1].xyzw;
84
- layerAlpha = matrix[2].x;
85
- uv = vec2(texTransform[0] + texTransform[2] * v_texCoord.x, texTransform[1] + texTransform[3] * v_texCoord.y);
86
-
87
- if (uv.x < texClip[0] || uv.x > texClip[2] || uv.y < texClip[1] || uv.y > texClip[3])
88
- return false;
89
-
90
- uv.y = 1.0 - uv.y;
91
- }
92
-
93
- vec4 texCol = TEXTURE(sampler, uv);
94
- float alpha = layerAlpha * texCol.a;
95
-
96
- if (alpha > 0.05) {
97
- vec3 texRgb = isProjected ? (texCol.rgb / texCol.a) : texCol.rgb; // If projected, undo premultiplication
98
- // Texture color is premultiplied earlier by alpha only if projected (from classification).
99
-
100
- col.rgb = (1.0 - alpha) * col.rgb + alpha * texRgb;
101
-
102
- if (isProjected) {
103
- vec4 featureTexel = TEXTURE(sampler, vec2(uv.x, (1.0 + classPos.y) / imageCount));
104
- classifierId = addUInt32s(params[1], featureTexel * 255.0) / 255.0;
105
- } else {
106
- featureIncrement = matrix[2].y;
107
- classifierId = vec4(0);
108
- }
109
-
110
- if (alpha > col.a)
111
- col.a = alpha;
112
-
113
- return true;
114
- }
115
-
116
- // If texture color is transparent but base color is not, return true (don't discard)
117
- // Else return false (discard) if both the texture and base color are transparent
118
- return (col.a > 0.05);
119
- }
120
- `;
121
38
  const computeTexCoord = "return unquantize2d(a_uvParam, u_qTexCoordParams);";
122
39
  const scratchMatrix4d1 = Matrix4d.createIdentity();
123
40
  const scratchMatrix4d2 = Matrix4d.createIdentity();
124
41
  const scratchMatrix = new Matrix4();
125
- const overrideFeatureId = `return (classifierId == vec4(0)) ? (addUInt32s(feature_id * 255.0, vec4(featureIncrement, 0.0, 0.0, 0.0)) / 255.0) : classifierId;`;
126
42
  function addTextures(builder, maxTexturesPerMesh) {
127
43
  builder.vert.addFunction(unquantize2d);
128
44
  builder.addFunctionComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, "computeTexCoord", computeTexCoord);
@@ -151,7 +67,6 @@ function addTextures(builder, maxTexturesPerMesh) {
151
67
  texture.texture.bindSampler(uniform, textureUnits[i]);
152
68
  }
153
69
  else {
154
- // assert(false, "Terrain Mesh texture not defined when beginning texture.");
155
70
  System.instance.ensureSamplerBound(uniform, textureUnits[i]);
156
71
  }
157
72
  });
@@ -220,7 +135,7 @@ function addThematicToRealityMesh(builder, gradientTextureUnit) {
220
135
  builder.vert.addGlobal("g_hillshadeIndex", 2 /* VariableType.Float */);
221
136
  builder.addFunctionComputedVarying("v_n", 4 /* VariableType.Vec3 */, "computeLightingNormal", computeNormal);
222
137
  builder.frag.addGlobal("g_normal", 4 /* VariableType.Vec3 */);
223
- builder.frag.set(23 /* FragmentShaderComponent.FinalizeNormal */, finalizeNormal);
138
+ builder.frag.set(24 /* FragmentShaderComponent.FinalizeNormal */, finalizeNormal);
224
139
  addThematicDisplay(builder, false, true);
225
140
  builder.addInlineComputedVarying("v_thematicIndex", 2 /* VariableType.Float */, getComputeThematicIndex(builder.vert.usesInstancedGeometry, false, false));
226
141
  builder.vert.addUniform("u_worldToViewN", 6 /* VariableType.Mat3 */, (prog) => {
@@ -247,7 +162,7 @@ function createRealityMeshHiliterBuilder() {
247
162
  const vert = builder.vert;
248
163
  vert.set(10 /* VertexShaderComponent.ComputePosition */, computePosition);
249
164
  addModelViewProjectionMatrix(vert);
250
- builder.frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
165
+ builder.frag.set(18 /* FragmentShaderComponent.AssignFragData */, assignFragColor);
251
166
  return builder;
252
167
  }
253
168
  /** @internal */
@@ -273,7 +188,7 @@ export function createRealityMeshBuilder(flags) {
273
188
  const frag = builder.frag;
274
189
  frag.addGlobal("featureIncrement", 2 /* VariableType.Float */, "0.0");
275
190
  frag.addGlobal("classifierId", 5 /* VariableType.Vec4 */);
276
- frag.set(18 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
191
+ frag.set(19 /* FragmentShaderComponent.OverrideFeatureId */, overrideFeatureId);
277
192
  const textureCount = System.instance.maxRealityImageryLayers;
278
193
  const gradientTextureUnit = TextureUnit.RealityMeshThematicGradient;
279
194
  const feat = flags.featureMode;
@@ -295,7 +210,7 @@ export function createRealityMeshBuilder(flags) {
295
210
  frag.addFunction(addUInt32s);
296
211
  frag.addFunction(testInside);
297
212
  addEyeSpace(builder);
298
- frag.addFunction(applyTexture);
213
+ frag.addFunction(applyTexture(true));
299
214
  frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeFragmentBaseColor);
300
215
  builder.frag.addUniform("u_baseColor", 5 /* VariableType.Vec4 */, (prog) => {
301
216
  prog.addGraphicUniform("u_baseColor", (uniform, params) => {