@itwin/core-frontend 3.4.0-dev.9 → 3.5.0-dev.5

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 (808) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +60 -15
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  6. package/lib/cjs/AccuSnap.js +46 -36
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  9. package/lib/cjs/AuxCoordSys.js +2 -3
  10. package/lib/cjs/AuxCoordSys.js.map +1 -1
  11. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  12. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  13. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  14. package/lib/cjs/CategorySelectorState.js +6 -4
  15. package/lib/cjs/CategorySelectorState.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  17. package/lib/cjs/ContextRealityModelState.js +2 -0
  18. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  19. package/lib/cjs/DevTools.d.ts.map +1 -1
  20. package/lib/cjs/DevTools.js.map +1 -1
  21. package/lib/cjs/DisplayStyleState.js +1 -1
  22. package/lib/cjs/DisplayStyleState.js.map +1 -1
  23. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  24. package/lib/cjs/ElementLocateManager.js +4 -2
  25. package/lib/cjs/ElementLocateManager.js.map +1 -1
  26. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  27. package/lib/cjs/FrustumAnimator.js +5 -1
  28. package/lib/cjs/FrustumAnimator.js.map +1 -1
  29. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  30. package/lib/cjs/FuzzySearch.js +9 -3
  31. package/lib/cjs/FuzzySearch.js.map +1 -1
  32. package/lib/cjs/HitDetail.d.ts.map +1 -1
  33. package/lib/cjs/HitDetail.js +13 -3
  34. package/lib/cjs/HitDetail.js.map +1 -1
  35. package/lib/cjs/IModelApp.d.ts +7 -2
  36. package/lib/cjs/IModelApp.d.ts.map +1 -1
  37. package/lib/cjs/IModelApp.js +10 -2
  38. package/lib/cjs/IModelApp.js.map +1 -1
  39. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  40. package/lib/cjs/IModelConnection.js +3 -1
  41. package/lib/cjs/IModelConnection.js.map +1 -1
  42. package/lib/cjs/ImageUtil.d.ts +6 -0
  43. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  44. package/lib/cjs/ImageUtil.js +14 -1
  45. package/lib/cjs/ImageUtil.js.map +1 -1
  46. package/lib/cjs/Marker.d.ts.map +1 -1
  47. package/lib/cjs/Marker.js +5 -1
  48. package/lib/cjs/Marker.js.map +1 -1
  49. package/lib/cjs/ModelState.d.ts.map +1 -1
  50. package/lib/cjs/ModelState.js +5 -0
  51. package/lib/cjs/ModelState.js.map +1 -1
  52. package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
  53. package/lib/cjs/NativeAppLogger.js +1 -1
  54. package/lib/cjs/NativeAppLogger.js.map +1 -1
  55. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  56. package/lib/cjs/TentativePoint.js.map +1 -1
  57. package/lib/cjs/ViewManager.d.ts +4 -0
  58. package/lib/cjs/ViewManager.d.ts.map +1 -1
  59. package/lib/cjs/ViewManager.js +9 -3
  60. package/lib/cjs/ViewManager.js.map +1 -1
  61. package/lib/cjs/ViewRect.d.ts.map +1 -1
  62. package/lib/cjs/ViewRect.js +5 -1
  63. package/lib/cjs/ViewRect.js.map +1 -1
  64. package/lib/cjs/ViewState.d.ts +36 -12
  65. package/lib/cjs/ViewState.d.ts.map +1 -1
  66. package/lib/cjs/ViewState.js +35 -25
  67. package/lib/cjs/ViewState.js.map +1 -1
  68. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  69. package/lib/cjs/ViewingSpace.js +12 -5
  70. package/lib/cjs/ViewingSpace.js.map +1 -1
  71. package/lib/cjs/Viewport.d.ts +14 -0
  72. package/lib/cjs/Viewport.d.ts.map +1 -1
  73. package/lib/cjs/Viewport.js +107 -5
  74. package/lib/cjs/Viewport.js.map +1 -1
  75. package/lib/cjs/core-frontend.d.ts +6 -0
  76. package/lib/cjs/core-frontend.d.ts.map +1 -1
  77. package/lib/cjs/core-frontend.js +6 -0
  78. package/lib/cjs/core-frontend.js.map +1 -1
  79. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  80. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  81. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -1
  82. package/lib/cjs/extension/ExtensionImpl.js +3 -1
  83. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  84. package/lib/cjs/public/scripts/checkbrowser.js +24 -0
  85. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  86. package/lib/cjs/render/Decorations.js +24 -6
  87. package/lib/cjs/render/Decorations.js.map +1 -1
  88. package/lib/cjs/render/GraphicBranch.d.ts +5 -1
  89. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  90. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  91. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +19 -0
  92. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -0
  93. package/lib/cjs/render/RealityMeshGraphicParams.js +10 -0
  94. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -0
  95. package/lib/cjs/render/RealityMeshParams.d.ts +130 -0
  96. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -0
  97. package/lib/cjs/render/RealityMeshParams.js +176 -0
  98. package/lib/cjs/render/RealityMeshParams.js.map +1 -0
  99. package/lib/cjs/render/RenderSystem.d.ts +8 -4
  100. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  101. package/lib/cjs/render/RenderSystem.js +7 -1
  102. package/lib/cjs/render/RenderSystem.js.map +1 -1
  103. package/lib/cjs/render/RenderTexture.d.ts +1 -1
  104. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  105. package/lib/cjs/render/RenderTexture.js.map +1 -1
  106. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts +11 -0
  107. package/lib/cjs/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  108. package/lib/cjs/render/UpsampleRealityMeshParams.js +205 -0
  109. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -0
  110. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
  111. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  112. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts +4 -8
  113. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  114. package/lib/cjs/render/primitives/PointCloudPrimitive.js +0 -16
  115. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  116. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  117. package/lib/cjs/render/primitives/Polyface.js +3 -1
  118. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  119. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  120. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  121. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  122. package/lib/cjs/render/primitives/Strokes.js +6 -2
  123. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  124. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  125. package/lib/cjs/render/primitives/VertexTableSplitter.js +7 -85
  126. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  127. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  128. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +4 -1
  129. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  130. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  131. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  132. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  133. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  134. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -1
  135. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  136. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  137. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  138. package/lib/cjs/render/webgl/BranchState.d.ts +3 -1
  139. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/BranchState.js +18 -15
  141. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  142. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/BranchUniforms.js +4 -0
  144. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  145. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  146. package/lib/cjs/render/webgl/ColorInfo.js +4 -1
  147. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  148. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/DrawCommand.js +12 -3
  150. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  151. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  152. package/lib/cjs/render/webgl/FrameBuffer.js +4 -1
  153. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  154. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  155. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  156. package/lib/cjs/render/webgl/Graphic.js +5 -2
  157. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  158. package/lib/cjs/render/webgl/Matrix.d.ts.map +1 -1
  159. package/lib/cjs/render/webgl/Matrix.js +16 -4
  160. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  161. package/lib/cjs/render/webgl/PerformanceMetrics.js +2 -2
  162. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  163. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  164. package/lib/cjs/render/webgl/PlanarClassifier.js +3 -1
  165. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  166. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  167. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  168. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -2
  169. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  170. package/lib/cjs/render/webgl/PointCloud.js +7 -7
  171. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  172. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  174. package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -6
  175. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  176. package/lib/cjs/render/webgl/RealityMesh.js +20 -12
  177. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  178. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +35 -0
  179. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -0
  180. package/lib/cjs/render/webgl/RealityModelUniforms.js +73 -0
  181. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -0
  182. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/RenderCommands.js +3 -2
  184. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  185. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  186. package/lib/cjs/render/webgl/RenderFlags.js +3 -1
  187. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  188. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  189. package/lib/cjs/render/webgl/ShaderBuilder.js +4 -1
  190. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  191. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  192. package/lib/cjs/render/webgl/SolarShadowMap.js +17 -5
  193. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  194. package/lib/cjs/render/webgl/System.d.ts +6 -4
  195. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  196. package/lib/cjs/render/webgl/System.js +21 -4
  197. package/lib/cjs/render/webgl/System.js.map +1 -1
  198. package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
  199. package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
  200. package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
  201. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  202. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  203. package/lib/cjs/render/webgl/Technique.js +6 -31
  204. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  205. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  206. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  207. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  208. package/lib/cjs/render/webgl/Texture.js +21 -12
  209. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  210. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  211. package/lib/cjs/render/webgl/ThematicSensors.js +8 -2
  212. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  213. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  214. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +3 -1
  215. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  216. package/lib/cjs/render/webgl/glsl/Common.js +1 -1
  217. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  218. package/lib/cjs/render/webgl/glsl/PointCloud.d.ts.map +1 -1
  219. package/lib/cjs/render/webgl/glsl/PointCloud.js +43 -20
  220. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  221. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts +4 -2
  222. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  223. package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -3
  224. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  225. package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  226. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  227. package/lib/cjs/tile/GltfReader.d.ts +3 -2
  228. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  229. package/lib/cjs/tile/GltfReader.js +7 -3
  230. package/lib/cjs/tile/GltfReader.js.map +1 -1
  231. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  232. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  233. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  234. package/lib/cjs/tile/OPCFormatInterpreter.js +3 -1
  235. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  236. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  237. package/lib/cjs/tile/OrbitGtTileTree.js +8 -2
  238. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  239. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  240. package/lib/cjs/tile/PntsReader.js +8 -2
  241. package/lib/cjs/tile/PntsReader.js.map +1 -1
  242. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  243. package/lib/cjs/tile/PrimaryTileTree.js +14 -11
  244. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  245. package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -1
  246. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  247. package/lib/cjs/tile/RealityModelTileTree.js +8 -0
  248. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  249. package/lib/cjs/tile/RealityTile.d.ts +57 -3
  250. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  251. package/lib/cjs/tile/RealityTile.js +49 -5
  252. package/lib/cjs/tile/RealityTile.js.map +1 -1
  253. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  254. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  255. package/lib/cjs/tile/RealityTileTree.d.ts +37 -2
  256. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  257. package/lib/cjs/tile/RealityTileTree.js +30 -2
  258. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  259. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  260. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +6 -2
  261. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  262. package/lib/cjs/tile/TileAdmin.d.ts +12 -0
  263. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  264. package/lib/cjs/tile/TileAdmin.js +54 -4
  265. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  266. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  267. package/lib/cjs/tile/TileDrawArgs.js +10 -16
  268. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  269. package/lib/cjs/tile/TileRequest.d.ts +5 -1
  270. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  271. package/lib/cjs/tile/TileRequest.js +6 -2
  272. package/lib/cjs/tile/TileRequest.js.map +1 -1
  273. package/lib/cjs/tile/TileStorage.d.ts +13 -0
  274. package/lib/cjs/tile/TileStorage.d.ts.map +1 -0
  275. package/lib/cjs/tile/TileStorage.js +50 -0
  276. package/lib/cjs/tile/TileStorage.js.map +1 -0
  277. package/lib/cjs/tile/internal.d.ts +2 -0
  278. package/lib/cjs/tile/internal.d.ts.map +1 -1
  279. package/lib/cjs/tile/internal.js +2 -0
  280. package/lib/cjs/tile/internal.js.map +1 -1
  281. package/lib/cjs/tile/map/ArcGISTileMap.js +1 -1
  282. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  283. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +0 -2
  284. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  285. package/lib/cjs/tile/map/ArcGisUtilities.js +1 -24
  286. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  287. package/lib/cjs/tile/map/BingElevation.d.ts +8 -3
  288. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  289. package/lib/cjs/tile/map/BingElevation.js +36 -14
  290. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  291. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts +2 -7
  292. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  293. package/lib/cjs/tile/map/CesiumTerrainProvider.js +100 -90
  294. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  295. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  296. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +70 -67
  298. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  299. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  300. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
  301. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  302. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  303. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  304. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  305. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  306. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  307. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  308. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  309. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  310. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  311. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  312. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  313. package/lib/cjs/tile/map/ImageryTileTree.js +21 -6
  314. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  315. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +62 -6
  316. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  317. package/lib/cjs/tile/map/MapCartoRectangle.js +103 -17
  318. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  319. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  320. package/lib/cjs/tile/map/MapLayerImageryFormats.js +4 -2
  321. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  322. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  323. package/lib/cjs/tile/map/MapLayerImageryProvider.js +1 -1
  324. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  325. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  326. package/lib/cjs/tile/map/MapLayerSources.js +11 -7
  327. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  328. package/lib/cjs/tile/map/MapTile.d.ts +68 -15
  329. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  330. package/lib/cjs/tile/map/MapTile.js +88 -30
  331. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  332. package/lib/cjs/tile/map/MapTileAvailability.d.ts.map +1 -1
  333. package/lib/cjs/tile/map/MapTileAvailability.js +1 -1
  334. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  335. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -2
  336. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  337. package/lib/cjs/tile/map/MapTileLoader.js +11 -20
  338. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  339. package/lib/cjs/tile/map/MapTileTree.d.ts +72 -7
  340. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  341. package/lib/cjs/tile/map/MapTileTree.js +72 -16
  342. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  343. package/lib/cjs/tile/map/MapTilingScheme.d.ts +67 -55
  344. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  345. package/lib/cjs/tile/map/MapTilingScheme.js +71 -67
  346. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  347. package/lib/cjs/tile/map/QuadId.d.ts +24 -2
  348. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  349. package/lib/cjs/tile/map/QuadId.js +49 -20
  350. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  351. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +79 -19
  352. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  353. package/lib/cjs/tile/map/TerrainMeshProvider.js +28 -13
  354. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  355. package/lib/cjs/tile/map/TerrainProvider.d.ts +34 -0
  356. package/lib/cjs/tile/map/TerrainProvider.d.ts.map +1 -0
  357. package/lib/cjs/tile/map/TerrainProvider.js +41 -0
  358. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -0
  359. package/lib/cjs/tile/map/WmsCapabilities.js +1 -1
  360. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  361. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  362. package/lib/cjs/tile/map/WmtsCapabilities.js +7 -3
  363. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  364. package/lib/cjs/tile/object-storage-azure.js +5 -0
  365. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  366. package/lib/cjs/tools/AccuDrawTool.js +87 -26
  367. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  368. package/lib/cjs/tools/ClipViewTool.d.ts +2 -2
  369. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  370. package/lib/cjs/tools/ClipViewTool.js +29 -16
  371. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  372. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  373. package/lib/cjs/tools/ElementSetTool.js +26 -10
  374. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  375. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  376. package/lib/cjs/tools/MeasureTool.js +65 -41
  377. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  378. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  379. package/lib/cjs/tools/PrimitiveTool.js +9 -4
  380. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  381. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  382. package/lib/cjs/tools/SelectTool.js +20 -9
  383. package/lib/cjs/tools/SelectTool.js.map +1 -1
  384. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  385. package/lib/cjs/tools/Tool.js +13 -5
  386. package/lib/cjs/tools/Tool.js.map +1 -1
  387. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  388. package/lib/cjs/tools/ToolAdmin.js +27 -9
  389. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  390. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  391. package/lib/cjs/tools/ViewTool.js +111 -40
  392. package/lib/cjs/tools/ViewTool.js.map +1 -1
  393. package/lib/cjs/webgl.d.ts +1 -0
  394. package/lib/cjs/webgl.d.ts.map +1 -1
  395. package/lib/cjs/webgl.js +1 -0
  396. package/lib/cjs/webgl.js.map +1 -1
  397. package/lib/esm/AccuDraw.d.ts.map +1 -1
  398. package/lib/esm/AccuDraw.js +60 -15
  399. package/lib/esm/AccuDraw.js.map +1 -1
  400. package/lib/esm/AccuSnap.d.ts.map +1 -1
  401. package/lib/esm/AccuSnap.js +47 -37
  402. package/lib/esm/AccuSnap.js.map +1 -1
  403. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  404. package/lib/esm/AuxCoordSys.js +2 -3
  405. package/lib/esm/AuxCoordSys.js.map +1 -1
  406. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  407. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  408. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  409. package/lib/esm/CategorySelectorState.js +6 -4
  410. package/lib/esm/CategorySelectorState.js.map +1 -1
  411. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  412. package/lib/esm/ContextRealityModelState.js +2 -0
  413. package/lib/esm/ContextRealityModelState.js.map +1 -1
  414. package/lib/esm/DevTools.d.ts.map +1 -1
  415. package/lib/esm/DevTools.js.map +1 -1
  416. package/lib/esm/DisplayStyleState.js +1 -1
  417. package/lib/esm/DisplayStyleState.js.map +1 -1
  418. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  419. package/lib/esm/ElementLocateManager.js +4 -2
  420. package/lib/esm/ElementLocateManager.js.map +1 -1
  421. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  422. package/lib/esm/FrustumAnimator.js +5 -1
  423. package/lib/esm/FrustumAnimator.js.map +1 -1
  424. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  425. package/lib/esm/FuzzySearch.js +9 -3
  426. package/lib/esm/FuzzySearch.js.map +1 -1
  427. package/lib/esm/HitDetail.d.ts.map +1 -1
  428. package/lib/esm/HitDetail.js +13 -3
  429. package/lib/esm/HitDetail.js.map +1 -1
  430. package/lib/esm/IModelApp.d.ts +7 -2
  431. package/lib/esm/IModelApp.d.ts.map +1 -1
  432. package/lib/esm/IModelApp.js +11 -3
  433. package/lib/esm/IModelApp.js.map +1 -1
  434. package/lib/esm/IModelConnection.d.ts.map +1 -1
  435. package/lib/esm/IModelConnection.js +3 -1
  436. package/lib/esm/IModelConnection.js.map +1 -1
  437. package/lib/esm/ImageUtil.d.ts +6 -0
  438. package/lib/esm/ImageUtil.d.ts.map +1 -1
  439. package/lib/esm/ImageUtil.js +12 -0
  440. package/lib/esm/ImageUtil.js.map +1 -1
  441. package/lib/esm/Marker.d.ts.map +1 -1
  442. package/lib/esm/Marker.js +5 -1
  443. package/lib/esm/Marker.js.map +1 -1
  444. package/lib/esm/ModelState.d.ts.map +1 -1
  445. package/lib/esm/ModelState.js +6 -1
  446. package/lib/esm/ModelState.js.map +1 -1
  447. package/lib/esm/NativeAppLogger.d.ts.map +1 -1
  448. package/lib/esm/NativeAppLogger.js +1 -1
  449. package/lib/esm/NativeAppLogger.js.map +1 -1
  450. package/lib/esm/TentativePoint.d.ts.map +1 -1
  451. package/lib/esm/TentativePoint.js.map +1 -1
  452. package/lib/esm/ViewManager.d.ts +4 -0
  453. package/lib/esm/ViewManager.d.ts.map +1 -1
  454. package/lib/esm/ViewManager.js +9 -3
  455. package/lib/esm/ViewManager.js.map +1 -1
  456. package/lib/esm/ViewRect.d.ts.map +1 -1
  457. package/lib/esm/ViewRect.js +5 -1
  458. package/lib/esm/ViewRect.js.map +1 -1
  459. package/lib/esm/ViewState.d.ts +36 -12
  460. package/lib/esm/ViewState.d.ts.map +1 -1
  461. package/lib/esm/ViewState.js +35 -25
  462. package/lib/esm/ViewState.js.map +1 -1
  463. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  464. package/lib/esm/ViewingSpace.js +12 -5
  465. package/lib/esm/ViewingSpace.js.map +1 -1
  466. package/lib/esm/Viewport.d.ts +14 -0
  467. package/lib/esm/Viewport.d.ts.map +1 -1
  468. package/lib/esm/Viewport.js +107 -5
  469. package/lib/esm/Viewport.js.map +1 -1
  470. package/lib/esm/core-frontend.d.ts +6 -0
  471. package/lib/esm/core-frontend.d.ts.map +1 -1
  472. package/lib/esm/core-frontend.js +6 -0
  473. package/lib/esm/core-frontend.js.map +1 -1
  474. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  475. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  476. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -1
  477. package/lib/esm/extension/ExtensionImpl.js +3 -1
  478. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  479. package/lib/esm/public/scripts/checkbrowser.js +24 -0
  480. package/lib/esm/render/Decorations.d.ts.map +1 -1
  481. package/lib/esm/render/Decorations.js +24 -6
  482. package/lib/esm/render/Decorations.js.map +1 -1
  483. package/lib/esm/render/GraphicBranch.d.ts +5 -1
  484. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  485. package/lib/esm/render/GraphicBranch.js.map +1 -1
  486. package/lib/esm/render/RealityMeshGraphicParams.d.ts +19 -0
  487. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -0
  488. package/lib/esm/render/RealityMeshGraphicParams.js +9 -0
  489. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -0
  490. package/lib/esm/render/RealityMeshParams.d.ts +130 -0
  491. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -0
  492. package/lib/esm/render/RealityMeshParams.js +172 -0
  493. package/lib/esm/render/RealityMeshParams.js.map +1 -0
  494. package/lib/esm/render/RenderSystem.d.ts +8 -4
  495. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  496. package/lib/esm/render/RenderSystem.js +7 -1
  497. package/lib/esm/render/RenderSystem.js.map +1 -1
  498. package/lib/esm/render/RenderTexture.d.ts +1 -1
  499. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  500. package/lib/esm/render/RenderTexture.js.map +1 -1
  501. package/lib/esm/render/UpsampleRealityMeshParams.d.ts +11 -0
  502. package/lib/esm/render/UpsampleRealityMeshParams.d.ts.map +1 -0
  503. package/lib/esm/render/UpsampleRealityMeshParams.js +201 -0
  504. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -0
  505. package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
  506. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  507. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts +4 -8
  508. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  509. package/lib/esm/render/primitives/PointCloudPrimitive.js +1 -14
  510. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  511. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  512. package/lib/esm/render/primitives/Polyface.js +3 -1
  513. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  514. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  515. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  516. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  517. package/lib/esm/render/primitives/Strokes.js +6 -2
  518. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  519. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -1
  520. package/lib/esm/render/primitives/VertexTableSplitter.js +1 -79
  521. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  522. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  523. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +4 -1
  524. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  525. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  526. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  527. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  528. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  529. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -1
  530. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  531. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  532. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  533. package/lib/esm/render/webgl/BranchState.d.ts +3 -1
  534. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  535. package/lib/esm/render/webgl/BranchState.js +18 -15
  536. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  537. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  538. package/lib/esm/render/webgl/BranchUniforms.js +4 -0
  539. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  540. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  541. package/lib/esm/render/webgl/ColorInfo.js +4 -1
  542. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  543. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  544. package/lib/esm/render/webgl/DrawCommand.js +12 -3
  545. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  546. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  547. package/lib/esm/render/webgl/FrameBuffer.js +4 -1
  548. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  549. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  550. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  551. package/lib/esm/render/webgl/Graphic.js +5 -2
  552. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  553. package/lib/esm/render/webgl/Matrix.d.ts.map +1 -1
  554. package/lib/esm/render/webgl/Matrix.js +16 -4
  555. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  556. package/lib/esm/render/webgl/PerformanceMetrics.js +2 -2
  557. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  558. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  559. package/lib/esm/render/webgl/PlanarClassifier.js +3 -1
  560. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  561. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  562. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  563. package/lib/esm/render/webgl/PointCloud.d.ts +1 -2
  564. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  565. package/lib/esm/render/webgl/PointCloud.js +7 -7
  566. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  567. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  568. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  569. package/lib/esm/render/webgl/RealityMesh.d.ts +6 -6
  570. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  571. package/lib/esm/render/webgl/RealityMesh.js +20 -12
  572. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  573. package/lib/esm/render/webgl/RealityModelUniforms.d.ts +35 -0
  574. package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -0
  575. package/lib/esm/render/webgl/RealityModelUniforms.js +68 -0
  576. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -0
  577. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  578. package/lib/esm/render/webgl/RenderCommands.js +3 -2
  579. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  580. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  581. package/lib/esm/render/webgl/RenderFlags.js +3 -1
  582. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  583. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  584. package/lib/esm/render/webgl/ShaderBuilder.js +4 -1
  585. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  586. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  587. package/lib/esm/render/webgl/SolarShadowMap.js +17 -5
  588. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  589. package/lib/esm/render/webgl/System.d.ts +6 -4
  590. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  591. package/lib/esm/render/webgl/System.js +21 -4
  592. package/lib/esm/render/webgl/System.js.map +1 -1
  593. package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
  594. package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
  595. package/lib/esm/render/webgl/TargetUniforms.js +2 -0
  596. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  597. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  598. package/lib/esm/render/webgl/Technique.js +5 -11
  599. package/lib/esm/render/webgl/Technique.js.map +1 -1
  600. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  601. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  602. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  603. package/lib/esm/render/webgl/Texture.js +21 -12
  604. package/lib/esm/render/webgl/Texture.js.map +1 -1
  605. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  606. package/lib/esm/render/webgl/ThematicSensors.js +8 -2
  607. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  608. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  609. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +3 -1
  610. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  611. package/lib/esm/render/webgl/glsl/Common.js +1 -1
  612. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  613. package/lib/esm/render/webgl/glsl/PointCloud.d.ts.map +1 -1
  614. package/lib/esm/render/webgl/glsl/PointCloud.js +44 -21
  615. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  616. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts +4 -2
  617. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  618. package/lib/esm/render/webgl/glsl/RealityMesh.js +4 -3
  619. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  620. package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  621. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  622. package/lib/esm/tile/GltfReader.d.ts +3 -2
  623. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  624. package/lib/esm/tile/GltfReader.js +8 -4
  625. package/lib/esm/tile/GltfReader.js.map +1 -1
  626. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  627. package/lib/esm/tile/ImdlReader.js.map +1 -1
  628. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  629. package/lib/esm/tile/OPCFormatInterpreter.js +3 -1
  630. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  631. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  632. package/lib/esm/tile/OrbitGtTileTree.js +8 -2
  633. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  634. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  635. package/lib/esm/tile/PntsReader.js +8 -2
  636. package/lib/esm/tile/PntsReader.js.map +1 -1
  637. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  638. package/lib/esm/tile/PrimaryTileTree.js +14 -11
  639. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  640. package/lib/esm/tile/RealityModelTileTree.d.ts +4 -1
  641. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  642. package/lib/esm/tile/RealityModelTileTree.js +9 -1
  643. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  644. package/lib/esm/tile/RealityTile.d.ts +57 -3
  645. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  646. package/lib/esm/tile/RealityTile.js +49 -5
  647. package/lib/esm/tile/RealityTile.js.map +1 -1
  648. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  649. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  650. package/lib/esm/tile/RealityTileTree.d.ts +37 -2
  651. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  652. package/lib/esm/tile/RealityTileTree.js +30 -2
  653. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  654. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  655. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +6 -2
  656. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  657. package/lib/esm/tile/TileAdmin.d.ts +12 -0
  658. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  659. package/lib/esm/tile/TileAdmin.js +35 -4
  660. package/lib/esm/tile/TileAdmin.js.map +1 -1
  661. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  662. package/lib/esm/tile/TileDrawArgs.js +11 -17
  663. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  664. package/lib/esm/tile/TileRequest.d.ts +5 -1
  665. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  666. package/lib/esm/tile/TileRequest.js +6 -2
  667. package/lib/esm/tile/TileRequest.js.map +1 -1
  668. package/lib/esm/tile/TileStorage.d.ts +13 -0
  669. package/lib/esm/tile/TileStorage.d.ts.map +1 -0
  670. package/lib/esm/tile/TileStorage.js +46 -0
  671. package/lib/esm/tile/TileStorage.js.map +1 -0
  672. package/lib/esm/tile/internal.d.ts +2 -0
  673. package/lib/esm/tile/internal.d.ts.map +1 -1
  674. package/lib/esm/tile/internal.js +2 -0
  675. package/lib/esm/tile/internal.js.map +1 -1
  676. package/lib/esm/tile/map/ArcGISTileMap.js +1 -1
  677. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  678. package/lib/esm/tile/map/ArcGisUtilities.d.ts +0 -2
  679. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  680. package/lib/esm/tile/map/ArcGisUtilities.js +1 -24
  681. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  682. package/lib/esm/tile/map/BingElevation.d.ts +8 -3
  683. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  684. package/lib/esm/tile/map/BingElevation.js +36 -14
  685. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  686. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts +2 -7
  687. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  688. package/lib/esm/tile/map/CesiumTerrainProvider.js +101 -91
  689. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  690. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +9 -12
  691. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  692. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +71 -68
  693. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  694. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  695. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +9 -16
  696. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  697. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  698. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
  699. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  700. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  701. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  702. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  703. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +8 -6
  704. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  705. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +3 -3
  706. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  707. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  708. package/lib/esm/tile/map/ImageryTileTree.js +21 -6
  709. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  710. package/lib/esm/tile/map/MapCartoRectangle.d.ts +62 -6
  711. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  712. package/lib/esm/tile/map/MapCartoRectangle.js +103 -17
  713. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  714. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  715. package/lib/esm/tile/map/MapLayerImageryFormats.js +4 -2
  716. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  717. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  718. package/lib/esm/tile/map/MapLayerImageryProvider.js +1 -1
  719. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  720. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  721. package/lib/esm/tile/map/MapLayerSources.js +11 -7
  722. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  723. package/lib/esm/tile/map/MapTile.d.ts +68 -15
  724. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  725. package/lib/esm/tile/map/MapTile.js +88 -30
  726. package/lib/esm/tile/map/MapTile.js.map +1 -1
  727. package/lib/esm/tile/map/MapTileAvailability.d.ts.map +1 -1
  728. package/lib/esm/tile/map/MapTileAvailability.js +1 -1
  729. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  730. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -2
  731. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  732. package/lib/esm/tile/map/MapTileLoader.js +12 -21
  733. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  734. package/lib/esm/tile/map/MapTileTree.d.ts +72 -7
  735. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  736. package/lib/esm/tile/map/MapTileTree.js +73 -17
  737. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  738. package/lib/esm/tile/map/MapTilingScheme.d.ts +67 -55
  739. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  740. package/lib/esm/tile/map/MapTilingScheme.js +72 -68
  741. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  742. package/lib/esm/tile/map/QuadId.d.ts +24 -2
  743. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  744. package/lib/esm/tile/map/QuadId.js +49 -20
  745. package/lib/esm/tile/map/QuadId.js.map +1 -1
  746. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +79 -19
  747. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  748. package/lib/esm/tile/map/TerrainMeshProvider.js +28 -13
  749. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  750. package/lib/esm/tile/map/TerrainProvider.d.ts +34 -0
  751. package/lib/esm/tile/map/TerrainProvider.d.ts.map +1 -0
  752. package/lib/esm/tile/map/TerrainProvider.js +37 -0
  753. package/lib/esm/tile/map/TerrainProvider.js.map +1 -0
  754. package/lib/esm/tile/map/WmsCapabilities.js +1 -1
  755. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  756. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  757. package/lib/esm/tile/map/WmtsCapabilities.js +7 -3
  758. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  759. package/lib/esm/tile/object-storage-azure.js +5 -0
  760. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  761. package/lib/esm/tools/AccuDrawTool.js +87 -26
  762. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  763. package/lib/esm/tools/ClipViewTool.d.ts +2 -2
  764. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  765. package/lib/esm/tools/ClipViewTool.js +29 -16
  766. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  767. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  768. package/lib/esm/tools/ElementSetTool.js +26 -10
  769. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  770. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  771. package/lib/esm/tools/MeasureTool.js +65 -41
  772. package/lib/esm/tools/MeasureTool.js.map +1 -1
  773. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  774. package/lib/esm/tools/PrimitiveTool.js +9 -4
  775. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  776. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  777. package/lib/esm/tools/SelectTool.js +20 -9
  778. package/lib/esm/tools/SelectTool.js.map +1 -1
  779. package/lib/esm/tools/Tool.d.ts.map +1 -1
  780. package/lib/esm/tools/Tool.js +13 -5
  781. package/lib/esm/tools/Tool.js.map +1 -1
  782. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  783. package/lib/esm/tools/ToolAdmin.js +27 -9
  784. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  785. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  786. package/lib/esm/tools/ViewTool.js +111 -40
  787. package/lib/esm/tools/ViewTool.js.map +1 -1
  788. package/lib/esm/webgl.d.ts +1 -0
  789. package/lib/esm/webgl.d.ts.map +1 -1
  790. package/lib/esm/webgl.js +1 -0
  791. package/lib/esm/webgl.js.map +1 -1
  792. package/package.json +30 -24
  793. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  794. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  795. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +0 -75
  796. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  797. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  798. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  799. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +0 -270
  800. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
  801. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +0 -47
  802. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +0 -1
  803. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +0 -71
  804. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +0 -1
  805. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +0 -56
  806. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts.map +0 -1
  807. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +0 -266
  808. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +0 -1
