@itwin/core-frontend 3.0.0-extension.1 → 3.1.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1266) hide show
  1. package/CHANGELOG.md +89 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuSnap.js +3 -3
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +10 -5
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.d.ts +1 -1
  9. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.js +2 -2
  11. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  12. package/lib/cjs/BingLocation.js +2 -2
  13. package/lib/cjs/BingLocation.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js +1 -1
  15. package/lib/cjs/CheckpointConnection.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.js +1 -1
  17. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  18. package/lib/cjs/DisplayStyleState.d.ts +10 -163
  19. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  20. package/lib/cjs/DisplayStyleState.js +69 -350
  21. package/lib/cjs/DisplayStyleState.js.map +1 -1
  22. package/lib/cjs/DrawingViewState.d.ts +2 -2
  23. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  24. package/lib/cjs/DrawingViewState.js +3 -3
  25. package/lib/cjs/DrawingViewState.js.map +1 -1
  26. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  27. package/lib/cjs/EmphasizeElements.js +14 -4
  28. package/lib/cjs/EmphasizeElements.js.map +1 -1
  29. package/lib/cjs/EnvironmentDecorations.d.ts +39 -0
  30. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -0
  31. package/lib/cjs/EnvironmentDecorations.js +203 -0
  32. package/lib/cjs/EnvironmentDecorations.js.map +1 -0
  33. package/lib/cjs/FrontendHubAccess.d.ts +11 -7
  34. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  35. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  36. package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
  37. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  38. package/lib/cjs/FrontendLoggerCategory.js +2 -8
  39. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  40. package/lib/cjs/HitDetail.js +7 -7
  41. package/lib/cjs/HitDetail.js.map +1 -1
  42. package/lib/cjs/IModelApp.d.ts +31 -24
  43. package/lib/cjs/IModelApp.d.ts.map +1 -1
  44. package/lib/cjs/IModelApp.js +35 -36
  45. package/lib/cjs/IModelApp.js.map +1 -1
  46. package/lib/cjs/IModelConnection.d.ts +4 -6
  47. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  48. package/lib/cjs/IModelConnection.js +6 -11
  49. package/lib/cjs/IModelConnection.js.map +1 -1
  50. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  51. package/lib/cjs/IModeljs-css.js +8 -6
  52. package/lib/cjs/IModeljs-css.js.map +1 -1
  53. package/lib/cjs/ImageUtil.d.ts +3 -3
  54. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  55. package/lib/cjs/ImageUtil.js +7 -4
  56. package/lib/cjs/ImageUtil.js.map +1 -1
  57. package/lib/cjs/LocalhostIpcApp.d.ts +2 -1
  58. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  59. package/lib/cjs/LocalhostIpcApp.js +21 -7
  60. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  61. package/lib/cjs/Marker.d.ts +9 -2
  62. package/lib/cjs/Marker.d.ts.map +1 -1
  63. package/lib/cjs/Marker.js +33 -5
  64. package/lib/cjs/Marker.js.map +1 -1
  65. package/lib/cjs/ModelState.js +1 -1
  66. package/lib/cjs/ModelState.js.map +1 -1
  67. package/lib/cjs/NativeApp.d.ts +3 -38
  68. package/lib/cjs/NativeApp.d.ts.map +1 -1
  69. package/lib/cjs/NativeApp.js +4 -73
  70. package/lib/cjs/NativeApp.js.map +1 -1
  71. package/lib/cjs/NoRenderApp.d.ts +0 -1
  72. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  73. package/lib/cjs/NoRenderApp.js +0 -1
  74. package/lib/cjs/NoRenderApp.js.map +1 -1
  75. package/lib/cjs/NotificationManager.d.ts +3 -1
  76. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  77. package/lib/cjs/NotificationManager.js +2 -0
  78. package/lib/cjs/NotificationManager.js.map +1 -1
  79. package/lib/cjs/RealityDataSource.d.ts +59 -29
  80. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  81. package/lib/cjs/RealityDataSource.js +247 -94
  82. package/lib/cjs/RealityDataSource.js.map +1 -1
  83. package/lib/cjs/RenderScheduleState.d.ts +2 -0
  84. package/lib/cjs/RenderScheduleState.d.ts.map +1 -1
  85. package/lib/cjs/RenderScheduleState.js +10 -5
  86. package/lib/cjs/RenderScheduleState.js.map +1 -1
  87. package/lib/cjs/SheetViewState.d.ts +2 -2
  88. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  89. package/lib/cjs/SheetViewState.js +7 -6
  90. package/lib/cjs/SheetViewState.js.map +1 -1
  91. package/lib/cjs/SpatialViewState.d.ts +10 -2
  92. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  93. package/lib/cjs/SpatialViewState.js +12 -2
  94. package/lib/cjs/SpatialViewState.js.map +1 -1
  95. package/lib/cjs/SubCategoriesCache.js +1 -1
  96. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  97. package/lib/cjs/Tiles.d.ts +11 -1
  98. package/lib/cjs/Tiles.d.ts.map +1 -1
  99. package/lib/cjs/Tiles.js +7 -0
  100. package/lib/cjs/Tiles.js.map +1 -1
  101. package/lib/cjs/TwoWayViewportSync.d.ts +35 -6
  102. package/lib/cjs/TwoWayViewportSync.d.ts.map +1 -1
  103. package/lib/cjs/TwoWayViewportSync.js +51 -11
  104. package/lib/cjs/TwoWayViewportSync.js.map +1 -1
  105. package/lib/cjs/UserPreferences.d.ts +72 -0
  106. package/lib/cjs/UserPreferences.d.ts.map +1 -0
  107. package/lib/cjs/{extension/ExtensionLoader.js → UserPreferences.js} +1 -5
  108. package/lib/cjs/UserPreferences.js.map +1 -0
  109. package/lib/cjs/ViewContext.d.ts +3 -1
  110. package/lib/cjs/ViewContext.d.ts.map +1 -1
  111. package/lib/cjs/ViewContext.js +4 -0
  112. package/lib/cjs/ViewContext.js.map +1 -1
  113. package/lib/cjs/ViewCreator2d.js +3 -3
  114. package/lib/cjs/ViewCreator2d.js.map +1 -1
  115. package/lib/cjs/ViewCreator3d.d.ts +1 -1
  116. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  117. package/lib/cjs/ViewCreator3d.js +4 -5
  118. package/lib/cjs/ViewCreator3d.js.map +1 -1
  119. package/lib/cjs/ViewManager.d.ts +6 -6
  120. package/lib/cjs/ViewManager.d.ts.map +1 -1
  121. package/lib/cjs/ViewManager.js +13 -13
  122. package/lib/cjs/ViewManager.js.map +1 -1
  123. package/lib/cjs/ViewState.d.ts +11 -5
  124. package/lib/cjs/ViewState.d.ts.map +1 -1
  125. package/lib/cjs/ViewState.js +18 -63
  126. package/lib/cjs/ViewState.js.map +1 -1
  127. package/lib/cjs/ViewingSpace.js +1 -1
  128. package/lib/cjs/ViewingSpace.js.map +1 -1
  129. package/lib/cjs/Viewport.d.ts +34 -6
  130. package/lib/cjs/Viewport.d.ts.map +1 -1
  131. package/lib/cjs/Viewport.js +42 -22
  132. package/lib/cjs/Viewport.js.map +1 -1
  133. package/lib/cjs/core-frontend.d.ts +16 -31
  134. package/lib/cjs/core-frontend.d.ts.map +1 -1
  135. package/lib/cjs/core-frontend.js +16 -31
  136. package/lib/cjs/core-frontend.js.map +1 -1
  137. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  138. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  139. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  140. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  141. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  142. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  143. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  144. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  145. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  146. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  147. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  148. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  149. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  150. package/lib/cjs/render/FeatureSymbology.js +3 -3
  151. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  152. package/lib/cjs/render/GraphicBranch.d.ts +18 -2
  153. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  154. package/lib/cjs/render/GraphicBranch.js +9 -1
  155. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  156. package/lib/cjs/render/GraphicBuilder.d.ts +7 -1
  157. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  159. package/lib/cjs/render/MockRender.d.ts +3 -1
  160. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  161. package/lib/cjs/render/MockRender.js.map +1 -1
  162. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  163. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  164. package/lib/cjs/render/RenderMemory.js +21 -15
  165. package/lib/cjs/render/RenderMemory.js.map +1 -1
  166. package/lib/cjs/render/RenderSystem.d.ts +38 -7
  167. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  168. package/lib/cjs/render/RenderSystem.js +24 -9
  169. package/lib/cjs/render/RenderSystem.js.map +1 -1
  170. package/lib/cjs/render/RenderTarget.d.ts +10 -2
  171. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  172. package/lib/cjs/render/RenderTarget.js +2 -1
  173. package/lib/cjs/render/RenderTarget.js.map +1 -1
  174. package/lib/cjs/render/RenderTexture.d.ts +2 -17
  175. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  176. package/lib/cjs/render/RenderTexture.js +0 -17
  177. package/lib/cjs/render/RenderTexture.js.map +1 -1
  178. package/lib/cjs/render/primitives/EdgeParams.d.ts +84 -0
  179. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -0
  180. package/lib/cjs/render/primitives/EdgeParams.js +220 -0
  181. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -0
  182. package/lib/cjs/render/primitives/PointStringParams.d.ts +16 -0
  183. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -0
  184. package/lib/cjs/render/primitives/PointStringParams.js +43 -0
  185. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -0
  186. package/lib/cjs/render/primitives/PolylineParams.d.ts +44 -0
  187. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -0
  188. package/lib/cjs/render/primitives/PolylineParams.js +205 -0
  189. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -0
  190. package/lib/cjs/render/primitives/Primitives.d.ts +1 -1
  191. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  192. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  193. package/lib/cjs/render/primitives/SurfaceParams.d.ts +46 -0
  194. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -0
  195. package/lib/cjs/render/primitives/SurfaceParams.js +42 -0
  196. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -0
  197. package/lib/cjs/render/primitives/VertexTable.d.ts +4 -123
  198. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  199. package/lib/cjs/render/primitives/VertexTable.js +16 -352
  200. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  201. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  202. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  203. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
  204. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  205. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  206. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
  207. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  208. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  209. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  210. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
  211. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  212. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  213. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  214. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  215. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  216. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  217. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  218. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  219. package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
  220. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  221. package/lib/cjs/render/webgl/CachedGeometry.d.ts +16 -11
  222. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  223. package/lib/cjs/render/webgl/CachedGeometry.js +26 -23
  224. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  225. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -3
  226. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  228. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  229. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +73 -0
  230. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -0
  231. package/lib/cjs/render/webgl/EdgeGeometry.js +141 -0
  232. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -0
  233. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  234. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  235. package/lib/cjs/render/webgl/FeatureOverrides.js +11 -3
  236. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  237. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  238. package/lib/cjs/render/webgl/FloatRGBA.js +13 -11
  239. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  240. package/lib/cjs/render/webgl/Graphic.d.ts +13 -0
  241. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  242. package/lib/cjs/render/webgl/Graphic.js +41 -3
  243. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  244. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  245. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  246. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  247. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  248. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +6 -5
  249. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  250. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -1
  251. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  252. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  253. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  254. package/lib/cjs/render/webgl/Material.js.map +1 -1
  255. package/lib/cjs/render/webgl/Mesh.d.ts +8 -162
  256. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  257. package/lib/cjs/render/webgl/Mesh.js +18 -458
  258. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  259. package/lib/cjs/render/webgl/MeshData.d.ts +38 -0
  260. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -0
  261. package/lib/cjs/render/webgl/MeshData.js +66 -0
  262. package/lib/cjs/render/webgl/MeshData.js.map +1 -0
  263. package/lib/cjs/render/webgl/MeshGeometry.d.ts +38 -0
  264. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -0
  265. package/lib/cjs/render/webgl/MeshGeometry.js +59 -0
  266. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -0
  267. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  268. package/lib/cjs/render/webgl/PlanarClassifier.js +8 -4
  269. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  270. package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
  271. package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
  272. package/lib/cjs/render/webgl/PlanarGrid.js +3 -3
  273. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  274. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  275. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  276. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  277. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  278. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  279. package/lib/cjs/render/webgl/PointCloud.js +2 -2
  280. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  281. package/lib/cjs/render/webgl/PointString.d.ts +3 -3
  282. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  283. package/lib/cjs/render/webgl/PointString.js +1 -1
  284. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  285. package/lib/cjs/render/webgl/Polyline.d.ts +3 -3
  286. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  287. package/lib/cjs/render/webgl/Polyline.js +6 -6
  288. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  289. package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
  290. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  291. package/lib/cjs/render/webgl/Primitive.js +5 -5
  292. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  293. package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
  294. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  295. package/lib/cjs/render/webgl/RealityMesh.js +9 -9
  296. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  297. package/lib/cjs/render/webgl/RenderCommands.d.ts +6 -2
  298. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  299. package/lib/cjs/render/webgl/RenderCommands.js +81 -48
  300. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  301. package/lib/cjs/render/webgl/RenderFlags.d.ts +48 -1
  302. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  303. package/lib/cjs/render/webgl/RenderFlags.js +64 -2
  304. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  305. package/lib/cjs/render/webgl/SceneCompositor.js +10 -9
  306. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  307. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  308. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +23 -20
  309. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  310. package/lib/cjs/render/webgl/ShaderBuilder.js +38 -32
  311. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  312. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
  313. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  314. package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
  315. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  316. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  317. package/lib/cjs/render/webgl/SolarShadowMap.js +4 -3
  318. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  319. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +54 -0
  320. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  321. package/lib/cjs/render/webgl/SurfaceGeometry.js +248 -0
  322. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -0
  323. package/lib/cjs/render/webgl/System.d.ts +11 -10
  324. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  325. package/lib/cjs/render/webgl/System.js +32 -21
  326. package/lib/cjs/render/webgl/System.js.map +1 -1
  327. package/lib/cjs/render/webgl/Target.d.ts +13 -1
  328. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  329. package/lib/cjs/render/webgl/Target.js +88 -2
  330. package/lib/cjs/render/webgl/Target.js.map +1 -1
  331. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  332. package/lib/cjs/render/webgl/Technique.js +112 -119
  333. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  334. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  335. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  337. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  338. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  339. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  340. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  341. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  342. package/lib/cjs/render/webgl/Texture.d.ts +15 -12
  343. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/Texture.js +26 -23
  345. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  346. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  347. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +83 -18
  348. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  349. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  350. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  351. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  352. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  353. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  354. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  355. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  356. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  357. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  358. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  359. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  360. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  361. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  362. package/lib/cjs/render/webgl/glsl/CopyStencil.js +10 -13
  363. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  364. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -2
  365. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  366. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  367. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  368. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  369. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  370. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +43 -21
  372. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  373. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  374. package/lib/cjs/render/webgl/glsl/Fragment.js +19 -11
  375. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  376. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  377. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  378. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  380. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  381. package/lib/cjs/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  382. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +13 -4
  383. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  384. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  385. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  386. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  387. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  388. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  389. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  390. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  391. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  392. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  393. package/lib/cjs/render/webgl/glsl/RealityMesh.js +9 -6
  394. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  395. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  396. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  397. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -2
  398. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  399. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -2
  400. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  401. package/lib/cjs/render/webgl/glsl/Surface.js +41 -16
  402. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  403. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  404. package/lib/cjs/render/webgl/glsl/Vertex.js +2 -2
  405. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  406. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  407. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  408. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  409. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  410. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  411. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  412. package/lib/cjs/render-primitives.d.ts +5 -1
  413. package/lib/cjs/render-primitives.d.ts.map +1 -1
  414. package/lib/cjs/render-primitives.js +5 -1
  415. package/lib/cjs/render-primitives.js.map +1 -1
  416. package/lib/cjs/request/Request.d.ts +167 -0
  417. package/lib/cjs/request/Request.d.ts.map +1 -0
  418. package/lib/cjs/request/Request.js +315 -0
  419. package/lib/cjs/request/Request.js.map +1 -0
  420. package/lib/cjs/tile/B3dmReader.d.ts +2 -1
  421. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  422. package/lib/cjs/tile/B3dmReader.js +11 -7
  423. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  424. package/lib/cjs/tile/CesiumAssetProvider.d.ts +14 -0
  425. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +1 -0
  426. package/lib/cjs/tile/CesiumAssetProvider.js +35 -0
  427. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -0
  428. package/lib/cjs/tile/ContextShareProvider.d.ts +22 -0
  429. package/lib/cjs/tile/ContextShareProvider.d.ts.map +1 -0
  430. package/lib/cjs/tile/ContextShareProvider.js +129 -0
  431. package/lib/cjs/tile/ContextShareProvider.js.map +1 -0
  432. package/lib/cjs/tile/DynamicIModelTile.js +9 -3
  433. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  434. package/lib/cjs/tile/GltfReader.d.ts +594 -55
  435. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  436. package/lib/cjs/tile/GltfReader.js +703 -264
  437. package/lib/cjs/tile/GltfReader.js.map +1 -1
  438. package/lib/cjs/tile/I3dmReader.d.ts +2 -1
  439. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  440. package/lib/cjs/tile/I3dmReader.js +10 -6
  441. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  442. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  443. package/lib/cjs/tile/IModelTile.js +14 -7
  444. package/lib/cjs/tile/IModelTile.js.map +1 -1
  445. package/lib/cjs/tile/IModelTileTree.d.ts +8 -0
  446. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  447. package/lib/cjs/tile/IModelTileTree.js +36 -1
  448. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  449. package/lib/cjs/tile/ImdlReader.d.ts +365 -10
  450. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  451. package/lib/cjs/tile/ImdlReader.js +201 -69
  452. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  453. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  454. package/lib/cjs/tile/OrbitGtTileTree.js +8 -5
  455. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  456. package/lib/cjs/tile/PrimaryTileTree.d.ts +14 -5
  457. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  458. package/lib/cjs/tile/PrimaryTileTree.js +69 -14
  459. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  460. package/lib/cjs/tile/RealityModelTileTree.d.ts +3 -55
  461. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  462. package/lib/cjs/tile/RealityModelTileTree.js +57 -232
  463. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  464. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  465. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  466. package/lib/cjs/tile/RealityTileLoader.js +4 -3
  467. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  468. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  469. package/lib/cjs/tile/Tile.js +5 -1
  470. package/lib/cjs/tile/Tile.js.map +1 -1
  471. package/lib/cjs/tile/TileAdmin.d.ts +37 -4
  472. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  473. package/lib/cjs/tile/TileAdmin.js +18 -12
  474. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  475. package/lib/cjs/tile/TileDrawArgs.d.ts +11 -0
  476. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  477. package/lib/cjs/tile/TileDrawArgs.js +6 -1
  478. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  479. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  480. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  481. package/lib/cjs/tile/TileTreeReference.js +5 -0
  482. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  483. package/lib/cjs/tile/internal.d.ts +4 -1
  484. package/lib/cjs/tile/internal.d.ts.map +1 -1
  485. package/lib/cjs/tile/internal.js +4 -1
  486. package/lib/cjs/tile/internal.js.map +1 -1
  487. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +22 -0
  488. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -0
  489. package/lib/cjs/tile/map/ArcGISTileMap.js +177 -0
  490. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -0
  491. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
  492. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
  493. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
  494. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  495. package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
  496. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  497. package/lib/cjs/tile/map/BingElevation.js +4 -4
  498. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  499. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  500. package/lib/cjs/tile/map/CesiumTerrainProvider.js +27 -15
  501. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  502. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  503. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  504. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +23 -44
  505. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  506. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  507. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  508. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  509. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  510. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  511. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  512. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  513. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  514. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  515. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  516. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -4
  517. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  518. package/lib/cjs/tile/map/ImageryTileTree.js +20 -24
  519. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  520. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  521. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  522. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
  523. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  524. package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
  525. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
  526. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  527. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  528. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
  529. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  530. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
  531. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  532. package/lib/cjs/tile/map/MapLayerImageryFormats.js +21 -8
  533. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  534. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +18 -6
  535. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  536. package/lib/cjs/tile/map/MapLayerImageryProvider.js +47 -14
  537. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  538. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -11
  539. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  540. package/lib/cjs/tile/map/MapLayerSources.js +5 -34
  541. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  542. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  543. package/lib/cjs/tile/map/MapTile.js +4 -3
  544. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  545. package/lib/cjs/tile/map/MapTileLoader.js +2 -2
  546. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  547. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  548. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  549. package/lib/cjs/tile/map/MapTileTree.js +30 -21
  550. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  551. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  552. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  553. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
  554. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  555. package/lib/cjs/tile/map/MapTilingScheme.d.ts +7 -2
  556. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  557. package/lib/cjs/tile/map/MapTilingScheme.js +21 -8
  558. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  559. package/lib/cjs/tile/map/QuadId.d.ts +1 -0
  560. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  561. package/lib/cjs/tile/map/QuadId.js +2 -1
  562. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  563. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  564. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  565. package/lib/cjs/tile/map/WmsCapabilities.d.ts +8 -1
  566. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  567. package/lib/cjs/tile/map/WmsCapabilities.js +39 -5
  568. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  569. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +11 -1
  570. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  571. package/lib/cjs/tile/map/WmtsCapabilities.js +23 -9
  572. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  573. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  574. package/lib/cjs/tools/EditManipulator.js +1 -1
  575. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  576. package/lib/cjs/tools/ElementSetTool.js +2 -2
  577. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  578. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -4
  579. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  580. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  581. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  582. package/lib/cjs/tools/Tool.d.ts +29 -1
  583. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  584. package/lib/cjs/tools/Tool.js +66 -0
  585. package/lib/cjs/tools/Tool.js.map +1 -1
  586. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  587. package/lib/cjs/tools/ToolAdmin.js +20 -10
  588. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  589. package/lib/cjs/tools/ViewTool.js +1 -1
  590. package/lib/cjs/tools/ViewTool.js.map +1 -1
  591. package/lib/cjs/webgl.d.ts +5 -0
  592. package/lib/cjs/webgl.d.ts.map +1 -1
  593. package/lib/cjs/webgl.js +5 -0
  594. package/lib/cjs/webgl.js.map +1 -1
  595. package/lib/esm/AccuSnap.js +3 -3
  596. package/lib/esm/AccuSnap.js.map +1 -1
  597. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  598. package/lib/esm/ApproximateTerrainHeights.js +10 -5
  599. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  600. package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
  601. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  602. package/lib/esm/BackgroundMapGeometry.js +2 -2
  603. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  604. package/lib/esm/BingLocation.js +1 -1
  605. package/lib/esm/BingLocation.js.map +1 -1
  606. package/lib/esm/CheckpointConnection.js +1 -1
  607. package/lib/esm/CheckpointConnection.js.map +1 -1
  608. package/lib/esm/ContextRealityModelState.js +1 -1
  609. package/lib/esm/ContextRealityModelState.js.map +1 -1
  610. package/lib/esm/DisplayStyleState.d.ts +10 -163
  611. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  612. package/lib/esm/DisplayStyleState.js +70 -346
  613. package/lib/esm/DisplayStyleState.js.map +1 -1
  614. package/lib/esm/DrawingViewState.d.ts +2 -2
  615. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  616. package/lib/esm/DrawingViewState.js +3 -3
  617. package/lib/esm/DrawingViewState.js.map +1 -1
  618. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  619. package/lib/esm/EmphasizeElements.js +14 -4
  620. package/lib/esm/EmphasizeElements.js.map +1 -1
  621. package/lib/esm/EnvironmentDecorations.d.ts +39 -0
  622. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -0
  623. package/lib/esm/EnvironmentDecorations.js +199 -0
  624. package/lib/esm/EnvironmentDecorations.js.map +1 -0
  625. package/lib/esm/FrontendHubAccess.d.ts +11 -7
  626. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  627. package/lib/esm/FrontendHubAccess.js.map +1 -1
  628. package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
  629. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  630. package/lib/esm/FrontendLoggerCategory.js +2 -8
  631. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  632. package/lib/esm/HitDetail.js +7 -7
  633. package/lib/esm/HitDetail.js.map +1 -1
  634. package/lib/esm/IModelApp.d.ts +31 -24
  635. package/lib/esm/IModelApp.d.ts.map +1 -1
  636. package/lib/esm/IModelApp.js +34 -35
  637. package/lib/esm/IModelApp.js.map +1 -1
  638. package/lib/esm/IModelConnection.d.ts +4 -6
  639. package/lib/esm/IModelConnection.d.ts.map +1 -1
  640. package/lib/esm/IModelConnection.js +6 -11
  641. package/lib/esm/IModelConnection.js.map +1 -1
  642. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  643. package/lib/esm/IModeljs-css.js +8 -6
  644. package/lib/esm/IModeljs-css.js.map +1 -1
  645. package/lib/esm/ImageUtil.d.ts +3 -3
  646. package/lib/esm/ImageUtil.d.ts.map +1 -1
  647. package/lib/esm/ImageUtil.js +7 -4
  648. package/lib/esm/ImageUtil.js.map +1 -1
  649. package/lib/esm/LocalhostIpcApp.d.ts +2 -1
  650. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  651. package/lib/esm/LocalhostIpcApp.js +22 -8
  652. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  653. package/lib/esm/Marker.d.ts +9 -2
  654. package/lib/esm/Marker.d.ts.map +1 -1
  655. package/lib/esm/Marker.js +34 -6
  656. package/lib/esm/Marker.js.map +1 -1
  657. package/lib/esm/ModelState.js +1 -1
  658. package/lib/esm/ModelState.js.map +1 -1
  659. package/lib/esm/NativeApp.d.ts +3 -38
  660. package/lib/esm/NativeApp.d.ts.map +1 -1
  661. package/lib/esm/NativeApp.js +1 -69
  662. package/lib/esm/NativeApp.js.map +1 -1
  663. package/lib/esm/NoRenderApp.d.ts +0 -1
  664. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  665. package/lib/esm/NoRenderApp.js +0 -1
  666. package/lib/esm/NoRenderApp.js.map +1 -1
  667. package/lib/esm/NotificationManager.d.ts +3 -1
  668. package/lib/esm/NotificationManager.d.ts.map +1 -1
  669. package/lib/esm/NotificationManager.js +2 -0
  670. package/lib/esm/NotificationManager.js.map +1 -1
  671. package/lib/esm/RealityDataSource.d.ts +59 -29
  672. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  673. package/lib/esm/RealityDataSource.js +247 -92
  674. package/lib/esm/RealityDataSource.js.map +1 -1
  675. package/lib/esm/RenderScheduleState.d.ts +2 -0
  676. package/lib/esm/RenderScheduleState.d.ts.map +1 -1
  677. package/lib/esm/RenderScheduleState.js +8 -4
  678. package/lib/esm/RenderScheduleState.js.map +1 -1
  679. package/lib/esm/SheetViewState.d.ts +2 -2
  680. package/lib/esm/SheetViewState.d.ts.map +1 -1
  681. package/lib/esm/SheetViewState.js +7 -6
  682. package/lib/esm/SheetViewState.js.map +1 -1
  683. package/lib/esm/SpatialViewState.d.ts +10 -2
  684. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  685. package/lib/esm/SpatialViewState.js +12 -2
  686. package/lib/esm/SpatialViewState.js.map +1 -1
  687. package/lib/esm/SubCategoriesCache.js +1 -1
  688. package/lib/esm/SubCategoriesCache.js.map +1 -1
  689. package/lib/esm/Tiles.d.ts +11 -1
  690. package/lib/esm/Tiles.d.ts.map +1 -1
  691. package/lib/esm/Tiles.js +7 -0
  692. package/lib/esm/Tiles.js.map +1 -1
  693. package/lib/esm/TwoWayViewportSync.d.ts +35 -6
  694. package/lib/esm/TwoWayViewportSync.d.ts.map +1 -1
  695. package/lib/esm/TwoWayViewportSync.js +49 -10
  696. package/lib/esm/TwoWayViewportSync.js.map +1 -1
  697. package/lib/esm/UserPreferences.d.ts +72 -0
  698. package/lib/esm/UserPreferences.d.ts.map +1 -0
  699. package/lib/esm/{extension/ExtensionLoader.js → UserPreferences.js} +1 -5
  700. package/lib/esm/UserPreferences.js.map +1 -0
  701. package/lib/esm/ViewContext.d.ts +3 -1
  702. package/lib/esm/ViewContext.d.ts.map +1 -1
  703. package/lib/esm/ViewContext.js +4 -0
  704. package/lib/esm/ViewContext.js.map +1 -1
  705. package/lib/esm/ViewCreator2d.js +3 -3
  706. package/lib/esm/ViewCreator2d.js.map +1 -1
  707. package/lib/esm/ViewCreator3d.d.ts +1 -1
  708. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  709. package/lib/esm/ViewCreator3d.js +5 -6
  710. package/lib/esm/ViewCreator3d.js.map +1 -1
  711. package/lib/esm/ViewManager.d.ts +6 -6
  712. package/lib/esm/ViewManager.d.ts.map +1 -1
  713. package/lib/esm/ViewManager.js +13 -13
  714. package/lib/esm/ViewManager.js.map +1 -1
  715. package/lib/esm/ViewState.d.ts +11 -5
  716. package/lib/esm/ViewState.d.ts.map +1 -1
  717. package/lib/esm/ViewState.js +21 -66
  718. package/lib/esm/ViewState.js.map +1 -1
  719. package/lib/esm/ViewingSpace.js +1 -1
  720. package/lib/esm/ViewingSpace.js.map +1 -1
  721. package/lib/esm/Viewport.d.ts +34 -6
  722. package/lib/esm/Viewport.d.ts.map +1 -1
  723. package/lib/esm/Viewport.js +43 -23
  724. package/lib/esm/Viewport.js.map +1 -1
  725. package/lib/esm/core-frontend.d.ts +16 -31
  726. package/lib/esm/core-frontend.d.ts.map +1 -1
  727. package/lib/esm/core-frontend.js +16 -31
  728. package/lib/esm/core-frontend.js.map +1 -1
  729. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  730. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  731. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  732. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  733. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  734. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  735. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  736. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  737. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  738. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  739. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  740. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  741. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  742. package/lib/esm/render/FeatureSymbology.js +3 -3
  743. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  744. package/lib/esm/render/GraphicBranch.d.ts +18 -2
  745. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  746. package/lib/esm/render/GraphicBranch.js +8 -0
  747. package/lib/esm/render/GraphicBranch.js.map +1 -1
  748. package/lib/esm/render/GraphicBuilder.d.ts +7 -1
  749. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  750. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  751. package/lib/esm/render/MockRender.d.ts +3 -1
  752. package/lib/esm/render/MockRender.d.ts.map +1 -1
  753. package/lib/esm/render/MockRender.js.map +1 -1
  754. package/lib/esm/render/RenderMemory.d.ts +21 -15
  755. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  756. package/lib/esm/render/RenderMemory.js +21 -15
  757. package/lib/esm/render/RenderMemory.js.map +1 -1
  758. package/lib/esm/render/RenderSystem.d.ts +38 -7
  759. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  760. package/lib/esm/render/RenderSystem.js +24 -9
  761. package/lib/esm/render/RenderSystem.js.map +1 -1
  762. package/lib/esm/render/RenderTarget.d.ts +10 -2
  763. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  764. package/lib/esm/render/RenderTarget.js +2 -1
  765. package/lib/esm/render/RenderTarget.js.map +1 -1
  766. package/lib/esm/render/RenderTexture.d.ts +2 -17
  767. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  768. package/lib/esm/render/RenderTexture.js +1 -16
  769. package/lib/esm/render/RenderTexture.js.map +1 -1
  770. package/lib/esm/render/primitives/EdgeParams.d.ts +84 -0
  771. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -0
  772. package/lib/esm/render/primitives/EdgeParams.js +217 -0
  773. package/lib/esm/render/primitives/EdgeParams.js.map +1 -0
  774. package/lib/esm/render/primitives/PointStringParams.d.ts +16 -0
  775. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -0
  776. package/lib/esm/render/primitives/PointStringParams.js +39 -0
  777. package/lib/esm/render/primitives/PointStringParams.js.map +1 -0
  778. package/lib/esm/render/primitives/PolylineParams.d.ts +44 -0
  779. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -0
  780. package/lib/esm/render/primitives/PolylineParams.js +199 -0
  781. package/lib/esm/render/primitives/PolylineParams.js.map +1 -0
  782. package/lib/esm/render/primitives/Primitives.d.ts +1 -1
  783. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  784. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  785. package/lib/esm/render/primitives/SurfaceParams.d.ts +46 -0
  786. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -0
  787. package/lib/esm/render/primitives/SurfaceParams.js +37 -0
  788. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -0
  789. package/lib/esm/render/primitives/VertexTable.d.ts +4 -123
  790. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  791. package/lib/esm/render/primitives/VertexTable.js +11 -342
  792. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  793. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  794. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  795. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
  796. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  797. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  798. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
  799. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  800. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  801. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  802. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
  803. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  804. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  805. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  806. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  807. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  808. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  809. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  810. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  811. package/lib/esm/render/webgl/BranchUniforms.js +8 -5
  812. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  813. package/lib/esm/render/webgl/CachedGeometry.d.ts +16 -11
  814. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  815. package/lib/esm/render/webgl/CachedGeometry.js +26 -23
  816. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  817. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -3
  818. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  819. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  820. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  821. package/lib/esm/render/webgl/EdgeGeometry.d.ts +73 -0
  822. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -0
  823. package/lib/esm/render/webgl/EdgeGeometry.js +135 -0
  824. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -0
  825. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  826. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  827. package/lib/esm/render/webgl/FeatureOverrides.js +11 -3
  828. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  829. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  830. package/lib/esm/render/webgl/FloatRGBA.js +13 -11
  831. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  832. package/lib/esm/render/webgl/Graphic.d.ts +13 -0
  833. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  834. package/lib/esm/render/webgl/Graphic.js +39 -2
  835. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  836. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  837. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  838. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  839. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  840. package/lib/esm/render/webgl/InstancedGeometry.d.ts +6 -5
  841. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  842. package/lib/esm/render/webgl/InstancedGeometry.js +2 -1
  843. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  844. package/lib/esm/render/webgl/Material.d.ts +1 -1
  845. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  846. package/lib/esm/render/webgl/Material.js.map +1 -1
  847. package/lib/esm/render/webgl/Mesh.d.ts +8 -162
  848. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  849. package/lib/esm/render/webgl/Mesh.js +12 -445
  850. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  851. package/lib/esm/render/webgl/MeshData.d.ts +38 -0
  852. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -0
  853. package/lib/esm/render/webgl/MeshData.js +62 -0
  854. package/lib/esm/render/webgl/MeshData.js.map +1 -0
  855. package/lib/esm/render/webgl/MeshGeometry.d.ts +38 -0
  856. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -0
  857. package/lib/esm/render/webgl/MeshGeometry.js +55 -0
  858. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -0
  859. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  860. package/lib/esm/render/webgl/PlanarClassifier.js +9 -5
  861. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  862. package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
  863. package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
  864. package/lib/esm/render/webgl/PlanarGrid.js +3 -3
  865. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  866. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  867. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  868. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  869. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  870. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  871. package/lib/esm/render/webgl/PointCloud.js +2 -2
  872. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  873. package/lib/esm/render/webgl/PointString.d.ts +3 -3
  874. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  875. package/lib/esm/render/webgl/PointString.js +1 -1
  876. package/lib/esm/render/webgl/PointString.js.map +1 -1
  877. package/lib/esm/render/webgl/Polyline.d.ts +3 -3
  878. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  879. package/lib/esm/render/webgl/Polyline.js +6 -6
  880. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  881. package/lib/esm/render/webgl/Primitive.d.ts +2 -2
  882. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  883. package/lib/esm/render/webgl/Primitive.js +5 -5
  884. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  885. package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
  886. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  887. package/lib/esm/render/webgl/RealityMesh.js +9 -9
  888. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  889. package/lib/esm/render/webgl/RenderCommands.d.ts +6 -2
  890. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  891. package/lib/esm/render/webgl/RenderCommands.js +78 -45
  892. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  893. package/lib/esm/render/webgl/RenderFlags.d.ts +48 -1
  894. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  895. package/lib/esm/render/webgl/RenderFlags.js +63 -1
  896. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  897. package/lib/esm/render/webgl/SceneCompositor.js +10 -9
  898. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  899. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  900. package/lib/esm/render/webgl/ShaderBuilder.d.ts +23 -20
  901. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  902. package/lib/esm/render/webgl/ShaderBuilder.js +38 -32
  903. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  904. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
  905. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  906. package/lib/esm/render/webgl/ShaderProgram.js +4 -4
  907. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  908. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  909. package/lib/esm/render/webgl/SolarShadowMap.js +5 -4
  910. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  911. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +54 -0
  912. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  913. package/lib/esm/render/webgl/SurfaceGeometry.js +243 -0
  914. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -0
  915. package/lib/esm/render/webgl/System.d.ts +11 -10
  916. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  917. package/lib/esm/render/webgl/System.js +34 -23
  918. package/lib/esm/render/webgl/System.js.map +1 -1
  919. package/lib/esm/render/webgl/Target.d.ts +13 -1
  920. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  921. package/lib/esm/render/webgl/Target.js +88 -2
  922. package/lib/esm/render/webgl/Target.js.map +1 -1
  923. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  924. package/lib/esm/render/webgl/Technique.js +112 -119
  925. package/lib/esm/render/webgl/Technique.js.map +1 -1
  926. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  927. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  928. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  929. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  930. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  931. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  932. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  933. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  934. package/lib/esm/render/webgl/Texture.d.ts +15 -12
  935. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  936. package/lib/esm/render/webgl/Texture.js +27 -24
  937. package/lib/esm/render/webgl/Texture.js.map +1 -1
  938. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  939. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +84 -19
  940. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  941. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  942. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  943. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  944. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  945. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  946. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  947. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  948. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  949. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  950. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  951. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  952. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  953. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  954. package/lib/esm/render/webgl/glsl/CopyStencil.js +10 -13
  955. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  956. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +2 -2
  957. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  958. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  959. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  960. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  961. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  962. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  963. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +44 -22
  964. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  965. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  966. package/lib/esm/render/webgl/glsl/Fragment.js +19 -11
  967. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  968. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  969. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  970. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  971. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  972. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  973. package/lib/esm/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  974. package/lib/esm/render/webgl/glsl/PlanarClassification.js +13 -4
  975. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  976. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  977. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  978. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  979. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  980. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  981. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  982. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  983. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  984. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  985. package/lib/esm/render/webgl/glsl/RealityMesh.js +9 -6
  986. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  987. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  988. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  989. package/lib/esm/render/webgl/glsl/SkyBox.js +2 -2
  990. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  991. package/lib/esm/render/webgl/glsl/SkySphere.js +2 -2
  992. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  993. package/lib/esm/render/webgl/glsl/Surface.js +41 -16
  994. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  995. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  996. package/lib/esm/render/webgl/glsl/Vertex.js +3 -3
  997. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  998. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  999. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  1000. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  1001. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  1002. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  1003. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  1004. package/lib/esm/render-primitives.d.ts +5 -1
  1005. package/lib/esm/render-primitives.d.ts.map +1 -1
  1006. package/lib/esm/render-primitives.js +5 -1
  1007. package/lib/esm/render-primitives.js.map +1 -1
  1008. package/lib/esm/request/Request.d.ts +167 -0
  1009. package/lib/esm/request/Request.d.ts.map +1 -0
  1010. package/lib/esm/request/Request.js +289 -0
  1011. package/lib/esm/request/Request.js.map +1 -0
  1012. package/lib/esm/tile/B3dmReader.d.ts +2 -1
  1013. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  1014. package/lib/esm/tile/B3dmReader.js +12 -8
  1015. package/lib/esm/tile/B3dmReader.js.map +1 -1
  1016. package/lib/esm/tile/CesiumAssetProvider.d.ts +14 -0
  1017. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +1 -0
  1018. package/lib/esm/tile/CesiumAssetProvider.js +31 -0
  1019. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -0
  1020. package/lib/esm/tile/ContextShareProvider.d.ts +22 -0
  1021. package/lib/esm/tile/ContextShareProvider.d.ts.map +1 -0
  1022. package/lib/esm/tile/ContextShareProvider.js +125 -0
  1023. package/lib/esm/tile/ContextShareProvider.js.map +1 -0
  1024. package/lib/esm/tile/DynamicIModelTile.js +9 -3
  1025. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1026. package/lib/esm/tile/GltfReader.d.ts +594 -55
  1027. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1028. package/lib/esm/tile/GltfReader.js +678 -242
  1029. package/lib/esm/tile/GltfReader.js.map +1 -1
  1030. package/lib/esm/tile/I3dmReader.d.ts +2 -1
  1031. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  1032. package/lib/esm/tile/I3dmReader.js +11 -7
  1033. package/lib/esm/tile/I3dmReader.js.map +1 -1
  1034. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  1035. package/lib/esm/tile/IModelTile.js +14 -7
  1036. package/lib/esm/tile/IModelTile.js.map +1 -1
  1037. package/lib/esm/tile/IModelTileTree.d.ts +8 -0
  1038. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1039. package/lib/esm/tile/IModelTileTree.js +36 -1
  1040. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1041. package/lib/esm/tile/ImdlReader.d.ts +365 -10
  1042. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1043. package/lib/esm/tile/ImdlReader.js +198 -67
  1044. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1045. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  1046. package/lib/esm/tile/OrbitGtTileTree.js +8 -5
  1047. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  1048. package/lib/esm/tile/PrimaryTileTree.d.ts +14 -5
  1049. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1050. package/lib/esm/tile/PrimaryTileTree.js +70 -15
  1051. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1052. package/lib/esm/tile/RealityModelTileTree.d.ts +3 -55
  1053. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  1054. package/lib/esm/tile/RealityModelTileTree.js +56 -230
  1055. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  1056. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  1057. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1058. package/lib/esm/tile/RealityTileLoader.js +4 -3
  1059. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1060. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1061. package/lib/esm/tile/Tile.js +5 -1
  1062. package/lib/esm/tile/Tile.js.map +1 -1
  1063. package/lib/esm/tile/TileAdmin.d.ts +37 -4
  1064. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1065. package/lib/esm/tile/TileAdmin.js +19 -13
  1066. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1067. package/lib/esm/tile/TileDrawArgs.d.ts +11 -0
  1068. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1069. package/lib/esm/tile/TileDrawArgs.js +6 -1
  1070. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1071. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1072. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1073. package/lib/esm/tile/TileTreeReference.js +5 -0
  1074. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1075. package/lib/esm/tile/internal.d.ts +4 -1
  1076. package/lib/esm/tile/internal.d.ts.map +1 -1
  1077. package/lib/esm/tile/internal.js +4 -1
  1078. package/lib/esm/tile/internal.js.map +1 -1
  1079. package/lib/esm/tile/map/ArcGISTileMap.d.ts +22 -0
  1080. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -0
  1081. package/lib/esm/tile/map/ArcGISTileMap.js +173 -0
  1082. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -0
  1083. package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
  1084. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
  1085. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
  1086. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1087. package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
  1088. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1089. package/lib/esm/tile/map/BingElevation.js +1 -1
  1090. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1091. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  1092. package/lib/esm/tile/map/CesiumTerrainProvider.js +25 -13
  1093. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  1094. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  1095. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1096. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +21 -42
  1097. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1098. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  1099. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  1100. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  1101. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1102. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  1103. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1104. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  1105. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  1106. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  1107. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  1108. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -4
  1109. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1110. package/lib/esm/tile/map/ImageryTileTree.js +21 -25
  1111. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1112. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  1113. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  1114. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
  1115. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  1116. package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
  1117. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
  1118. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  1119. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1120. package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
  1121. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1122. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
  1123. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1124. package/lib/esm/tile/map/MapLayerImageryFormats.js +22 -9
  1125. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1126. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +18 -6
  1127. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1128. package/lib/esm/tile/map/MapLayerImageryProvider.js +44 -11
  1129. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1130. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -11
  1131. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1132. package/lib/esm/tile/map/MapLayerSources.js +7 -36
  1133. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1134. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1135. package/lib/esm/tile/map/MapTile.js +4 -3
  1136. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1137. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1138. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1139. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  1140. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1141. package/lib/esm/tile/map/MapTileTree.js +30 -21
  1142. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1143. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  1144. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1145. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
  1146. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1147. package/lib/esm/tile/map/MapTilingScheme.d.ts +7 -2
  1148. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1149. package/lib/esm/tile/map/MapTilingScheme.js +22 -9
  1150. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1151. package/lib/esm/tile/map/QuadId.d.ts +1 -0
  1152. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  1153. package/lib/esm/tile/map/QuadId.js +2 -1
  1154. package/lib/esm/tile/map/QuadId.js.map +1 -1
  1155. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  1156. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  1157. package/lib/esm/tile/map/WmsCapabilities.d.ts +8 -1
  1158. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1159. package/lib/esm/tile/map/WmsCapabilities.js +37 -3
  1160. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1161. package/lib/esm/tile/map/WmtsCapabilities.d.ts +11 -1
  1162. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  1163. package/lib/esm/tile/map/WmtsCapabilities.js +20 -6
  1164. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  1165. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1166. package/lib/esm/tools/EditManipulator.js +1 -1
  1167. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1168. package/lib/esm/tools/ElementSetTool.js +2 -2
  1169. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1170. package/lib/esm/tools/PrimitiveTool.d.ts +4 -4
  1171. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1172. package/lib/esm/tools/PrimitiveTool.js +2 -2
  1173. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1174. package/lib/esm/tools/Tool.d.ts +29 -1
  1175. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1176. package/lib/esm/tools/Tool.js +66 -0
  1177. package/lib/esm/tools/Tool.js.map +1 -1
  1178. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1179. package/lib/esm/tools/ToolAdmin.js +20 -10
  1180. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1181. package/lib/esm/tools/ViewTool.js +1 -1
  1182. package/lib/esm/tools/ViewTool.js.map +1 -1
  1183. package/lib/esm/webgl.d.ts +5 -0
  1184. package/lib/esm/webgl.d.ts.map +1 -1
  1185. package/lib/esm/webgl.js +5 -0
  1186. package/lib/esm/webgl.js.map +1 -1
  1187. package/lib/public/locales/en/iModelJs.json +3 -1
  1188. package/package.json +32 -27
  1189. package/lib/cjs/RealityDataAccessProps.d.ts +0 -42
  1190. package/lib/cjs/RealityDataAccessProps.d.ts.map +0 -1
  1191. package/lib/cjs/RealityDataAccessProps.js +0 -23
  1192. package/lib/cjs/RealityDataAccessProps.js.map +0 -1
  1193. package/lib/cjs/RealityDataConnection.d.ts +0 -31
  1194. package/lib/cjs/RealityDataConnection.d.ts.map +0 -1
  1195. package/lib/cjs/RealityDataConnection.js +0 -101
  1196. package/lib/cjs/RealityDataConnection.js.map +0 -1
  1197. package/lib/cjs/extension/Extension.d.ts +0 -39
  1198. package/lib/cjs/extension/Extension.d.ts.map +0 -1
  1199. package/lib/cjs/extension/Extension.js +0 -39
  1200. package/lib/cjs/extension/Extension.js.map +0 -1
  1201. package/lib/cjs/extension/ExtensionAdmin.d.ts +0 -70
  1202. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +0 -1
  1203. package/lib/cjs/extension/ExtensionAdmin.js +0 -105
  1204. package/lib/cjs/extension/ExtensionAdmin.js.map +0 -1
  1205. package/lib/cjs/extension/ExtensionHost.d.ts +0 -22
  1206. package/lib/cjs/extension/ExtensionHost.d.ts.map +0 -1
  1207. package/lib/cjs/extension/ExtensionHost.js +0 -24
  1208. package/lib/cjs/extension/ExtensionHost.js.map +0 -1
  1209. package/lib/cjs/extension/ExtensionImpl.d.ts +0 -16
  1210. package/lib/cjs/extension/ExtensionImpl.d.ts.map +0 -1
  1211. package/lib/cjs/extension/ExtensionImpl.js +0 -40
  1212. package/lib/cjs/extension/ExtensionImpl.js.map +0 -1
  1213. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -20
  1214. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  1215. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  1216. package/lib/cjs/extension/ExtensionRuntime.d.ts +0 -2
  1217. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +0 -1
  1218. package/lib/cjs/extension/ExtensionRuntime.js +0 -71
  1219. package/lib/cjs/extension/ExtensionRuntime.js.map +0 -1
  1220. package/lib/cjs/extension/extensions.d.ts +0 -18
  1221. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  1222. package/lib/cjs/extension/extensions.js +0 -35
  1223. package/lib/cjs/extension/extensions.js.map +0 -1
  1224. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts +0 -39
  1225. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1226. package/lib/cjs/tile/map/MapLayerSettingsService.js +0 -190
  1227. package/lib/cjs/tile/map/MapLayerSettingsService.js.map +0 -1
  1228. package/lib/esm/RealityDataAccessProps.d.ts +0 -42
  1229. package/lib/esm/RealityDataAccessProps.d.ts.map +0 -1
  1230. package/lib/esm/RealityDataAccessProps.js +0 -20
  1231. package/lib/esm/RealityDataAccessProps.js.map +0 -1
  1232. package/lib/esm/RealityDataConnection.d.ts +0 -31
  1233. package/lib/esm/RealityDataConnection.d.ts.map +0 -1
  1234. package/lib/esm/RealityDataConnection.js +0 -98
  1235. package/lib/esm/RealityDataConnection.js.map +0 -1
  1236. package/lib/esm/extension/Extension.d.ts +0 -39
  1237. package/lib/esm/extension/Extension.d.ts.map +0 -1
  1238. package/lib/esm/extension/Extension.js +0 -38
  1239. package/lib/esm/extension/Extension.js.map +0 -1
  1240. package/lib/esm/extension/ExtensionAdmin.d.ts +0 -70
  1241. package/lib/esm/extension/ExtensionAdmin.d.ts.map +0 -1
  1242. package/lib/esm/extension/ExtensionAdmin.js +0 -101
  1243. package/lib/esm/extension/ExtensionAdmin.js.map +0 -1
  1244. package/lib/esm/extension/ExtensionHost.d.ts +0 -22
  1245. package/lib/esm/extension/ExtensionHost.d.ts.map +0 -1
  1246. package/lib/esm/extension/ExtensionHost.js +0 -20
  1247. package/lib/esm/extension/ExtensionHost.js.map +0 -1
  1248. package/lib/esm/extension/ExtensionImpl.d.ts +0 -16
  1249. package/lib/esm/extension/ExtensionImpl.d.ts.map +0 -1
  1250. package/lib/esm/extension/ExtensionImpl.js +0 -35
  1251. package/lib/esm/extension/ExtensionImpl.js.map +0 -1
  1252. package/lib/esm/extension/ExtensionLoader.d.ts +0 -20
  1253. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  1254. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  1255. package/lib/esm/extension/ExtensionRuntime.d.ts +0 -2
  1256. package/lib/esm/extension/ExtensionRuntime.d.ts.map +0 -1
  1257. package/lib/esm/extension/ExtensionRuntime.js +0 -69
  1258. package/lib/esm/extension/ExtensionRuntime.js.map +0 -1
  1259. package/lib/esm/extension/extensions.d.ts +0 -18
  1260. package/lib/esm/extension/extensions.d.ts.map +0 -1
  1261. package/lib/esm/extension/extensions.js +0 -23
  1262. package/lib/esm/extension/extensions.js.map +0 -1
  1263. package/lib/esm/tile/map/MapLayerSettingsService.d.ts +0 -39
  1264. package/lib/esm/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1265. package/lib/esm/tile/map/MapLayerSettingsService.js +0 -186
  1266. package/lib/esm/tile/map/MapLayerSettingsService.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarClassifier.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.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 { dispose } from \"@itwin/core-bentley\";\r\nimport { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, Frustum, FrustumPlanes, RenderMode, RenderTexture, SpatialClassifier, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay,\r\n} from \"@itwin/core-common\";\r\nimport { PlanarClipMaskState } from \"../../PlanarClipMaskState\";\r\nimport { GraphicsCollectorDrawArgs, SpatialClassifierTileTreeReference, TileTreeReference } from \"../../tile/internal\";\r\nimport { SceneContext } from \"../../ViewContext\";\r\nimport { ViewState3d } from \"../../ViewState\";\r\nimport { FeatureSymbology } from \"../FeatureSymbology\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PlanarClassifierTarget, RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\r\nimport { BatchState } from \"./BatchState\";\r\nimport { BranchStack } from \"./BranchStack\";\r\nimport { CachedGeometry, Combine3TexturesGeometry, CombineTexturesGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DrawCommands } from \"./DrawCommand\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { Batch, Branch } from \"./Graphic\";\r\nimport { PlanarTextureProjection } from \"./PlanarTextureProjection\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { Texture, TextureHandle } from \"./Texture\";\r\n\r\nexport enum PlanarClassifierContent { None = 0, MaskOnly = 1, ClassifierOnly = 2, ClassifierAndMask = 3 }\r\n\r\nfunction createTexture(handle: TextureHandle): Texture {\r\n return new Texture({\r\n handle,\r\n ownership: \"external\",\r\n type: RenderTexture.Type.TileSection,\r\n });\r\n}\r\n\r\nfunction createTextureHandle(width: number, height: number, heightMult = 1.0) { return TextureHandle.createForAttachment(width, height * heightMult, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte); }\r\n\r\nclass ClassifierTextures implements WebGLDisposable {\r\n private constructor(public readonly color: Texture,\r\n public readonly feature: Texture,\r\n public readonly hilite: Texture) { }\r\n\r\n public get isDisposed(): boolean {\r\n return this.color.isDisposed\r\n && this.feature.isDisposed\r\n && this.hilite.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.color);\r\n dispose(this.feature);\r\n dispose(this.hilite);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addPlanarClassifier(this.color.bytesUsed);\r\n stats.addPlanarClassifier(this.feature.bytesUsed);\r\n stats.addPlanarClassifier(this.hilite.bytesUsed);\r\n }\r\n\r\n public static create(width: number, height: number): ClassifierTextures | undefined {\r\n const hColor = createTextureHandle(width, height);\r\n const hFeature = createTextureHandle(width, height);\r\n const hHilite = createTextureHandle(width, height);\r\n if (!hColor || !hFeature || !hHilite)\r\n return undefined;\r\n\r\n const color = createTexture(hColor);\r\n const feature = createTexture(hFeature);\r\n const hilite = createTexture(hHilite);\r\n if (!color || !feature || !hilite)\r\n return undefined;\r\n\r\n return new ClassifierTextures(color, feature, hilite);\r\n }\r\n}\r\n\r\nabstract class ClassifierFrameBuffers implements WebGLDisposable {\r\n protected constructor(\r\n public readonly textures: ClassifierTextures,\r\n private readonly _hilite: FrameBuffer) { }\r\n\r\n public get isDisposed(): boolean {\r\n return this.textures.isDisposed && this._hilite.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.textures);\r\n dispose(this._hilite);\r\n }\r\n\r\n public abstract draw(cmds: DrawCommands, target: Target): void;\r\n\r\n public drawHilite(cmds: DrawCommands, target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n system.frameBufferStack.execute(this._hilite, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n target.techniques.execute(target, cmds, RenderPass.Hilite);\r\n });\r\n }\r\n\r\n public static create(width: number, height: number): ClassifierFrameBuffers | undefined {\r\n const textures = ClassifierTextures.create(width, height);\r\n if (undefined === textures)\r\n return undefined;\r\n\r\n const hiliteFbo = FrameBuffer.create([textures.hilite.texture]);\r\n if (undefined === hiliteFbo)\r\n return undefined;\r\n\r\n if (System.instance.capabilities.supportsDrawBuffers)\r\n return ClassifierMRTFrameBuffers.createMRT(textures, hiliteFbo);\r\n else\r\n return ClassifierMPFrameBuffers.createMP(textures, hiliteFbo);\r\n }\r\n}\r\n\r\nclass ClassifierMRTFrameBuffers extends ClassifierFrameBuffers {\r\n private readonly _fbo: FrameBuffer;\r\n private readonly _clearGeom: ViewportQuadGeometry;\r\n\r\n private constructor(textures: ClassifierTextures, hilite: FrameBuffer, fbo: FrameBuffer, geom: ViewportQuadGeometry) {\r\n super(textures, hilite);\r\n this._fbo = fbo;\r\n this._clearGeom = geom;\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed\r\n && this._fbo.isDisposed\r\n && this._clearGeom.isDisposed;\r\n }\r\n\r\n public override dispose(): void {\r\n dispose(this._fbo);\r\n dispose(this._clearGeom);\r\n super.dispose();\r\n }\r\n\r\n public static createMRT(textures: ClassifierTextures, hilite: FrameBuffer): ClassifierMRTFrameBuffers | undefined {\r\n const fbo = FrameBuffer.create([textures.color.texture, textures.feature.texture]);\r\n if (undefined === fbo)\r\n return undefined;\r\n\r\n const geom = ViewportQuadGeometry.create(TechniqueId.ClearPickAndColor);\r\n return undefined !== geom ? new ClassifierMRTFrameBuffers(textures, hilite, fbo, geom) : undefined;\r\n }\r\n\r\n public draw(cmds: DrawCommands, target: Target): void {\r\n System.instance.frameBufferStack.execute(this._fbo, true, false, () => {\r\n target.techniques.draw(getDrawParams(target, this._clearGeom));\r\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\r\n });\r\n }\r\n}\r\n\r\nclass ClassifierMPFrameBuffers extends ClassifierFrameBuffers {\r\n private readonly _color: FrameBuffer;\r\n private readonly _feature: FrameBuffer;\r\n\r\n private constructor(textures: ClassifierTextures, hilite: FrameBuffer, color: FrameBuffer, feature: FrameBuffer) {\r\n super(textures, hilite);\r\n this._color = color;\r\n this._feature = feature;\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed\r\n && this._color.isDisposed\r\n && this._feature.isDisposed;\r\n }\r\n\r\n public override dispose(): void {\r\n dispose(this._color);\r\n dispose(this._feature);\r\n super.dispose();\r\n }\r\n\r\n public static createMP(textures: ClassifierTextures, hilite: FrameBuffer): ClassifierMPFrameBuffers | undefined {\r\n const color = FrameBuffer.create([textures.color.texture]);\r\n const feature = FrameBuffer.create([textures.feature.texture]);\r\n return undefined !== color && undefined !== feature ? new ClassifierMPFrameBuffers(textures, hilite, color, feature) : undefined;\r\n }\r\n\r\n public draw(cmds: DrawCommands, target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n const draw = (feature: boolean) => {\r\n const fbo = feature ? this._feature : this._color;\r\n system.frameBufferStack.execute(fbo, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n target.compositor.currentRenderTargetIndex = feature ? 1 : 0;\r\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\r\n });\r\n };\r\n\r\n draw(false);\r\n draw(true);\r\n }\r\n}\r\n\r\ninterface TextureAndFbo {\r\n texture: Texture;\r\n fbo: FrameBuffer;\r\n}\r\n\r\nabstract class SingleTextureFrameBuffer implements WebGLDisposable {\r\n public texture: Texture;\r\n protected fbo: FrameBuffer;\r\n public get isDisposed(): boolean { return this.texture.isDisposed && this.fbo.isDisposed; }\r\n public collectStatistics(stats: RenderMemory.Statistics): void { stats.addPlanarClassifier(this.texture.bytesUsed); }\r\n protected constructor(textureAndFbo: TextureAndFbo) {\r\n this.texture = textureAndFbo.texture;\r\n this.fbo = textureAndFbo.fbo;\r\n }\r\n public dispose(): void {\r\n dispose(this.texture);\r\n dispose(this.fbo);\r\n }\r\n public static createTextureAndFrameBuffer(width: number, height: number): TextureAndFbo | undefined {\r\n const hTexture = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n if (!hTexture)\r\n return undefined;\r\n\r\n const texture = new Texture({ type: RenderTexture.Type.TileSection, ownership: \"external\", handle: hTexture });\r\n if (!texture)\r\n return undefined;\r\n\r\n const fbo = FrameBuffer.create([texture.texture]);\r\n if (undefined === fbo)\r\n return undefined;\r\n\r\n return { texture, fbo };\r\n }\r\n}\r\nclass MaskFrameBuffer extends SingleTextureFrameBuffer {\r\n public static create(width: number, height: number): MaskFrameBuffer | undefined {\r\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, height);\r\n return undefined === textureFbo ? undefined : new MaskFrameBuffer(textureFbo);\r\n }\r\n public draw(cmds: DrawCommands, target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n\r\n system.frameBufferStack.execute(this.fbo, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n if (!System.instance.capabilities.supportsDrawBuffers)\r\n target.compositor.currentRenderTargetIndex = 0;\r\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\r\n });\r\n }\r\n}\r\nabstract class CombineTexturesFrameBuffer extends SingleTextureFrameBuffer {\r\n constructor(textureAndFbo: TextureAndFbo, private _combineGeom: CachedGeometry, private _width: number, private _height: number, private _heightMult: number) { super(textureAndFbo); }\r\n public compose(target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n system.context.viewport(0, 0, this._width, this._heightMult * this._height);\r\n system.frameBufferStack.execute(this.fbo, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n target.techniques.draw(getDrawParams(target, this._combineGeom));\r\n });\r\n }\r\n}\r\n\r\nclass ClassifierCombinationBuffer extends CombineTexturesFrameBuffer {\r\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture): ClassifierAndMaskCombinationBuffer | undefined {\r\n const combineGeom = CombineTexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!);\r\n if (undefined === combineGeom)\r\n return undefined;\r\n\r\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 2 * height);\r\n return undefined === textureFbo ? undefined : new ClassifierCombinationBuffer(textureFbo, combineGeom, width, height, 2);\r\n }\r\n}\r\nclass ClassifierAndMaskCombinationBuffer extends CombineTexturesFrameBuffer {\r\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture, mask: Texture): ClassifierAndMaskCombinationBuffer | undefined {\r\n const combineGeom = Combine3TexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!, mask.texture.getHandle()!);\r\n if (undefined === combineGeom)\r\n return undefined;\r\n\r\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 3 * height);\r\n return undefined === textureFbo ? undefined : new ClassifierAndMaskCombinationBuffer(textureFbo, combineGeom, width, height, 3);\r\n }\r\n}\r\n\r\nconst scratchPrevRenderState = new RenderState();\r\n\r\n/** @internal */\r\nexport class PlanarClassifier extends RenderPlanarClassifier implements RenderMemory.Consumer, WebGLDisposable {\r\n private _classifierBuffers?: ClassifierFrameBuffers;\r\n private _maskBuffer?: MaskFrameBuffer;\r\n private _classifierCombinedBuffer?: ClassifierCombinationBuffer;\r\n private _classifierAndMaskCombinedBuffer?: ClassifierAndMaskCombinationBuffer;\r\n private _projectionMatrix = Matrix4d.createIdentity();\r\n private _graphics?: RenderGraphic[];\r\n private readonly _classifierGraphics: RenderGraphic[] = [];\r\n private readonly _maskGraphics: RenderGraphic[] = [];\r\n private _frustum?: Frustum;\r\n private _width = 0;\r\n private _height = 0;\r\n private _baseBatchId = 0;\r\n private _anyHilited = false;\r\n private _anyOpaque = false;\r\n private _anyTranslucent = false;\r\n private _classifier?: SpatialClassifier;\r\n private readonly _plane = Plane3dByOriginAndUnitNormal.create(new Point3d(0, 0, 0), new Vector3d(0, 0, 1))!; // TBD -- Support other planes - default to X-Y for now.\r\n private readonly _renderState = new RenderState();\r\n private readonly _renderCommands: RenderCommands;\r\n private readonly _branchStack = new BranchStack();\r\n private readonly _batchState: BatchState;\r\n private _planarClipMask?: PlanarClipMaskState;\r\n private _classifierTreeRef?: TileTreeReference;\r\n private _planarClipMaskOverrides?: FeatureSymbology.Overrides;\r\n private _contentMode: PlanarClassifierContent = PlanarClassifierContent.None;\r\n\r\n private static _postProjectionMatrix = Matrix4d.createRowValues(\r\n 0, 1, 0, 0,\r\n 0, 0, -1, 0,\r\n 1, 0, 0, 0,\r\n 0, 0, 0, 1);\r\n private _debugFrustum?: Frustum;\r\n private _doDebugFrustum = false;\r\n private _debugFrustumGraphic?: RenderGraphic = undefined;\r\n private _isClassifyingPointCloud?: boolean; // we will detect this the first time we draw\r\n private readonly _bgColor = ColorDef.from(0, 0, 0, 255);\r\n\r\n private constructor(classifier: SpatialClassifier | undefined, target: Target) {\r\n super();\r\n this._classifier = classifier;\r\n\r\n const flags = this._renderState.flags;\r\n flags.depthMask = flags.blend = flags.depthTest = false;\r\n\r\n this._batchState = new BatchState(this._branchStack);\r\n this._renderCommands = new RenderCommands(target, this._branchStack, this._batchState);\r\n }\r\n\r\n public getParams(params: Float32Array): void {\r\n params[0] = this.insideDisplay;\r\n params[1] = this.outsideDisplay;\r\n params[2] = this._contentMode;\r\n params[3] = (this._planarClipMask?.settings.transparency === undefined) ? -1 : this._planarClipMask.settings.transparency;\r\n }\r\n\r\n public get hiliteTexture(): Texture | undefined { return undefined !== this._classifierBuffers ? this._classifierBuffers.textures.hilite : undefined; }\r\n public get projectionMatrix(): Matrix4d { return this._projectionMatrix; }\r\n // public get properties(): SpatialClassifier { return this._classifier; }\r\n public get baseBatchId(): number { return this._baseBatchId; }\r\n public get anyHilited(): boolean { return this._anyHilited; }\r\n public get anyOpaque(): boolean { return this._anyOpaque; }\r\n public get anyTranslucent(): boolean { return this._anyTranslucent; }\r\n public get insideDisplay(): SpatialClassifierInsideDisplay { return this._classifier ? this._classifier.flags.inside : SpatialClassifierInsideDisplay.Off; }\r\n public get outsideDisplay(): SpatialClassifierOutsideDisplay { return this._classifier ? this._classifier.flags.outside : SpatialClassifierOutsideDisplay.On; }\r\n public get isClassifyingPointCloud(): boolean { return true === this._isClassifyingPointCloud; }\r\n\r\n public addGraphic(graphic: RenderGraphic) {\r\n this._graphics!.push(graphic);\r\n }\r\n\r\n public static create(properties: SpatialClassifier | undefined, target: Target): PlanarClassifier {\r\n return new PlanarClassifier(properties, target);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (undefined !== this._classifierBuffers)\r\n this._classifierBuffers.textures.collectStatistics(stats);\r\n\r\n if (undefined !== this._maskBuffer)\r\n this._maskBuffer.collectStatistics(stats);\r\n\r\n if (undefined !== this._classifierCombinedBuffer)\r\n this._classifierCombinedBuffer.collectStatistics(stats);\r\n\r\n if (undefined !== this._classifierAndMaskCombinedBuffer)\r\n this._classifierAndMaskCombinedBuffer.collectStatistics(stats);\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this._classifierBuffers; }\r\n\r\n public dispose() {\r\n this._classifierBuffers = dispose(this._classifierBuffers);\r\n this._maskBuffer = dispose(this._maskBuffer);\r\n this._classifierCombinedBuffer = dispose(this._classifierCombinedBuffer);\r\n this._classifierAndMaskCombinedBuffer = dispose(this._classifierAndMaskCombinedBuffer);\r\n }\r\n\r\n public get texture(): Texture | undefined {\r\n switch (this._contentMode) {\r\n case PlanarClassifierContent.None:\r\n return undefined;\r\n case PlanarClassifierContent.ClassifierOnly:\r\n return this._classifierCombinedBuffer?.texture;\r\n case PlanarClassifierContent.MaskOnly:\r\n return this._maskBuffer?.texture;\r\n case PlanarClassifierContent.ClassifierAndMask:\r\n return this._classifierAndMaskCombinedBuffer?.texture;\r\n }\r\n }\r\n\r\n private pushBatches(batchState: BatchState, graphics: RenderGraphic[]) {\r\n graphics.forEach((graphic) => {\r\n if (graphic instanceof Batch) {\r\n batchState.push(graphic, true);\r\n batchState.pop();\r\n } else if (graphic instanceof Branch) {\r\n this.pushBatches(batchState, graphic.branch.entries);\r\n }\r\n });\r\n }\r\n\r\n public pushBatchState(batchState: BatchState) {\r\n this._baseBatchId = batchState.nextBatchId - 1;\r\n if (undefined !== this._classifierGraphics)\r\n this.pushBatches(batchState, this._classifierGraphics);\r\n }\r\n\r\n public setSource(classifierTreeRef?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState) {\r\n this._classifierTreeRef = classifierTreeRef;\r\n this._classifier = classifierTreeRef?.activeClassifier;\r\n this._planarClipMask = planarClipMask;\r\n }\r\n\r\n public collectGraphics(context: SceneContext, target: PlanarClassifierTarget): void {\r\n this._classifierGraphics.length = this._maskGraphics.length = 0;\r\n if (undefined === context.viewingSpace)\r\n return;\r\n\r\n const viewState = context.viewingSpace.view as ViewState3d;\r\n if (undefined === viewState)\r\n return;\r\n\r\n // TBD - Refine resolution calculation -- increase height based on viewing angle.\r\n // But make sure that we don't make it larger than the hardware supports, keeping in mind that we will be doubling the height later.\r\n const requiredHeight = Math.min(Math.max(context.target.viewRect.width, context.target.viewRect.height), System.instance.capabilities.maxTextureSize / 2);\r\n const requiredWidth = requiredHeight;\r\n\r\n if (requiredWidth !== this._width || requiredHeight !== this._height)\r\n this.dispose();\r\n\r\n this._width = requiredWidth;\r\n this._height = requiredHeight;\r\n const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId);\r\n if (!maskTrees && !this._classifierTreeRef)\r\n return;\r\n\r\n const allTrees = maskTrees ? maskTrees.slice() : new Array<TileTreeReference>();\r\n if (this._classifierTreeRef)\r\n allTrees.push(this._classifierTreeRef);\r\n\r\n const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height);\r\n if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)\r\n return;\r\n\r\n this._projectionMatrix = projection.projectionMatrix;\r\n this._frustum = projection.textureFrustum;\r\n this._debugFrustum = projection.debugFrustum;\r\n this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();\r\n\r\n const drawTree = (treeRef: TileTreeReference, graphics: RenderGraphic[]) => {\r\n this._graphics = graphics;\r\n const drawArgs = GraphicsCollectorDrawArgs.create(context, this, treeRef, new FrustumPlanes(this._frustum), projection.worldToViewMap!);\r\n if (undefined !== drawArgs)\r\n treeRef.draw(drawArgs);\r\n\r\n this._graphics = undefined;\r\n };\r\n if (this._classifierTreeRef)\r\n drawTree(this._classifierTreeRef, this._classifierGraphics);\r\n\r\n if (maskTrees)\r\n maskTrees.forEach((maskTree) => drawTree(maskTree, this._maskGraphics));\r\n\r\n // Shader behaves slightly differently when classifying surfaces vs point clouds.\r\n this._isClassifyingPointCloud = target.isPointCloud;\r\n\r\n if (this._doDebugFrustum) {\r\n this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);\r\n const builder = context.createSceneGraphicBuilder();\r\n\r\n builder.setSymbology(ColorDef.green, ColorDef.green, 1);\r\n builder.addFrustum(context.viewingSpace.getFrustum());\r\n builder.setSymbology(ColorDef.red, ColorDef.red, 1);\r\n builder.addFrustum(this._debugFrustum!);\r\n builder.setSymbology(ColorDef.white, ColorDef.white, 1);\r\n builder.addFrustum(this._frustum);\r\n this._debugFrustumGraphic = builder.finish();\r\n }\r\n }\r\n\r\n public draw(target: Target) {\r\n if (undefined === this._frustum)\r\n return;\r\n\r\n this._contentMode = PlanarClassifierContent.None;\r\n let combinationBuffer: ClassifierCombinationBuffer | undefined;\r\n if (this._classifierGraphics.length === 0) {\r\n if (this._maskGraphics.length === 0) {\r\n return;\r\n } else {\r\n if (undefined === this._maskBuffer) {\r\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\r\n if (undefined === this._maskBuffer)\r\n return;\r\n }\r\n this._contentMode = PlanarClassifierContent.MaskOnly;\r\n }\r\n } else {\r\n if (undefined === this._classifierBuffers) {\r\n this._classifierBuffers = ClassifierFrameBuffers.create(this._width, this._height);\r\n if (undefined === this._classifierBuffers)\r\n return;\r\n }\r\n if (this._maskGraphics.length === 0) {\r\n if (undefined === this._classifierCombinedBuffer) {\r\n combinationBuffer = this._classifierCombinedBuffer = ClassifierCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature);\r\n if (undefined === this._classifierCombinedBuffer)\r\n return;\r\n }\r\n this._contentMode = PlanarClassifierContent.ClassifierOnly;\r\n combinationBuffer = this._classifierCombinedBuffer;\r\n } else {\r\n if (undefined === this._maskBuffer) {\r\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\r\n if (undefined === this._maskBuffer)\r\n return;\r\n }\r\n if (undefined === this._classifierAndMaskCombinedBuffer) {\r\n combinationBuffer = this._classifierAndMaskCombinedBuffer = ClassifierAndMaskCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature, this._maskBuffer.texture);\r\n if (undefined === this._classifierAndMaskCombinedBuffer)\r\n return;\r\n }\r\n combinationBuffer = this._classifierAndMaskCombinedBuffer;\r\n this._contentMode = PlanarClassifierContent.ClassifierAndMask;\r\n }\r\n }\r\n\r\n if (undefined !== this._debugFrustumGraphic)\r\n target.graphics.foreground.push(this._debugFrustumGraphic);\r\n\r\n // Temporarily override the Target's state.\r\n const system = System.instance;\r\n const prevState = system.currentRenderState.clone(scratchPrevRenderState);\r\n system.context.viewport(0, 0, this._width, this._height);\r\n\r\n const vf = target.currentViewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: !this.isClassifyingPointCloud, // point clouds don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n });\r\n\r\n system.applyRenderState(this._renderState);\r\n const prevPlan = target.plan;\r\n const prevOverrides = target.currentFeatureSymbologyOverrides;\r\n\r\n target.uniforms.style.changeBackgroundColor(this._bgColor); // Avoid white on white reversal. Will be reset in changeRenderPlan below.\r\n target.changeFrustum(this._frustum, this._frustum.getFraction(), true);\r\n this._anyTranslucent = false;\r\n\r\n const prevProjMatrix = target.uniforms.frustum.projectionMatrix;\r\n target.uniforms.frustum.changeProjectionMatrix(PlanarClassifier._postProjectionMatrix.multiplyMatrixMatrix(prevProjMatrix));\r\n target.uniforms.branch.changeRenderPlan(vf, target.plan.is3d, target.plan.hline);\r\n\r\n const renderCommands = this._renderCommands;\r\n const getDrawCommands = (graphics: RenderGraphic[]) => {\r\n this._batchState.reset();\r\n renderCommands.reset(target, this._branchStack, this._batchState);\r\n renderCommands.collectGraphicsForPlanarProjection(graphics);\r\n\r\n // Draw the classifiers into our attachments.\r\n // When using Display.ElementColor, the color and transparency come from the classifier geometry. Therefore we may need to draw the classified geometry\r\n // in a different pass - or both passes - depending on the transparency of the classifiers.\r\n // NB: \"Outside\" geometry by definition cannot take color/transparency from element...\r\n const cmds = renderCommands.getCommands(RenderPass.OpaquePlanar);\r\n\r\n // NB: We don't strictly require the classifier geometry to be planar, and sometimes (e.g., \"planar\" polyface/bspsurf) we do not detect planarity.\r\n cmds.push(...renderCommands.getCommands(RenderPass.OpaqueGeneral));\r\n this._anyOpaque = cmds.length > 0;\r\n const transCmds = renderCommands.getCommands(RenderPass.Translucent);\r\n if (transCmds.length > 0) {\r\n cmds.push(...transCmds);\r\n this._anyTranslucent = true;\r\n }\r\n return cmds;\r\n };\r\n\r\n if (this._classifierGraphics.length > 0 && this._classifierBuffers) {\r\n this._classifierBuffers.draw(getDrawCommands(this._classifierGraphics), target);\r\n\r\n // Draw any hilited classifiers.\r\n const hiliteCommands = renderCommands.getCommands(RenderPass.Hilite);\r\n this._anyHilited = 0 !== hiliteCommands.length;\r\n if (this._anyHilited)\r\n this._classifierBuffers.drawHilite(hiliteCommands, target);\r\n }\r\n if (this._maskGraphics.length > 0 && this._maskBuffer) {\r\n if (this._planarClipMaskOverrides)\r\n target.overrideFeatureSymbology(this._planarClipMaskOverrides);\r\n if (this._planarClipMask && this._planarClipMask.settings.transparency !== undefined && this._planarClipMask.settings.transparency > 0.0)\r\n this._anyTranslucent = true;\r\n\r\n this._maskBuffer.draw(getDrawCommands(this._maskGraphics), target);\r\n\r\n }\r\n if (combinationBuffer)\r\n combinationBuffer.compose(target);\r\n\r\n this._batchState.reset();\r\n target.changeRenderPlan(prevPlan);\r\n target.overrideFeatureSymbology(prevOverrides);\r\n\r\n system.applyRenderState(prevState);\r\n system.context.viewport(0, 0, target.viewRect.width, target.viewRect.height);\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"PlanarClassifier.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.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 { dispose } from \"@itwin/core-bentley\";\r\nimport { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, Frustum, FrustumPlanes, RenderMode, RenderTexture, SpatialClassifier, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, TextureTransparency,\r\n} from \"@itwin/core-common\";\r\nimport { PlanarClipMaskState } from \"../../PlanarClipMaskState\";\r\nimport { GraphicsCollectorDrawArgs, SpatialClassifierTileTreeReference, TileTreeReference } from \"../../tile/internal\";\r\nimport { SceneContext } from \"../../ViewContext\";\r\nimport { ViewState3d } from \"../../ViewState\";\r\nimport { FeatureSymbology } from \"../FeatureSymbology\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PlanarClassifierTarget, RenderPlanarClassifier } from \"../RenderPlanarClassifier\";\r\nimport { BatchState } from \"./BatchState\";\r\nimport { BranchStack } from \"./BranchStack\";\r\nimport { CachedGeometry, Combine3TexturesGeometry, CombineTexturesGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DrawCommands } from \"./DrawCommand\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { Batch, Branch } from \"./Graphic\";\r\nimport { PlanarTextureProjection } from \"./PlanarTextureProjection\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { Texture, TextureHandle } from \"./Texture\";\r\n\r\nexport enum PlanarClassifierContent { None = 0, MaskOnly = 1, ClassifierOnly = 2, ClassifierAndMask = 3 }\r\n\r\nfunction createTexture(handle: TextureHandle): Texture {\r\n return new Texture({\r\n handle,\r\n ownership: \"external\",\r\n type: RenderTexture.Type.TileSection,\r\n transparency: TextureTransparency.Opaque,\r\n });\r\n}\r\n\r\nfunction createTextureHandle(width: number, height: number, heightMult = 1.0) { return TextureHandle.createForAttachment(width, height * heightMult, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte); }\r\n\r\nclass ClassifierTextures implements WebGLDisposable {\r\n private constructor(public readonly color: Texture,\r\n public readonly feature: Texture,\r\n public readonly hilite: Texture) { }\r\n\r\n public get isDisposed(): boolean {\r\n return this.color.isDisposed\r\n && this.feature.isDisposed\r\n && this.hilite.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.color);\r\n dispose(this.feature);\r\n dispose(this.hilite);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addPlanarClassifier(this.color.bytesUsed);\r\n stats.addPlanarClassifier(this.feature.bytesUsed);\r\n stats.addPlanarClassifier(this.hilite.bytesUsed);\r\n }\r\n\r\n public static create(width: number, height: number): ClassifierTextures | undefined {\r\n const hColor = createTextureHandle(width, height);\r\n const hFeature = createTextureHandle(width, height);\r\n const hHilite = createTextureHandle(width, height);\r\n if (!hColor || !hFeature || !hHilite)\r\n return undefined;\r\n\r\n const color = createTexture(hColor);\r\n const feature = createTexture(hFeature);\r\n const hilite = createTexture(hHilite);\r\n if (!color || !feature || !hilite)\r\n return undefined;\r\n\r\n return new ClassifierTextures(color, feature, hilite);\r\n }\r\n}\r\n\r\nabstract class ClassifierFrameBuffers implements WebGLDisposable {\r\n protected constructor(\r\n public readonly textures: ClassifierTextures,\r\n private readonly _hilite: FrameBuffer) { }\r\n\r\n public get isDisposed(): boolean {\r\n return this.textures.isDisposed && this._hilite.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.textures);\r\n dispose(this._hilite);\r\n }\r\n\r\n public abstract draw(cmds: DrawCommands, target: Target): void;\r\n\r\n public drawHilite(cmds: DrawCommands, target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n system.frameBufferStack.execute(this._hilite, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n target.techniques.execute(target, cmds, RenderPass.Hilite);\r\n });\r\n }\r\n\r\n public static create(width: number, height: number): ClassifierFrameBuffers | undefined {\r\n const textures = ClassifierTextures.create(width, height);\r\n if (undefined === textures)\r\n return undefined;\r\n\r\n const hiliteFbo = FrameBuffer.create([textures.hilite.texture]);\r\n if (undefined === hiliteFbo)\r\n return undefined;\r\n\r\n if (System.instance.capabilities.supportsDrawBuffers)\r\n return ClassifierMRTFrameBuffers.createMRT(textures, hiliteFbo);\r\n else\r\n return ClassifierMPFrameBuffers.createMP(textures, hiliteFbo);\r\n }\r\n}\r\n\r\nclass ClassifierMRTFrameBuffers extends ClassifierFrameBuffers {\r\n private readonly _fbo: FrameBuffer;\r\n private readonly _clearGeom: ViewportQuadGeometry;\r\n\r\n private constructor(textures: ClassifierTextures, hilite: FrameBuffer, fbo: FrameBuffer, geom: ViewportQuadGeometry) {\r\n super(textures, hilite);\r\n this._fbo = fbo;\r\n this._clearGeom = geom;\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed\r\n && this._fbo.isDisposed\r\n && this._clearGeom.isDisposed;\r\n }\r\n\r\n public override dispose(): void {\r\n dispose(this._fbo);\r\n dispose(this._clearGeom);\r\n super.dispose();\r\n }\r\n\r\n public static createMRT(textures: ClassifierTextures, hilite: FrameBuffer): ClassifierMRTFrameBuffers | undefined {\r\n const fbo = FrameBuffer.create([textures.color.texture, textures.feature.texture]);\r\n if (undefined === fbo)\r\n return undefined;\r\n\r\n const geom = ViewportQuadGeometry.create(TechniqueId.ClearPickAndColor);\r\n return undefined !== geom ? new ClassifierMRTFrameBuffers(textures, hilite, fbo, geom) : undefined;\r\n }\r\n\r\n public draw(cmds: DrawCommands, target: Target): void {\r\n System.instance.frameBufferStack.execute(this._fbo, true, false, () => {\r\n target.techniques.draw(getDrawParams(target, this._clearGeom));\r\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\r\n });\r\n }\r\n}\r\n\r\nclass ClassifierMPFrameBuffers extends ClassifierFrameBuffers {\r\n private readonly _color: FrameBuffer;\r\n private readonly _feature: FrameBuffer;\r\n\r\n private constructor(textures: ClassifierTextures, hilite: FrameBuffer, color: FrameBuffer, feature: FrameBuffer) {\r\n super(textures, hilite);\r\n this._color = color;\r\n this._feature = feature;\r\n }\r\n\r\n public override get isDisposed(): boolean {\r\n return super.isDisposed\r\n && this._color.isDisposed\r\n && this._feature.isDisposed;\r\n }\r\n\r\n public override dispose(): void {\r\n dispose(this._color);\r\n dispose(this._feature);\r\n super.dispose();\r\n }\r\n\r\n public static createMP(textures: ClassifierTextures, hilite: FrameBuffer): ClassifierMPFrameBuffers | undefined {\r\n const color = FrameBuffer.create([textures.color.texture]);\r\n const feature = FrameBuffer.create([textures.feature.texture]);\r\n return undefined !== color && undefined !== feature ? new ClassifierMPFrameBuffers(textures, hilite, color, feature) : undefined;\r\n }\r\n\r\n public draw(cmds: DrawCommands, target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n const draw = (feature: boolean) => {\r\n const fbo = feature ? this._feature : this._color;\r\n system.frameBufferStack.execute(fbo, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n target.compositor.currentRenderTargetIndex = feature ? 1 : 0;\r\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\r\n });\r\n };\r\n\r\n draw(false);\r\n draw(true);\r\n }\r\n}\r\n\r\ninterface TextureAndFbo {\r\n texture: Texture;\r\n fbo: FrameBuffer;\r\n}\r\n\r\nabstract class SingleTextureFrameBuffer implements WebGLDisposable {\r\n public texture: Texture;\r\n protected fbo: FrameBuffer;\r\n public get isDisposed(): boolean { return this.texture.isDisposed && this.fbo.isDisposed; }\r\n public collectStatistics(stats: RenderMemory.Statistics): void { stats.addPlanarClassifier(this.texture.bytesUsed); }\r\n protected constructor(textureAndFbo: TextureAndFbo) {\r\n this.texture = textureAndFbo.texture;\r\n this.fbo = textureAndFbo.fbo;\r\n }\r\n public dispose(): void {\r\n dispose(this.texture);\r\n dispose(this.fbo);\r\n }\r\n public static createTextureAndFrameBuffer(width: number, height: number): TextureAndFbo | undefined {\r\n const hTexture = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n if (!hTexture)\r\n return undefined;\r\n\r\n const texture = new Texture({ type: RenderTexture.Type.TileSection, ownership: \"external\", handle: hTexture, transparency: TextureTransparency.Opaque });\r\n if (!texture)\r\n return undefined;\r\n\r\n const fbo = FrameBuffer.create([texture.texture]);\r\n if (undefined === fbo)\r\n return undefined;\r\n\r\n return { texture, fbo };\r\n }\r\n}\r\nclass MaskFrameBuffer extends SingleTextureFrameBuffer {\r\n public static create(width: number, height: number): MaskFrameBuffer | undefined {\r\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, height);\r\n return undefined === textureFbo ? undefined : new MaskFrameBuffer(textureFbo);\r\n }\r\n public draw(cmds: DrawCommands, target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n\r\n system.frameBufferStack.execute(this.fbo, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n if (!System.instance.capabilities.supportsDrawBuffers)\r\n target.compositor.currentRenderTargetIndex = 0;\r\n target.techniques.execute(target, cmds, RenderPass.PlanarClassification);\r\n });\r\n }\r\n}\r\nabstract class CombineTexturesFrameBuffer extends SingleTextureFrameBuffer {\r\n constructor(textureAndFbo: TextureAndFbo, private _combineGeom: CachedGeometry, private _width: number, private _height: number, private _heightMult: number) { super(textureAndFbo); }\r\n public compose(target: Target): void {\r\n const system = System.instance;\r\n const gl = system.context;\r\n system.context.viewport(0, 0, this._width, this._heightMult * this._height);\r\n system.frameBufferStack.execute(this.fbo, true, false, () => {\r\n gl.clearColor(0, 0, 0, 0);\r\n gl.clear(GL.BufferBit.Color);\r\n target.techniques.draw(getDrawParams(target, this._combineGeom));\r\n });\r\n }\r\n}\r\n\r\nclass ClassifierCombinationBuffer extends CombineTexturesFrameBuffer {\r\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture): ClassifierAndMaskCombinationBuffer | undefined {\r\n const combineGeom = CombineTexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!);\r\n if (undefined === combineGeom)\r\n return undefined;\r\n\r\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 2 * height);\r\n return undefined === textureFbo ? undefined : new ClassifierCombinationBuffer(textureFbo, combineGeom, width, height, 2);\r\n }\r\n}\r\nclass ClassifierAndMaskCombinationBuffer extends CombineTexturesFrameBuffer {\r\n public static create(width: number, height: number, classifierColor: Texture, classifierFeature: Texture, mask: Texture): ClassifierAndMaskCombinationBuffer | undefined {\r\n const combineGeom = Combine3TexturesGeometry.createGeometry(classifierColor.texture.getHandle()!, classifierFeature.texture.getHandle()!, mask.texture.getHandle()!);\r\n if (undefined === combineGeom)\r\n return undefined;\r\n\r\n const textureFbo = SingleTextureFrameBuffer.createTextureAndFrameBuffer(width, 3 * height);\r\n return undefined === textureFbo ? undefined : new ClassifierAndMaskCombinationBuffer(textureFbo, combineGeom, width, height, 3);\r\n }\r\n}\r\n\r\nconst scratchPrevRenderState = new RenderState();\r\n\r\n/** @internal */\r\nexport class PlanarClassifier extends RenderPlanarClassifier implements RenderMemory.Consumer, WebGLDisposable {\r\n private _classifierBuffers?: ClassifierFrameBuffers;\r\n private _maskBuffer?: MaskFrameBuffer;\r\n private _classifierCombinedBuffer?: ClassifierCombinationBuffer;\r\n private _classifierAndMaskCombinedBuffer?: ClassifierAndMaskCombinationBuffer;\r\n private _projectionMatrix = Matrix4d.createIdentity();\r\n private _graphics?: RenderGraphic[];\r\n private readonly _classifierGraphics: RenderGraphic[] = [];\r\n private readonly _maskGraphics: RenderGraphic[] = [];\r\n private _frustum?: Frustum;\r\n private _width = 0;\r\n private _height = 0;\r\n private _baseBatchId = 0;\r\n private _anyHilited = false;\r\n private _anyOpaque = false;\r\n private _anyTranslucent = false;\r\n private _classifier?: SpatialClassifier;\r\n private readonly _plane = Plane3dByOriginAndUnitNormal.create(new Point3d(0, 0, 0), new Vector3d(0, 0, 1))!; // TBD -- Support other planes - default to X-Y for now.\r\n private readonly _renderState = new RenderState();\r\n private readonly _renderCommands: RenderCommands;\r\n private readonly _branchStack = new BranchStack();\r\n private readonly _batchState: BatchState;\r\n private _planarClipMask?: PlanarClipMaskState;\r\n private _classifierTreeRef?: TileTreeReference;\r\n private _planarClipMaskOverrides?: FeatureSymbology.Overrides;\r\n private _contentMode: PlanarClassifierContent = PlanarClassifierContent.None;\r\n\r\n private static _postProjectionMatrix = Matrix4d.createRowValues(\r\n 0, 1, 0, 0,\r\n 0, 0, -1, 0,\r\n 1, 0, 0, 0,\r\n 0, 0, 0, 1);\r\n private _debugFrustum?: Frustum;\r\n private _doDebugFrustum = false;\r\n private _debugFrustumGraphic?: RenderGraphic = undefined;\r\n private _isClassifyingPointCloud?: boolean; // we will detect this the first time we draw\r\n private readonly _bgColor = ColorDef.from(0, 0, 0, 255);\r\n\r\n private constructor(classifier: SpatialClassifier | undefined, target: Target) {\r\n super();\r\n this._classifier = classifier;\r\n\r\n const flags = this._renderState.flags;\r\n flags.depthMask = flags.blend = flags.depthTest = false;\r\n\r\n this._batchState = new BatchState(this._branchStack);\r\n this._renderCommands = new RenderCommands(target, this._branchStack, this._batchState);\r\n }\r\n\r\n public getParams(params: Float32Array): void {\r\n params[0] = this.insideDisplay;\r\n params[1] = this.outsideDisplay;\r\n params[2] = this._contentMode;\r\n if (this._planarClipMask?.settings.invert) // If the mask sense is inverted, negate the contentMode to indicate this to the shader.\r\n params[2] = - params[2];\r\n\r\n params[3] = (this._planarClipMask?.settings.transparency === undefined) ? -1 : this._planarClipMask.settings.transparency;\r\n\r\n }\r\n\r\n public get hiliteTexture(): Texture | undefined { return undefined !== this._classifierBuffers ? this._classifierBuffers.textures.hilite : undefined; }\r\n public get projectionMatrix(): Matrix4d { return this._projectionMatrix; }\r\n // public get properties(): SpatialClassifier { return this._classifier; }\r\n public get baseBatchId(): number { return this._baseBatchId; }\r\n public get anyHilited(): boolean { return this._anyHilited; }\r\n public get anyOpaque(): boolean { return this._anyOpaque; }\r\n public get anyTranslucent(): boolean { return this._anyTranslucent; }\r\n public get insideDisplay(): SpatialClassifierInsideDisplay { return this._classifier ? this._classifier.flags.inside : SpatialClassifierInsideDisplay.Off; }\r\n public get outsideDisplay(): SpatialClassifierOutsideDisplay { return this._classifier ? this._classifier.flags.outside : SpatialClassifierOutsideDisplay.On; }\r\n public get isClassifyingPointCloud(): boolean { return true === this._isClassifyingPointCloud; }\r\n\r\n public addGraphic(graphic: RenderGraphic) {\r\n this._graphics!.push(graphic);\r\n }\r\n\r\n public static create(properties: SpatialClassifier | undefined, target: Target): PlanarClassifier {\r\n return new PlanarClassifier(properties, target);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (undefined !== this._classifierBuffers)\r\n this._classifierBuffers.textures.collectStatistics(stats);\r\n\r\n if (undefined !== this._maskBuffer)\r\n this._maskBuffer.collectStatistics(stats);\r\n\r\n if (undefined !== this._classifierCombinedBuffer)\r\n this._classifierCombinedBuffer.collectStatistics(stats);\r\n\r\n if (undefined !== this._classifierAndMaskCombinedBuffer)\r\n this._classifierAndMaskCombinedBuffer.collectStatistics(stats);\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this._classifierBuffers; }\r\n\r\n public dispose() {\r\n this._classifierBuffers = dispose(this._classifierBuffers);\r\n this._maskBuffer = dispose(this._maskBuffer);\r\n this._classifierCombinedBuffer = dispose(this._classifierCombinedBuffer);\r\n this._classifierAndMaskCombinedBuffer = dispose(this._classifierAndMaskCombinedBuffer);\r\n }\r\n\r\n public get texture(): Texture | undefined {\r\n switch (this._contentMode) {\r\n case PlanarClassifierContent.None:\r\n return undefined;\r\n case PlanarClassifierContent.ClassifierOnly:\r\n return this._classifierCombinedBuffer?.texture;\r\n case PlanarClassifierContent.MaskOnly:\r\n return this._maskBuffer?.texture;\r\n case PlanarClassifierContent.ClassifierAndMask:\r\n return this._classifierAndMaskCombinedBuffer?.texture;\r\n }\r\n }\r\n\r\n private pushBatches(batchState: BatchState, graphics: RenderGraphic[]) {\r\n graphics.forEach((graphic) => {\r\n if (graphic instanceof Batch) {\r\n batchState.push(graphic, true);\r\n batchState.pop();\r\n } else if (graphic instanceof Branch) {\r\n this.pushBatches(batchState, graphic.branch.entries);\r\n }\r\n });\r\n }\r\n\r\n public pushBatchState(batchState: BatchState) {\r\n this._baseBatchId = batchState.nextBatchId - 1;\r\n if (undefined !== this._classifierGraphics)\r\n this.pushBatches(batchState, this._classifierGraphics);\r\n }\r\n\r\n public setSource(classifierTreeRef?: SpatialClassifierTileTreeReference, planarClipMask?: PlanarClipMaskState) {\r\n this._classifierTreeRef = classifierTreeRef;\r\n this._classifier = classifierTreeRef?.activeClassifier;\r\n this._planarClipMask = planarClipMask;\r\n }\r\n\r\n public collectGraphics(context: SceneContext, target: PlanarClassifierTarget): void {\r\n this._classifierGraphics.length = this._maskGraphics.length = 0;\r\n if (undefined === context.viewingSpace)\r\n return;\r\n\r\n const viewState = context.viewingSpace.view as ViewState3d;\r\n if (undefined === viewState)\r\n return;\r\n\r\n // TBD - Refine resolution calculation -- increase height based on viewing angle.\r\n // But make sure that we don't make it larger than the hardware supports, keeping in mind that we will be doubling the height later.\r\n const requiredHeight = Math.min(Math.max(context.target.viewRect.width, context.target.viewRect.height), System.instance.capabilities.maxTextureSize / 2);\r\n const requiredWidth = requiredHeight;\r\n\r\n if (requiredWidth !== this._width || requiredHeight !== this._height)\r\n this.dispose();\r\n\r\n this._width = requiredWidth;\r\n this._height = requiredHeight;\r\n const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId);\r\n if (!maskTrees && !this._classifierTreeRef)\r\n return;\r\n\r\n const allTrees = maskTrees ? maskTrees.slice() : new Array<TileTreeReference>();\r\n if (this._classifierTreeRef)\r\n allTrees.push(this._classifierTreeRef);\r\n\r\n const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height);\r\n if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)\r\n return;\r\n\r\n this._projectionMatrix = projection.projectionMatrix;\r\n this._frustum = projection.textureFrustum;\r\n this._debugFrustum = projection.debugFrustum;\r\n this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();\r\n\r\n const drawTree = (treeRef: TileTreeReference, graphics: RenderGraphic[]) => {\r\n this._graphics = graphics;\r\n const drawArgs = GraphicsCollectorDrawArgs.create(context, this, treeRef, new FrustumPlanes(this._frustum), projection.worldToViewMap!);\r\n if (undefined !== drawArgs)\r\n treeRef.draw(drawArgs);\r\n\r\n this._graphics = undefined;\r\n };\r\n if (this._classifierTreeRef)\r\n drawTree(this._classifierTreeRef, this._classifierGraphics);\r\n\r\n if (maskTrees)\r\n maskTrees.forEach((maskTree) => drawTree(maskTree, this._maskGraphics));\r\n\r\n // Shader behaves slightly differently when classifying surfaces vs point clouds.\r\n this._isClassifyingPointCloud = target.isPointCloud;\r\n\r\n if (this._doDebugFrustum) {\r\n this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);\r\n const builder = context.createSceneGraphicBuilder();\r\n\r\n builder.setSymbology(ColorDef.green, ColorDef.green, 1);\r\n builder.addFrustum(context.viewingSpace.getFrustum());\r\n builder.setSymbology(ColorDef.red, ColorDef.red, 1);\r\n builder.addFrustum(this._debugFrustum!);\r\n builder.setSymbology(ColorDef.white, ColorDef.white, 1);\r\n builder.addFrustum(this._frustum);\r\n this._debugFrustumGraphic = builder.finish();\r\n }\r\n }\r\n\r\n public draw(target: Target) {\r\n if (undefined === this._frustum)\r\n return;\r\n\r\n this._contentMode = PlanarClassifierContent.None;\r\n let combinationBuffer: ClassifierCombinationBuffer | undefined;\r\n if (this._classifierGraphics.length === 0) {\r\n if (this._maskGraphics.length === 0) {\r\n return;\r\n } else {\r\n if (undefined === this._maskBuffer) {\r\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\r\n if (undefined === this._maskBuffer)\r\n return;\r\n }\r\n this._contentMode = PlanarClassifierContent.MaskOnly;\r\n }\r\n } else {\r\n if (undefined === this._classifierBuffers) {\r\n this._classifierBuffers = ClassifierFrameBuffers.create(this._width, this._height);\r\n if (undefined === this._classifierBuffers)\r\n return;\r\n }\r\n if (this._maskGraphics.length === 0) {\r\n if (undefined === this._classifierCombinedBuffer) {\r\n combinationBuffer = this._classifierCombinedBuffer = ClassifierCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature);\r\n if (undefined === this._classifierCombinedBuffer)\r\n return;\r\n }\r\n this._contentMode = PlanarClassifierContent.ClassifierOnly;\r\n combinationBuffer = this._classifierCombinedBuffer;\r\n } else {\r\n if (undefined === this._maskBuffer) {\r\n this._maskBuffer = MaskFrameBuffer.create(this._width, this._height);\r\n if (undefined === this._maskBuffer)\r\n return;\r\n }\r\n if (undefined === this._classifierAndMaskCombinedBuffer) {\r\n combinationBuffer = this._classifierAndMaskCombinedBuffer = ClassifierAndMaskCombinationBuffer.create(this._width, this._height, this._classifierBuffers.textures.color, this._classifierBuffers.textures.feature, this._maskBuffer.texture);\r\n if (undefined === this._classifierAndMaskCombinedBuffer)\r\n return;\r\n }\r\n combinationBuffer = this._classifierAndMaskCombinedBuffer;\r\n this._contentMode = PlanarClassifierContent.ClassifierAndMask;\r\n }\r\n }\r\n\r\n if (undefined !== this._debugFrustumGraphic)\r\n target.graphics.foreground.push(this._debugFrustumGraphic);\r\n\r\n // Temporarily override the Target's state.\r\n const system = System.instance;\r\n const prevState = system.currentRenderState.clone(scratchPrevRenderState);\r\n system.context.viewport(0, 0, this._width, this._height);\r\n\r\n const vf = target.currentViewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n wiremesh: false,\r\n transparency: !this.isClassifyingPointCloud, // point clouds don't support transparency.\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n });\r\n\r\n system.applyRenderState(this._renderState);\r\n const prevPlan = target.plan;\r\n const prevOverrides = target.currentFeatureSymbologyOverrides;\r\n\r\n target.uniforms.style.changeBackgroundColor(this._bgColor); // Avoid white on white reversal. Will be reset in changeRenderPlan below.\r\n target.changeFrustum(this._frustum, this._frustum.getFraction(), true);\r\n this._anyTranslucent = false;\r\n\r\n const prevProjMatrix = target.uniforms.frustum.projectionMatrix;\r\n target.uniforms.frustum.changeProjectionMatrix(PlanarClassifier._postProjectionMatrix.multiplyMatrixMatrix(prevProjMatrix));\r\n target.uniforms.branch.changeRenderPlan(vf, target.plan.is3d, target.plan.hline);\r\n\r\n const renderCommands = this._renderCommands;\r\n const getDrawCommands = (graphics: RenderGraphic[]) => {\r\n this._batchState.reset();\r\n renderCommands.reset(target, this._branchStack, this._batchState);\r\n renderCommands.collectGraphicsForPlanarProjection(graphics);\r\n\r\n // Draw the classifiers into our attachments.\r\n // When using Display.ElementColor, the color and transparency come from the classifier geometry. Therefore we may need to draw the classified geometry\r\n // in a different pass - or both passes - depending on the transparency of the classifiers.\r\n // NB: \"Outside\" geometry by definition cannot take color/transparency from element...\r\n const cmds = renderCommands.getCommands(RenderPass.OpaquePlanar);\r\n\r\n // NB: We don't strictly require the classifier geometry to be planar, and sometimes (e.g., \"planar\" polyface/bspsurf) we do not detect planarity.\r\n cmds.push(...renderCommands.getCommands(RenderPass.OpaqueGeneral));\r\n this._anyOpaque = cmds.length > 0;\r\n const transCmds = renderCommands.getCommands(RenderPass.Translucent);\r\n if (transCmds.length > 0) {\r\n cmds.push(...transCmds);\r\n this._anyTranslucent = true;\r\n }\r\n return cmds;\r\n };\r\n\r\n if (this._classifierGraphics.length > 0 && this._classifierBuffers) {\r\n this._classifierBuffers.draw(getDrawCommands(this._classifierGraphics), target);\r\n\r\n // Draw any hilited classifiers.\r\n const hiliteCommands = renderCommands.getCommands(RenderPass.Hilite);\r\n this._anyHilited = 0 !== hiliteCommands.length;\r\n if (this._anyHilited)\r\n this._classifierBuffers.drawHilite(hiliteCommands, target);\r\n }\r\n if (this._maskGraphics.length > 0 && this._maskBuffer) {\r\n if (this._planarClipMaskOverrides)\r\n target.overrideFeatureSymbology(this._planarClipMaskOverrides);\r\n if (this._planarClipMask && this._planarClipMask.settings.transparency !== undefined && this._planarClipMask.settings.transparency > 0.0)\r\n this._anyTranslucent = true;\r\n\r\n this._maskBuffer.draw(getDrawCommands(this._maskGraphics), target);\r\n\r\n }\r\n if (combinationBuffer)\r\n combinationBuffer.compose(target);\r\n\r\n this._batchState.reset();\r\n target.changeRenderPlan(prevPlan);\r\n target.overrideFeatureSymbology(prevOverrides);\r\n\r\n system.applyRenderState(prevState);\r\n system.context.viewport(0, 0, target.viewRect.width, target.viewRect.height);\r\n }\r\n}\r\n\r\n"]}