@@ -182,11 +182,12 @@ class RealityMeshGeometryParams extends CachedGeometry_1.IndexedGeometryParams {
182
182
  return undefined;
183
183
  return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, featureID);
184
184
  }
185
- static createFromRealityMesh(mesh) {
186
- const posBuf = AttributeBuffers_1.QBufferHandle3d.create(mesh.pointQParams, mesh.points);
187
- const uvParamBuf = AttributeBuffers_1.QBufferHandle2d.create(mesh.uvQParams, mesh.uvs);
188
- const normalBuf = mesh.normals ? AttributeBuffers_1.BufferHandle.createArrayBuffer(mesh.normals) : undefined;
189
- return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, mesh.indices, normalBuf, mesh.featureID);
185
+ static fromRealityMesh(params) {
186
+ var _a;
187
+ const posBuf = AttributeBuffers_1.QBufferHandle3d.create(params.positions.params, params.positions.points);
188
+ const uvParamBuf = AttributeBuffers_1.QBufferHandle2d.create(params.uvs.params, params.uvs.points);
189
+ const normalBuf = params.normals ? AttributeBuffers_1.BufferHandle.createArrayBuffer(params.normals) : undefined;
190
+ return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, params.indices, normalBuf, (_a = params.featureID) !== null && _a !== void 0 ? _a : 0);
190
191
  }