@@ -7,12 +7,11 @@ import { RenderMemory } from "../RenderMemory";
7
7
  import { PlanarGridProps, RenderSystem } from "../RenderSystem";
8
8
  import { QBufferHandle2d } from "./AttributeBuffers";
9
9
  import { IndexedGeometry } from "./CachedGeometry";
10
- import { RenderOrder, RenderPass } from "./RenderFlags";
11
- import { Target } from "./Target";
10
+ import { Pass, RenderOrder } from "./RenderFlags";
12
11
  import { TechniqueId } from "./TechniqueId";
13
12
  export declare class PlanarGridGeometry extends IndexedGeometry {
14
13
  get techniqueId(): TechniqueId;
15
- getRenderPass(_target: Target): RenderPass;
14
+ getPass(): Pass;
16
15
  collectStatistics(_stats: RenderMemory.Statistics): void;
17
16
  get renderOrder(): RenderOrder;
18
17
  readonly uvParams: QBufferHandle2d;
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarGrid.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAA8B,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAkC,eAAe,EAAmB,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACjE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAC1C,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;IAC1E,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAC1C,SAAgB,KAAK,EAAE,eAAe,CAAC;IACvC,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IAEnF,OAAO;WAMO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS;CA4D/G"}
1
+ {"version":3,"file":"PlanarGrid.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAA8B,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAkC,eAAe,EAAmB,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACxD,OAAO,IAAI,IAAI;IACxB,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;IAC1E,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAC1C,SAAgB,KAAK,EAAE,eAAe,CAAC;IACvC,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IAEnF,OAAO;WAMO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS;CA4D/G"}
@@ -21,7 +21,7 @@ class PlanarGridGeometryParams extends CachedGeometry_1.IndexedGeometryParams {
21
21
  constructor(positions, uvParams, indices, numIndices, props) {
22
22
  super(positions, indices, numIndices);
23
23
  this.props = props;
24
- const attrParams = AttributeMap_1.AttributeMap.findAttribute("a_uvParam", 7 /* PlanarGrid */, false);
24
+ const attrParams = AttributeMap_1.AttributeMap.findAttribute("a_uvParam", 8 /* PlanarGrid */, false);
25
25
  (0, core_bentley_1.assert)(attrParams !== undefined);
26
26
  this.buffers.addBuffer(uvParams, [AttributeBuffers_1.BufferParameters.create(attrParams.location, 2, GL_1.GL.DataType.UnsignedShort, false, 0, 0, false)]);
27
27
  this.uvParams = uvParams;
@@ -33,8 +33,8 @@ class PlanarGridGeometry extends CachedGeometry_1.IndexedGeometry {
33
33
  this.uvParams = params.uvParams;
34
34
  this.props = params.props;
35
35
  }
36
- get techniqueId() { return 7 /* PlanarGrid */; }
37
- getRenderPass(_target) { return 7 /* Translucent */; }
36
+ get techniqueId() { return 8 /* PlanarGrid */; }
37
+ getPass() { return "translucent"; }
38
38
  collectStatistics(_stats) { }
39
39
  get renderOrder() { return 3 /* UnlitSurface */; }
40
40
  get asPlanarGrid() { return this; }
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarGrid.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.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/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Plane3dByOriginAndUnitNormal, Point2d, Transform } from \"@itwin/core-geometry\";\r\nimport { Frustum, QPoint2dList, QPoint3dList } from \"@itwin/core-common\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PlanarGridProps, RenderSystem } 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 { Primitive } from \"./Primitive\";\r\nimport { RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nclass PlanarGridGeometryParams extends IndexedGeometryParams {\r\n\r\n public readonly uvParams: QBufferHandle2d;\r\n\r\n public constructor(positions: QBufferHandle3d, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, public readonly props: PlanarGridProps) {\r\n super(positions, indices, numIndices);\r\n const attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.PlanarGrid, 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}\r\n\r\nexport class PlanarGridGeometry extends IndexedGeometry {\r\n public get techniqueId(): TechniqueId { return TechniqueId.PlanarGrid; }\r\n public getRenderPass(_target: Target): RenderPass { return RenderPass.Translucent; }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly props: PlanarGridProps;\r\n public override get asPlanarGrid(): PlanarGridGeometry | undefined { return this; }\r\n\r\n private constructor(params: PlanarGridGeometryParams) {\r\n super(params);\r\n this.uvParams = params.uvParams;\r\n this.props = params.props;\r\n }\r\n\r\n public static create(frustum: Frustum, grid: PlanarGridProps, system: RenderSystem): RenderGraphic | undefined {\r\n const plane = Plane3dByOriginAndUnitNormal.create(grid.origin, grid.rMatrix.rowZ())!;\r\n const polygon = frustum.getIntersectionWithPlane(plane);\r\n\r\n if (!polygon || polygon.length < 3)\r\n return undefined;\r\n\r\n const xVector = grid.rMatrix.rowX();\r\n const yVector = grid.rMatrix.rowY();\r\n const gridsPerRef = Math.max(1, grid.gridsPerRef);\r\n const xOrigin = xVector.dotProduct(grid.origin);\r\n const yOrigin = yVector.dotProduct(grid.origin);\r\n const params = [];\r\n for (const polygonPoint of polygon) {\r\n const x = (xVector.dotProduct(polygonPoint) - xOrigin) / grid.spacing.x;\r\n const y = (yVector.dotProduct(polygonPoint) - yOrigin) / grid.spacing.y;\r\n params.push(Point2d.create(x, y));\r\n }\r\n\r\n const qPoints = QPoint3dList.fromPoints(polygon);\r\n const qParams = QPoint2dList.fromPoints(params);\r\n\r\n qParams.params.origin.x = qParams.params.origin.x % gridsPerRef;\r\n qParams.params.origin.y = qParams.params.origin.y % gridsPerRef;\r\n\r\n let transform;\r\n // If the grid is far from the origin, create a branch to avoid large coordinate accuracy issues. (Reality models).\r\n if (qPoints.params.origin.magnitude() > 1.0E4) {\r\n transform = Transform.createTranslationXYZ(qPoints.params.origin.x, qPoints.params.origin.y, qPoints.params.origin.z);\r\n qPoints.params.origin.setZero();\r\n }\r\n\r\n const nTriangles = polygon.length - 2;\r\n const indices = new Uint32Array(3 * nTriangles);\r\n for (let i = 0, j = 0; i < nTriangles; i++) {\r\n indices[j++] = 0;\r\n indices[j++] = i + 1;\r\n indices[j++] = i + 2;\r\n }\r\n const pointBuffer = QBufferHandle3d.create(qPoints.params, qPoints.toTypedArray());\r\n const paramBuffer = QBufferHandle2d.create(qParams.params, qParams.toTypedArray());\r\n const indBuffer = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n if (!pointBuffer || !paramBuffer || !indBuffer)\r\n return undefined;\r\n\r\n const geomParams = new PlanarGridGeometryParams(pointBuffer, paramBuffer, indBuffer, indices.length, grid);\r\n if (!geomParams)\r\n return undefined;\r\n\r\n const geom = new PlanarGridGeometry(geomParams);\r\n let graphic: RenderGraphic | undefined = Primitive.create(geom);\r\n\r\n if (transform && graphic) {\r\n const branch = new GraphicBranch(true);\r\n branch.add(graphic);\r\n graphic = system.createBranch(branch, transform);\r\n }\r\n\r\n return graphic;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"PlanarGrid.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.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/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Plane3dByOriginAndUnitNormal, Point2d, Transform } from \"@itwin/core-geometry\";\r\nimport { Frustum, QPoint2dList, QPoint3dList } from \"@itwin/core-common\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PlanarGridProps, RenderSystem } 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 { Primitive } from \"./Primitive\";\r\nimport { Pass, RenderOrder } from \"./RenderFlags\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nclass PlanarGridGeometryParams extends IndexedGeometryParams {\r\n\r\n public readonly uvParams: QBufferHandle2d;\r\n\r\n public constructor(positions: QBufferHandle3d, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, public readonly props: PlanarGridProps) {\r\n super(positions, indices, numIndices);\r\n const attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.PlanarGrid, 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}\r\n\r\nexport class PlanarGridGeometry extends IndexedGeometry {\r\n public get techniqueId(): TechniqueId { return TechniqueId.PlanarGrid; }\r\n public override getPass(): Pass { return \"translucent\"; }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly props: PlanarGridProps;\r\n public override get asPlanarGrid(): PlanarGridGeometry | undefined { return this; }\r\n\r\n private constructor(params: PlanarGridGeometryParams) {\r\n super(params);\r\n this.uvParams = params.uvParams;\r\n this.props = params.props;\r\n }\r\n\r\n public static create(frustum: Frustum, grid: PlanarGridProps, system: RenderSystem): RenderGraphic | undefined {\r\n const plane = Plane3dByOriginAndUnitNormal.create(grid.origin, grid.rMatrix.rowZ())!;\r\n const polygon = frustum.getIntersectionWithPlane(plane);\r\n\r\n if (!polygon || polygon.length < 3)\r\n return undefined;\r\n\r\n const xVector = grid.rMatrix.rowX();\r\n const yVector = grid.rMatrix.rowY();\r\n const gridsPerRef = Math.max(1, grid.gridsPerRef);\r\n const xOrigin = xVector.dotProduct(grid.origin);\r\n const yOrigin = yVector.dotProduct(grid.origin);\r\n const params = [];\r\n for (const polygonPoint of polygon) {\r\n const x = (xVector.dotProduct(polygonPoint) - xOrigin) / grid.spacing.x;\r\n const y = (yVector.dotProduct(polygonPoint) - yOrigin) / grid.spacing.y;\r\n params.push(Point2d.create(x, y));\r\n }\r\n\r\n const qPoints = QPoint3dList.fromPoints(polygon);\r\n const qParams = QPoint2dList.fromPoints(params);\r\n\r\n qParams.params.origin.x = qParams.params.origin.x % gridsPerRef;\r\n qParams.params.origin.y = qParams.params.origin.y % gridsPerRef;\r\n\r\n let transform;\r\n // If the grid is far from the origin, create a branch to avoid large coordinate accuracy issues. (Reality models).\r\n if (qPoints.params.origin.magnitude() > 1.0E4) {\r\n transform = Transform.createTranslationXYZ(qPoints.params.origin.x, qPoints.params.origin.y, qPoints.params.origin.z);\r\n qPoints.params.origin.setZero();\r\n }\r\n\r\n const nTriangles = polygon.length - 2;\r\n const indices = new Uint32Array(3 * nTriangles);\r\n for (let i = 0, j = 0; i < nTriangles; i++) {\r\n indices[j++] = 0;\r\n indices[j++] = i + 1;\r\n indices[j++] = i + 2;\r\n }\r\n const pointBuffer = QBufferHandle3d.create(qPoints.params, qPoints.toTypedArray());\r\n const paramBuffer = QBufferHandle2d.create(qParams.params, qParams.toTypedArray());\r\n const indBuffer = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n if (!pointBuffer || !paramBuffer || !indBuffer)\r\n return undefined;\r\n\r\n const geomParams = new PlanarGridGeometryParams(pointBuffer, paramBuffer, indBuffer, indices.length, grid);\r\n if (!geomParams)\r\n return undefined;\r\n\r\n const geom = new PlanarGridGeometry(geomParams);\r\n let graphic: RenderGraphic | undefined = Primitive.create(geom);\r\n\r\n if (transform && graphic) {\r\n const branch = new GraphicBranch(true);\r\n branch.add(graphic);\r\n graphic = system.createBranch(branch, transform);\r\n }\r\n\r\n return graphic;\r\n }\r\n}\r\n\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarTextureProjection.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarTextureProjection.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EACgD,KAAK,EAAY,QAAQ,EAAE,4BAA4B,EAAW,OAAO,EACvH,SAAS,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAA4H;WAErJ,8BAA8B,CAAC,YAAY,EAAE,4BAA4B,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;WA6I/Y,uBAAuB,CAAC,MAAM,EAAE,MAAM;;;;CAqBrD"}
1
+ {"version":3,"file":"PlanarTextureProjection.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarTextureProjection.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EACgD,KAAK,EAAY,QAAQ,EAAE,4BAA4B,EAAW,OAAO,EACvH,SAAS,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAkC,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAA4H;WAErJ,8BAA8B,CAAC,YAAY,EAAE,4BAA4B,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;WA6I/Y,uBAAuB,CAAC,MAAM,EAAE,MAAM;;;;CAsBrD"}
@@ -149,6 +149,7 @@ class PlanarTextureProjection {
149
149
  state.flags.depthTest = false;
150
150
  const viewFlags = target.currentViewFlags.copy({
151
151
  renderMode: core_common_1.RenderMode.SmoothShade,
152
+ wiremesh: false,
152
153
  transparency: false,
153
154
  textures: false,
154
155
  lighting: false,
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarTextureProjection.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarTextureProjection.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 Rendering\r\n */\r\n\r\nimport {\r\n ClipUtilities, ConvexClipPlaneSet, GrowableXYZArray, Map4d, Matrix3d, Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range1d, Range2d, Range3d,\r\n Ray3d, Transform,\r\n} from \"@itwin/core-geometry\";\r\nimport { Frustum, FrustumPlanes, Npc, RenderMode } from \"@itwin/core-common\";\r\nimport { ApproximateTerrainHeights } from \"../../ApproximateTerrainHeights\";\r\nimport { SceneContext } from \"../../ViewContext\";\r\nimport { Tile, TileTreeReference } from \"../../tile/internal\";\r\nimport { ViewState3d } from \"../../ViewState\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { Target } from \"./Target\";\r\n\r\nconst scratchRange = Range3d.createNull();\r\nexport class PlanarTextureProjection {\r\n private static _postProjectionMatrixNpc = Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row 1 */ 0, 0, 1, 0, /* Row 3 */ 1, 0, 0, 0, /* Row 4 */ 0, 0, 0, 1);\r\n\r\n public static computePlanarTextureProjection(texturePlane: Plane3dByOriginAndUnitNormal, sceneContext: SceneContext, target: { tiles: Tile[], location: Transform }, drapeRefs: TileTreeReference[], viewState: ViewState3d, textureWidth: number, textureHeight: number, _heightRange?: Range1d): { textureFrustum?: Frustum, worldToViewMap?: Map4d, projectionMatrix?: Matrix4d, debugFrustum?: Frustum, zValue?: number } {\r\n const textureZ = texturePlane.getNormalRef();\r\n const viewingSpace = sceneContext.viewingSpace;\r\n const viewX = viewingSpace.rotation.rowX();\r\n const viewZ = viewingSpace.rotation.rowZ();\r\n const minCrossMagnitude = 1.0E-4;\r\n\r\n if (viewZ === undefined)\r\n return {}; // View without depth?....\r\n\r\n let textureX = viewZ.crossProduct(textureZ);\r\n let textureY;\r\n if (textureX.magnitude() < minCrossMagnitude) {\r\n textureY = viewX.crossProduct(textureZ);\r\n textureX = textureY.crossProduct(textureZ).normalize()!;\r\n } else {\r\n textureX.normalizeInPlace();\r\n textureY = textureZ.crossProduct(textureX).normalize()!;\r\n }\r\n\r\n const frustumX = textureZ, frustumY = textureX, frustumZ = textureY;\r\n const textureMatrix = Matrix3d.createRows(frustumX, frustumY, frustumZ);\r\n const textureTransform = Transform.createRefs(Point3d.createZero(), textureMatrix);\r\n const viewFrustum = viewingSpace.getFrustum().transformBy(textureTransform);\r\n const viewPlanes = new FrustumPlanes(viewFrustum);\r\n const viewClipPlanes = ConvexClipPlaneSet.createPlanes(viewPlanes.planes!);\r\n\r\n let textureRange = Range3d.createNull();\r\n const tileToTexture = textureTransform.multiplyTransformTransform(target.location);\r\n for (const tile of target.tiles) {\r\n textureRange.extendRange(tileToTexture.multiplyRange(tile.range, scratchRange));\r\n }\r\n\r\n if (textureRange.isNull)\r\n return {};\r\n\r\n textureRange = ClipUtilities.rangeOfClipperIntersectionWithRange(viewClipPlanes, textureRange);\r\n\r\n const drapeRange = Range3d.createNull();\r\n for (const drapeRef of drapeRefs) {\r\n const drapeTree = drapeRef.treeOwner.tileTree;\r\n\r\n if (!drapeTree)\r\n return {};\r\n if (drapeTree.isContentUnbounded) {\r\n let heightRange = viewingSpace.getTerrainHeightRange();\r\n if (!heightRange) heightRange = ApproximateTerrainHeights.instance.globalHeightRange;\r\n\r\n textureRange.low.x = Math.min(textureRange.low.x, heightRange.low);\r\n textureRange.high.x = Math.max(textureRange.high.x, heightRange.high);\r\n } else {\r\n const contentRange = textureTransform.multiplyRange(drapeRef.computeWorldContentRange());\r\n if (!contentRange.isNull)\r\n drapeRange.extendRange(contentRange);\r\n }\r\n }\r\n if (!drapeRange.isNull) {\r\n // Union of height\r\n textureRange.low.x = Math.min(textureRange.low.x, drapeRange.low.x);\r\n textureRange.high.x = Math.max(textureRange.high.x, drapeRange.high.x);\r\n\r\n // Intersection of texture extents.\r\n textureRange.low.y = Math.max(textureRange.low.y, drapeRange.low.y);\r\n textureRange.high.y = Math.min(textureRange.high.y, drapeRange.high.y);\r\n textureRange.low.z = Math.max(textureRange.low.z, drapeRange.low.z);\r\n textureRange.high.z = Math.min(textureRange.high.z, drapeRange.high.z);\r\n }\r\n\r\n const epsilon = .01;\r\n textureRange.low.x -= epsilon;\r\n textureRange.high.x += epsilon;\r\n\r\n const textureFrustum = Frustum.fromRange(textureRange);\r\n const debugFrustum = textureFrustum.clone();\r\n textureTransform.multiplyInversePoint3dArray(debugFrustum.points, debugFrustum.points);\r\n\r\n if (viewState.isCameraOn) {\r\n const eyeHeight = (textureRange.low.x + textureRange.high.x) / 2.0;\r\n const eyePlane = Plane3dByOriginAndUnitNormal.create(Point3d.createScale(textureZ, eyeHeight), textureZ); // Centered in range - parallel to texture.\r\n const projectionRay = Ray3d.create(viewState.getEyePoint(), viewZ.crossProduct(textureX).normalize()!);\r\n let projectionDistance = projectionRay.intersectionWithPlane(eyePlane!);\r\n const minNearToFarRatio = .01; // Smaller value allows texture projection to conform tightly to view frustum.\r\n if (undefined !== projectionDistance) {\r\n projectionDistance = Math.max(.1, projectionDistance);\r\n const eyePoint = textureTransform.multiplyPoint3d(projectionRay.fractionToPoint(projectionDistance));\r\n let near = eyePoint.z - textureRange.high.z;\r\n let far = eyePoint.z - textureRange.low.z;\r\n\r\n if (near / far < minNearToFarRatio) {\r\n // If the near-far ratio is less than minimum move the camera back.\r\n far = (textureRange.high.z - textureRange.low.z) / (1.0 - minNearToFarRatio);\r\n near = far * minNearToFarRatio;\r\n eyePoint.z = near + textureRange.high.z;\r\n }\r\n const farRange = Range2d.createNull();\r\n const nearRange = Range2d.createNull();\r\n // Create a frustum that includes the entire view frustum and all Z values.\r\n nearRange.low.x = textureRange.low.x;\r\n nearRange.high.x = textureRange.high.x;\r\n farRange.low.x = eyePoint.x + far / near * (textureRange.low.x - eyePoint.x);\r\n farRange.high.x = eyePoint.x + far / near * (textureRange.high.x - eyePoint.x);\r\n ClipUtilities.announceLoopsOfConvexClipPlaneSetIntersectRange(viewClipPlanes, textureRange, (points: GrowableXYZArray) => {\r\n points.getPoint3dArray().forEach((rangePoint) => {\r\n const farScale = far / (eyePoint.z - rangePoint.z);\r\n const nearScale = near / (eyePoint.z - rangePoint.z);\r\n const nearY = eyePoint.y + nearScale * (rangePoint.y - eyePoint.y);\r\n const farY = eyePoint.y + farScale * (rangePoint.y - eyePoint.y);\r\n nearRange.low.y = Math.min(nearRange.low.y, nearY);\r\n nearRange.high.y = Math.max(nearRange.high.y, nearY);\r\n farRange.low.y = Math.min(farRange.low.y, farY);\r\n farRange.high.y = Math.max(farRange.high.y, farY);\r\n });\r\n });\r\n textureFrustum.points[Npc._000].set(farRange.low.x, farRange.low.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._100].set(farRange.high.x, farRange.low.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._010].set(farRange.low.x, farRange.high.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._110].set(farRange.high.x, farRange.high.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._001].set(nearRange.low.x, nearRange.low.y, eyePoint.z - near);\r\n textureFrustum.points[Npc._101].set(nearRange.high.x, nearRange.low.y, eyePoint.z - near);\r\n textureFrustum.points[Npc._011].set(nearRange.low.x, nearRange.high.y, eyePoint.z - near);\r\n textureFrustum.points[Npc._111].set(nearRange.high.x, nearRange.high.y, eyePoint.z - near);\r\n }\r\n }\r\n textureMatrix.transposeInPlace();\r\n textureMatrix.multiplyVectorArrayInPlace(textureFrustum.points);\r\n const frustumMap = textureFrustum.toMap4d();\r\n if (undefined === frustumMap) {\r\n return {};\r\n }\r\n const worldToNpc = PlanarTextureProjection._postProjectionMatrixNpc.multiplyMatrixMatrix(frustumMap.transform0);\r\n const npcToView = Map4d.createBoxMap(Point3d.create(0, 0, 0), Point3d.create(1, 1, 1), Point3d.create(0, 0, 0), Point3d.create(textureWidth, textureHeight, 1))!;\r\n const npcToWorld = worldToNpc.createInverse();\r\n if (undefined === npcToWorld) {\r\n return {};\r\n }\r\n const worldToNpcMap = Map4d.createRefs(worldToNpc, npcToWorld);\r\n const worldToViewMap = npcToView.multiplyMapMap(worldToNpcMap);\r\n\r\n return { textureFrustum, projectionMatrix: worldToNpc, worldToViewMap, debugFrustum };\r\n }\r\n\r\n public static getTextureDrawingParams(target: Target) {\r\n const state = new RenderState();\r\n state.flags.depthMask = false;\r\n state.flags.blend = false;\r\n state.flags.depthTest = false;\r\n\r\n const viewFlags = target.currentViewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n transparency: false,\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n });\r\n\r\n return { state, viewFlags };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PlanarTextureProjection.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarTextureProjection.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,wDAG8B;AAC9B,oDAA6E;AAC7E,+EAA4E;AAI5E,+CAA4C;AAG5C,MAAM,YAAY,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;AAC1C,MAAa,uBAAuB;IAG3B,MAAM,CAAC,8BAA8B,CAAC,YAA0C,EAAE,YAA0B,EAAE,MAA8C,EAAE,SAA8B,EAAE,SAAsB,EAAE,YAAoB,EAAE,aAAqB,EAAE,YAAsB;QAC9R,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,iBAAiB,GAAG,MAAM,CAAC;QAEjC,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO,EAAE,CAAC,CAAM,0BAA0B;QAE5C,IAAI,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,QAAQ,CAAC;QACb,IAAI,QAAQ,CAAC,SAAS,EAAE,GAAG,iBAAiB,EAAE;YAC5C,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxC,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAG,CAAC;SACzD;aAAM;YACL,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC5B,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAG,CAAC;SACzD;QAED,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;QACpE,MAAM,aAAa,GAAG,wBAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,yBAAS,CAAC,UAAU,CAAC,uBAAO,CAAC,UAAU,EAAE,EAAE,aAAa,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,IAAI,2BAAa,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,kCAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC;QAE3E,IAAI,YAAY,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;YAC/B,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;SACjF;QAED,IAAI,YAAY,CAAC,MAAM;YACrB,OAAO,EAAE,CAAC;QAEZ,YAAY,GAAG,6BAAa,CAAC,mCAAmC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAE/F,MAAM,UAAU,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;YAE9C,IAAI,CAAC,SAAS;gBACZ,OAAO,EAAE,CAAC;YACZ,IAAI,SAAS,CAAC,kBAAkB,EAAE;gBAChC,IAAI,WAAW,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;gBACvD,IAAI,CAAC,WAAW;oBAAE,WAAW,GAAG,qDAAyB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAErF,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnE,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;aACvE;iBAAM;gBACL,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC;gBACzF,IAAI,CAAC,YAAY,CAAC,MAAM;oBACtB,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;aACxC;SACF;QACD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,kBAAkB;YAClB,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEvE,mCAAmC;YACnC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACxE;QAED,MAAM,OAAO,GAAG,GAAG,CAAC;QACpB,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC;QAE/B,MAAM,cAAc,GAAG,qBAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5C,gBAAgB,CAAC,2BAA2B,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAEvF,IAAI,SAAS,CAAC,UAAU,EAAE;YACxB,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnE,MAAM,QAAQ,GAAG,4CAA4B,CAAC,MAAM,CAAC,uBAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAI,2CAA2C;YACxJ,MAAM,aAAa,GAAG,qBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAG,CAAC,CAAC;YACvG,IAAI,kBAAkB,GAAG,aAAa,CAAC,qBAAqB,CAAC,QAAS,CAAC,CAAC;YACxE,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAE,8EAA8E;YAC9G,IAAI,SAAS,KAAK,kBAAkB,EAAE;gBACpC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,aAAa,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACrG,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5C,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE1C,IAAI,IAAI,GAAG,GAAG,GAAG,iBAAiB,EAAE;oBAClC,mEAAmE;oBACnE,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAC,CAAC;oBAC7E,IAAI,GAAG,GAAG,GAAG,iBAAiB,CAAC;oBAC/B,QAAQ,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;iBACzC;gBACD,MAAM,QAAQ,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;gBACtC,MAAM,SAAS,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;gBACvC,2EAA2E;gBAC3E,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7E,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC/E,6BAAa,CAAC,+CAA+C,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,MAAwB,EAAE,EAAE;oBACvH,MAAM,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;wBAC9C,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBACnD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACjE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;wBACnD,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;wBACrD,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBAChD,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACtF,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvF,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvF,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACxF,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBACzF,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1F,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1F,cAAc,CAAC,MAAM,CAAC,iBAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;aAC5F;SACF;QACD,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACjC,aAAa,CAAC,0BAA0B,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,SAAS,KAAK,UAAU,EAAE;YAC5B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAChH,MAAM,SAAS,GAAG,qBAAK,CAAC,YAAY,CAAC,uBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAO,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,CAAE,CAAC;QACjK,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;QAC9C,IAAI,SAAS,KAAK,UAAU,EAAE;YAC5B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,aAAa,GAAG,qBAAK,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAE/D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IACxF,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,MAAc;QAClD,MAAM,KAAK,GAAG,IAAI,yBAAW,EAAE,CAAC;QAChC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAC9B,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC7C,UAAU,EAAE,wBAAU,CAAC,WAAW;YAClC,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9B,CAAC;;AArKH,0DAsKC;AArKgB,gDAAwB,GAAG,wBAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC","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 Rendering\r\n */\r\n\r\nimport {\r\n ClipUtilities, ConvexClipPlaneSet, GrowableXYZArray, Map4d, Matrix3d, Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range1d, Range2d, Range3d,\r\n Ray3d, Transform,\r\n} from \"@itwin/core-geometry\";\r\nimport { Frustum, FrustumPlanes, Npc, RenderMode } from \"@itwin/core-common\";\r\nimport { ApproximateTerrainHeights } from \"../../ApproximateTerrainHeights\";\r\nimport { SceneContext } from \"../../ViewContext\";\r\nimport { Tile, TileTreeReference } from \"../../tile/internal\";\r\nimport { ViewState3d } from \"../../ViewState\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { Target } from \"./Target\";\r\n\r\nconst scratchRange = Range3d.createNull();\r\nexport class PlanarTextureProjection {\r\n private static _postProjectionMatrixNpc = Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row 1 */ 0, 0, 1, 0, /* Row 3 */ 1, 0, 0, 0, /* Row 4 */ 0, 0, 0, 1);\r\n\r\n public static computePlanarTextureProjection(texturePlane: Plane3dByOriginAndUnitNormal, sceneContext: SceneContext, target: { tiles: Tile[], location: Transform }, drapeRefs: TileTreeReference[], viewState: ViewState3d, textureWidth: number, textureHeight: number, _heightRange?: Range1d): { textureFrustum?: Frustum, worldToViewMap?: Map4d, projectionMatrix?: Matrix4d, debugFrustum?: Frustum, zValue?: number } {\r\n const textureZ = texturePlane.getNormalRef();\r\n const viewingSpace = sceneContext.viewingSpace;\r\n const viewX = viewingSpace.rotation.rowX();\r\n const viewZ = viewingSpace.rotation.rowZ();\r\n const minCrossMagnitude = 1.0E-4;\r\n\r\n if (viewZ === undefined)\r\n return {}; // View without depth?....\r\n\r\n let textureX = viewZ.crossProduct(textureZ);\r\n let textureY;\r\n if (textureX.magnitude() < minCrossMagnitude) {\r\n textureY = viewX.crossProduct(textureZ);\r\n textureX = textureY.crossProduct(textureZ).normalize()!;\r\n } else {\r\n textureX.normalizeInPlace();\r\n textureY = textureZ.crossProduct(textureX).normalize()!;\r\n }\r\n\r\n const frustumX = textureZ, frustumY = textureX, frustumZ = textureY;\r\n const textureMatrix = Matrix3d.createRows(frustumX, frustumY, frustumZ);\r\n const textureTransform = Transform.createRefs(Point3d.createZero(), textureMatrix);\r\n const viewFrustum = viewingSpace.getFrustum().transformBy(textureTransform);\r\n const viewPlanes = new FrustumPlanes(viewFrustum);\r\n const viewClipPlanes = ConvexClipPlaneSet.createPlanes(viewPlanes.planes!);\r\n\r\n let textureRange = Range3d.createNull();\r\n const tileToTexture = textureTransform.multiplyTransformTransform(target.location);\r\n for (const tile of target.tiles) {\r\n textureRange.extendRange(tileToTexture.multiplyRange(tile.range, scratchRange));\r\n }\r\n\r\n if (textureRange.isNull)\r\n return {};\r\n\r\n textureRange = ClipUtilities.rangeOfClipperIntersectionWithRange(viewClipPlanes, textureRange);\r\n\r\n const drapeRange = Range3d.createNull();\r\n for (const drapeRef of drapeRefs) {\r\n const drapeTree = drapeRef.treeOwner.tileTree;\r\n\r\n if (!drapeTree)\r\n return {};\r\n if (drapeTree.isContentUnbounded) {\r\n let heightRange = viewingSpace.getTerrainHeightRange();\r\n if (!heightRange) heightRange = ApproximateTerrainHeights.instance.globalHeightRange;\r\n\r\n textureRange.low.x = Math.min(textureRange.low.x, heightRange.low);\r\n textureRange.high.x = Math.max(textureRange.high.x, heightRange.high);\r\n } else {\r\n const contentRange = textureTransform.multiplyRange(drapeRef.computeWorldContentRange());\r\n if (!contentRange.isNull)\r\n drapeRange.extendRange(contentRange);\r\n }\r\n }\r\n if (!drapeRange.isNull) {\r\n // Union of height\r\n textureRange.low.x = Math.min(textureRange.low.x, drapeRange.low.x);\r\n textureRange.high.x = Math.max(textureRange.high.x, drapeRange.high.x);\r\n\r\n // Intersection of texture extents.\r\n textureRange.low.y = Math.max(textureRange.low.y, drapeRange.low.y);\r\n textureRange.high.y = Math.min(textureRange.high.y, drapeRange.high.y);\r\n textureRange.low.z = Math.max(textureRange.low.z, drapeRange.low.z);\r\n textureRange.high.z = Math.min(textureRange.high.z, drapeRange.high.z);\r\n }\r\n\r\n const epsilon = .01;\r\n textureRange.low.x -= epsilon;\r\n textureRange.high.x += epsilon;\r\n\r\n const textureFrustum = Frustum.fromRange(textureRange);\r\n const debugFrustum = textureFrustum.clone();\r\n textureTransform.multiplyInversePoint3dArray(debugFrustum.points, debugFrustum.points);\r\n\r\n if (viewState.isCameraOn) {\r\n const eyeHeight = (textureRange.low.x + textureRange.high.x) / 2.0;\r\n const eyePlane = Plane3dByOriginAndUnitNormal.create(Point3d.createScale(textureZ, eyeHeight), textureZ); // Centered in range - parallel to texture.\r\n const projectionRay = Ray3d.create(viewState.getEyePoint(), viewZ.crossProduct(textureX).normalize()!);\r\n let projectionDistance = projectionRay.intersectionWithPlane(eyePlane!);\r\n const minNearToFarRatio = .01; // Smaller value allows texture projection to conform tightly to view frustum.\r\n if (undefined !== projectionDistance) {\r\n projectionDistance = Math.max(.1, projectionDistance);\r\n const eyePoint = textureTransform.multiplyPoint3d(projectionRay.fractionToPoint(projectionDistance));\r\n let near = eyePoint.z - textureRange.high.z;\r\n let far = eyePoint.z - textureRange.low.z;\r\n\r\n if (near / far < minNearToFarRatio) {\r\n // If the near-far ratio is less than minimum move the camera back.\r\n far = (textureRange.high.z - textureRange.low.z) / (1.0 - minNearToFarRatio);\r\n near = far * minNearToFarRatio;\r\n eyePoint.z = near + textureRange.high.z;\r\n }\r\n const farRange = Range2d.createNull();\r\n const nearRange = Range2d.createNull();\r\n // Create a frustum that includes the entire view frustum and all Z values.\r\n nearRange.low.x = textureRange.low.x;\r\n nearRange.high.x = textureRange.high.x;\r\n farRange.low.x = eyePoint.x + far / near * (textureRange.low.x - eyePoint.x);\r\n farRange.high.x = eyePoint.x + far / near * (textureRange.high.x - eyePoint.x);\r\n ClipUtilities.announceLoopsOfConvexClipPlaneSetIntersectRange(viewClipPlanes, textureRange, (points: GrowableXYZArray) => {\r\n points.getPoint3dArray().forEach((rangePoint) => {\r\n const farScale = far / (eyePoint.z - rangePoint.z);\r\n const nearScale = near / (eyePoint.z - rangePoint.z);\r\n const nearY = eyePoint.y + nearScale * (rangePoint.y - eyePoint.y);\r\n const farY = eyePoint.y + farScale * (rangePoint.y - eyePoint.y);\r\n nearRange.low.y = Math.min(nearRange.low.y, nearY);\r\n nearRange.high.y = Math.max(nearRange.high.y, nearY);\r\n farRange.low.y = Math.min(farRange.low.y, farY);\r\n farRange.high.y = Math.max(farRange.high.y, farY);\r\n });\r\n });\r\n textureFrustum.points[Npc._000].set(farRange.low.x, farRange.low.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._100].set(farRange.high.x, farRange.low.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._010].set(farRange.low.x, farRange.high.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._110].set(farRange.high.x, farRange.high.y, eyePoint.z - far);\r\n textureFrustum.points[Npc._001].set(nearRange.low.x, nearRange.low.y, eyePoint.z - near);\r\n textureFrustum.points[Npc._101].set(nearRange.high.x, nearRange.low.y, eyePoint.z - near);\r\n textureFrustum.points[Npc._011].set(nearRange.low.x, nearRange.high.y, eyePoint.z - near);\r\n textureFrustum.points[Npc._111].set(nearRange.high.x, nearRange.high.y, eyePoint.z - near);\r\n }\r\n }\r\n textureMatrix.transposeInPlace();\r\n textureMatrix.multiplyVectorArrayInPlace(textureFrustum.points);\r\n const frustumMap = textureFrustum.toMap4d();\r\n if (undefined === frustumMap) {\r\n return {};\r\n }\r\n const worldToNpc = PlanarTextureProjection._postProjectionMatrixNpc.multiplyMatrixMatrix(frustumMap.transform0);\r\n const npcToView = Map4d.createBoxMap(Point3d.create(0, 0, 0), Point3d.create(1, 1, 1), Point3d.create(0, 0, 0), Point3d.create(textureWidth, textureHeight, 1))!;\r\n const npcToWorld = worldToNpc.createInverse();\r\n if (undefined === npcToWorld) {\r\n return {};\r\n }\r\n const worldToNpcMap = Map4d.createRefs(worldToNpc, npcToWorld);\r\n const worldToViewMap = npcToView.multiplyMapMap(worldToNpcMap);\r\n\r\n return { textureFrustum, projectionMatrix: worldToNpc, worldToViewMap, debugFrustum };\r\n }\r\n\r\n public static getTextureDrawingParams(target: Target) {\r\n const state = new RenderState();\r\n state.flags.depthMask = false;\r\n state.flags.blend = false;\r\n state.flags.depthTest = false;\r\n\r\n const viewFlags = target.currentViewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n wiremesh: false,\r\n transparency: false,\r\n textures: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n materials: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n });\r\n\r\n return { state, viewFlags };\r\n }\r\n}\r\n"]}
@@ -3,7 +3,7 @@ import { RenderMemory } from "../RenderMemory";
3
3
  import { CachedGeometry } from "./CachedGeometry";
4
4
  import { ShaderProgramParams } from "./DrawCommand";
5
5
  import { BufferHandle, BuffersContainer } from "./AttributeBuffers";
6
- import { RenderOrder, RenderPass } from "./RenderFlags";
6
+ import { RenderOrder } from "./RenderFlags";
7
7
  import { Target } from "./Target";
8
8
  import { TechniqueId } from "./TechniqueId";
9
9
  /** @internal */
@@ -25,7 +25,7 @@ export declare class PointCloudGeometry extends CachedGeometry {
25
25
  collectStatistics(stats: RenderMemory.Statistics): void;
26
26
  protected _wantWoWReversal(_target: Target): boolean;
27
27
  get techniqueId(): TechniqueId;
28
- getRenderPass(target: Target): RenderPass;
28
+ getPass(target: Target): "none" | "opaque";
29
29
  get renderOrder(): RenderOrder;
30
30
  get qOrigin(): Float32Array;
31
31
  get qScale(): Float32Array;
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IAEzC,IAAW,UAAU,IAAI,OAAO,CAAiE;IACjG,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IACnF,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAErC,OAAO;gBAKF,UAAU,EAAE,cAAc;IAsB/B,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACjE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAIhD,IAAW,WAAW,IAAI,WAAW,CAA+B;IACpE,IAAW,OAAO,IAAI,YAAY,CAAkC;IACpE,IAAW,MAAM,IAAI,YAAY,CAAiC;IAClE,IAAW,MAAM,IAAI,YAAY,GAAG,SAAS,CAA8B;IAC3E,IAAoB,WAAW,YAAgC;IAC/D,IAAoB,gBAAgB,YAAmB;IAEhD,IAAI,IAAI,IAAI;IAKH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAIpE"}
1
+ {"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IAEzC,IAAW,UAAU,IAAI,OAAO,CAAiE;IACjG,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IACnF,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAErC,OAAO;gBAKF,UAAU,EAAE,cAAc;IAsB/B,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM;IAItC,IAAW,WAAW,IAAI,WAAW,CAA+B;IACpE,IAAW,OAAO,IAAI,YAAY,CAAkC;IACpE,IAAW,MAAM,IAAI,YAAY,CAAiC;IAClE,IAAW,MAAM,IAAI,YAAY,GAAG,SAAS,CAA8B;IAC3E,IAAoB,WAAW,YAAgC;IAC/D,IAAoB,gBAAgB,YAAmB;IAEhD,IAAI,IAAI,IAAI;IAKH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAIpE"}
@@ -52,9 +52,9 @@ class PointCloudGeometry extends CachedGeometry_1.CachedGeometry {
52
52
  }
53
53
  _wantWoWReversal(_target) { return false; }
54
54
  get techniqueId() { return 2 /* PointCloud */; }
55
- getRenderPass(target) {
55
+ getPass(target) {
56
56
  // Point clouds don't cast shadows.
57
- return target.isDrawingShadowMap ? 255 /* None */ : 4 /* OpaqueGeneral */;
57
+ return target.isDrawingShadowMap ? "none" : "opaque";
58
58
  }
59
59
  get renderOrder() { return 5 /* Linear */; }
60
60
  get qOrigin() { return this._vertices.origin; }
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.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 } from \"@itwin/core-bentley\";\r\nimport { FeatureIndexType } from \"@itwin/core-common\";\r\nimport { PointCloudArgs } from \"../primitives/PointCloudPrimitive\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/** @internal */\r\nexport class PointCloudGeometry extends CachedGeometry {\r\n public readonly buffers: BuffersContainer;\r\n private readonly _vertices: QBufferHandle3d;\r\n private readonly _vertexCount: number;\r\n private readonly _colorHandle: BufferHandle | undefined = undefined;\r\n private readonly _hasFeatures: boolean;\r\n\r\n private readonly _voxelSize: number;\r\n public readonly colorIsBgr: boolean;\r\n public readonly minimumPointSize: number;\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._vertices.isDisposed; }\r\n public override get asPointCloud(): PointCloudGeometry | undefined { return this; }\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\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this._vertices);\r\n }\r\n\r\n constructor(pointCloud: PointCloudArgs) {\r\n super();\r\n this.buffers = BuffersContainer.create();\r\n this._vertices = QBufferHandle3d.create(pointCloud.pointParams, pointCloud.points) as QBufferHandle3d;\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrPos);\r\n const vertexDataType = (pointCloud.points instanceof Uint8Array) ? GL.DataType.UnsignedByte : GL.DataType.UnsignedShort;\r\n this.buffers.addBuffer(this._vertices, [BufferParameters.create(attrPos.location, 3, vertexDataType, false, 0, 0, false)]);\r\n this._vertexCount = pointCloud.points.length / 3;\r\n this._hasFeatures = FeatureIndexType.Empty !== pointCloud.features.type;\r\n this._voxelSize = pointCloud.voxelSize;\r\n this.colorIsBgr = pointCloud.colorIsBgr;\r\n this.minimumPointSize = pointCloud.minimumPointSize;\r\n\r\n if (undefined !== pointCloud.colors) {\r\n this._colorHandle = BufferHandle.createArrayBuffer(pointCloud.colors);\r\n const attrColor = AttributeMap.findAttribute(\"a_color\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrColor);\r\n this.buffers.addBuffer(this._colorHandle!, [BufferParameters.create(attrColor.location, 3, GL.DataType.UnsignedByte, true, 0, 0, false)]);\r\n }\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const bytesUsed = this._vertices.bytesUsed + (undefined !== this._colorHandle ? this._colorHandle.bytesUsed : 0);\r\n stats.addPointCloud(bytesUsed);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.PointCloud; }\r\n public getRenderPass(target: Target): RenderPass {\r\n // Point clouds don't cast shadows.\r\n return target.isDrawingShadowMap ? RenderPass.None : RenderPass.OpaqueGeneral;\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.Linear; }\r\n public get qOrigin(): Float32Array { return this._vertices.origin; }\r\n public get qScale(): Float32Array { return this._vertices.scale; }\r\n public get colors(): BufferHandle | undefined { return this._colorHandle; }\r\n public override get hasFeatures() { return this._hasFeatures; }\r\n public override get hasBakedLighting() { return true; }\r\n\r\n public draw(): void {\r\n this.buffers.bind();\r\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._vertexCount);\r\n this.buffers.unbind();\r\n }\r\n public override getLineWeight(_params: ShaderProgramParams): number {\r\n // If line weight < 0 it is real size in meters (voxel size).\r\n return (this._voxelSize > 0) ? - this._voxelSize : 1;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.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 } from \"@itwin/core-bentley\";\r\nimport { FeatureIndexType } from \"@itwin/core-common\";\r\nimport { PointCloudArgs } from \"../primitives/PointCloudPrimitive\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/** @internal */\r\nexport class PointCloudGeometry extends CachedGeometry {\r\n public readonly buffers: BuffersContainer;\r\n private readonly _vertices: QBufferHandle3d;\r\n private readonly _vertexCount: number;\r\n private readonly _colorHandle: BufferHandle | undefined = undefined;\r\n private readonly _hasFeatures: boolean;\r\n\r\n private readonly _voxelSize: number;\r\n public readonly colorIsBgr: boolean;\r\n public readonly minimumPointSize: number;\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._vertices.isDisposed; }\r\n public override get asPointCloud(): PointCloudGeometry | undefined { return this; }\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\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this._vertices);\r\n }\r\n\r\n constructor(pointCloud: PointCloudArgs) {\r\n super();\r\n this.buffers = BuffersContainer.create();\r\n this._vertices = QBufferHandle3d.create(pointCloud.pointParams, pointCloud.points) as QBufferHandle3d;\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrPos);\r\n const vertexDataType = (pointCloud.points instanceof Uint8Array) ? GL.DataType.UnsignedByte : GL.DataType.UnsignedShort;\r\n this.buffers.addBuffer(this._vertices, [BufferParameters.create(attrPos.location, 3, vertexDataType, false, 0, 0, false)]);\r\n this._vertexCount = pointCloud.points.length / 3;\r\n this._hasFeatures = FeatureIndexType.Empty !== pointCloud.features.type;\r\n this._voxelSize = pointCloud.voxelSize;\r\n this.colorIsBgr = pointCloud.colorIsBgr;\r\n this.minimumPointSize = pointCloud.minimumPointSize;\r\n\r\n if (undefined !== pointCloud.colors) {\r\n this._colorHandle = BufferHandle.createArrayBuffer(pointCloud.colors);\r\n const attrColor = AttributeMap.findAttribute(\"a_color\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrColor);\r\n this.buffers.addBuffer(this._colorHandle!, [BufferParameters.create(attrColor.location, 3, GL.DataType.UnsignedByte, true, 0, 0, false)]);\r\n }\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const bytesUsed = this._vertices.bytesUsed + (undefined !== this._colorHandle ? this._colorHandle.bytesUsed : 0);\r\n stats.addPointCloud(bytesUsed);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.PointCloud; }\r\n public override getPass(target: Target) {\r\n // Point clouds don't cast shadows.\r\n return target.isDrawingShadowMap ? \"none\" : \"opaque\";\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.Linear; }\r\n public get qOrigin(): Float32Array { return this._vertices.origin; }\r\n public get qScale(): Float32Array { return this._vertices.scale; }\r\n public get colors(): BufferHandle | undefined { return this._colorHandle; }\r\n public override get hasFeatures() { return this._hasFeatures; }\r\n public override get hasBakedLighting() { return true; }\r\n\r\n public draw(): void {\r\n this.buffers.bind();\r\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._vertexCount);\r\n this.buffers.unbind();\r\n }\r\n public override getLineWeight(_params: ShaderProgramParams): number {\r\n // If line weight < 0 it is real size in meters (voxel size).\r\n return (this._voxelSize > 0) ? - this._voxelSize : 1;\r\n }\r\n}\r\n"]}
@@ -3,12 +3,12 @@
3
3
  */