191
192
  get isDisposed() {
192
193
  return super.isDisposed && this.uvParams.isDisposed;
@@ -224,15 +225,24 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
224
225
  if (true !== this._disableTextureDisposal)
225
226
  (0, core_bentley_1.dispose)(this.textureParams);
226
227
  }
227
- static createFromTerrainMesh(terrainMesh, transform, disableTextureDisposal = false) {
228
- const params = RealityMeshGeometryParams.createFromRealityMesh(terrainMesh);
229
- return params ? new RealityMeshGeometry({ realityMeshParams: params, transform, baseIsTransparent: false, isTerrain: true, disableTextureDisposal }) : undefined;
228
+ static createForTerrain(mesh, transform, disableTextureDisposal = false) {
229
+ const params = RealityMeshGeometryParams.fromRealityMesh(mesh);
230
+ if (!params)
231
+ return undefined;
232
+ return new RealityMeshGeometry({
233
+ realityMeshParams: params,
234
+ transform,
235
+ baseIsTransparent: false,
236
+ isTerrain: true,
237
+ disableTextureDisposal,
238
+ });
230
239
  }
231
240
  static createFromRealityMesh(realityMesh, disableTextureDisposal = false) {
232
- const params = RealityMeshGeometryParams.createFromRealityMesh(realityMesh);
241
+ var _a;
242
+ const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);
233
243
  if (!params)
234
244
  return undefined;
235
- const texture = realityMesh.texture ? new RenderSystem_1.TerrainTexture(realityMesh.texture, realityMesh.featureID, core_geometry_1.Vector2d.create(1.0, -1.0), core_geometry_1.Vector2d.create(0.0, 1.0), core_geometry_1.Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;
245
+ const texture = realityMesh.texture ? new RenderSystem_1.TerrainTexture(realityMesh.texture, (_a = realityMesh.featureID) !== null && _a !== void 0 ? _a : 0, core_geometry_1.Vector2d.create(1.0, -1.0), core_geometry_1.Vector2d.create(0.0, 1.0), core_geometry_1.Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;
236
246
  return new RealityMeshGeometry({ realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal });
237
247
  }
238
248
  getRange() {
@@ -315,8 +325,6 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
315
325
  }
316
326
  get techniqueId() { return 7 /* RealityMesh */; }
317
327
  getPass(target) {
318
- if (target.isDrawingShadowMap)
319
- return "none";
320
328
  if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))
321
329
  return "translucent";
322
330
  return "opaque";
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose, disposeArray, IDisposable } from \"@itwin/core-bentley\";\r\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\r\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RealityMeshGraphicParams, RealityMeshPrimitive } from \"../primitives/mesh/RealityMeshPrimitive\";\r\nimport { TerrainMeshPrimitive } from \"../primitives/mesh/TerrainMeshPrimitive\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\r\nimport { RenderSystem, TerrainTexture } from \"../RenderSystem\";\r\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\r\nimport { GL } from \"./GL\";\r\nimport { Matrix4 } from \"./Matrix\";\r\nimport { PlanarClassifier } from \"./PlanarClassifier\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nconst scratchOverlapRange = Range2d.createNull();\r\nconst scratchBytes = new Uint8Array(4);\r\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\r\nconst scratchRange2d = Range2d.createNull();\r\nclass ProjectedTexture {\r\n public classifier: PlanarClassifier;\r\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\r\n this.classifier = classifier as PlanarClassifier;\r\n }\r\n public clone(targetRectangle: Range2d) {\r\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\r\n }\r\n}\r\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\r\n\r\nclass RealityTextureParam implements IDisposable {\r\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\r\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\r\n\r\n public dispose(): void {\r\n this.texture = dispose(this.texture);\r\n }\r\n\r\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\n public getProjectionMatrix(): Matrix4d | undefined {\r\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\r\n }\r\n public getTerrainMatrix(): Matrix4 | undefined {\r\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\r\n }\r\n\r\n public getParams(result: Matrix4): Matrix4 {\r\n /** Entry 0 is 0 for */\r\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\r\n const projectedTexture = this._projectedTextureOrMatrix;\r\n\r\n result.data[0] = 1;\r\n result.data[1] = projectedTexture.classifier.textureImageCount;\r\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\r\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\r\n result.data[4] = scratchBytes[0];\r\n result.data[5] = scratchBytes[1];\r\n result.data[6] = scratchBytes[2];\r\n result.data[7] = scratchBytes[3];\r\n\r\n const points = [];\r\n const meshParams = projectedTexture.meshParams;\r\n // Calculate range in the tiles local coordinates.\r\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\r\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\r\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\r\n points.push( meshParams.projection.getGlobalPoint(high.x, low.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\r\n for (let i = 0, j = 8; i < 4; i++) {\r\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\r\n result.data[j++] = projectedPoint.x;\r\n result.data[j++] = projectedPoint.y;\r\n }\r\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\r\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\r\n if (x0 * y1 - x1 * y0 < 0) {\r\n const swap = ((i: number, j: number) => {\r\n const temp = result.data[i];\r\n result.data[i] = result.data[j];\r\n result.data[j] = temp;\r\n });\r\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\r\n swap(i, j);\r\n swap(i + 1, j + 1);\r\n }\r\n }\r\n } else {\r\n result.data[0] = 0;\r\n }\r\n return result;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityTextureParams implements IDisposable {\r\n constructor(public params: RealityTextureParam[]) { }\r\n public static create(textures: TerrainOrProjectedTexture[]) {\r\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\r\n assert(textures.length <= maxTexturesPerMesh);\r\n\r\n const textureParams = new Array<RealityTextureParam>();\r\n for (const texture of textures) {\r\n if (texture instanceof TerrainTexture) {\r\n const terrainTexture = texture;\r\n const matrix = new Matrix4(); // Published as Mat4.\r\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\r\n matrix.data[0] = terrainTexture.translate.x;\r\n matrix.data[1] = terrainTexture.translate.y;\r\n matrix.data[2] = terrainTexture.scale.x;\r\n matrix.data[3] = terrainTexture.scale.y;\r\n\r\n if (terrainTexture.clipRectangle) {\r\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\r\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\r\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\r\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\r\n } else {\r\n matrix.data[4] = matrix.data[5] = 0;\r\n matrix.data[6] = matrix.data[7] = 1;\r\n }\r\n matrix.data[8] = (1.0 - terrainTexture.transparency);\r\n matrix.data[9] = terrainTexture.featureId;\r\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\r\n } else {\r\n const classifier = texture.classifier;\r\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\r\n }\r\n }\r\n\r\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\r\n const matrix = new Matrix4();\r\n matrix.data[0] = matrix.data[1] = 0.0;\r\n matrix.data[2] = matrix.data[3] = 1.0;\r\n matrix.data[4] = matrix.data[5] = 1;\r\n matrix.data[6] = matrix.data[7] = -1;\r\n matrix.data[15] = 0; // Denotes a terrain texture.\r\n textureParams.push(new RealityTextureParam(undefined, matrix));\r\n }\r\n return new RealityTextureParams(textureParams);\r\n }\r\n\r\n public dispose(): void {\r\n disposeArray(this.params);\r\n }\r\n}\r\n/** @internal */\r\n\r\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly featureID?: number;\r\n public readonly normals?: BufferHandle;\r\n\r\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, featureID?: number) {\r\n super(positions, indices, numIndices);\r\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.uvParams = uvParams;\r\n\r\n if (undefined !== normals) {\r\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n if (normals.bytesUsed > 0)\r\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.normals = normals;\r\n }\r\n this.featureID = featureID;\r\n }\r\n\r\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: Uint16Array, normBuf: BufferHandle | undefined, featureID: number) {\r\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n\r\n if (undefined === indBuf)\r\n return undefined;\r\n\r\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, featureID);\r\n\r\n }\r\n\r\n public static createFromRealityMesh(mesh: RealityMeshPrimitive) {\r\n const posBuf = QBufferHandle3d.create(mesh.pointQParams, mesh.points);\r\n const uvParamBuf = QBufferHandle2d.create(mesh.uvQParams, mesh.uvs);\r\n const normalBuf = mesh.normals ? BufferHandle.createArrayBuffer(mesh.normals) : undefined;\r\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, mesh.indices, normalBuf, mesh.featureID);\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed && this.uvParams.isDisposed;\r\n }\r\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this.uvParams);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityMeshGeometry extends IndexedGeometry implements IDisposable, RenderMemory.Consumer {\r\n public readonly hasTextures: boolean;\r\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\r\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\r\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\r\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\r\n public override get supportsThematicDisplay() { return true; }\r\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\r\n public get transform(): Transform | undefined { return this._transform; }\r\n\r\n private _realityMeshParams: RealityMeshGeometryParams;\r\n public textureParams: RealityTextureParams | undefined;\r\n private readonly _transform: Transform | undefined;\r\n public readonly baseColor: ColorDef | undefined;\r\n private _baseIsTransparent: boolean;\r\n private _isTerrain: boolean;\r\n private _disableTextureDisposal: boolean;\r\n\r\n private constructor(props: {\r\n realityMeshParams: RealityMeshGeometryParams;\r\n textureParams?: RealityTextureParams;\r\n transform?: Transform;\r\n baseColor?: ColorDef;\r\n baseIsTransparent: boolean;\r\n isTerrain: boolean;\r\n disableTextureDisposal: boolean;\r\n }) {\r\n super(props.realityMeshParams);\r\n this._realityMeshParams = props.realityMeshParams;\r\n this.textureParams = props.textureParams;\r\n this._transform = props.transform;\r\n this.baseColor = props.baseColor;\r\n this._baseIsTransparent = props.baseIsTransparent;\r\n this._isTerrain = props.isTerrain;\r\n this._disableTextureDisposal = props.disableTextureDisposal;\r\n this.hasTextures = undefined !== this.textureParams && this.textureParams.params.some((x) => undefined !== x.texture);\r\n }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this._realityMeshParams);\r\n if (true !== this._disableTextureDisposal)\r\n dispose(this.textureParams);\r\n }\r\n\r\n public static createFromTerrainMesh(terrainMesh: TerrainMeshPrimitive, transform: Transform | undefined, disableTextureDisposal = false) {\r\n const params = RealityMeshGeometryParams.createFromRealityMesh(terrainMesh);\r\n return params ? new RealityMeshGeometry({realityMeshParams: params, transform, baseIsTransparent: false, isTerrain: true, disableTextureDisposal}) : undefined;\r\n }\r\n\r\n public static createFromRealityMesh(realityMesh: RealityMeshPrimitive, disableTextureDisposal = false): RealityMeshGeometry | undefined {\r\n const params = RealityMeshGeometryParams.createFromRealityMesh(realityMesh);\r\n if (!params)\r\n return undefined;\r\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\r\n\r\n return new RealityMeshGeometry({realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal});\r\n }\r\n\r\n public getRange(): Range3d {\r\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\r\n }\r\n\r\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams, disableTextureDisposal = false): RenderGraphic | undefined {\r\n const meshes = [];\r\n const textures = params.textures ?? [];\r\n const realityMesh = params.realityMesh as RealityMeshGeometry;\r\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\r\n\r\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\r\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\r\n // Collate the textures and classifiers layers into a single array.\r\n for (const texture of textures) {\r\n const layer = layers[texture.layerIndex];\r\n if (layer) {\r\n (layer as TerrainTexture[]).push(texture);\r\n } else {\r\n layers[texture.layerIndex] = [texture];\r\n }\r\n }\r\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\r\n\r\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\r\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\r\n meshes.push(new RealityMeshGeometry({realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(textures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal}));\r\n } else {\r\n let primaryLayer;\r\n while (primaryLayer === undefined)\r\n primaryLayer = layers.shift();\r\n if (!primaryLayer)\r\n return undefined;\r\n for (const primaryTexture of primaryLayer) {\r\n const targetRectangle = primaryTexture.targetRectangle;\r\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\r\n let layerTextures = [primaryTexture];\r\n for (const secondaryLayer of layers) {\r\n if (!secondaryLayer)\r\n continue;\r\n for (const secondaryTexture of secondaryLayer) {\r\n if (secondaryTexture instanceof ProjectedTexture) {\r\n layerTextures.push(secondaryTexture.clone(targetRectangle));\r\n } else {\r\n const secondaryRectangle = secondaryTexture.targetRectangle;\r\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\r\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\r\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\r\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\r\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\r\n\r\n if (secondaryTexture.clipRectangle)\r\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\r\n\r\n if (!textureRange.isNull && textureRange) {\r\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n while (layerTextures.length > texturesPerMesh) {\r\n meshes.push(new RealityMeshGeometry({realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal}));\r\n layerTextures = layerTextures.slice(texturesPerMesh);\r\n }\r\n meshes.push(new RealityMeshGeometry({realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal}));\r\n }\r\n }\r\n\r\n if (meshes.length === 0)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const mesh of meshes) {\r\n const primitive = Primitive.create(mesh);\r\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\r\n }\r\n\r\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity());\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\r\n\r\n public override getPass(target: Target) {\r\n if (target.isDrawingShadowMap)\r\n return \"none\";\r\n\r\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\r\n return \"translucent\";\r\n\r\n return \"opaque\";\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n\r\n public override draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, GL.DataType.UnsignedShort, 0);\r\n this._params.buffers.unbind();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityMesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose, disposeArray, IDisposable } from \"@itwin/core-bentley\";\r\nimport { ColorDef, Quantization, RenderTexture } from \"@itwin/core-common\";\r\nimport { Matrix4d, Range2d, Range3d, Transform, Vector2d } from \"@itwin/core-geometry\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RealityMeshGraphicParams } from \"../RealityMeshGraphicParams\";\r\nimport { RealityMeshParams } from \"../RealityMeshParams\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\r\nimport { RenderSystem, TerrainTexture } from \"../RenderSystem\";\r\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\r\nimport { GL } from \"./GL\";\r\nimport { Matrix4 } from \"./Matrix\";\r\nimport { PlanarClassifier } from \"./PlanarClassifier\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nconst scratchOverlapRange = Range2d.createNull();\r\nconst scratchBytes = new Uint8Array(4);\r\nconst scratchBatchBaseId = new Uint32Array(scratchBytes.buffer);\r\nconst scratchRange2d = Range2d.createNull();\r\nclass ProjectedTexture {\r\n public classifier: PlanarClassifier;\r\n constructor(classifier: RenderPlanarClassifier, public meshParams: RealityMeshGraphicParams, public targetRectangle: Range2d) {\r\n this.classifier = classifier as PlanarClassifier;\r\n }\r\n public clone(targetRectangle: Range2d) {\r\n return new ProjectedTexture(this.classifier, this.meshParams, targetRectangle.clone());\r\n }\r\n}\r\ntype TerrainOrProjectedTexture = TerrainTexture | ProjectedTexture;\r\n\r\nclass RealityTextureParam implements IDisposable {\r\n constructor(public texture: RenderTexture | undefined, private _projectedTextureOrMatrix: ProjectedTexture | Matrix4) { }\r\n public get isProjected() { return this._projectedTextureOrMatrix instanceof ProjectedTexture; }\r\n\r\n public dispose(): void {\r\n this.texture = dispose(this.texture);\r\n }\r\n\r\n /* There are two methods of applying a texture to a reality mesh. the first member of \"params\" denotes which\r\n method is to be used. A value of zero indicates a standard texture and one represents a classified texture.\r\n\r\n A standard (nonprojected) texture is generated by multiplying v_textCoord by the scaling and translation packed into the first row\r\n of \"matrix\". A clip rectangle is packed into second row of \"matrix\".\r\n\r\n A \"classified\" reality mesh texture is used for map layers. It does not uses v_texCoord, the texture coordinates\r\n are instead generated by a projection of the model position onto the X-Y plane. We only have eye position, not model position\r\n so the matrix in this case is a real transform matrix that contains a mapping from eye to model position\r\n followed by the model to texture projection.\r\n*/\r\n public getProjectionMatrix(): Matrix4d | undefined {\r\n return this._projectedTextureOrMatrix instanceof ProjectedTexture ? this._projectedTextureOrMatrix.classifier.projectionMatrix : undefined;\r\n }\r\n public getTerrainMatrix(): Matrix4 | undefined {\r\n return this._projectedTextureOrMatrix instanceof Matrix4 ? this._projectedTextureOrMatrix : undefined;\r\n }\r\n\r\n public getParams(result: Matrix4): Matrix4 {\r\n /** Entry 0 is 0 for */\r\n if (this._projectedTextureOrMatrix instanceof ProjectedTexture) {\r\n const projectedTexture = this._projectedTextureOrMatrix;\r\n\r\n result.data[0] = 1;\r\n result.data[1] = projectedTexture.classifier.textureImageCount;\r\n result.data[2] = projectedTexture.classifier.sourceTransparency === undefined ? 1.0 : (1.0 - projectedTexture.classifier.sourceTransparency);\r\n scratchBatchBaseId[0] = projectedTexture.classifier.baseBatchId;\r\n result.data[4] = scratchBytes[0];\r\n result.data[5] = scratchBytes[1];\r\n result.data[6] = scratchBytes[2];\r\n result.data[7] = scratchBytes[3];\r\n\r\n const points = [];\r\n const meshParams = projectedTexture.meshParams;\r\n // Calculate range in the tiles local coordinates.\r\n const low = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.low, scratchRange2d.low)!;\r\n const high = meshParams.tileRectangle.worldToLocal(projectedTexture.targetRectangle.high, scratchRange2d.high)!;\r\n points.push(meshParams.projection.getGlobalPoint(low.x, low.y, 0));\r\n points.push( meshParams.projection.getGlobalPoint(high.x, low.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(high.x, high.y, 0));\r\n points.push(meshParams.projection.getGlobalPoint(low.x, high.y, 0));\r\n for (let i = 0, j = 8; i < 4; i++) {\r\n const projectedPoint = projectedTexture.classifier.projectionMatrix.multiplyPoint3dQuietNormalize(points[i]);\r\n result.data[j++] = projectedPoint.x;\r\n result.data[j++] = projectedPoint.y;\r\n }\r\n const x0 = result.data[10] - result.data[8], y0 = result.data[11] - result.data[9];\r\n const x1 = result.data[12] - result.data[8], y1 = result.data[13] - result.data[9];\r\n if (x0 * y1 - x1 * y0 < 0) {\r\n const swap = ((i: number, j: number) => {\r\n const temp = result.data[i];\r\n result.data[i] = result.data[j];\r\n result.data[j] = temp;\r\n });\r\n for (let i = 8, j = 14; i <= 10; i += 2, j -= 2) {\r\n swap(i, j);\r\n swap(i + 1, j + 1);\r\n }\r\n }\r\n } else {\r\n result.data[0] = 0;\r\n }\r\n return result;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityTextureParams implements IDisposable {\r\n constructor(public params: RealityTextureParam[]) { }\r\n public static create(textures: TerrainOrProjectedTexture[]) {\r\n const maxTexturesPerMesh = System.instance.maxRealityImageryLayers;\r\n assert(textures.length <= maxTexturesPerMesh);\r\n\r\n const textureParams = new Array<RealityTextureParam>();\r\n for (const texture of textures) {\r\n if (texture instanceof TerrainTexture) {\r\n const terrainTexture = texture;\r\n const matrix = new Matrix4(); // Published as Mat4.\r\n assert(terrainTexture.texture !== undefined, \"Texture not defined in TerrainTextureParams constructor\");\r\n matrix.data[0] = terrainTexture.translate.x;\r\n matrix.data[1] = terrainTexture.translate.y;\r\n matrix.data[2] = terrainTexture.scale.x;\r\n matrix.data[3] = terrainTexture.scale.y;\r\n\r\n if (terrainTexture.clipRectangle) {\r\n matrix.data[4] = terrainTexture.clipRectangle.low.x;\r\n matrix.data[5] = terrainTexture.clipRectangle.low.y;\r\n matrix.data[6] = terrainTexture.clipRectangle.high.x;\r\n matrix.data[7] = terrainTexture.clipRectangle.high.y;\r\n } else {\r\n matrix.data[4] = matrix.data[5] = 0;\r\n matrix.data[6] = matrix.data[7] = 1;\r\n }\r\n matrix.data[8] = (1.0 - terrainTexture.transparency);\r\n matrix.data[9] = terrainTexture.featureId;\r\n textureParams.push(new RealityTextureParam(terrainTexture.texture, matrix));\r\n } else {\r\n const classifier = texture.classifier;\r\n textureParams.push(new RealityTextureParam(classifier.getOrCreateClassifierTexture(), texture));\r\n }\r\n }\r\n\r\n for (let i = textures.length; i < maxTexturesPerMesh; i++) {\r\n const matrix = new Matrix4();\r\n matrix.data[0] = matrix.data[1] = 0.0;\r\n matrix.data[2] = matrix.data[3] = 1.0;\r\n matrix.data[4] = matrix.data[5] = 1;\r\n matrix.data[6] = matrix.data[7] = -1;\r\n matrix.data[15] = 0; // Denotes a terrain texture.\r\n textureParams.push(new RealityTextureParam(undefined, matrix));\r\n }\r\n return new RealityTextureParams(textureParams);\r\n }\r\n\r\n public dispose(): void {\r\n disposeArray(this.params);\r\n }\r\n}\r\n/** @internal */\r\n\r\nexport class RealityMeshGeometryParams extends IndexedGeometryParams {\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly featureID?: number;\r\n public readonly normals?: BufferHandle;\r\n\r\n protected constructor(positions: QBufferHandle3d, normals: BufferHandle | undefined, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, featureID?: number) {\r\n super(positions, indices, numIndices);\r\n let attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.uvParams = uvParams;\r\n\r\n if (undefined !== normals) {\r\n attrParams = AttributeMap.findAttribute(\"a_norm\", TechniqueId.RealityMesh, false);\r\n assert(attrParams !== undefined);\r\n if (normals.bytesUsed > 0)\r\n this.buffers.addBuffer(normals, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.normals = normals;\r\n }\r\n this.featureID = featureID;\r\n }\r\n\r\n private static createFromBuffers(posBuf: QBufferHandle3d, uvParamBuf: QBufferHandle2d, indices: Uint16Array, normBuf: BufferHandle | undefined, featureID: number) {\r\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n\r\n if (undefined === indBuf)\r\n return undefined;\r\n\r\n return new RealityMeshGeometryParams(posBuf, normBuf, uvParamBuf, indBuf, indices.length, featureID);\r\n\r\n }\r\n\r\n public static fromRealityMesh(params: RealityMeshParams) {\r\n const posBuf = QBufferHandle3d.create(params.positions.params, params.positions.points);\r\n const uvParamBuf = QBufferHandle2d.create(params.uvs.params, params.uvs.points);\r\n const normalBuf = params.normals ? BufferHandle.createArrayBuffer(params.normals) : undefined;\r\n return (undefined === posBuf || undefined === uvParamBuf) ? undefined : this.createFromBuffers(posBuf, uvParamBuf, params.indices, normalBuf, params.featureID ?? 0);\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed && this.uvParams.isDisposed;\r\n }\r\n public get bytesUsed(): number { return this.positions.bytesUsed + (undefined === this.normals ? 0 : this.normals.bytesUsed) + this.uvParams.bytesUsed + this.indices.bytesUsed; }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this.uvParams);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class RealityMeshGeometry extends IndexedGeometry implements IDisposable, RenderMemory.Consumer {\r\n public readonly hasTextures: boolean;\r\n public override get asRealityMesh(): RealityMeshGeometry | undefined { return this; }\r\n public override get isDisposed(): boolean { return this._realityMeshParams.isDisposed; }\r\n public get uvQParams() { return this._realityMeshParams.uvParams.params; }\r\n public override get hasFeatures(): boolean { return this._realityMeshParams.featureID !== undefined; }\r\n public override get supportsThematicDisplay() { return true; }\r\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\r\n public get transform(): Transform | undefined { return this._transform; }\r\n\r\n private _realityMeshParams: RealityMeshGeometryParams;\r\n public textureParams: RealityTextureParams | undefined;\r\n private readonly _transform: Transform | undefined;\r\n public readonly baseColor: ColorDef | undefined;\r\n private _baseIsTransparent: boolean;\r\n private _isTerrain: boolean;\r\n private _disableTextureDisposal: boolean;\r\n\r\n private constructor(props: {\r\n realityMeshParams: RealityMeshGeometryParams;\r\n textureParams?: RealityTextureParams;\r\n transform?: Transform;\r\n baseColor?: ColorDef;\r\n baseIsTransparent: boolean;\r\n isTerrain: boolean;\r\n disableTextureDisposal: boolean;\r\n }) {\r\n super(props.realityMeshParams);\r\n this._realityMeshParams = props.realityMeshParams;\r\n this.textureParams = props.textureParams;\r\n this._transform = props.transform;\r\n this.baseColor = props.baseColor;\r\n this._baseIsTransparent = props.baseIsTransparent;\r\n this._isTerrain = props.isTerrain;\r\n this._disableTextureDisposal = props.disableTextureDisposal;\r\n this.hasTextures = undefined !== this.textureParams && this.textureParams.params.some((x) => undefined !== x.texture);\r\n }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this._realityMeshParams);\r\n if (true !== this._disableTextureDisposal)\r\n dispose(this.textureParams);\r\n }\r\n\r\n public static createForTerrain(mesh: RealityMeshParams, transform: Transform | undefined, disableTextureDisposal = false) {\r\n const params = RealityMeshGeometryParams.fromRealityMesh(mesh);\r\n if (!params)\r\n return undefined;\r\n\r\n return new RealityMeshGeometry({\r\n realityMeshParams: params,\r\n transform,\r\n baseIsTransparent: false,\r\n isTerrain: true,\r\n disableTextureDisposal,\r\n });\r\n }\r\n\r\n public static createFromRealityMesh(realityMesh: RealityMeshParams, disableTextureDisposal = false): RealityMeshGeometry | undefined {\r\n const params = RealityMeshGeometryParams.fromRealityMesh(realityMesh);\r\n if (!params)\r\n return undefined;\r\n const texture = realityMesh.texture ? new TerrainTexture(realityMesh.texture, realityMesh.featureID ?? 0, Vector2d.create(1.0, -1.0), Vector2d.create(0.0, 1.0), Range2d.createXYXY(0, 0, 1, 1), 0, 0) : undefined;\r\n\r\n return new RealityMeshGeometry({realityMeshParams: params, textureParams: texture ? RealityTextureParams.create([texture]) : undefined, baseIsTransparent: false, isTerrain: false, disableTextureDisposal});\r\n }\r\n\r\n public getRange(): Range3d {\r\n return Range3d.createXYZXYZ(this.qOrigin[0], this.qOrigin[1], this.qOrigin[2], this.qOrigin[0] + Quantization.rangeScale16 * this.qScale[0], this.qOrigin[1] + Quantization.rangeScale16 * this.qScale[1], this.qOrigin[2] + Quantization.rangeScale16 * this.qScale[2]);\r\n }\r\n\r\n public static createGraphic(system: RenderSystem, params: RealityMeshGraphicParams, disableTextureDisposal = false): RenderGraphic | undefined {\r\n const meshes = [];\r\n const textures = params.textures ?? [];\r\n const realityMesh = params.realityMesh as RealityMeshGeometry;\r\n const { baseColor, baseTransparent, featureTable, tileId, layerClassifiers } = params;\r\n\r\n const texturesPerMesh = System.instance.maxRealityImageryLayers;\r\n const layers = new Array<(TerrainTexture | ProjectedTexture)[]>();\r\n // Collate the textures and classifiers layers into a single array.\r\n for (const texture of textures) {\r\n const layer = layers[texture.layerIndex];\r\n if (layer) {\r\n (layer as TerrainTexture[]).push(texture);\r\n } else {\r\n layers[texture.layerIndex] = [texture];\r\n }\r\n }\r\n params.layerClassifiers?.forEach((layerClassifier, layerIndex) => layers[layerIndex] = [new ProjectedTexture(layerClassifier, params, params.tileRectangle)]);\r\n\r\n if (layers.length < 2 && !layerClassifiers?.size && textures.length < texturesPerMesh) {\r\n // If only there is not more than one layer then we can group all of the textures into a single draw call.\r\n meshes.push(new RealityMeshGeometry({realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(textures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal}));\r\n } else {\r\n let primaryLayer;\r\n while (primaryLayer === undefined)\r\n primaryLayer = layers.shift();\r\n if (!primaryLayer)\r\n return undefined;\r\n for (const primaryTexture of primaryLayer) {\r\n const targetRectangle = primaryTexture.targetRectangle;\r\n const overlapMinimum = 1.0E-5 * (targetRectangle.high.x - targetRectangle.low.x) * (targetRectangle.high.y - targetRectangle.low.y);\r\n let layerTextures = [primaryTexture];\r\n for (const secondaryLayer of layers) {\r\n if (!secondaryLayer)\r\n continue;\r\n for (const secondaryTexture of secondaryLayer) {\r\n if (secondaryTexture instanceof ProjectedTexture) {\r\n layerTextures.push(secondaryTexture.clone(targetRectangle));\r\n } else {\r\n const secondaryRectangle = secondaryTexture.targetRectangle;\r\n const overlap = targetRectangle.intersect(secondaryRectangle, scratchOverlapRange);\r\n if (!overlap.isNull && (overlap.high.x - overlap.low.x) * (overlap.high.y - overlap.low.y) > overlapMinimum) {\r\n const textureRange = Range2d.createXYXY(overlap.low.x, overlap.low.y, overlap.high.x, overlap.high.y);\r\n secondaryRectangle.worldToLocal(textureRange.low, textureRange.low);\r\n secondaryRectangle.worldToLocal(textureRange.high, textureRange.high);\r\n\r\n if (secondaryTexture.clipRectangle)\r\n textureRange.intersect(secondaryTexture.clipRectangle, textureRange);\r\n\r\n if (!textureRange.isNull && textureRange) {\r\n layerTextures.push(secondaryTexture.cloneWithClip(textureRange));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n while (layerTextures.length > texturesPerMesh) {\r\n meshes.push(new RealityMeshGeometry({realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures.slice(0, texturesPerMesh)), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal}));\r\n layerTextures = layerTextures.slice(texturesPerMesh);\r\n }\r\n meshes.push(new RealityMeshGeometry({realityMeshParams: realityMesh._realityMeshParams, textureParams: RealityTextureParams.create(layerTextures), transform: realityMesh._transform, baseColor, baseIsTransparent: baseTransparent, isTerrain: realityMesh._isTerrain, disableTextureDisposal}));\r\n }\r\n }\r\n\r\n if (meshes.length === 0)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const mesh of meshes) {\r\n const primitive = Primitive.create(mesh);\r\n branch.add(system.createBatch(primitive!, featureTable, mesh.getRange(), { tileId }));\r\n }\r\n\r\n return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : Transform.createIdentity());\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.RealityMesh; }\r\n\r\n public override getPass(target: Target) {\r\n if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))\r\n return \"translucent\";\r\n\r\n return \"opaque\";\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n\r\n public override draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, GL.DataType.UnsignedShort, 0);\r\n this._params.buffers.unbind();\r\n }\r\n}\r\n"]}
@@ -0,0 +1,35 @@
1
+ /** @packageDocumentation
2
+ * @module WebGL
3
+ */
4
+ import { PointCloudDisplaySettings, RealityModelDisplaySettings } from "@itwin/core-common";
5
+ import { UniformHandle } from "./UniformHandle";
6
+ /** A Target keeps track of the current settings for drawing point clouds.
7
+ * Pushing a Branch may *replace* the current settings. Popping the Branch does not reset them. It is expected that every Branch containing
8
+ * a point cloud will also specify the settings for drawing that point cloud.
9
+ * This permits the same point cloud graphics to be rendered differently in different viewports.
10
+ * In future these uniforms will include eye-dome lighting.
11
+ * @internal
12
+ */
13
+ export declare class PointCloudUniforms {
14
+ syncKey: number;
15
+ private _settings;
16
+ private readonly _vec4;
17
+ constructor();
18
+ update(settings: PointCloudDisplaySettings): void;
19
+ bind(uniform: UniformHandle): void;
20
+ private initialize;
21
+ }
22
+ /** Uniforms affecting how reality models are drawn.
23
+ * Pushing a Branch may *replace* the current settings. Popping the Branch does not reset them. It is expected that every Branch containing
24
+ * a reality model will also specify the settings for drawing that reality model.
25
+ * This permits the same reality model graphics to be rendered differently in different viewports.
26
+ * In future these uniforms may include additional settings for reality meshes - currently only the override color ratio applies to them.
27
+ * @internal
28
+ */
29
+ export declare class RealityModelUniforms {
30
+ readonly pointCloud: PointCloudUniforms;
31
+ private _overrideColorMix;
32
+ update(settings: RealityModelDisplaySettings): void;
33
+ bindOverrideColorMix(uniform: UniformHandle): void;
34
+ }
35
+ //# sourceMappingURL=RealityModelUniforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealityModelUniforms.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityModelUniforms.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IACtB,OAAO,SAAK;IACnB,OAAO,CAAC,SAAS,CAAsC;IAOvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;;IAMtC,MAAM,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IASjD,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC,OAAO,CAAC,UAAU;CAMnB;AAED;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAE/B,SAAgB,UAAU,qBAA4B;IACtD,OAAO,CAAC,iBAAiB,CAAO;IAEzB,MAAM,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAKnD,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAG1D"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RealityModelUniforms = exports.PointCloudUniforms = void 0;
8
+ /** @packageDocumentation
9
+ * @module WebGL
10
+ */
11
+ const core_common_1 = require("@itwin/core-common");
12
+ const Sync_1 = require("./Sync");
13
+ /** A Target keeps track of the current settings for drawing point clouds.
14
+ * Pushing a Branch may *replace* the current settings. Popping the Branch does not reset them. It is expected that every Branch containing
15
+ * a point cloud will also specify the settings for drawing that point cloud.
16
+ * This permits the same point cloud graphics to be rendered differently in different viewports.
17
+ * In future these uniforms will include eye-dome lighting.
18
+ * @internal
19
+ */
20
+ class PointCloudUniforms {
21
+ constructor() {
22
+ this.syncKey = 0;
23
+ this._settings = core_common_1.PointCloudDisplaySettings.defaults;
24
+ // vec3 u_pointSize
25
+ // x = fixed point size in pixels if > 0, else scale applied to voxel size (negated).
26
+ // y = minimum size in pixels if using voxel size.
27
+ // z = maximum size in pixels if using voxel size
28
+ // w = 1.0 if drawing square points, 0.0 if round.
29
+ this._vec4 = new Float32Array(4);
30
+ this.initialize(this._settings);
31
+ }
32
+ update(settings) {
33
+ if (this._settings.equals(settings))
34
+ return;
35
+ this._settings = settings;
36
+ (0, Sync_1.desync)(this);
37
+ this.initialize(settings);
38
+ }
39
+ bind(uniform) {
40
+ if (!(0, Sync_1.sync)(this, uniform))
41
+ uniform.setUniform4fv(this._vec4);
42
+ }
43
+ initialize(settings) {
44
+ this._vec4[0] = "pixel" === settings.sizeMode ? settings.pixelSize : -settings.voxelScale;
45
+ this._vec4[1] = settings.minPixelsPerVoxel;
46
+ this._vec4[2] = settings.maxPixelsPerVoxel;
47
+ this._vec4[3] = "square" === settings.shape ? 1 : 0;
48
+ }
49
+ }
50
+ exports.PointCloudUniforms = PointCloudUniforms;
51
+ /** Uniforms affecting how reality models are drawn.
52
+ * Pushing a Branch may *replace* the current settings. Popping the Branch does not reset them. It is expected that every Branch containing
53
+ * a reality model will also specify the settings for drawing that reality model.
54
+ * This permits the same reality model graphics to be rendered differently in different viewports.
55
+ * In future these uniforms may include additional settings for reality meshes - currently only the override color ratio applies to them.
56
+ * @internal
57
+ */
58
+ class RealityModelUniforms {
59
+ constructor() {
60
+ // ###TODO when we need it: public readonly mesh = new RealityMeshUniforms();
61
+ this.pointCloud = new PointCloudUniforms();
62
+ this._overrideColorMix = 0.5;
63
+ }
64
+ update(settings) {
65
+ this._overrideColorMix = settings.overrideColorRatio;
66
+ this.pointCloud.update(settings.pointCloud);
67
+ }
68
+ bindOverrideColorMix(uniform) {
69
+ uniform.setUniform1f(this._overrideColorMix);
70
+ }
71
+ }
72
+ exports.RealityModelUniforms = RealityModelUniforms;
73
+ //# sourceMappingURL=RealityModelUniforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealityModelUniforms.js","sourceRoot":"","sources":["../../../../src/render/webgl/RealityModelUniforms.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,oDAA4F;AAE5F,iCAAsC;AAEtC;;;;;;GAMG;AACH,MAAa,kBAAkB;IAW7B;QAVO,YAAO,GAAG,CAAC,CAAC;QACX,cAAS,GAAG,uCAAyB,CAAC,QAAQ,CAAC;QAEvD,mBAAmB;QACnB,qFAAqF;QACrF,kDAAkD;QAClD,iDAAiD;QACjD,kDAAkD;QACjC,UAAK,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAG3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,QAAmC;QAC/C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjC,OAAO;QAET,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAEM,IAAI,CAAC,OAAsB;QAChC,IAAI,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,OAAO,CAAC;YACtB,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEO,UAAU,CAAC,QAAmC;QACpD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC1F,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;CACF;AAnCD,gDAmCC;AAED;;;;;;GAMG;AACH,MAAa,oBAAoB;IAAjC;QACE,6EAA6E;QAC7D,eAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC9C,sBAAiB,GAAG,GAAG,CAAC;IAUlC,CAAC;IARQ,MAAM,CAAC,QAAqC;QACjD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAEM,oBAAoB,CAAC,OAAsB;QAChD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;CACF;AAbD,oDAaC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { PointCloudDisplaySettings, RealityModelDisplaySettings } from \"@itwin/core-common\";\r\nimport { UniformHandle } from \"./UniformHandle\";\r\nimport { desync, sync } from \"./Sync\";\r\n\r\n/** A Target keeps track of the current settings for drawing point clouds.\r\n * Pushing a Branch may *replace* the current settings. Popping the Branch does not reset them. It is expected that every Branch containing\r\n * a point cloud will also specify the settings for drawing that point cloud.\r\n * This permits the same point cloud graphics to be rendered differently in different viewports.\r\n * In future these uniforms will include eye-dome lighting.\r\n * @internal\r\n */\r\nexport class PointCloudUniforms {\r\n public syncKey = 0;\r\n private _settings = PointCloudDisplaySettings.defaults;\r\n\r\n // vec3 u_pointSize\r\n // x = fixed point size in pixels if > 0, else scale applied to voxel size (negated).\r\n // y = minimum size in pixels if using voxel size.\r\n // z = maximum size in pixels if using voxel size\r\n // w = 1.0 if drawing square points, 0.0 if round.\r\n private readonly _vec4 = new Float32Array(4);\r\n\r\n public constructor() {\r\n this.initialize(this._settings);\r\n }\r\n\r\n public update(settings: PointCloudDisplaySettings): void {\r\n if (this._settings.equals(settings))\r\n return;\r\n\r\n this._settings = settings;\r\n desync(this);\r\n this.initialize(settings);\r\n }\r\n\r\n public bind(uniform: UniformHandle): void {\r\n if (!sync(this, uniform))\r\n uniform.setUniform4fv(this._vec4);\r\n }\r\n\r\n private initialize(settings: PointCloudDisplaySettings): void {\r\n this._vec4[0] = \"pixel\" === settings.sizeMode ? settings.pixelSize : -settings.voxelScale;\r\n this._vec4[1] = settings.minPixelsPerVoxel;\r\n this._vec4[2] = settings.maxPixelsPerVoxel;\r\n this._vec4[3] = \"square\" === settings.shape ? 1 : 0;\r\n }\r\n}\r\n\r\n/** Uniforms affecting how reality models are drawn.\r\n * Pushing a Branch may *replace* the current settings. Popping the Branch does not reset them. It is expected that every Branch containing\r\n * a reality model will also specify the settings for drawing that reality model.\r\n * This permits the same reality model graphics to be rendered differently in different viewports.\r\n * In future these uniforms may include additional settings for reality meshes - currently only the override color ratio applies to them.\r\n * @internal\r\n */\r\nexport class RealityModelUniforms {\r\n // ###TODO when we need it: public readonly mesh = new RealityMeshUniforms();\r\n public readonly pointCloud = new PointCloudUniforms();\r\n private _overrideColorMix = 0.5;\r\n\r\n public update(settings: RealityModelDisplaySettings): void {\r\n this._overrideColorMix = settings.overrideColorRatio;\r\n this.pointCloud.update(settings.pointCloud);\r\n }\r\n\r\n public bindOverrideColorMix(uniform: UniformHandle): void {\r\n uniform.setUniform1f(this._overrideColorMix);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderCommands.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RenderCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderCommands.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RenderCommands.ts"],"names":[],"mappings":"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"}
@@ -386,7 +386,7 @@ class RenderCommands {
386
386
  this._clearCommands();
387
387
  }
388
388
  _clearCommands() {
389
- this._commands.forEach((cmds) => { cmds.splice(0); });
389
+ this._commands.forEach((cmds) => cmds.splice(0));
390
390
  this._layers.clear();
391
391
  }
392
392
  initForPickOverlays(sceneOverlays, overlayDecorations) {
@@ -609,7 +609,8 @@ class RenderCommands {
609
609
  case "pushBranch":
610
610
  index = 2;
611
611
  break;
612
- default: continue;
612
+ default:
613
+ continue;
613
614
  }
614
615
  dump[index].count++;
615
616
  }