4
4
  import { Point3d } from "@itwin/core-geometry";
5
5
  import { QParams3d } from "@itwin/core-common";
6
- import { PointStringParams } from "../primitives/VertexTable";
6
+ import { PointStringParams } from "../primitives/PointStringParams";
7
7
  import { RenderMemory } from "../RenderMemory";
8
8
  import { LUTGeometry } from "./CachedGeometry";
9
9
  import { ShaderProgramParams } from "./DrawCommand";
10
10
  import { BufferHandle, BuffersContainer } from "./AttributeBuffers";
11
- import { RenderOrder, RenderPass } from "./RenderFlags";
11
+ import { Pass, RenderOrder } from "./RenderFlags";
12
12
  import { Target } from "./Target";
13
13
  import { TechniqueId } from "./TechniqueId";
14
14
  import { VertexLUT } from "./VertexLUT";
@@ -25,7 +25,7 @@ export declare class PointStringGeometry extends LUTGeometry {
25
25
  private constructor();
26
26
  protected _wantWoWReversal(_target: Target): boolean;
27
27
  get techniqueId(): TechniqueId;
28
- getRenderPass(_target: Target): RenderPass;
28
+ getPass(): Pass;
29
29
  get hasFeatures(): boolean;
30
30
  get renderOrder(): RenderOrder;
31
31
  protected _getLineWeight(_params: ShaderProgramParams): number;
@@ -1 +1 @@
1
- {"version":3,"file":"PointString.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,YAAY,EAAE,SAAS,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,IAAW,UAAU,qBAA2B;IAEhD,OAAO;IAcP,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAoC;IAClE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IACjD,IAAoB,WAAW,YAAgC;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;cACvD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAEvE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAa/G,IAAW,UAAU,IAAI,OAAO,CAI/B;IAEM,OAAO;IAMP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D"}
1
+ {"version":3,"file":"PointString.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,YAAY,EAAE,SAAS,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,IAAW,UAAU,qBAA2B;IAEhD,OAAO;IAcP,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAoC;IACzD,OAAO,IAAI,IAAI;IAC/B,IAAoB,WAAW,YAAgC;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;cACvD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAEvE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAa/G,IAAW,UAAU,IAAI,OAAO,CAI/B;IAEM,OAAO;IAMP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D"}
@@ -34,7 +34,7 @@ class PointStringGeometry extends CachedGeometry_1.LUTGeometry {
34
34
  get lutBuffers() { return this.buffers; }
35
35
  _wantWoWReversal(_target) { return true; }
36
36
  get techniqueId() { return 3 /* PointString */; }
37
- getRenderPass(_target) { return 2 /* OpaqueLinear */; }
37
+ getPass() { return "opaque-linear"; }
38
38
  get hasFeatures() { return this._hasFeatures; }
39
39
  get renderOrder() { return 13 /* PlanarLinear */; }
40
40
  _getLineWeight(_params) { return this.weight; }