@itwin/core-frontend 3.0.0-dev.98 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1224) hide show
  1. package/CHANGELOG.md +244 -35
  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/ElementLocateManager.d.ts +5 -0
  27. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  28. package/lib/cjs/ElementLocateManager.js +12 -2
  29. package/lib/cjs/ElementLocateManager.js.map +1 -1
  30. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  31. package/lib/cjs/EmphasizeElements.js +14 -4
  32. package/lib/cjs/EmphasizeElements.js.map +1 -1
  33. package/lib/cjs/EnvironmentDecorations.d.ts +39 -0
  34. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -0
  35. package/lib/cjs/EnvironmentDecorations.js +203 -0
  36. package/lib/cjs/EnvironmentDecorations.js.map +1 -0
  37. package/lib/cjs/FrontendHubAccess.d.ts +11 -7
  38. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  39. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  40. package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
  41. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  42. package/lib/cjs/FrontendLoggerCategory.js +2 -8
  43. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  44. package/lib/cjs/HitDetail.js +7 -7
  45. package/lib/cjs/HitDetail.js.map +1 -1
  46. package/lib/cjs/IModelApp.d.ts +30 -17
  47. package/lib/cjs/IModelApp.d.ts.map +1 -1
  48. package/lib/cjs/IModelApp.js +33 -26
  49. package/lib/cjs/IModelApp.js.map +1 -1
  50. package/lib/cjs/IModelConnection.d.ts +4 -6
  51. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  52. package/lib/cjs/IModelConnection.js +6 -11
  53. package/lib/cjs/IModelConnection.js.map +1 -1
  54. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  55. package/lib/cjs/IModeljs-css.js +8 -6
  56. package/lib/cjs/IModeljs-css.js.map +1 -1
  57. package/lib/cjs/ImageUtil.d.ts +3 -3
  58. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  59. package/lib/cjs/ImageUtil.js +7 -4
  60. package/lib/cjs/ImageUtil.js.map +1 -1
  61. package/lib/cjs/LocalhostIpcApp.d.ts +2 -1
  62. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  63. package/lib/cjs/LocalhostIpcApp.js +21 -7
  64. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  65. package/lib/cjs/Marker.d.ts +9 -2
  66. package/lib/cjs/Marker.d.ts.map +1 -1
  67. package/lib/cjs/Marker.js +33 -5
  68. package/lib/cjs/Marker.js.map +1 -1
  69. package/lib/cjs/ModelState.js +1 -1
  70. package/lib/cjs/ModelState.js.map +1 -1
  71. package/lib/cjs/NativeApp.d.ts +3 -38
  72. package/lib/cjs/NativeApp.d.ts.map +1 -1
  73. package/lib/cjs/NativeApp.js +4 -73
  74. package/lib/cjs/NativeApp.js.map +1 -1
  75. package/lib/cjs/NoRenderApp.d.ts +0 -1
  76. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  77. package/lib/cjs/NoRenderApp.js +0 -1
  78. package/lib/cjs/NoRenderApp.js.map +1 -1
  79. package/lib/cjs/NotificationManager.d.ts +3 -1
  80. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  81. package/lib/cjs/NotificationManager.js +2 -0
  82. package/lib/cjs/NotificationManager.js.map +1 -1
  83. package/lib/cjs/RealityDataSource.d.ts +59 -29
  84. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  85. package/lib/cjs/RealityDataSource.js +247 -94
  86. package/lib/cjs/RealityDataSource.js.map +1 -1
  87. package/lib/cjs/RenderScheduleState.d.ts +2 -0
  88. package/lib/cjs/RenderScheduleState.d.ts.map +1 -1
  89. package/lib/cjs/RenderScheduleState.js +10 -5
  90. package/lib/cjs/RenderScheduleState.js.map +1 -1
  91. package/lib/cjs/SheetViewState.d.ts +2 -2
  92. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  93. package/lib/cjs/SheetViewState.js +7 -6
  94. package/lib/cjs/SheetViewState.js.map +1 -1
  95. package/lib/cjs/SpatialViewState.d.ts +10 -2
  96. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  97. package/lib/cjs/SpatialViewState.js +12 -2
  98. package/lib/cjs/SpatialViewState.js.map +1 -1
  99. package/lib/cjs/SubCategoriesCache.js +1 -1
  100. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  101. package/lib/cjs/Tiles.d.ts +11 -1
  102. package/lib/cjs/Tiles.d.ts.map +1 -1
  103. package/lib/cjs/Tiles.js +7 -0
  104. package/lib/cjs/Tiles.js.map +1 -1
  105. package/lib/cjs/TwoWayViewportSync.d.ts +35 -6
  106. package/lib/cjs/TwoWayViewportSync.d.ts.map +1 -1
  107. package/lib/cjs/TwoWayViewportSync.js +51 -11
  108. package/lib/cjs/TwoWayViewportSync.js.map +1 -1
  109. package/lib/cjs/UserPreferences.d.ts +72 -0
  110. package/lib/cjs/UserPreferences.d.ts.map +1 -0
  111. package/lib/cjs/UserPreferences.js +7 -0
  112. package/lib/cjs/UserPreferences.js.map +1 -0
  113. package/lib/cjs/ViewContext.d.ts +3 -1
  114. package/lib/cjs/ViewContext.d.ts.map +1 -1
  115. package/lib/cjs/ViewContext.js +4 -0
  116. package/lib/cjs/ViewContext.js.map +1 -1
  117. package/lib/cjs/ViewCreator2d.js +3 -3
  118. package/lib/cjs/ViewCreator2d.js.map +1 -1
  119. package/lib/cjs/ViewCreator3d.d.ts +1 -1
  120. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  121. package/lib/cjs/ViewCreator3d.js +4 -5
  122. package/lib/cjs/ViewCreator3d.js.map +1 -1
  123. package/lib/cjs/ViewManager.d.ts +6 -6
  124. package/lib/cjs/ViewManager.d.ts.map +1 -1
  125. package/lib/cjs/ViewManager.js +13 -13
  126. package/lib/cjs/ViewManager.js.map +1 -1
  127. package/lib/cjs/ViewState.d.ts +11 -5
  128. package/lib/cjs/ViewState.d.ts.map +1 -1
  129. package/lib/cjs/ViewState.js +18 -63
  130. package/lib/cjs/ViewState.js.map +1 -1
  131. package/lib/cjs/ViewingSpace.js +1 -1
  132. package/lib/cjs/ViewingSpace.js.map +1 -1
  133. package/lib/cjs/Viewport.d.ts +57 -11
  134. package/lib/cjs/Viewport.d.ts.map +1 -1
  135. package/lib/cjs/Viewport.js +55 -31
  136. package/lib/cjs/Viewport.js.map +1 -1
  137. package/lib/cjs/core-frontend.d.ts +10 -24
  138. package/lib/cjs/core-frontend.d.ts.map +1 -1
  139. package/lib/cjs/core-frontend.js +10 -24
  140. package/lib/cjs/core-frontend.js.map +1 -1
  141. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  142. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  143. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  144. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  145. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  146. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  147. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  148. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  149. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  150. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  151. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  152. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  153. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  154. package/lib/cjs/render/FeatureSymbology.js +3 -3
  155. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  156. package/lib/cjs/render/GraphicBranch.d.ts +18 -2
  157. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.js +9 -1
  159. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  160. package/lib/cjs/render/GraphicBuilder.d.ts +7 -1
  161. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  162. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  163. package/lib/cjs/render/MockRender.d.ts +3 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/MockRender.js.map +1 -1
  166. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  167. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  168. package/lib/cjs/render/RenderMemory.js +21 -15
  169. package/lib/cjs/render/RenderMemory.js.map +1 -1
  170. package/lib/cjs/render/RenderSystem.d.ts +38 -7
  171. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  172. package/lib/cjs/render/RenderSystem.js +24 -9
  173. package/lib/cjs/render/RenderSystem.js.map +1 -1
  174. package/lib/cjs/render/RenderTarget.d.ts +10 -2
  175. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  176. package/lib/cjs/render/RenderTarget.js +2 -1
  177. package/lib/cjs/render/RenderTarget.js.map +1 -1
  178. package/lib/cjs/render/RenderTexture.d.ts +2 -17
  179. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  180. package/lib/cjs/render/RenderTexture.js +0 -17
  181. package/lib/cjs/render/RenderTexture.js.map +1 -1
  182. package/lib/cjs/render/primitives/EdgeParams.d.ts +84 -0
  183. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -0
  184. package/lib/cjs/render/primitives/EdgeParams.js +220 -0
  185. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -0
  186. package/lib/cjs/render/primitives/PointStringParams.d.ts +16 -0
  187. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -0
  188. package/lib/cjs/render/primitives/PointStringParams.js +43 -0
  189. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -0
  190. package/lib/cjs/render/primitives/PolylineParams.d.ts +44 -0
  191. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -0
  192. package/lib/cjs/render/primitives/PolylineParams.js +205 -0
  193. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -0
  194. package/lib/cjs/render/primitives/Primitives.d.ts +1 -1
  195. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  196. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  197. package/lib/cjs/render/primitives/SurfaceParams.d.ts +46 -0
  198. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -0
  199. package/lib/cjs/render/primitives/SurfaceParams.js +42 -0
  200. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -0
  201. package/lib/cjs/render/primitives/VertexTable.d.ts +4 -123
  202. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  203. package/lib/cjs/render/primitives/VertexTable.js +16 -352
  204. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  205. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  206. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  207. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
  208. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  209. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  210. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
  211. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  212. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  213. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  214. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
  215. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  216. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  217. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  218. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  219. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  220. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  221. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  222. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  223. package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
  224. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  225. package/lib/cjs/render/webgl/CachedGeometry.d.ts +16 -11
  226. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/CachedGeometry.js +26 -23
  228. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  229. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -3
  230. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  231. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  232. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  233. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +73 -0
  234. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -0
  235. package/lib/cjs/render/webgl/EdgeGeometry.js +141 -0
  236. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -0
  237. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  238. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  239. package/lib/cjs/render/webgl/FeatureOverrides.js +11 -3
  240. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  241. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  242. package/lib/cjs/render/webgl/FloatRGBA.js +13 -11
  243. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  244. package/lib/cjs/render/webgl/Graphic.d.ts +13 -0
  245. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  246. package/lib/cjs/render/webgl/Graphic.js +41 -3
  247. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  248. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  249. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  250. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  251. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  252. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +6 -5
  253. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  254. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -1
  255. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  256. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  257. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  258. package/lib/cjs/render/webgl/Material.js.map +1 -1
  259. package/lib/cjs/render/webgl/Mesh.d.ts +8 -162
  260. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  261. package/lib/cjs/render/webgl/Mesh.js +18 -458
  262. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  263. package/lib/cjs/render/webgl/MeshData.d.ts +38 -0
  264. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -0
  265. package/lib/cjs/render/webgl/MeshData.js +66 -0
  266. package/lib/cjs/render/webgl/MeshData.js.map +1 -0
  267. package/lib/cjs/render/webgl/MeshGeometry.d.ts +38 -0
  268. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -0
  269. package/lib/cjs/render/webgl/MeshGeometry.js +59 -0
  270. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -0
  271. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  272. package/lib/cjs/render/webgl/PlanarClassifier.js +8 -4
  273. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  274. package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
  275. package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
  276. package/lib/cjs/render/webgl/PlanarGrid.js +3 -3
  277. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  278. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  279. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  280. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  281. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  282. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  283. package/lib/cjs/render/webgl/PointCloud.js +2 -2
  284. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  285. package/lib/cjs/render/webgl/PointString.d.ts +3 -3
  286. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  287. package/lib/cjs/render/webgl/PointString.js +1 -1
  288. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  289. package/lib/cjs/render/webgl/Polyline.d.ts +3 -3
  290. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  291. package/lib/cjs/render/webgl/Polyline.js +6 -6
  292. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  293. package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
  294. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  295. package/lib/cjs/render/webgl/Primitive.js +5 -5
  296. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  297. package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
  298. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  299. package/lib/cjs/render/webgl/RealityMesh.js +9 -9
  300. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  301. package/lib/cjs/render/webgl/RenderCommands.d.ts +6 -2
  302. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  303. package/lib/cjs/render/webgl/RenderCommands.js +81 -48
  304. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  305. package/lib/cjs/render/webgl/RenderFlags.d.ts +48 -1
  306. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  307. package/lib/cjs/render/webgl/RenderFlags.js +64 -2
  308. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  309. package/lib/cjs/render/webgl/SceneCompositor.js +10 -9
  310. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  311. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  312. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +23 -20
  313. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  314. package/lib/cjs/render/webgl/ShaderBuilder.js +38 -32
  315. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  316. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
  317. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  318. package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
  319. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  320. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  321. package/lib/cjs/render/webgl/SolarShadowMap.js +4 -3
  322. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  323. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +54 -0
  324. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  325. package/lib/cjs/render/webgl/SurfaceGeometry.js +248 -0
  326. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -0
  327. package/lib/cjs/render/webgl/System.d.ts +11 -10
  328. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  329. package/lib/cjs/render/webgl/System.js +32 -21
  330. package/lib/cjs/render/webgl/System.js.map +1 -1
  331. package/lib/cjs/render/webgl/Target.d.ts +13 -1
  332. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  333. package/lib/cjs/render/webgl/Target.js +88 -2
  334. package/lib/cjs/render/webgl/Target.js.map +1 -1
  335. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/Technique.js +112 -119
  337. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  338. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  339. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  340. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  341. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  342. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  343. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  345. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  346. package/lib/cjs/render/webgl/Texture.d.ts +15 -12
  347. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  348. package/lib/cjs/render/webgl/Texture.js +26 -23
  349. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  350. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  351. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +83 -18
  352. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  353. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  354. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  355. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  356. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  357. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  358. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  359. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  360. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  361. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  362. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  363. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  364. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  365. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  366. package/lib/cjs/render/webgl/glsl/CopyStencil.js +10 -13
  367. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  368. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -2
  369. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  370. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  371. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  372. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  373. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  374. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  375. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +43 -21
  376. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  378. package/lib/cjs/render/webgl/glsl/Fragment.js +19 -11
  379. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  380. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  381. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  382. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  384. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  385. package/lib/cjs/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  386. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +13 -4
  387. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  388. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  389. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  390. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  391. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  392. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  393. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  394. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  395. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  396. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  397. package/lib/cjs/render/webgl/glsl/RealityMesh.js +9 -6
  398. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  399. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  400. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  401. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -2
  402. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  403. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -2
  404. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  405. package/lib/cjs/render/webgl/glsl/Surface.js +41 -16
  406. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  407. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  408. package/lib/cjs/render/webgl/glsl/Vertex.js +2 -2
  409. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  410. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  411. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  412. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  413. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  414. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  415. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  416. package/lib/cjs/render-primitives.d.ts +5 -1
  417. package/lib/cjs/render-primitives.d.ts.map +1 -1
  418. package/lib/cjs/render-primitives.js +5 -1
  419. package/lib/cjs/render-primitives.js.map +1 -1
  420. package/lib/cjs/request/Request.d.ts +167 -0
  421. package/lib/cjs/request/Request.d.ts.map +1 -0
  422. package/lib/cjs/request/Request.js +315 -0
  423. package/lib/cjs/request/Request.js.map +1 -0
  424. package/lib/cjs/tile/B3dmReader.d.ts +2 -1
  425. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  426. package/lib/cjs/tile/B3dmReader.js +11 -7
  427. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  428. package/lib/cjs/tile/CesiumAssetProvider.d.ts +14 -0
  429. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +1 -0
  430. package/lib/cjs/tile/CesiumAssetProvider.js +35 -0
  431. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -0
  432. package/lib/cjs/tile/ContextShareProvider.d.ts +22 -0
  433. package/lib/cjs/tile/ContextShareProvider.d.ts.map +1 -0
  434. package/lib/cjs/tile/ContextShareProvider.js +129 -0
  435. package/lib/cjs/tile/ContextShareProvider.js.map +1 -0
  436. package/lib/cjs/tile/DynamicIModelTile.js +9 -3
  437. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  438. package/lib/cjs/tile/GltfReader.d.ts +594 -55
  439. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  440. package/lib/cjs/tile/GltfReader.js +703 -264
  441. package/lib/cjs/tile/GltfReader.js.map +1 -1
  442. package/lib/cjs/tile/I3dmReader.d.ts +2 -1
  443. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  444. package/lib/cjs/tile/I3dmReader.js +10 -6
  445. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  446. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  447. package/lib/cjs/tile/IModelTile.js +14 -7
  448. package/lib/cjs/tile/IModelTile.js.map +1 -1
  449. package/lib/cjs/tile/IModelTileTree.d.ts +8 -0
  450. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  451. package/lib/cjs/tile/IModelTileTree.js +36 -1
  452. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  453. package/lib/cjs/tile/ImdlReader.d.ts +365 -10
  454. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  455. package/lib/cjs/tile/ImdlReader.js +201 -69
  456. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  457. package/lib/cjs/tile/OrbitGtTileTree.d.ts +0 -9
  458. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  459. package/lib/cjs/tile/OrbitGtTileTree.js +10 -20
  460. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  461. package/lib/cjs/tile/PrimaryTileTree.d.ts +14 -5
  462. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  463. package/lib/cjs/tile/PrimaryTileTree.js +69 -14
  464. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  465. package/lib/cjs/tile/RealityModelTileTree.d.ts +2 -41
  466. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  467. package/lib/cjs/tile/RealityModelTileTree.js +57 -217
  468. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  469. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  470. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  471. package/lib/cjs/tile/RealityTileLoader.js +4 -3
  472. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  473. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  474. package/lib/cjs/tile/Tile.js +5 -1
  475. package/lib/cjs/tile/Tile.js.map +1 -1
  476. package/lib/cjs/tile/TileAdmin.d.ts +37 -4
  477. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  478. package/lib/cjs/tile/TileAdmin.js +18 -12
  479. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  480. package/lib/cjs/tile/TileDrawArgs.d.ts +11 -0
  481. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  482. package/lib/cjs/tile/TileDrawArgs.js +6 -1
  483. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  484. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  485. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  486. package/lib/cjs/tile/TileTreeReference.js +5 -0
  487. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  488. package/lib/cjs/tile/internal.d.ts +4 -1
  489. package/lib/cjs/tile/internal.d.ts.map +1 -1
  490. package/lib/cjs/tile/internal.js +4 -1
  491. package/lib/cjs/tile/internal.js.map +1 -1
  492. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +22 -0
  493. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -0
  494. package/lib/cjs/tile/map/ArcGISTileMap.js +177 -0
  495. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -0
  496. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
  497. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
  498. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
  499. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  500. package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
  501. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  502. package/lib/cjs/tile/map/BingElevation.js +4 -4
  503. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  504. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  505. package/lib/cjs/tile/map/CesiumTerrainProvider.js +27 -15
  506. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  507. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  508. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  509. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +23 -44
  510. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  511. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  512. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  513. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  514. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  515. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  516. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  517. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  518. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  520. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  521. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -4
  522. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  523. package/lib/cjs/tile/map/ImageryTileTree.js +20 -24
  524. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  525. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  526. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  527. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
  528. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  529. package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
  530. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
  531. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  532. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  533. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
  534. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  535. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
  536. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  537. package/lib/cjs/tile/map/MapLayerImageryFormats.js +21 -8
  538. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  539. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +18 -6
  540. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  541. package/lib/cjs/tile/map/MapLayerImageryProvider.js +47 -14
  542. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  543. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -11
  544. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  545. package/lib/cjs/tile/map/MapLayerSources.js +5 -34
  546. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  547. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  548. package/lib/cjs/tile/map/MapTile.js +4 -3
  549. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  550. package/lib/cjs/tile/map/MapTileLoader.js +2 -2
  551. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  552. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  553. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  554. package/lib/cjs/tile/map/MapTileTree.js +30 -21
  555. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  556. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  557. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  558. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
  559. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  560. package/lib/cjs/tile/map/MapTilingScheme.d.ts +7 -2
  561. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  562. package/lib/cjs/tile/map/MapTilingScheme.js +21 -8
  563. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  564. package/lib/cjs/tile/map/QuadId.d.ts +1 -0
  565. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  566. package/lib/cjs/tile/map/QuadId.js +2 -1
  567. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  568. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  569. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  570. package/lib/cjs/tile/map/WmsCapabilities.d.ts +8 -1
  571. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  572. package/lib/cjs/tile/map/WmsCapabilities.js +39 -5
  573. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  574. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +11 -1
  575. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  576. package/lib/cjs/tile/map/WmtsCapabilities.js +23 -9
  577. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  578. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  579. package/lib/cjs/tools/EditManipulator.js +1 -1
  580. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  581. package/lib/cjs/tools/ElementSetTool.js +2 -2
  582. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  583. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -4
  584. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  585. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  586. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  587. package/lib/cjs/tools/Tool.d.ts +29 -1
  588. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  589. package/lib/cjs/tools/Tool.js +66 -0
  590. package/lib/cjs/tools/Tool.js.map +1 -1
  591. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  592. package/lib/cjs/tools/ToolAdmin.js +20 -10
  593. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  594. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  595. package/lib/cjs/tools/ViewTool.js +3 -11
  596. package/lib/cjs/tools/ViewTool.js.map +1 -1
  597. package/lib/cjs/webgl.d.ts +5 -0
  598. package/lib/cjs/webgl.d.ts.map +1 -1
  599. package/lib/cjs/webgl.js +5 -0
  600. package/lib/cjs/webgl.js.map +1 -1
  601. package/lib/esm/AccuSnap.js +3 -3
  602. package/lib/esm/AccuSnap.js.map +1 -1
  603. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  604. package/lib/esm/ApproximateTerrainHeights.js +10 -5
  605. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  606. package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
  607. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  608. package/lib/esm/BackgroundMapGeometry.js +2 -2
  609. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  610. package/lib/esm/BingLocation.js +1 -1
  611. package/lib/esm/BingLocation.js.map +1 -1
  612. package/lib/esm/CheckpointConnection.js +1 -1
  613. package/lib/esm/CheckpointConnection.js.map +1 -1
  614. package/lib/esm/ContextRealityModelState.js +1 -1
  615. package/lib/esm/ContextRealityModelState.js.map +1 -1
  616. package/lib/esm/DisplayStyleState.d.ts +10 -163
  617. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  618. package/lib/esm/DisplayStyleState.js +70 -346
  619. package/lib/esm/DisplayStyleState.js.map +1 -1
  620. package/lib/esm/DrawingViewState.d.ts +2 -2
  621. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  622. package/lib/esm/DrawingViewState.js +3 -3
  623. package/lib/esm/DrawingViewState.js.map +1 -1
  624. package/lib/esm/ElementLocateManager.d.ts +5 -0
  625. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  626. package/lib/esm/ElementLocateManager.js +12 -2
  627. package/lib/esm/ElementLocateManager.js.map +1 -1
  628. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  629. package/lib/esm/EmphasizeElements.js +14 -4
  630. package/lib/esm/EmphasizeElements.js.map +1 -1
  631. package/lib/esm/EnvironmentDecorations.d.ts +39 -0
  632. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -0
  633. package/lib/esm/EnvironmentDecorations.js +199 -0
  634. package/lib/esm/EnvironmentDecorations.js.map +1 -0
  635. package/lib/esm/FrontendHubAccess.d.ts +11 -7
  636. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  637. package/lib/esm/FrontendHubAccess.js.map +1 -1
  638. package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
  639. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  640. package/lib/esm/FrontendLoggerCategory.js +2 -8
  641. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  642. package/lib/esm/HitDetail.js +7 -7
  643. package/lib/esm/HitDetail.js.map +1 -1
  644. package/lib/esm/IModelApp.d.ts +30 -17
  645. package/lib/esm/IModelApp.d.ts.map +1 -1
  646. package/lib/esm/IModelApp.js +32 -25
  647. package/lib/esm/IModelApp.js.map +1 -1
  648. package/lib/esm/IModelConnection.d.ts +4 -6
  649. package/lib/esm/IModelConnection.d.ts.map +1 -1
  650. package/lib/esm/IModelConnection.js +6 -11
  651. package/lib/esm/IModelConnection.js.map +1 -1
  652. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  653. package/lib/esm/IModeljs-css.js +8 -6
  654. package/lib/esm/IModeljs-css.js.map +1 -1
  655. package/lib/esm/ImageUtil.d.ts +3 -3
  656. package/lib/esm/ImageUtil.d.ts.map +1 -1
  657. package/lib/esm/ImageUtil.js +7 -4
  658. package/lib/esm/ImageUtil.js.map +1 -1
  659. package/lib/esm/LocalhostIpcApp.d.ts +2 -1
  660. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  661. package/lib/esm/LocalhostIpcApp.js +22 -8
  662. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  663. package/lib/esm/Marker.d.ts +9 -2
  664. package/lib/esm/Marker.d.ts.map +1 -1
  665. package/lib/esm/Marker.js +34 -6
  666. package/lib/esm/Marker.js.map +1 -1
  667. package/lib/esm/ModelState.js +1 -1
  668. package/lib/esm/ModelState.js.map +1 -1
  669. package/lib/esm/NativeApp.d.ts +3 -38
  670. package/lib/esm/NativeApp.d.ts.map +1 -1
  671. package/lib/esm/NativeApp.js +1 -69
  672. package/lib/esm/NativeApp.js.map +1 -1
  673. package/lib/esm/NoRenderApp.d.ts +0 -1
  674. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  675. package/lib/esm/NoRenderApp.js +0 -1
  676. package/lib/esm/NoRenderApp.js.map +1 -1
  677. package/lib/esm/NotificationManager.d.ts +3 -1
  678. package/lib/esm/NotificationManager.d.ts.map +1 -1
  679. package/lib/esm/NotificationManager.js +2 -0
  680. package/lib/esm/NotificationManager.js.map +1 -1
  681. package/lib/esm/RealityDataSource.d.ts +59 -29
  682. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  683. package/lib/esm/RealityDataSource.js +247 -92
  684. package/lib/esm/RealityDataSource.js.map +1 -1
  685. package/lib/esm/RenderScheduleState.d.ts +2 -0
  686. package/lib/esm/RenderScheduleState.d.ts.map +1 -1
  687. package/lib/esm/RenderScheduleState.js +8 -4
  688. package/lib/esm/RenderScheduleState.js.map +1 -1
  689. package/lib/esm/SheetViewState.d.ts +2 -2
  690. package/lib/esm/SheetViewState.d.ts.map +1 -1
  691. package/lib/esm/SheetViewState.js +7 -6
  692. package/lib/esm/SheetViewState.js.map +1 -1
  693. package/lib/esm/SpatialViewState.d.ts +10 -2
  694. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  695. package/lib/esm/SpatialViewState.js +12 -2
  696. package/lib/esm/SpatialViewState.js.map +1 -1
  697. package/lib/esm/SubCategoriesCache.js +1 -1
  698. package/lib/esm/SubCategoriesCache.js.map +1 -1
  699. package/lib/esm/Tiles.d.ts +11 -1
  700. package/lib/esm/Tiles.d.ts.map +1 -1
  701. package/lib/esm/Tiles.js +7 -0
  702. package/lib/esm/Tiles.js.map +1 -1
  703. package/lib/esm/TwoWayViewportSync.d.ts +35 -6
  704. package/lib/esm/TwoWayViewportSync.d.ts.map +1 -1
  705. package/lib/esm/TwoWayViewportSync.js +49 -10
  706. package/lib/esm/TwoWayViewportSync.js.map +1 -1
  707. package/lib/esm/UserPreferences.d.ts +72 -0
  708. package/lib/esm/UserPreferences.d.ts.map +1 -0
  709. package/lib/esm/UserPreferences.js +6 -0
  710. package/lib/esm/UserPreferences.js.map +1 -0
  711. package/lib/esm/ViewContext.d.ts +3 -1
  712. package/lib/esm/ViewContext.d.ts.map +1 -1
  713. package/lib/esm/ViewContext.js +4 -0
  714. package/lib/esm/ViewContext.js.map +1 -1
  715. package/lib/esm/ViewCreator2d.js +3 -3
  716. package/lib/esm/ViewCreator2d.js.map +1 -1
  717. package/lib/esm/ViewCreator3d.d.ts +1 -1
  718. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  719. package/lib/esm/ViewCreator3d.js +5 -6
  720. package/lib/esm/ViewCreator3d.js.map +1 -1
  721. package/lib/esm/ViewManager.d.ts +6 -6
  722. package/lib/esm/ViewManager.d.ts.map +1 -1
  723. package/lib/esm/ViewManager.js +13 -13
  724. package/lib/esm/ViewManager.js.map +1 -1
  725. package/lib/esm/ViewState.d.ts +11 -5
  726. package/lib/esm/ViewState.d.ts.map +1 -1
  727. package/lib/esm/ViewState.js +21 -66
  728. package/lib/esm/ViewState.js.map +1 -1
  729. package/lib/esm/ViewingSpace.js +1 -1
  730. package/lib/esm/ViewingSpace.js.map +1 -1
  731. package/lib/esm/Viewport.d.ts +57 -11
  732. package/lib/esm/Viewport.d.ts.map +1 -1
  733. package/lib/esm/Viewport.js +56 -32
  734. package/lib/esm/Viewport.js.map +1 -1
  735. package/lib/esm/core-frontend.d.ts +10 -24
  736. package/lib/esm/core-frontend.d.ts.map +1 -1
  737. package/lib/esm/core-frontend.js +10 -24
  738. package/lib/esm/core-frontend.js.map +1 -1
  739. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  740. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  741. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  742. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  743. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  744. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  745. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  746. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  747. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  748. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  749. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  750. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  751. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  752. package/lib/esm/render/FeatureSymbology.js +3 -3
  753. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  754. package/lib/esm/render/GraphicBranch.d.ts +18 -2
  755. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  756. package/lib/esm/render/GraphicBranch.js +8 -0
  757. package/lib/esm/render/GraphicBranch.js.map +1 -1
  758. package/lib/esm/render/GraphicBuilder.d.ts +7 -1
  759. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  760. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  761. package/lib/esm/render/MockRender.d.ts +3 -1
  762. package/lib/esm/render/MockRender.d.ts.map +1 -1
  763. package/lib/esm/render/MockRender.js.map +1 -1
  764. package/lib/esm/render/RenderMemory.d.ts +21 -15
  765. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  766. package/lib/esm/render/RenderMemory.js +21 -15
  767. package/lib/esm/render/RenderMemory.js.map +1 -1
  768. package/lib/esm/render/RenderSystem.d.ts +38 -7
  769. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  770. package/lib/esm/render/RenderSystem.js +24 -9
  771. package/lib/esm/render/RenderSystem.js.map +1 -1
  772. package/lib/esm/render/RenderTarget.d.ts +10 -2
  773. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  774. package/lib/esm/render/RenderTarget.js +2 -1
  775. package/lib/esm/render/RenderTarget.js.map +1 -1
  776. package/lib/esm/render/RenderTexture.d.ts +2 -17
  777. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  778. package/lib/esm/render/RenderTexture.js +1 -16
  779. package/lib/esm/render/RenderTexture.js.map +1 -1
  780. package/lib/esm/render/primitives/EdgeParams.d.ts +84 -0
  781. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -0
  782. package/lib/esm/render/primitives/EdgeParams.js +217 -0
  783. package/lib/esm/render/primitives/EdgeParams.js.map +1 -0
  784. package/lib/esm/render/primitives/PointStringParams.d.ts +16 -0
  785. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -0
  786. package/lib/esm/render/primitives/PointStringParams.js +39 -0
  787. package/lib/esm/render/primitives/PointStringParams.js.map +1 -0
  788. package/lib/esm/render/primitives/PolylineParams.d.ts +44 -0
  789. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -0
  790. package/lib/esm/render/primitives/PolylineParams.js +199 -0
  791. package/lib/esm/render/primitives/PolylineParams.js.map +1 -0
  792. package/lib/esm/render/primitives/Primitives.d.ts +1 -1
  793. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  794. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  795. package/lib/esm/render/primitives/SurfaceParams.d.ts +46 -0
  796. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -0
  797. package/lib/esm/render/primitives/SurfaceParams.js +37 -0
  798. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -0
  799. package/lib/esm/render/primitives/VertexTable.d.ts +4 -123
  800. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  801. package/lib/esm/render/primitives/VertexTable.js +11 -342
  802. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  803. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  804. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  805. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
  806. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  807. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  808. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
  809. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  810. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  811. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  812. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
  813. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  814. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  815. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  816. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  817. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  818. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  819. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  820. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  821. package/lib/esm/render/webgl/BranchUniforms.js +8 -5
  822. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  823. package/lib/esm/render/webgl/CachedGeometry.d.ts +16 -11
  824. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  825. package/lib/esm/render/webgl/CachedGeometry.js +26 -23
  826. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  827. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -3
  828. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  829. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  830. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  831. package/lib/esm/render/webgl/EdgeGeometry.d.ts +73 -0
  832. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -0
  833. package/lib/esm/render/webgl/EdgeGeometry.js +135 -0
  834. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -0
  835. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  836. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  837. package/lib/esm/render/webgl/FeatureOverrides.js +11 -3
  838. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  839. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  840. package/lib/esm/render/webgl/FloatRGBA.js +13 -11
  841. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  842. package/lib/esm/render/webgl/Graphic.d.ts +13 -0
  843. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  844. package/lib/esm/render/webgl/Graphic.js +39 -2
  845. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  846. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  847. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  848. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  849. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  850. package/lib/esm/render/webgl/InstancedGeometry.d.ts +6 -5
  851. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  852. package/lib/esm/render/webgl/InstancedGeometry.js +2 -1
  853. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  854. package/lib/esm/render/webgl/Material.d.ts +1 -1
  855. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  856. package/lib/esm/render/webgl/Material.js.map +1 -1
  857. package/lib/esm/render/webgl/Mesh.d.ts +8 -162
  858. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  859. package/lib/esm/render/webgl/Mesh.js +12 -445
  860. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  861. package/lib/esm/render/webgl/MeshData.d.ts +38 -0
  862. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -0
  863. package/lib/esm/render/webgl/MeshData.js +62 -0
  864. package/lib/esm/render/webgl/MeshData.js.map +1 -0
  865. package/lib/esm/render/webgl/MeshGeometry.d.ts +38 -0
  866. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -0
  867. package/lib/esm/render/webgl/MeshGeometry.js +55 -0
  868. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -0
  869. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  870. package/lib/esm/render/webgl/PlanarClassifier.js +9 -5
  871. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  872. package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
  873. package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
  874. package/lib/esm/render/webgl/PlanarGrid.js +3 -3
  875. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  876. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  877. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  878. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  879. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  880. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  881. package/lib/esm/render/webgl/PointCloud.js +2 -2
  882. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  883. package/lib/esm/render/webgl/PointString.d.ts +3 -3
  884. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  885. package/lib/esm/render/webgl/PointString.js +1 -1
  886. package/lib/esm/render/webgl/PointString.js.map +1 -1
  887. package/lib/esm/render/webgl/Polyline.d.ts +3 -3
  888. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  889. package/lib/esm/render/webgl/Polyline.js +6 -6
  890. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  891. package/lib/esm/render/webgl/Primitive.d.ts +2 -2
  892. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  893. package/lib/esm/render/webgl/Primitive.js +5 -5
  894. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  895. package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
  896. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  897. package/lib/esm/render/webgl/RealityMesh.js +9 -9
  898. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  899. package/lib/esm/render/webgl/RenderCommands.d.ts +6 -2
  900. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  901. package/lib/esm/render/webgl/RenderCommands.js +78 -45
  902. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  903. package/lib/esm/render/webgl/RenderFlags.d.ts +48 -1
  904. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  905. package/lib/esm/render/webgl/RenderFlags.js +63 -1
  906. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  907. package/lib/esm/render/webgl/SceneCompositor.js +10 -9
  908. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  909. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  910. package/lib/esm/render/webgl/ShaderBuilder.d.ts +23 -20
  911. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  912. package/lib/esm/render/webgl/ShaderBuilder.js +38 -32
  913. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  914. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
  915. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  916. package/lib/esm/render/webgl/ShaderProgram.js +4 -4
  917. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  918. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  919. package/lib/esm/render/webgl/SolarShadowMap.js +5 -4
  920. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  921. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +54 -0
  922. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  923. package/lib/esm/render/webgl/SurfaceGeometry.js +243 -0
  924. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -0
  925. package/lib/esm/render/webgl/System.d.ts +11 -10
  926. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  927. package/lib/esm/render/webgl/System.js +34 -23
  928. package/lib/esm/render/webgl/System.js.map +1 -1
  929. package/lib/esm/render/webgl/Target.d.ts +13 -1
  930. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  931. package/lib/esm/render/webgl/Target.js +88 -2
  932. package/lib/esm/render/webgl/Target.js.map +1 -1
  933. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  934. package/lib/esm/render/webgl/Technique.js +112 -119
  935. package/lib/esm/render/webgl/Technique.js.map +1 -1
  936. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  937. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  938. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  939. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  940. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  941. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  942. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  943. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  944. package/lib/esm/render/webgl/Texture.d.ts +15 -12
  945. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  946. package/lib/esm/render/webgl/Texture.js +27 -24
  947. package/lib/esm/render/webgl/Texture.js.map +1 -1
  948. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  949. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +84 -19
  950. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  951. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  952. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  953. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  954. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  955. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  956. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  957. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  958. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  959. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  960. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  961. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  962. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  963. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  964. package/lib/esm/render/webgl/glsl/CopyStencil.js +10 -13
  965. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  966. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +2 -2
  967. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  968. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  969. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  970. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  971. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  972. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  973. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +44 -22
  974. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  975. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  976. package/lib/esm/render/webgl/glsl/Fragment.js +19 -11
  977. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  978. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  979. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  980. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  981. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  982. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  983. package/lib/esm/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  984. package/lib/esm/render/webgl/glsl/PlanarClassification.js +13 -4
  985. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  986. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  987. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  988. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  989. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  990. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  991. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  992. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  993. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  994. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  995. package/lib/esm/render/webgl/glsl/RealityMesh.js +9 -6
  996. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  997. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  998. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  999. package/lib/esm/render/webgl/glsl/SkyBox.js +2 -2
  1000. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  1001. package/lib/esm/render/webgl/glsl/SkySphere.js +2 -2
  1002. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  1003. package/lib/esm/render/webgl/glsl/Surface.js +41 -16
  1004. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  1005. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  1006. package/lib/esm/render/webgl/glsl/Vertex.js +3 -3
  1007. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1008. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  1009. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  1010. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  1011. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  1012. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  1013. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  1014. package/lib/esm/render-primitives.d.ts +5 -1
  1015. package/lib/esm/render-primitives.d.ts.map +1 -1
  1016. package/lib/esm/render-primitives.js +5 -1
  1017. package/lib/esm/render-primitives.js.map +1 -1
  1018. package/lib/esm/request/Request.d.ts +167 -0
  1019. package/lib/esm/request/Request.d.ts.map +1 -0
  1020. package/lib/esm/request/Request.js +289 -0
  1021. package/lib/esm/request/Request.js.map +1 -0
  1022. package/lib/esm/tile/B3dmReader.d.ts +2 -1
  1023. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  1024. package/lib/esm/tile/B3dmReader.js +12 -8
  1025. package/lib/esm/tile/B3dmReader.js.map +1 -1
  1026. package/lib/esm/tile/CesiumAssetProvider.d.ts +14 -0
  1027. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +1 -0
  1028. package/lib/esm/tile/CesiumAssetProvider.js +31 -0
  1029. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -0
  1030. package/lib/esm/tile/ContextShareProvider.d.ts +22 -0
  1031. package/lib/esm/tile/ContextShareProvider.d.ts.map +1 -0
  1032. package/lib/esm/tile/ContextShareProvider.js +125 -0
  1033. package/lib/esm/tile/ContextShareProvider.js.map +1 -0
  1034. package/lib/esm/tile/DynamicIModelTile.js +9 -3
  1035. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1036. package/lib/esm/tile/GltfReader.d.ts +594 -55
  1037. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1038. package/lib/esm/tile/GltfReader.js +678 -242
  1039. package/lib/esm/tile/GltfReader.js.map +1 -1
  1040. package/lib/esm/tile/I3dmReader.d.ts +2 -1
  1041. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  1042. package/lib/esm/tile/I3dmReader.js +11 -7
  1043. package/lib/esm/tile/I3dmReader.js.map +1 -1
  1044. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  1045. package/lib/esm/tile/IModelTile.js +14 -7
  1046. package/lib/esm/tile/IModelTile.js.map +1 -1
  1047. package/lib/esm/tile/IModelTileTree.d.ts +8 -0
  1048. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1049. package/lib/esm/tile/IModelTileTree.js +36 -1
  1050. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1051. package/lib/esm/tile/ImdlReader.d.ts +365 -10
  1052. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1053. package/lib/esm/tile/ImdlReader.js +198 -67
  1054. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1055. package/lib/esm/tile/OrbitGtTileTree.d.ts +0 -9
  1056. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  1057. package/lib/esm/tile/OrbitGtTileTree.js +10 -20
  1058. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  1059. package/lib/esm/tile/PrimaryTileTree.d.ts +14 -5
  1060. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1061. package/lib/esm/tile/PrimaryTileTree.js +70 -15
  1062. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1063. package/lib/esm/tile/RealityModelTileTree.d.ts +2 -41
  1064. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  1065. package/lib/esm/tile/RealityModelTileTree.js +56 -215
  1066. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  1067. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  1068. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1069. package/lib/esm/tile/RealityTileLoader.js +4 -3
  1070. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1071. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1072. package/lib/esm/tile/Tile.js +5 -1
  1073. package/lib/esm/tile/Tile.js.map +1 -1
  1074. package/lib/esm/tile/TileAdmin.d.ts +37 -4
  1075. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1076. package/lib/esm/tile/TileAdmin.js +19 -13
  1077. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1078. package/lib/esm/tile/TileDrawArgs.d.ts +11 -0
  1079. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1080. package/lib/esm/tile/TileDrawArgs.js +6 -1
  1081. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1082. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1083. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1084. package/lib/esm/tile/TileTreeReference.js +5 -0
  1085. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1086. package/lib/esm/tile/internal.d.ts +4 -1
  1087. package/lib/esm/tile/internal.d.ts.map +1 -1
  1088. package/lib/esm/tile/internal.js +4 -1
  1089. package/lib/esm/tile/internal.js.map +1 -1
  1090. package/lib/esm/tile/map/ArcGISTileMap.d.ts +22 -0
  1091. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -0
  1092. package/lib/esm/tile/map/ArcGISTileMap.js +173 -0
  1093. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -0
  1094. package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
  1095. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
  1096. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
  1097. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1098. package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
  1099. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1100. package/lib/esm/tile/map/BingElevation.js +1 -1
  1101. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1102. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  1103. package/lib/esm/tile/map/CesiumTerrainProvider.js +25 -13
  1104. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  1105. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  1106. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1107. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +21 -42
  1108. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1109. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  1110. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  1111. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  1112. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1113. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  1114. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1115. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  1116. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  1117. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  1118. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  1119. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -4
  1120. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1121. package/lib/esm/tile/map/ImageryTileTree.js +21 -25
  1122. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1123. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  1124. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  1125. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
  1126. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  1127. package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
  1128. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
  1129. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  1130. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1131. package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
  1132. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1133. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
  1134. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1135. package/lib/esm/tile/map/MapLayerImageryFormats.js +22 -9
  1136. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1137. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +18 -6
  1138. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1139. package/lib/esm/tile/map/MapLayerImageryProvider.js +44 -11
  1140. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1141. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -11
  1142. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1143. package/lib/esm/tile/map/MapLayerSources.js +7 -36
  1144. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1145. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1146. package/lib/esm/tile/map/MapTile.js +4 -3
  1147. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1148. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1149. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1150. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  1151. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1152. package/lib/esm/tile/map/MapTileTree.js +30 -21
  1153. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1154. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  1155. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1156. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
  1157. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1158. package/lib/esm/tile/map/MapTilingScheme.d.ts +7 -2
  1159. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1160. package/lib/esm/tile/map/MapTilingScheme.js +22 -9
  1161. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1162. package/lib/esm/tile/map/QuadId.d.ts +1 -0
  1163. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  1164. package/lib/esm/tile/map/QuadId.js +2 -1
  1165. package/lib/esm/tile/map/QuadId.js.map +1 -1
  1166. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  1167. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  1168. package/lib/esm/tile/map/WmsCapabilities.d.ts +8 -1
  1169. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1170. package/lib/esm/tile/map/WmsCapabilities.js +37 -3
  1171. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1172. package/lib/esm/tile/map/WmtsCapabilities.d.ts +11 -1
  1173. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  1174. package/lib/esm/tile/map/WmtsCapabilities.js +20 -6
  1175. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  1176. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1177. package/lib/esm/tools/EditManipulator.js +1 -1
  1178. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1179. package/lib/esm/tools/ElementSetTool.js +2 -2
  1180. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1181. package/lib/esm/tools/PrimitiveTool.d.ts +4 -4
  1182. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1183. package/lib/esm/tools/PrimitiveTool.js +2 -2
  1184. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1185. package/lib/esm/tools/Tool.d.ts +29 -1
  1186. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1187. package/lib/esm/tools/Tool.js +66 -0
  1188. package/lib/esm/tools/Tool.js.map +1 -1
  1189. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1190. package/lib/esm/tools/ToolAdmin.js +20 -10
  1191. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1192. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1193. package/lib/esm/tools/ViewTool.js +3 -11
  1194. package/lib/esm/tools/ViewTool.js.map +1 -1
  1195. package/lib/esm/webgl.d.ts +5 -0
  1196. package/lib/esm/webgl.d.ts.map +1 -1
  1197. package/lib/esm/webgl.js +5 -0
  1198. package/lib/esm/webgl.js.map +1 -1
  1199. package/lib/public/locales/en/iModelJs.json +3 -1
  1200. package/package.json +33 -28
  1201. package/lib/cjs/RealityDataAccessProps.d.ts +0 -44
  1202. package/lib/cjs/RealityDataAccessProps.d.ts.map +0 -1
  1203. package/lib/cjs/RealityDataAccessProps.js +0 -23
  1204. package/lib/cjs/RealityDataAccessProps.js.map +0 -1
  1205. package/lib/cjs/RealityDataConnection.d.ts +0 -31
  1206. package/lib/cjs/RealityDataConnection.d.ts.map +0 -1
  1207. package/lib/cjs/RealityDataConnection.js +0 -101
  1208. package/lib/cjs/RealityDataConnection.js.map +0 -1
  1209. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts +0 -39
  1210. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1211. package/lib/cjs/tile/map/MapLayerSettingsService.js +0 -190
  1212. package/lib/cjs/tile/map/MapLayerSettingsService.js.map +0 -1
  1213. package/lib/esm/RealityDataAccessProps.d.ts +0 -44
  1214. package/lib/esm/RealityDataAccessProps.d.ts.map +0 -1
  1215. package/lib/esm/RealityDataAccessProps.js +0 -20
  1216. package/lib/esm/RealityDataAccessProps.js.map +0 -1
  1217. package/lib/esm/RealityDataConnection.d.ts +0 -31
  1218. package/lib/esm/RealityDataConnection.d.ts.map +0 -1
  1219. package/lib/esm/RealityDataConnection.js +0 -98
  1220. package/lib/esm/RealityDataConnection.js.map +0 -1
  1221. package/lib/esm/tile/map/MapLayerSettingsService.d.ts +0 -39
  1222. package/lib/esm/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1223. package/lib/esm/tile/map/MapLayerSettingsService.js +0 -186
  1224. package/lib/esm/tile/map/MapLayerSettingsService.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Graphic.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Graphic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Graphic.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Graphic.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * @module WebGL
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.GraphicsArray = exports.WorldDecorations = exports.Branch = exports.Batch = exports.PerTargetData = exports.PerTargetBatchData = exports.GraphicOwner = exports.Graphic = void 0;
10
+ exports.GraphicsArray = exports.WorldDecorations = exports.AnimationTransformBranch = exports.Branch = exports.Batch = exports.PerTargetData = exports.PerTargetBatchData = exports.GraphicOwner = exports.Graphic = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const core_common_1 = require("@itwin/core-common");
@@ -246,15 +246,53 @@ class Branch extends Graphic {
246
246
  collectStatistics(stats) {
247
247
  this.branch.collectStatistics(stats);
248
248
  }
249
+ shouldAddCommands(commands) {
250
+ const nodeId = commands.target.getAnimationTransformNodeId(this.branch.animationNodeId);
251
+ return undefined === nodeId || nodeId === commands.target.currentAnimationTransformNodeId;
252
+ }
249
253
  addCommands(commands) {
250
- commands.addBranch(this);
254
+ if (this.shouldAddCommands(commands))
255
+ commands.addBranch(this);
251
256
  }
252
257
  addHiliteCommands(commands, pass) {
253
- commands.addHiliteBranch(this, pass);
258
+ if (this.shouldAddCommands(commands))
259
+ commands.addHiliteBranch(this, pass);
254
260
  }
255
261
  }
256
262
  exports.Branch = Branch;
257
263
  /** @internal */
264
+ class AnimationTransformBranch extends Graphic {
265
+ constructor(graphic, nodeId) {
266
+ super();
267
+ (0, core_bentley_1.assert)(graphic instanceof Graphic);
268
+ this.graphic = graphic;
269
+ this.nodeId = nodeId;
270
+ }
271
+ dispose() {
272
+ this.graphic.dispose();
273
+ }
274
+ get isDisposed() {
275
+ return this.graphic.isDisposed;
276
+ }
277
+ get isPickable() {
278
+ return this.graphic.isPickable;
279
+ }
280
+ collectStatistics(stats) {
281
+ this.graphic.collectStatistics(stats);
282
+ }
283
+ addCommands(commands) {
284
+ commands.target.currentAnimationTransformNodeId = this.nodeId;
285
+ this.graphic.addCommands(commands);
286
+ commands.target.currentAnimationTransformNodeId = undefined;
287
+ }
288
+ addHiliteCommands(commands, pass) {
289
+ commands.target.currentAnimationTransformNodeId = this.nodeId;
290
+ this.graphic.addHiliteCommands(commands, pass);
291
+ commands.target.currentAnimationTransformNodeId = undefined;
292
+ }
293
+ }
294
+ exports.AnimationTransformBranch = AnimationTransformBranch;
295
+ /** @internal */
258
296
  class WorldDecorations extends Branch {
259
297
  constructor(viewFlags) {
260
298
  super(new GraphicBranch_1.GraphicBranch(), core_geometry_1.Transform.identity, viewFlags);
@@ -1 +1 @@
1
- {"version":3,"file":"Graphic.js","sourceRoot":"","sources":["../../../../src/render/webgl/Graphic.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, dispose } from \"@itwin/core-bentley\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, FeatureAppearanceProvider, PackedFeatureTable, ThematicDisplayMode, ViewFlags } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { FeatureSymbology } from \"../FeatureSymbology\";\r\nimport { GraphicBranch, GraphicBranchFrustum, GraphicBranchOptions } from \"../GraphicBranch\";\r\nimport { GraphicList, RenderGraphic } from \"../RenderGraphic\";\r\nimport { BatchOptions } from \"../GraphicBuilder\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { FeatureOverrides } from \"./FeatureOverrides\";\r\nimport { PlanarClassifier } from \"./PlanarClassifier\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { Target } from \"./Target\";\r\nimport { TextureDrape } from \"./TextureDrape\";\r\nimport { EdgeSettings } from \"./EdgeSettings\";\r\nimport { ThematicSensors } from \"./ThematicSensors\";\r\n\r\n/** @internal */\r\nexport abstract class Graphic extends RenderGraphic implements WebGLDisposable {\r\n public abstract addCommands(_commands: RenderCommands): void;\r\n public abstract get isDisposed(): boolean;\r\n public abstract get isPickable(): boolean;\r\n public addHiliteCommands(_commands: RenderCommands, _pass: RenderPass): void { assert(false); }\r\n public toPrimitive(): Primitive | undefined { return undefined; }\r\n}\r\n\r\nexport class GraphicOwner extends Graphic {\r\n private readonly _graphic: Graphic;\r\n\r\n public constructor(graphic: Graphic) {\r\n super();\r\n this._graphic = graphic;\r\n }\r\n\r\n public get graphic(): RenderGraphic { return this._graphic; }\r\n\r\n private _isDisposed = false;\r\n public get isDisposed(): boolean { return this._isDisposed; }\r\n public dispose(): void { this._isDisposed = true; }\r\n public disposeGraphic(): void {\r\n this.graphic.dispose();\r\n }\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.graphic.collectStatistics(stats);\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n this._graphic.addCommands(commands);\r\n }\r\n public override get isPickable(): boolean {\r\n return this._graphic.isPickable;\r\n }\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n this._graphic.addHiliteCommands(commands, pass);\r\n }\r\n public override toPrimitive(): Primitive | undefined {\r\n return this._graphic.toPrimitive();\r\n }\r\n}\r\n\r\n/** Transiently assigned to a Batch while rendering a frame, reset afterward. Used to provide context for pick IDs.\r\n * @internal\r\n */\r\nexport interface BatchContext {\r\n batchId: number;\r\n iModel?: IModelConnection;\r\n}\r\n\r\n/** @internal exported strictly for tests. */\r\nexport class PerTargetBatchData {\r\n public readonly target: Target;\r\n protected readonly _featureOverrides = new Map<FeatureSymbology.Source | undefined, FeatureOverrides>();\r\n protected _thematicSensors?: ThematicSensors;\r\n\r\n public constructor(target: Target) {\r\n this.target = target;\r\n }\r\n\r\n public dispose(): void {\r\n this._thematicSensors = dispose(this._thematicSensors);\r\n for (const value of this._featureOverrides.values())\r\n dispose(value);\r\n\r\n this._featureOverrides.clear();\r\n }\r\n\r\n public getThematicSensors(batch: Batch): ThematicSensors {\r\n if (this._thematicSensors && !this._thematicSensors.matchesTarget(this.target))\r\n this._thematicSensors = dispose(this._thematicSensors);\r\n\r\n if (!this._thematicSensors)\r\n this._thematicSensors = ThematicSensors.create(this.target, batch.range);\r\n\r\n this._thematicSensors.update(this.target.uniforms.frustum.viewMatrix);\r\n return this._thematicSensors;\r\n }\r\n\r\n public getFeatureOverrides(batch: Batch): FeatureOverrides {\r\n const source = this.target.currentFeatureSymbologyOverrides?.source;\r\n let ovrs = this._featureOverrides.get(source);\r\n if (!ovrs) {\r\n const cleanup = source ? source.onSourceDisposed.addOnce(() => this.onSourceDisposed(source)) : undefined;\r\n this._featureOverrides.set(source, ovrs = FeatureOverrides.createFromTarget(this.target, batch.options, cleanup));\r\n ovrs.initFromMap(batch.featureTable);\r\n }\r\n\r\n ovrs.update(batch.featureTable);\r\n return ovrs;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (this._thematicSensors)\r\n stats.addThematicTexture(this._thematicSensors.bytesUsed);\r\n\r\n for (const ovrs of this._featureOverrides.values())\r\n stats.addFeatureOverrides(ovrs.byteLength);\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get featureOverrides() { return this._featureOverrides; }\r\n\r\n private onSourceDisposed(source: FeatureSymbology.Source): void {\r\n const ovrs = this._featureOverrides.get(source);\r\n if (ovrs) {\r\n this._featureOverrides.delete(source);\r\n ovrs.dispose();\r\n }\r\n }\r\n}\r\n\r\n/** @internal exported strictly for tests. */\r\nexport class PerTargetData {\r\n private readonly _batch: Batch;\r\n private readonly _data: PerTargetBatchData[] = [];\r\n\r\n public constructor(batch: Batch) {\r\n this._batch = batch;\r\n }\r\n\r\n public dispose(): void {\r\n for (const data of this._data) {\r\n data.target.onBatchDisposed(this._batch);\r\n data.dispose();\r\n }\r\n\r\n this._data.length = 0;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this._data.length === 0;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get data(): PerTargetBatchData[] { return this._data; }\r\n\r\n public onTargetDisposed(target: Target): void {\r\n const index = this._data.findIndex((x) => x.target === target);\r\n if (-1 === index)\r\n return;\r\n\r\n const data = this._data[index];\r\n data.dispose();\r\n this._data.splice(index, 1);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const data of this._data)\r\n data.collectStatistics(stats);\r\n }\r\n\r\n public getThematicSensors(target: Target): ThematicSensors {\r\n return this.getBatchData(target).getThematicSensors(this._batch);\r\n }\r\n\r\n public getFeatureOverrides(target: Target): FeatureOverrides {\r\n return this.getBatchData(target).getFeatureOverrides(this._batch);\r\n }\r\n\r\n private getBatchData(target: Target): PerTargetBatchData {\r\n let data = this._data.find((x) => x.target === target);\r\n if (!data) {\r\n this._data.push(data = new PerTargetBatchData(target));\r\n target.addBatch(this._batch);\r\n }\r\n\r\n return data;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Batch extends Graphic {\r\n public readonly graphic: RenderGraphic;\r\n public readonly featureTable: PackedFeatureTable;\r\n public readonly range: ElementAlignedBox3d;\r\n private readonly _context: BatchContext = { batchId: 0 };\r\n /** Public strictly for tests. */\r\n public readonly perTargetData = new PerTargetData(this);\r\n public readonly options: BatchOptions;\r\n\r\n // Chiefly for debugging.\r\n public get tileId(): string | undefined {\r\n return this.options.tileId;\r\n }\r\n\r\n public get locateOnly(): boolean {\r\n return true === this.options.locateOnly;\r\n }\r\n\r\n public get batchId() { return this._context.batchId; }\r\n public get batchIModel() { return this._context.iModel; }\r\n public setContext(batchId: number, iModel: IModelConnection | undefined) {\r\n this._context.batchId = batchId;\r\n this._context.iModel = iModel;\r\n }\r\n public resetContext() {\r\n this._context.batchId = 0;\r\n this._context.iModel = undefined;\r\n }\r\n\r\n public constructor(graphic: RenderGraphic, features: PackedFeatureTable, range: ElementAlignedBox3d, options?: BatchOptions) {\r\n super();\r\n this.graphic = graphic;\r\n this.featureTable = features;\r\n this.range = range;\r\n this.options = options ?? {};\r\n }\r\n\r\n private _isDisposed = false;\r\n public get isDisposed(): boolean {\r\n return this._isDisposed && this.perTargetData.isDisposed;\r\n }\r\n\r\n // Note: This does not remove FeatureOverrides from the array, but rather disposes of the WebGL resources they contain\r\n public dispose() {\r\n dispose(this.graphic);\r\n\r\n this.perTargetData.dispose();\r\n this._isDisposed = true;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.graphic.collectStatistics(stats);\r\n stats.addFeatureTable(this.featureTable.byteLength);\r\n this.perTargetData.collectStatistics(stats);\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n commands.addBatch(this);\r\n }\r\n\r\n public override get isPickable(): boolean {\r\n return true;\r\n }\r\n\r\n public getThematicSensors(target: Target): ThematicSensors {\r\n assert(target.plan.thematic !== undefined, \"thematic display settings must exist\");\r\n assert(target.plan.thematic.displayMode === ThematicDisplayMode.InverseDistanceWeightedSensors, \"thematic display mode must be sensor-based\");\r\n assert(target.plan.thematic.sensorSettings.sensors.length > 0, \"must have at least one sensor to process\");\r\n\r\n return this.perTargetData.getThematicSensors(target);\r\n }\r\n\r\n public getOverrides(target: Target): FeatureOverrides {\r\n return this.perTargetData.getFeatureOverrides(target);\r\n }\r\n\r\n public onTargetDisposed(target: Target) {\r\n this.perTargetData.onTargetDisposed(target);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Branch extends Graphic {\r\n public readonly branch: GraphicBranch;\r\n public localToWorldTransform: Transform;\r\n public readonly clips?: ClipVolume;\r\n public readonly planarClassifier?: PlanarClassifier;\r\n public readonly textureDrape?: TextureDrape;\r\n public readonly edgeSettings?: EdgeSettings;\r\n public readonly iModel?: IModelConnection; // used chiefly for readPixels to identify context of picked Ids.\r\n public readonly frustum?: GraphicBranchFrustum;\r\n public readonly appearanceProvider?: FeatureAppearanceProvider;\r\n\r\n public constructor(branch: GraphicBranch, localToWorld: Transform, viewFlags?: ViewFlags, opts?: GraphicBranchOptions) {\r\n super();\r\n this.branch = branch;\r\n this.localToWorldTransform = localToWorld;\r\n\r\n if (undefined !== viewFlags)\r\n branch.setViewFlags(viewFlags);\r\n\r\n if (!opts)\r\n return;\r\n\r\n this.appearanceProvider = opts.appearanceProvider;\r\n this.clips = opts.clipVolume as ClipVolume | undefined;\r\n this.iModel = opts.iModel;\r\n this.frustum = opts.frustum;\r\n\r\n if (opts.hline)\r\n this.edgeSettings = EdgeSettings.create(opts.hline);\r\n\r\n if (opts.classifierOrDrape instanceof PlanarClassifier)\r\n this.planarClassifier = opts.classifierOrDrape;\r\n else if (opts.classifierOrDrape instanceof TextureDrape)\r\n this.textureDrape = opts.classifierOrDrape;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return 0 === this.branch.entries.length;\r\n }\r\n\r\n public dispose() {\r\n this.branch.dispose();\r\n }\r\n\r\n public override get isPickable(): boolean {\r\n return this.branch.entries.some((gf) => (gf as Graphic).isPickable);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.branch.collectStatistics(stats);\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n commands.addBranch(this);\r\n }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n commands.addHiliteBranch(this, pass);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WorldDecorations extends Branch {\r\n public constructor(viewFlags: ViewFlags) {\r\n super(new GraphicBranch(), Transform.identity, viewFlags);\r\n\r\n // World decorations ignore all the symbology overrides for the \"scene\" geometry...\r\n this.branch.symbologyOverrides = new FeatureSymbology.Overrides();\r\n }\r\n\r\n public init(decs: GraphicList): void {\r\n this.branch.clear();\r\n for (const dec of decs) {\r\n this.branch.add(dec);\r\n }\r\n }\r\n}\r\n/** @internal */\r\nexport class GraphicsArray extends Graphic {\r\n // Note: We assume the graphics array we get contains undisposed graphics to start\r\n constructor(public graphics: RenderGraphic[]) { super(); }\r\n\r\n public get isDisposed(): boolean { return 0 === this.graphics.length; }\r\n\r\n public override get isPickable(): boolean {\r\n return this.graphics.some((x) => (x as Graphic).isPickable);\r\n }\r\n\r\n public dispose() {\r\n for (const graphic of this.graphics)\r\n dispose(graphic);\r\n this.graphics.length = 0;\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n for (const graphic of this.graphics) {\r\n (graphic as Graphic).addCommands(commands);\r\n }\r\n }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n for (const graphic of this.graphics) {\r\n (graphic as Graphic).addHiliteCommands(commands, pass);\r\n }\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const graphic of this.graphics)\r\n graphic.collectStatistics(stats);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Graphic.js","sourceRoot":"","sources":["../../../../src/render/webgl/Graphic.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, dispose } from \"@itwin/core-bentley\";\nimport { Transform } from \"@itwin/core-geometry\";\nimport { ElementAlignedBox3d, FeatureAppearanceProvider, PackedFeatureTable, ThematicDisplayMode, ViewFlags } from \"@itwin/core-common\";\nimport { IModelConnection } from \"../../IModelConnection\";\r\nimport { FeatureSymbology } from \"../FeatureSymbology\";\r\nimport { GraphicBranch, GraphicBranchFrustum, GraphicBranchOptions } from \"../GraphicBranch\";\r\nimport { GraphicList, RenderGraphic } from \"../RenderGraphic\";\r\nimport { BatchOptions } from \"../GraphicBuilder\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { FeatureOverrides } from \"./FeatureOverrides\";\r\nimport { PlanarClassifier } from \"./PlanarClassifier\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { Target } from \"./Target\";\r\nimport { TextureDrape } from \"./TextureDrape\";\r\nimport { EdgeSettings } from \"./EdgeSettings\";\r\nimport { ThematicSensors } from \"./ThematicSensors\";\r\n\r\n/** @internal */\r\nexport abstract class Graphic extends RenderGraphic implements WebGLDisposable {\r\n public abstract addCommands(_commands: RenderCommands): void;\r\n public abstract get isDisposed(): boolean;\r\n public abstract get isPickable(): boolean;\r\n public addHiliteCommands(_commands: RenderCommands, _pass: RenderPass): void { assert(false); }\r\n public toPrimitive(): Primitive | undefined { return undefined; }\r\n}\r\n\r\nexport class GraphicOwner extends Graphic {\r\n private readonly _graphic: Graphic;\r\n\r\n public constructor(graphic: Graphic) {\r\n super();\r\n this._graphic = graphic;\r\n }\r\n\r\n public get graphic(): RenderGraphic { return this._graphic; }\r\n\r\n private _isDisposed = false;\r\n public get isDisposed(): boolean { return this._isDisposed; }\r\n public dispose(): void { this._isDisposed = true; }\r\n public disposeGraphic(): void {\r\n this.graphic.dispose();\r\n }\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.graphic.collectStatistics(stats);\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n this._graphic.addCommands(commands);\r\n }\r\n public override get isPickable(): boolean {\r\n return this._graphic.isPickable;\r\n }\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n this._graphic.addHiliteCommands(commands, pass);\r\n }\r\n public override toPrimitive(): Primitive | undefined {\r\n return this._graphic.toPrimitive();\r\n }\r\n}\r\n\r\n/** Transiently assigned to a Batch while rendering a frame, reset afterward. Used to provide context for pick IDs.\r\n * @internal\r\n */\r\nexport interface BatchContext {\r\n batchId: number;\r\n iModel?: IModelConnection;\r\n}\r\n\r\n/** @internal exported strictly for tests. */\nexport class PerTargetBatchData {\n public readonly target: Target;\n protected readonly _featureOverrides = new Map<FeatureSymbology.Source | undefined, FeatureOverrides>();\n protected _thematicSensors?: ThematicSensors;\n\n public constructor(target: Target) {\n this.target = target;\n }\n\n public dispose(): void {\n this._thematicSensors = dispose(this._thematicSensors);\n for (const value of this._featureOverrides.values())\n dispose(value);\n\n this._featureOverrides.clear();\n }\n\n public getThematicSensors(batch: Batch): ThematicSensors {\n if (this._thematicSensors && !this._thematicSensors.matchesTarget(this.target))\n this._thematicSensors = dispose(this._thematicSensors);\n\n if (!this._thematicSensors)\n this._thematicSensors = ThematicSensors.create(this.target, batch.range);\n\n this._thematicSensors.update(this.target.uniforms.frustum.viewMatrix);\n return this._thematicSensors;\n }\n\n public getFeatureOverrides(batch: Batch): FeatureOverrides {\n const source = this.target.currentFeatureSymbologyOverrides?.source;\n let ovrs = this._featureOverrides.get(source);\n if (!ovrs) {\n const cleanup = source ? source.onSourceDisposed.addOnce(() => this.onSourceDisposed(source)) : undefined;\n this._featureOverrides.set(source, ovrs = FeatureOverrides.createFromTarget(this.target, batch.options, cleanup));\n ovrs.initFromMap(batch.featureTable);\n }\n\n ovrs.update(batch.featureTable);\n return ovrs;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n if (this._thematicSensors)\n stats.addThematicTexture(this._thematicSensors.bytesUsed);\n\n for (const ovrs of this._featureOverrides.values())\n stats.addFeatureOverrides(ovrs.byteLength);\n }\n\n /** Exposed strictly for tests. */\n public get featureOverrides() { return this._featureOverrides; }\n\n private onSourceDisposed(source: FeatureSymbology.Source): void {\n const ovrs = this._featureOverrides.get(source);\n if (ovrs) {\n this._featureOverrides.delete(source);\n ovrs.dispose();\n }\n }\n}\r\n\r\n/** @internal exported strictly for tests. */\nexport class PerTargetData {\n private readonly _batch: Batch;\n private readonly _data: PerTargetBatchData[] = [];\n\n public constructor(batch: Batch) {\n this._batch = batch;\n }\n\n public dispose(): void {\n for (const data of this._data) {\n data.target.onBatchDisposed(this._batch);\n data.dispose();\n }\n\n this._data.length = 0;\n }\n\n public get isDisposed(): boolean {\n return this._data.length === 0;\n }\n\n /** Exposed strictly for tests. */\n public get data(): PerTargetBatchData[] { return this._data; }\n\n public onTargetDisposed(target: Target): void {\n const index = this._data.findIndex((x) => x.target === target);\n if (-1 === index)\n return;\n\n const data = this._data[index];\n data.dispose();\n this._data.splice(index, 1);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n for (const data of this._data)\n data.collectStatistics(stats);\n }\n\n public getThematicSensors(target: Target): ThematicSensors {\n return this.getBatchData(target).getThematicSensors(this._batch);\n }\n\n public getFeatureOverrides(target: Target): FeatureOverrides {\n return this.getBatchData(target).getFeatureOverrides(this._batch);\n }\n\n private getBatchData(target: Target): PerTargetBatchData {\n let data = this._data.find((x) => x.target === target);\n if (!data) {\n this._data.push(data = new PerTargetBatchData(target));\n target.addBatch(this._batch);\n }\n\n return data;\n }\n}\r\n\r\n/** @internal */\r\nexport class Batch extends Graphic {\r\n public readonly graphic: RenderGraphic;\r\n public readonly featureTable: PackedFeatureTable;\r\n public readonly range: ElementAlignedBox3d;\r\n private readonly _context: BatchContext = { batchId: 0 };\r\n /** Public strictly for tests. */\n public readonly perTargetData = new PerTargetData(this);\n public readonly options: BatchOptions;\n\r\n // Chiefly for debugging.\r\n public get tileId(): string | undefined {\r\n return this.options.tileId;\n }\r\n\r\n public get locateOnly(): boolean {\r\n return true === this.options.locateOnly;\n }\r\n\r\n public get batchId() { return this._context.batchId; }\r\n public get batchIModel() { return this._context.iModel; }\r\n public setContext(batchId: number, iModel: IModelConnection | undefined) {\r\n this._context.batchId = batchId;\r\n this._context.iModel = iModel;\r\n }\r\n public resetContext() {\r\n this._context.batchId = 0;\r\n this._context.iModel = undefined;\r\n }\r\n\r\n public constructor(graphic: RenderGraphic, features: PackedFeatureTable, range: ElementAlignedBox3d, options?: BatchOptions) {\r\n super();\r\n this.graphic = graphic;\r\n this.featureTable = features;\r\n this.range = range;\r\n this.options = options ?? {};\n }\r\n\r\n private _isDisposed = false;\r\n public get isDisposed(): boolean {\r\n return this._isDisposed && this.perTargetData.isDisposed;\n }\r\n\r\n // Note: This does not remove FeatureOverrides from the array, but rather disposes of the WebGL resources they contain\r\n public dispose() {\r\n dispose(this.graphic);\r\n\r\n this.perTargetData.dispose();\n this._isDisposed = true;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.graphic.collectStatistics(stats);\r\n stats.addFeatureTable(this.featureTable.byteLength);\r\n this.perTargetData.collectStatistics(stats);\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n commands.addBatch(this);\r\n }\r\n\r\n public override get isPickable(): boolean {\r\n return true;\r\n }\r\n\r\n public getThematicSensors(target: Target): ThematicSensors {\r\n assert(target.plan.thematic !== undefined, \"thematic display settings must exist\");\r\n assert(target.plan.thematic.displayMode === ThematicDisplayMode.InverseDistanceWeightedSensors, \"thematic display mode must be sensor-based\");\r\n assert(target.plan.thematic.sensorSettings.sensors.length > 0, \"must have at least one sensor to process\");\r\n\r\n return this.perTargetData.getThematicSensors(target);\n }\r\n\r\n public getOverrides(target: Target): FeatureOverrides {\r\n return this.perTargetData.getFeatureOverrides(target);\n }\r\n\r\n public onTargetDisposed(target: Target) {\r\n this.perTargetData.onTargetDisposed(target);\n }\r\n}\r\n\r\n/** @internal */\r\nexport class Branch extends Graphic {\r\n public readonly branch: GraphicBranch;\r\n public localToWorldTransform: Transform;\r\n public readonly clips?: ClipVolume;\r\n public readonly planarClassifier?: PlanarClassifier;\r\n public readonly textureDrape?: TextureDrape;\r\n public readonly edgeSettings?: EdgeSettings;\r\n public readonly iModel?: IModelConnection; // used chiefly for readPixels to identify context of picked Ids.\r\n public readonly frustum?: GraphicBranchFrustum;\r\n public readonly appearanceProvider?: FeatureAppearanceProvider;\r\n\r\n public constructor(branch: GraphicBranch, localToWorld: Transform, viewFlags?: ViewFlags, opts?: GraphicBranchOptions) {\r\n super();\r\n this.branch = branch;\r\n this.localToWorldTransform = localToWorld;\r\n\r\n if (undefined !== viewFlags)\r\n branch.setViewFlags(viewFlags);\r\n\r\n if (!opts)\r\n return;\r\n\r\n this.appearanceProvider = opts.appearanceProvider;\r\n this.clips = opts.clipVolume as ClipVolume | undefined;\r\n this.iModel = opts.iModel;\r\n this.frustum = opts.frustum;\r\n\r\n if (opts.hline)\r\n this.edgeSettings = EdgeSettings.create(opts.hline);\r\n\r\n if (opts.classifierOrDrape instanceof PlanarClassifier)\r\n this.planarClassifier = opts.classifierOrDrape;\r\n else if (opts.classifierOrDrape instanceof TextureDrape)\r\n this.textureDrape = opts.classifierOrDrape;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return 0 === this.branch.entries.length;\r\n }\r\n\r\n public dispose() {\r\n this.branch.dispose();\r\n }\r\n\r\n public override get isPickable(): boolean {\r\n return this.branch.entries.some((gf) => (gf as Graphic).isPickable);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.branch.collectStatistics(stats);\r\n }\r\n\r\n private shouldAddCommands(commands: RenderCommands): boolean {\r\n const nodeId = commands.target.getAnimationTransformNodeId(this.branch.animationNodeId);\r\n return undefined === nodeId || nodeId === commands.target.currentAnimationTransformNodeId;\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n if (this.shouldAddCommands(commands))\r\n commands.addBranch(this);\r\n }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n if (this.shouldAddCommands(commands))\r\n commands.addHiliteBranch(this, pass);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class AnimationTransformBranch extends Graphic {\r\n public readonly nodeId: number;\r\n public readonly graphic: Graphic;\r\n\r\n public constructor(graphic: RenderGraphic, nodeId: number) {\r\n super();\r\n assert(graphic instanceof Graphic);\r\n this.graphic = graphic;\r\n this.nodeId = nodeId;\r\n }\r\n\r\n public override dispose() {\r\n this.graphic.dispose();\r\n }\r\n\r\n public override get isDisposed() {\r\n return this.graphic.isDisposed;\r\n }\r\n\r\n public override get isPickable() {\r\n return this.graphic.isPickable;\r\n }\r\n\r\n public override collectStatistics(stats: RenderMemory.Statistics) {\r\n this.graphic.collectStatistics(stats);\r\n }\r\n\r\n public override addCommands(commands: RenderCommands) {\r\n commands.target.currentAnimationTransformNodeId = this.nodeId;\r\n this.graphic.addCommands(commands);\r\n commands.target.currentAnimationTransformNodeId = undefined;\r\n }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass) {\r\n commands.target.currentAnimationTransformNodeId = this.nodeId;\r\n this.graphic.addHiliteCommands(commands, pass);\r\n commands.target.currentAnimationTransformNodeId = undefined;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WorldDecorations extends Branch {\r\n public constructor(viewFlags: ViewFlags) {\r\n super(new GraphicBranch(), Transform.identity, viewFlags);\r\n\r\n // World decorations ignore all the symbology overrides for the \"scene\" geometry...\r\n this.branch.symbologyOverrides = new FeatureSymbology.Overrides();\r\n }\r\n\r\n public init(decs: GraphicList): void {\r\n this.branch.clear();\r\n for (const dec of decs) {\r\n this.branch.add(dec);\r\n }\r\n }\r\n}\r\n/** @internal */\r\nexport class GraphicsArray extends Graphic {\r\n // Note: We assume the graphics array we get contains undisposed graphics to start\r\n constructor(public graphics: RenderGraphic[]) { super(); }\r\n\r\n public get isDisposed(): boolean { return 0 === this.graphics.length; }\r\n\r\n public override get isPickable(): boolean {\r\n return this.graphics.some((x) => (x as Graphic).isPickable);\r\n }\r\n\r\n public dispose() {\r\n for (const graphic of this.graphics)\r\n dispose(graphic);\r\n this.graphics.length = 0;\r\n }\r\n\r\n public addCommands(commands: RenderCommands): void {\r\n for (const graphic of this.graphics) {\r\n (graphic as Graphic).addCommands(commands);\r\n }\r\n }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n for (const graphic of this.graphics) {\r\n (graphic as Graphic).addHiliteCommands(commands, pass);\r\n }\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const graphic of this.graphics)\r\n graphic.collectStatistics(stats);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,51 @@
1
+ /** @packageDocumentation
2
+ * @module WebGL
3
+ */
4
+ import { EdgeTable, IndexedEdgeParams } from "../primitives/EdgeParams";
5
+ import { RenderMemory } from "../RenderMemory";
6
+ import { TextureHandle } from "./Texture";
7
+ import { BuffersContainer } from "./AttributeBuffers";
8
+ import { WebGLDisposable } from "./Disposable";
9
+ import { MeshData } from "./MeshData";
10
+ import { MeshGeometry } from "./MeshGeometry";
11
+ import { TechniqueId } from "./TechniqueId";
12
+ import { Target } from "./Target";
13
+ import { ShaderProgramParams } from "./DrawCommand";
14
+ import { RenderOrder } from "./RenderFlags";
15
+ /** @see [[EdgeTable]]
16
+ * @internal
17
+ */
18
+ export declare class EdgeLUT implements WebGLDisposable {
19
+ readonly texture: TextureHandle;
20
+ readonly numSegments: number;
21
+ readonly silhouettePadding: number;
22
+ private constructor();
23
+ dispose(): void;
24
+ static create(table: EdgeTable): EdgeLUT | undefined;
25
+ get bytesUsed(): number;
26
+ get isDisposed(): boolean;
27
+ }
28
+ /** @see [[IndexedEdgeParams]]
29
+ * @internal
30
+ */
31
+ export declare class IndexedEdgeGeometry extends MeshGeometry {
32
+ private readonly _buffers;
33
+ private readonly _indices;
34
+ readonly edgeLut: EdgeLUT;
35
+ get lutBuffers(): BuffersContainer;
36
+ get asIndexedEdge(): this;
37
+ private constructor();
38
+ dispose(): void;
39
+ get isDisposed(): boolean;
40
+ static create(mesh: MeshData, params: IndexedEdgeParams): IndexedEdgeGeometry | undefined;
41
+ collectStatistics(stats: RenderMemory.Statistics): void;
42
+ protected _draw(numInstances: number, instances?: BuffersContainer): void;
43
+ protected _wantWoWReversal(): boolean;
44
+ protected _getLineCode(params: ShaderProgramParams): number;
45
+ get techniqueId(): TechniqueId;
46
+ getPass(target: Target): import("./RenderFlags").Pass;
47
+ get renderOrder(): RenderOrder;
48
+ getColor(target: Target): import("./ColorInfo").ColorInfo;
49
+ wantMonochrome(target: Target): boolean;
50
+ }
51
+ //# sourceMappingURL=IndexedEdgeGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedEdgeGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/IndexedEdgeGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAkC,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,qBAAa,OAAQ,YAAW,eAAe;IAC7C,SAAgB,OAAO,EAAE,aAAa,CAAC;IACvC,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,OAAO;IAMA,OAAO,IAAI,IAAI;WAIR,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS;IAK3D,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;CACF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,IAAW,UAAU,qBAA4B;IACjD,IAAoB,aAAa,SAAmB;IAEpD,OAAO;IAUA,OAAO,IAAI,IAAI;IAMtB,IAAW,UAAU,IAAI,OAAO,CAE/B;WAEa,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,SAAS;IAMzF,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAOzE,SAAS,CAAC,gBAAgB,IAAI,OAAO;cAClB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAEpE,IAAW,WAAW,gBAAsC;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM;IACtC,IAAW,WAAW,gBAAwE;IAC9E,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,cAAc,CAAC,MAAM,EAAE,MAAM;CAC9C"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module WebGL
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.IndexedEdgeGeometry = exports.EdgeLUT = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const core_common_1 = require("@itwin/core-common");
13
+ const Texture_1 = require("./Texture");
14
+ const AttributeBuffers_1 = require("./AttributeBuffers");
15
+ const MeshGeometry_1 = require("./MeshGeometry");
16
+ const AttributeMap_1 = require("./AttributeMap");
17
+ const GL_1 = require("./GL");
18
+ const System_1 = require("./System");
19
+ /** @see [[EdgeTable]]
20
+ * @internal
21
+ */
22
+ class EdgeLUT {
23
+ constructor(texture, numSegments, silhouettePadding) {
24
+ this.texture = texture;
25
+ this.numSegments = numSegments;
26
+ this.silhouettePadding = silhouettePadding;
27
+ }
28
+ dispose() {
29
+ (0, core_bentley_1.dispose)(this.texture);
30
+ }
31
+ static create(table) {
32
+ const texture = Texture_1.TextureHandle.createForData(table.width, table.height, table.data);
33
+ return texture ? new EdgeLUT(texture, table.numSegments, table.silhouettePadding) : undefined;
34
+ }
35
+ get bytesUsed() {
36
+ return this.texture.bytesUsed;
37
+ }
38
+ get isDisposed() {
39
+ return this.texture.isDisposed;
40
+ }
41
+ }
42
+ exports.EdgeLUT = EdgeLUT;
43
+ /** @see [[IndexedEdgeParams]]
44
+ * @internal
45
+ */
46
+ class IndexedEdgeGeometry extends MeshGeometry_1.MeshGeometry {
47
+ constructor(mesh, indices, numIndices, lut) {
48
+ super(mesh, numIndices);
49
+ this.edgeLut = lut;
50
+ this._buffers = AttributeBuffers_1.BuffersContainer.create();
51
+ const attrPos = AttributeMap_1.AttributeMap.findAttribute("a_pos", 6 /* IndexedEdge */, false);
52
+ (0, core_bentley_1.assert)(undefined !== attrPos);
53
+ this._buffers.addBuffer(indices, [AttributeBuffers_1.BufferParameters.create(attrPos.location, 3, GL_1.GL.DataType.UnsignedByte, false, 0, 0, false)]);
54
+ this._indices = indices;
55
+ }
56
+ get lutBuffers() { return this._buffers; }
57
+ get asIndexedEdge() { return this; }
58
+ dispose() {
59
+ (0, core_bentley_1.dispose)(this._buffers);
60
+ (0, core_bentley_1.dispose)(this._indices);
61
+ (0, core_bentley_1.dispose)(this.edgeLut);
62
+ }
63
+ get isDisposed() {
64
+ return this._buffers.isDisposed && this._indices.isDisposed && this.edgeLut.isDisposed;
65
+ }
66
+ static create(mesh, params) {
67
+ const indexBuffer = AttributeBuffers_1.BufferHandle.createArrayBuffer(params.indices.data);
68
+ const lut = EdgeLUT.create(params.edges);
69
+ return indexBuffer && lut ? new IndexedEdgeGeometry(mesh, indexBuffer, params.indices.length, lut) : undefined;
70
+ }
71
+ collectStatistics(stats) {
72
+ stats.addIndexedEdges(this._indices.bytesUsed);
73
+ stats.addEdgeTable(this.edgeLut.bytesUsed);
74
+ }
75
+ _draw(numInstances, instances) {
76
+ const bufs = instances !== null && instances !== void 0 ? instances : this._buffers;
77
+ bufs.bind();
78
+ System_1.System.instance.drawArrays(GL_1.GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);
79
+ bufs.unbind();
80
+ }
81
+ _wantWoWReversal() { return true; }
82
+ _getLineCode(params) { return this.computeEdgeLineCode(params); }
83
+ get techniqueId() { return 6 /* IndexedEdge */; }
84
+ getPass(target) { return this.computeEdgePass(target); }
85
+ get renderOrder() { return this.isPlanar ? 14 /* PlanarEdge */ : 6 /* Edge */; }
86
+ getColor(target) { return this.computeEdgeColor(target); }
87
+ wantMonochrome(target) { return target.currentViewFlags.renderMode === core_common_1.RenderMode.Wireframe; }
88
+ }
89
+ exports.IndexedEdgeGeometry = IndexedEdgeGeometry;
90
+ //# sourceMappingURL=IndexedEdgeGeometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedEdgeGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/IndexedEdgeGeometry.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, dispose } from \"@itwin/core-bentley\";\r\nimport { RenderMode } from \"@itwin/core-common\";\r\nimport { EdgeTable, IndexedEdgeParams } from \"../primitives/EdgeParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { TextureHandle } from \"./Texture\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { MeshData } from \"./MeshData\";\r\nimport { MeshGeometry } from \"./MeshGeometry\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { GL } from \"./GL\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\n\r\n/** @see [[EdgeTable]]\r\n * @internal\r\n */\r\nexport class EdgeLUT implements WebGLDisposable {\r\n public readonly texture: TextureHandle;\r\n public readonly numSegments: number;\r\n public readonly silhouettePadding: number;\r\n\r\n private constructor(texture: TextureHandle, numSegments: number, silhouettePadding: number) {\r\n this.texture = texture;\r\n this.numSegments = numSegments;\r\n this.silhouettePadding = silhouettePadding;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.texture);\r\n }\r\n\r\n public static create(table: EdgeTable): EdgeLUT | undefined {\r\n const texture = TextureHandle.createForData(table.width, table.height, table.data);\r\n return texture ? new EdgeLUT(texture, table.numSegments, table.silhouettePadding) : undefined;\r\n }\r\n\r\n public get bytesUsed(): number {\r\n return this.texture.bytesUsed;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.texture.isDisposed;\r\n }\r\n}\r\n\r\n/** @see [[IndexedEdgeParams]]\r\n * @internal\r\n */\r\nexport class IndexedEdgeGeometry extends MeshGeometry {\r\n private readonly _buffers: BuffersContainer;\r\n private readonly _indices: BufferHandle;\r\n public readonly edgeLut: EdgeLUT;\r\n\r\n public get lutBuffers() { return this._buffers; }\r\n public override get asIndexedEdge() { return this; }\r\n\r\n private constructor(mesh: MeshData, indices: BufferHandle, numIndices: number, lut: EdgeLUT) {\r\n super(mesh, numIndices);\r\n this.edgeLut = lut;\r\n this._buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.IndexedEdge, false);\r\n assert(undefined !== attrPos);\r\n this._buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this._indices = indices;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this._buffers);\r\n dispose(this._indices);\r\n dispose(this.edgeLut);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this._buffers.isDisposed && this._indices.isDisposed && this.edgeLut.isDisposed;\r\n }\r\n\r\n public static create(mesh: MeshData, params: IndexedEdgeParams): IndexedEdgeGeometry | undefined {\r\n const indexBuffer = BufferHandle.createArrayBuffer(params.indices.data);\r\n const lut = EdgeLUT.create(params.edges);\r\n return indexBuffer && lut ? new IndexedEdgeGeometry(mesh, indexBuffer, params.indices.length, lut) : undefined;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addIndexedEdges(this._indices.bytesUsed);\r\n stats.addEdgeTable(this.edgeLut.bytesUsed);\r\n }\r\n\r\n protected _draw(numInstances: number, instances?: BuffersContainer): void {\r\n const bufs = instances ?? this._buffers;\r\n bufs.bind();\r\n System.instance.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\r\n bufs.unbind();\r\n }\r\n\r\n protected _wantWoWReversal(): boolean { return true; }\r\n protected override _getLineCode(params: ShaderProgramParams): number { return this.computeEdgeLineCode(params); }\r\n\r\n public get techniqueId() { return TechniqueId.IndexedEdge; }\r\n public override getPass(target: Target) { return this.computeEdgePass(target); }\r\n public get renderOrder() { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\r\n public override getColor(target: Target) { return this.computeEdgeColor(target); }\r\n public override wantMonochrome(target: Target) { return target.currentViewFlags.renderMode === RenderMode.Wireframe; }\r\n}\r\n"]}
@@ -80,10 +80,11 @@ export declare class InstancedGeometry extends CachedGeometry {
80
80
  get viewIndependentOrigin(): Point3d | undefined;
81
81
  get asInstanced(): this;
82
82
  get asLUT(): LUTGeometry;
83
- get asMesh(): import("./Mesh").MeshGeometry | undefined;
84
- get asSurface(): import("./Mesh").SurfaceGeometry | undefined;
85
- get asEdge(): import("./Mesh").EdgeGeometry | undefined;
86
- get asSilhouette(): import("./Mesh").SilhouetteEdgeGeometry | undefined;
83
+ get asMesh(): import("./MeshGeometry").MeshGeometry | undefined;
84
+ get asSurface(): import("./SurfaceGeometry").SurfaceGeometry | undefined;
85
+ get asEdge(): import("./EdgeGeometry").EdgeGeometry | undefined;
86
+ get asSilhouette(): import("./EdgeGeometry").SilhouetteEdgeGeometry | undefined;
87
+ get asIndexedEdge(): import("./IndexedEdgeGeometry").IndexedEdgeGeometry | undefined;
87
88
  get renderOrder(): import("./RenderFlags").RenderOrder;
88
89
  get isLitSurface(): boolean;
89
90
  get hasBakedLighting(): boolean;
@@ -96,7 +97,7 @@ export declare class InstancedGeometry extends CachedGeometry {
96
97
  get hasFeatures(): boolean;
97
98
  get techniqueId(): TechniqueId;
98
99
  get supportsThematicDisplay(): boolean;
99
- getRenderPass(target: Target): import("./RenderFlags").RenderPass;
100
+ getPass(target: Target): import("./RenderFlags").Pass;
100
101
  wantWoWReversal(params: ShaderProgramParams): boolean;
101
102
  getLineCode(params: ShaderProgramParams): number;
102
103
  getLineWeight(params: ShaderProgramParams): number;
@@ -1 +1 @@
1
- {"version":3,"file":"InstancedGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/InstancedGeometry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstancedGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/InstancedGeometry.ts"],"names":[],"mappings":"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"}
@@ -204,6 +204,7 @@ class InstancedGeometry extends CachedGeometry_1.CachedGeometry {
204
204
  get asSurface() { return this._repr.asSurface; }
205
205
  get asEdge() { return this._repr.asEdge; }
206
206
  get asSilhouette() { return this._repr.asSilhouette; }
207
+ get asIndexedEdge() { return this._repr.asIndexedEdge; }
207
208
  get renderOrder() { return this._repr.renderOrder; }
208
209
  get isLitSurface() { return this._repr.isLitSurface; }
209
210
  get hasBakedLighting() { return this._repr.hasBakedLighting; }
@@ -216,7 +217,7 @@ class InstancedGeometry extends CachedGeometry_1.CachedGeometry {
216
217
  get hasFeatures() { return this._buffers.hasFeatures; }
217
218
  get techniqueId() { return this._repr.techniqueId; }
218
219
  get supportsThematicDisplay() { return this._repr.supportsThematicDisplay; }
219
- getRenderPass(target) { return this._repr.getRenderPass(target); }
220
+ getPass(target) { return this._repr.getPass(target); }
220
221
  wantWoWReversal(params) { return this._repr.wantWoWReversal(params); }
221
222
  getLineCode(params) { return this._repr.getLineCode(params); }
222
223
  getLineWeight(params) { return this._repr.getLineWeight(params); }
@@ -1 +1 @@
1
- {"version":3,"file":"InstancedGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/InstancedGeometry.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, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry, LUTGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { Matrix4 } from \"./Matrix\";\r\n\r\n/** @internal */\r\nexport function isInstancedGraphicParams(params: any): params is InstancedGraphicParams {\r\n return typeof params === \"object\" && typeof params.count === \"number\" && params.transforms instanceof Float32Array && params.transformCenter instanceof Point3d;\r\n}\r\n\r\nclass InstanceData {\r\n public readonly numInstances: number;\r\n public readonly range: Range3d;\r\n // A transform including only rtcCenter.\r\n private readonly _rtcOnlyTransform: Transform;\r\n // A transform from _rtcCenter including model matrix\r\n private readonly _rtcModelTransform: Transform;\r\n // The model matrix from which _rtcModelTransform was previously computed. If it changes, _rtcModelTransform must be recomputed.\r\n private readonly _modelMatrix = Transform.createIdentity();\r\n\r\n protected constructor(numInstances: number, rtcCenter: Point3d, range: Range3d) {\r\n this.numInstances = numInstances;\r\n this.range = range;\r\n this._rtcOnlyTransform = Transform.createTranslation(rtcCenter);\r\n this._rtcModelTransform = this._rtcOnlyTransform.clone();\r\n }\r\n\r\n public getRtcModelTransform(modelMatrix: Transform): Transform {\r\n if (!this._modelMatrix.isAlmostEqual(modelMatrix)) {\r\n modelMatrix.clone(this._modelMatrix);\r\n modelMatrix.multiplyTransformTransform(this._rtcOnlyTransform, this._rtcModelTransform);\r\n }\r\n\r\n return this._rtcModelTransform;\r\n }\r\n\r\n public getRtcOnlyTransform(): Transform {\r\n return this._rtcOnlyTransform;\r\n }\r\n\r\n private static readonly _noFeatureId = new Float32Array([0, 0, 0]);\r\n public get patternFeatureId(): Float32Array {\r\n return InstanceData._noFeatureId;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface PatternTransforms {\r\n readonly orgTransform: Matrix4;\r\n readonly localToModel: Matrix4;\r\n readonly symbolToLocal: Matrix4;\r\n readonly origin: Float32Array;\r\n}\r\n\r\n/** @internal */\r\nexport class InstanceBuffers extends InstanceData {\r\n private static readonly _patternParams = new Float32Array([0, 0, 0, 0]);\r\n\r\n public readonly transforms: BufferHandle;\r\n public readonly featureIds?: BufferHandle;\r\n public readonly hasFeatures: boolean;\r\n public readonly symbology?: BufferHandle;\r\n public readonly patternParams = InstanceBuffers._patternParams;\r\n public readonly patternTransforms = undefined;\r\n public readonly viewIndependentOrigin = undefined;\r\n\r\n private constructor(count: number, transforms: BufferHandle, rtcCenter: Point3d, range: Range3d, symbology?: BufferHandle, featureIds?: BufferHandle) {\r\n super(count, rtcCenter, range);\r\n this.transforms = transforms;\r\n this.featureIds = featureIds;\r\n this.hasFeatures = undefined !== featureIds;\r\n this.symbology = symbology;\r\n }\r\n\r\n public static createTransformBufferParameters(techniqueId: TechniqueId): BufferParameters[] {\r\n const params: BufferParameters[] = [];\r\n const numRows = 3;\r\n let row = 0;\r\n while (row < numRows) {\r\n // 3 rows per instance; 4 floats per row; 4 bytes per float.\r\n const floatsPerRow = 4;\r\n const bytesPerVertex = floatsPerRow * 4;\r\n const offset = row * bytesPerVertex;\r\n const stride = 3 * bytesPerVertex;\r\n const name = `a_instanceMatrixRow${row}`;\r\n const details = AttributeMap.findAttribute(name, techniqueId, true);\r\n assert(details !== undefined);\r\n const bParams: BufferParameters = {\r\n glAttribLoc: details.location,\r\n glSize: floatsPerRow,\r\n glType: GL.DataType.Float,\r\n glNormalized: false,\r\n glStride: stride,\r\n glOffset: offset,\r\n glInstanced: true,\r\n };\r\n params.push(bParams);\r\n row++;\r\n }\r\n return params;\r\n }\r\n\r\n public static create(params: InstancedGraphicParams, range: Range3d): InstanceBuffers | undefined {\r\n const { count, featureIds, symbologyOverrides, transforms } = params;\r\n\r\n assert(count > 0 && Math.floor(count) === count);\r\n assert(count === transforms.length / 12);\r\n assert(undefined === featureIds || count === featureIds.length / 3);\r\n assert(undefined === symbologyOverrides || count * 8 === symbologyOverrides.length);\r\n\r\n let idBuf: BufferHandle | undefined;\r\n if (undefined !== featureIds && undefined === (idBuf = BufferHandle.createArrayBuffer(featureIds)))\r\n return undefined;\r\n\r\n let symBuf: BufferHandle | undefined;\r\n if (undefined !== symbologyOverrides && undefined === (symBuf = BufferHandle.createArrayBuffer(symbologyOverrides)))\r\n return undefined;\r\n\r\n const tfBuf = BufferHandle.createArrayBuffer(transforms);\r\n return undefined !== tfBuf ? new InstanceBuffers(count, tfBuf, params.transformCenter, range, symBuf, idBuf) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.transforms.isDisposed\r\n && (undefined === this.featureIds || this.featureIds.isDisposed)\r\n && (undefined === this.symbology || this.symbology.isDisposed);\r\n }\r\n\r\n public dispose() {\r\n dispose(this.transforms);\r\n dispose(this.featureIds);\r\n dispose(this.symbology);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const featureBytes = undefined !== this.featureIds ? this.featureIds.bytesUsed : 0;\r\n const symBytes = undefined !== this.symbology ? this.symbology.bytesUsed : 0;\r\n\r\n const bytesUsed = this.transforms.bytesUsed + symBytes + featureBytes;\r\n stats.addInstances(bytesUsed);\r\n }\r\n\r\n private static extendTransformedRange(tfs: Float32Array, i: number, range: Range3d, x: number, y: number, z: number) {\r\n range.extendXYZ(tfs[i + 3] + tfs[i + 0] * x + tfs[i + 1] * y + tfs[i + 2] * z,\r\n tfs[i + 7] + tfs[i + 4] * x + tfs[i + 5] * y + tfs[i + 6] * z,\r\n tfs[i + 11] + tfs[i + 8] * x + tfs[i + 9] * y + tfs[i + 10] * z);\r\n }\r\n\r\n public static computeRange(reprRange: Range3d, tfs: Float32Array, rtcCenter: Point3d, out?: Range3d): Range3d {\r\n const range = out ?? new Range3d();\r\n\r\n const numFloatsPerTransform = 3 * 4;\r\n assert(0 === tfs.length % (3 * 4));\r\n\r\n for (let i = 0; i < tfs.length; i += numFloatsPerTransform) {\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.high.z);\r\n }\r\n\r\n range.low.addInPlace(rtcCenter);\r\n range.high.addInPlace(rtcCenter);\r\n\r\n return range.clone(out);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PatternBuffers extends InstanceData {\r\n private readonly _featureId?: Float32Array;\r\n\r\n private constructor(\r\n count: number,\r\n rtcCenter: Point3d,\r\n range: Range3d,\r\n public readonly patternParams: Float32Array, // [ isAreaPattern, spacingX, spacingY, scale ]\r\n public readonly origin: Float32Array, // [ x, y ]\r\n public readonly orgTransform: Matrix4,\r\n public readonly localToModel: Matrix4,\r\n public readonly symbolToLocal: Matrix4,\r\n public readonly offsets: BufferHandle,\r\n featureId: number | undefined,\r\n public readonly viewIndependentOrigin: Point3d | undefined\r\n ) {\r\n super(count, rtcCenter, range);\r\n this.patternTransforms = this;\r\n if (undefined !== featureId) {\r\n this._featureId = new Float32Array([\r\n (featureId & 0x0000ff) >>> 0,\r\n (featureId & 0x00ff00) >>> 8,\r\n (featureId & 0xff0000) >>> 16,\r\n ]);\r\n }\r\n }\r\n\r\n public static create(params: PatternGraphicParams): PatternBuffers | undefined {\r\n const count = params.xyOffsets.byteLength / 2;\r\n assert(Math.floor(count) === count);\r\n\r\n const offsets = BufferHandle.createArrayBuffer(params.xyOffsets);\r\n if (!offsets)\r\n return undefined;\r\n\r\n return new PatternBuffers(\r\n count,\r\n new Point3d(),\r\n params.range,\r\n new Float32Array([1, params.spacing.x, params.spacing.y, params.scale]),\r\n new Float32Array([params.origin.x, params.origin.y]),\r\n Matrix4.fromTransform(params.orgTransform),\r\n Matrix4.fromTransform(params.patternToModel),\r\n Matrix4.fromTransform(Transform.createTranslation(params.symbolTranslation)),\r\n offsets,\r\n params.featureId,\r\n params.viewIndependentOrigin,\r\n );\r\n }\r\n\r\n public readonly patternTransforms: PatternTransforms;\r\n\r\n public get hasFeatures(): boolean {\r\n return undefined !== this._featureId;\r\n }\r\n\r\n public override get patternFeatureId(): Float32Array {\r\n return this._featureId ?? super.patternFeatureId;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.offsets.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.offsets);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addInstances(this.offsets.bytesUsed);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class InstancedGeometry extends CachedGeometry {\r\n private readonly _buffersContainer: BuffersContainer;\r\n private readonly _buffers: InstanceBuffers | PatternBuffers;\r\n private readonly _repr: LUTGeometry;\r\n private readonly _ownsBuffers: boolean;\r\n\r\n public getRtcModelTransform(modelMatrix: Transform) { return this._buffers.getRtcModelTransform(modelMatrix); }\r\n public getRtcOnlyTransform() { return this._buffers.getRtcOnlyTransform(); }\r\n\r\n public override get viewIndependentOrigin(): Point3d | undefined { return this._buffers.viewIndependentOrigin; }\r\n\r\n public override get asInstanced() { return this; }\r\n public override get asLUT() { return this._repr.asLUT; }\r\n public override get asMesh() { return this._repr.asMesh; }\r\n public override get asSurface() { return this._repr.asSurface; }\r\n public override get asEdge() { return this._repr.asEdge; }\r\n public override get asSilhouette() { return this._repr.asSilhouette; }\r\n\r\n public get renderOrder() { return this._repr.renderOrder; }\r\n public override get isLitSurface() { return this._repr.isLitSurface; }\r\n public override get hasBakedLighting() { return this._repr.hasBakedLighting; }\r\n public override get hasAnimation() { return this._repr.hasAnimation; }\r\n public get qOrigin() { return this._repr.qOrigin; }\r\n public get qScale() { return this._repr.qScale; }\r\n public override get materialInfo() { return this._repr.materialInfo; }\r\n public override get polylineBuffers() { return this._repr.polylineBuffers; }\r\n public override get isEdge() { return this._repr.isEdge; }\r\n public override get hasFeatures() { return this._buffers.hasFeatures; }\r\n public get techniqueId(): TechniqueId { return this._repr.techniqueId; }\r\n public override get supportsThematicDisplay() { return this._repr.supportsThematicDisplay; }\r\n\r\n public getRenderPass(target: Target) { return this._repr.getRenderPass(target); }\r\n public override wantWoWReversal(params: ShaderProgramParams) { return this._repr.wantWoWReversal(params); }\r\n public override getLineCode(params: ShaderProgramParams) { return this._repr.getLineCode(params); }\r\n public override getLineWeight(params: ShaderProgramParams) { return this._repr.getLineWeight(params); }\r\n public override wantMonochrome(target: Target) { return this._repr.wantMonochrome(target); }\r\n\r\n public static create(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n container.addBuffer(buffers.transforms, InstanceBuffers.createTransformBufferParameters(repr.techniqueId));\r\n\r\n if (buffers.symbology) {\r\n const attrInstanceOverrides = AttributeMap.findAttribute(\"a_instanceOverrides\", techId, true);\r\n const attrInstanceRgba = AttributeMap.findAttribute(\"a_instanceRgba\", techId, true);\r\n assert(attrInstanceOverrides !== undefined);\r\n assert(attrInstanceRgba !== undefined);\r\n container.addBuffer(buffers.symbology, [\r\n BufferParameters.create(attrInstanceOverrides.location, 4, GL.DataType.UnsignedByte, false, 8, 0, true),\r\n BufferParameters.create(attrInstanceRgba.location, 4, GL.DataType.UnsignedByte, false, 8, 4, true),\r\n ]);\r\n }\r\n if (buffers.featureIds) {\r\n const attrFeatureId = AttributeMap.findAttribute(\"a_featureId\", techId, true);\r\n assert(attrFeatureId !== undefined);\r\n container.addBuffer(buffers.featureIds, [BufferParameters.create(attrFeatureId.location, 3, GL.DataType.UnsignedByte, false, 0, 0, true)]);\r\n }\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n public static createPattern(repr: LUTGeometry, ownsBuffers: boolean, buffers: PatternBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n const attrX = AttributeMap.findAttribute(\"a_patternX\", techId, true);\r\n const attrY = AttributeMap.findAttribute(\"a_patternY\", techId, true);\r\n assert(undefined !== attrX && undefined !== attrY);\r\n container.addBuffer(buffers.offsets, [\r\n BufferParameters.create(attrX.location, 1, GL.DataType.Float, false, 8, 0, true),\r\n BufferParameters.create(attrY.location, 1, GL.DataType.Float, false, 8, 4, true),\r\n ]);\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n private constructor(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers | PatternBuffers, container: BuffersContainer) {\r\n super();\r\n this._repr = repr;\r\n this._ownsBuffers = ownsBuffers;\r\n this._buffers = buffers;\r\n this._buffersContainer = container;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n if (!this._repr.isDisposed)\r\n return false;\r\n\r\n return !this._ownsBuffers || this._buffers.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n this._repr.dispose();\r\n if (this._ownsBuffers)\r\n dispose(this._buffers);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target) {\r\n assert(false, \"Should never be called\");\r\n return false;\r\n }\r\n\r\n public draw() {\r\n this._repr.drawInstanced(this._buffers.numInstances, this._buffersContainer);\r\n }\r\n\r\n public override computeRange(output?: Range3d): Range3d {\r\n return this._buffers.range.clone(output);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this._repr.collectStatistics(stats);\r\n if (this._ownsBuffers)\r\n this._buffers.collectStatistics(stats);\r\n }\r\n\r\n public get patternParams(): Float32Array { return this._buffers.patternParams; }\r\n public get patternTransforms(): PatternTransforms | undefined { return this._buffers.patternTransforms; }\r\n public get patternFeatureId(): Float32Array { return this._buffers.patternFeatureId; }\r\n}\r\n"]}
1
+ {"version":3,"file":"InstancedGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/InstancedGeometry.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, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams, PatternGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry, LUTGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { Matrix4 } from \"./Matrix\";\r\n\r\n/** @internal */\r\nexport function isInstancedGraphicParams(params: any): params is InstancedGraphicParams {\r\n return typeof params === \"object\" && typeof params.count === \"number\" && params.transforms instanceof Float32Array && params.transformCenter instanceof Point3d;\r\n}\r\n\r\nclass InstanceData {\r\n public readonly numInstances: number;\r\n public readonly range: Range3d;\r\n // A transform including only rtcCenter.\r\n private readonly _rtcOnlyTransform: Transform;\r\n // A transform from _rtcCenter including model matrix\r\n private readonly _rtcModelTransform: Transform;\r\n // The model matrix from which _rtcModelTransform was previously computed. If it changes, _rtcModelTransform must be recomputed.\r\n private readonly _modelMatrix = Transform.createIdentity();\r\n\r\n protected constructor(numInstances: number, rtcCenter: Point3d, range: Range3d) {\r\n this.numInstances = numInstances;\r\n this.range = range;\r\n this._rtcOnlyTransform = Transform.createTranslation(rtcCenter);\r\n this._rtcModelTransform = this._rtcOnlyTransform.clone();\r\n }\r\n\r\n public getRtcModelTransform(modelMatrix: Transform): Transform {\r\n if (!this._modelMatrix.isAlmostEqual(modelMatrix)) {\r\n modelMatrix.clone(this._modelMatrix);\r\n modelMatrix.multiplyTransformTransform(this._rtcOnlyTransform, this._rtcModelTransform);\r\n }\r\n\r\n return this._rtcModelTransform;\r\n }\r\n\r\n public getRtcOnlyTransform(): Transform {\r\n return this._rtcOnlyTransform;\r\n }\r\n\r\n private static readonly _noFeatureId = new Float32Array([0, 0, 0]);\r\n public get patternFeatureId(): Float32Array {\r\n return InstanceData._noFeatureId;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport interface PatternTransforms {\r\n readonly orgTransform: Matrix4;\r\n readonly localToModel: Matrix4;\r\n readonly symbolToLocal: Matrix4;\r\n readonly origin: Float32Array;\r\n}\r\n\r\n/** @internal */\r\nexport class InstanceBuffers extends InstanceData {\r\n private static readonly _patternParams = new Float32Array([0, 0, 0, 0]);\r\n\r\n public readonly transforms: BufferHandle;\r\n public readonly featureIds?: BufferHandle;\r\n public readonly hasFeatures: boolean;\r\n public readonly symbology?: BufferHandle;\r\n public readonly patternParams = InstanceBuffers._patternParams;\r\n public readonly patternTransforms = undefined;\r\n public readonly viewIndependentOrigin = undefined;\r\n\r\n private constructor(count: number, transforms: BufferHandle, rtcCenter: Point3d, range: Range3d, symbology?: BufferHandle, featureIds?: BufferHandle) {\r\n super(count, rtcCenter, range);\r\n this.transforms = transforms;\r\n this.featureIds = featureIds;\r\n this.hasFeatures = undefined !== featureIds;\r\n this.symbology = symbology;\r\n }\r\n\r\n public static createTransformBufferParameters(techniqueId: TechniqueId): BufferParameters[] {\r\n const params: BufferParameters[] = [];\r\n const numRows = 3;\r\n let row = 0;\r\n while (row < numRows) {\r\n // 3 rows per instance; 4 floats per row; 4 bytes per float.\r\n const floatsPerRow = 4;\r\n const bytesPerVertex = floatsPerRow * 4;\r\n const offset = row * bytesPerVertex;\r\n const stride = 3 * bytesPerVertex;\r\n const name = `a_instanceMatrixRow${row}`;\r\n const details = AttributeMap.findAttribute(name, techniqueId, true);\r\n assert(details !== undefined);\r\n const bParams: BufferParameters = {\r\n glAttribLoc: details.location,\r\n glSize: floatsPerRow,\r\n glType: GL.DataType.Float,\r\n glNormalized: false,\r\n glStride: stride,\r\n glOffset: offset,\r\n glInstanced: true,\r\n };\r\n params.push(bParams);\r\n row++;\r\n }\r\n return params;\r\n }\r\n\r\n public static create(params: InstancedGraphicParams, range: Range3d): InstanceBuffers | undefined {\r\n const { count, featureIds, symbologyOverrides, transforms } = params;\r\n\r\n assert(count > 0 && Math.floor(count) === count);\r\n assert(count === transforms.length / 12);\r\n assert(undefined === featureIds || count === featureIds.length / 3);\r\n assert(undefined === symbologyOverrides || count * 8 === symbologyOverrides.length);\r\n\r\n let idBuf: BufferHandle | undefined;\r\n if (undefined !== featureIds && undefined === (idBuf = BufferHandle.createArrayBuffer(featureIds)))\r\n return undefined;\r\n\r\n let symBuf: BufferHandle | undefined;\r\n if (undefined !== symbologyOverrides && undefined === (symBuf = BufferHandle.createArrayBuffer(symbologyOverrides)))\r\n return undefined;\r\n\r\n const tfBuf = BufferHandle.createArrayBuffer(transforms);\r\n return undefined !== tfBuf ? new InstanceBuffers(count, tfBuf, params.transformCenter, range, symBuf, idBuf) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.transforms.isDisposed\r\n && (undefined === this.featureIds || this.featureIds.isDisposed)\r\n && (undefined === this.symbology || this.symbology.isDisposed);\r\n }\r\n\r\n public dispose() {\r\n dispose(this.transforms);\r\n dispose(this.featureIds);\r\n dispose(this.symbology);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const featureBytes = undefined !== this.featureIds ? this.featureIds.bytesUsed : 0;\r\n const symBytes = undefined !== this.symbology ? this.symbology.bytesUsed : 0;\r\n\r\n const bytesUsed = this.transforms.bytesUsed + symBytes + featureBytes;\r\n stats.addInstances(bytesUsed);\r\n }\r\n\r\n private static extendTransformedRange(tfs: Float32Array, i: number, range: Range3d, x: number, y: number, z: number) {\r\n range.extendXYZ(tfs[i + 3] + tfs[i + 0] * x + tfs[i + 1] * y + tfs[i + 2] * z,\r\n tfs[i + 7] + tfs[i + 4] * x + tfs[i + 5] * y + tfs[i + 6] * z,\r\n tfs[i + 11] + tfs[i + 8] * x + tfs[i + 9] * y + tfs[i + 10] * z);\r\n }\r\n\r\n public static computeRange(reprRange: Range3d, tfs: Float32Array, rtcCenter: Point3d, out?: Range3d): Range3d {\r\n const range = out ?? new Range3d();\r\n\r\n const numFloatsPerTransform = 3 * 4;\r\n assert(0 === tfs.length % (3 * 4));\r\n\r\n for (let i = 0; i < tfs.length; i += numFloatsPerTransform) {\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.low.x, reprRange.high.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.low.y, reprRange.high.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.low.z);\r\n this.extendTransformedRange(tfs, i, range, reprRange.high.x, reprRange.high.y, reprRange.high.z);\r\n }\r\n\r\n range.low.addInPlace(rtcCenter);\r\n range.high.addInPlace(rtcCenter);\r\n\r\n return range.clone(out);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class PatternBuffers extends InstanceData {\r\n private readonly _featureId?: Float32Array;\r\n\r\n private constructor(\r\n count: number,\r\n rtcCenter: Point3d,\r\n range: Range3d,\r\n public readonly patternParams: Float32Array, // [ isAreaPattern, spacingX, spacingY, scale ]\r\n public readonly origin: Float32Array, // [ x, y ]\r\n public readonly orgTransform: Matrix4,\r\n public readonly localToModel: Matrix4,\r\n public readonly symbolToLocal: Matrix4,\r\n public readonly offsets: BufferHandle,\r\n featureId: number | undefined,\r\n public readonly viewIndependentOrigin: Point3d | undefined\r\n ) {\r\n super(count, rtcCenter, range);\r\n this.patternTransforms = this;\r\n if (undefined !== featureId) {\r\n this._featureId = new Float32Array([\r\n (featureId & 0x0000ff) >>> 0,\r\n (featureId & 0x00ff00) >>> 8,\r\n (featureId & 0xff0000) >>> 16,\r\n ]);\r\n }\r\n }\r\n\r\n public static create(params: PatternGraphicParams): PatternBuffers | undefined {\r\n const count = params.xyOffsets.byteLength / 2;\r\n assert(Math.floor(count) === count);\r\n\r\n const offsets = BufferHandle.createArrayBuffer(params.xyOffsets);\r\n if (!offsets)\r\n return undefined;\r\n\r\n return new PatternBuffers(\r\n count,\r\n new Point3d(),\r\n params.range,\r\n new Float32Array([1, params.spacing.x, params.spacing.y, params.scale]),\r\n new Float32Array([params.origin.x, params.origin.y]),\r\n Matrix4.fromTransform(params.orgTransform),\r\n Matrix4.fromTransform(params.patternToModel),\r\n Matrix4.fromTransform(Transform.createTranslation(params.symbolTranslation)),\r\n offsets,\r\n params.featureId,\r\n params.viewIndependentOrigin,\r\n );\r\n }\r\n\r\n public readonly patternTransforms: PatternTransforms;\r\n\r\n public get hasFeatures(): boolean {\r\n return undefined !== this._featureId;\r\n }\r\n\r\n public override get patternFeatureId(): Float32Array {\r\n return this._featureId ?? super.patternFeatureId;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.offsets.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.offsets);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addInstances(this.offsets.bytesUsed);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class InstancedGeometry extends CachedGeometry {\r\n private readonly _buffersContainer: BuffersContainer;\r\n private readonly _buffers: InstanceBuffers | PatternBuffers;\r\n private readonly _repr: LUTGeometry;\r\n private readonly _ownsBuffers: boolean;\r\n\r\n public getRtcModelTransform(modelMatrix: Transform) { return this._buffers.getRtcModelTransform(modelMatrix); }\r\n public getRtcOnlyTransform() { return this._buffers.getRtcOnlyTransform(); }\r\n\r\n public override get viewIndependentOrigin(): Point3d | undefined { return this._buffers.viewIndependentOrigin; }\r\n\r\n public override get asInstanced() { return this; }\r\n public override get asLUT() { return this._repr.asLUT; }\r\n public override get asMesh() { return this._repr.asMesh; }\r\n public override get asSurface() { return this._repr.asSurface; }\r\n public override get asEdge() { return this._repr.asEdge; }\r\n public override get asSilhouette() { return this._repr.asSilhouette; }\r\n public override get asIndexedEdge() { return this._repr.asIndexedEdge; }\r\n\r\n public get renderOrder() { return this._repr.renderOrder; }\r\n public override get isLitSurface() { return this._repr.isLitSurface; }\r\n public override get hasBakedLighting() { return this._repr.hasBakedLighting; }\r\n public override get hasAnimation() { return this._repr.hasAnimation; }\r\n public get qOrigin() { return this._repr.qOrigin; }\r\n public get qScale() { return this._repr.qScale; }\r\n public override get materialInfo() { return this._repr.materialInfo; }\r\n public override get polylineBuffers() { return this._repr.polylineBuffers; }\r\n public override get isEdge() { return this._repr.isEdge; }\r\n public override get hasFeatures() { return this._buffers.hasFeatures; }\r\n public get techniqueId(): TechniqueId { return this._repr.techniqueId; }\r\n public override get supportsThematicDisplay() { return this._repr.supportsThematicDisplay; }\r\n\r\n public override getPass(target: Target) { return this._repr.getPass(target); }\r\n public override wantWoWReversal(params: ShaderProgramParams) { return this._repr.wantWoWReversal(params); }\r\n public override getLineCode(params: ShaderProgramParams) { return this._repr.getLineCode(params); }\r\n public override getLineWeight(params: ShaderProgramParams) { return this._repr.getLineWeight(params); }\r\n public override wantMonochrome(target: Target) { return this._repr.wantMonochrome(target); }\r\n\r\n public static create(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n container.addBuffer(buffers.transforms, InstanceBuffers.createTransformBufferParameters(repr.techniqueId));\r\n\r\n if (buffers.symbology) {\r\n const attrInstanceOverrides = AttributeMap.findAttribute(\"a_instanceOverrides\", techId, true);\r\n const attrInstanceRgba = AttributeMap.findAttribute(\"a_instanceRgba\", techId, true);\r\n assert(attrInstanceOverrides !== undefined);\r\n assert(attrInstanceRgba !== undefined);\r\n container.addBuffer(buffers.symbology, [\r\n BufferParameters.create(attrInstanceOverrides.location, 4, GL.DataType.UnsignedByte, false, 8, 0, true),\r\n BufferParameters.create(attrInstanceRgba.location, 4, GL.DataType.UnsignedByte, false, 8, 4, true),\r\n ]);\r\n }\r\n if (buffers.featureIds) {\r\n const attrFeatureId = AttributeMap.findAttribute(\"a_featureId\", techId, true);\r\n assert(attrFeatureId !== undefined);\r\n container.addBuffer(buffers.featureIds, [BufferParameters.create(attrFeatureId.location, 3, GL.DataType.UnsignedByte, false, 0, 0, true)]);\r\n }\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n public static createPattern(repr: LUTGeometry, ownsBuffers: boolean, buffers: PatternBuffers): InstancedGeometry {\r\n const techId = repr.techniqueId;\r\n const container = BuffersContainer.create();\r\n container.appendLinkages(repr.lutBuffers.linkages);\r\n\r\n const attrX = AttributeMap.findAttribute(\"a_patternX\", techId, true);\r\n const attrY = AttributeMap.findAttribute(\"a_patternY\", techId, true);\r\n assert(undefined !== attrX && undefined !== attrY);\r\n container.addBuffer(buffers.offsets, [\r\n BufferParameters.create(attrX.location, 1, GL.DataType.Float, false, 8, 0, true),\r\n BufferParameters.create(attrY.location, 1, GL.DataType.Float, false, 8, 4, true),\r\n ]);\r\n\r\n return new this(repr, ownsBuffers, buffers, container);\r\n }\r\n\r\n private constructor(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers | PatternBuffers, container: BuffersContainer) {\r\n super();\r\n this._repr = repr;\r\n this._ownsBuffers = ownsBuffers;\r\n this._buffers = buffers;\r\n this._buffersContainer = container;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n if (!this._repr.isDisposed)\r\n return false;\r\n\r\n return !this._ownsBuffers || this._buffers.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n this._repr.dispose();\r\n if (this._ownsBuffers)\r\n dispose(this._buffers);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target) {\r\n assert(false, \"Should never be called\");\r\n return false;\r\n }\r\n\r\n public draw() {\r\n this._repr.drawInstanced(this._buffers.numInstances, this._buffersContainer);\r\n }\r\n\r\n public override computeRange(output?: Range3d): Range3d {\r\n return this._buffers.range.clone(output);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this._repr.collectStatistics(stats);\r\n if (this._ownsBuffers)\r\n this._buffers.collectStatistics(stats);\r\n }\r\n\r\n public get patternParams(): Float32Array { return this._buffers.patternParams; }\r\n public get patternTransforms(): PatternTransforms | undefined { return this._buffers.patternTransforms; }\r\n public get patternFeatureId(): Float32Array { return this._buffers.patternFeatureId; }\r\n}\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module WebGL
3
3
  */
4
4
  import { RenderMaterial } from "@itwin/core-common";
5
- import { SurfaceMaterial, SurfaceMaterialAtlas } from "../primitives/VertexTable";
5
+ import { SurfaceMaterial, SurfaceMaterialAtlas } from "../primitives/SurfaceParams";
6
6
  /** Parameters describing a single material. The parameters used are:
7
7
  * - diffuse color rgb (vec3).
8
8
  * - alpha (float in [0..1])
@@ -1 +1 @@
1
- {"version":3,"file":"Material.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Material.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGlF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAC1C,gBAAuB,OAAO,EAAE,QAAQ,CAAgD;IAGxF,SAAgB,OAAO,EAAE,KAAK,CAAS;IACvC,SAAgB,YAAY,eAAuB;IACnD,SAAgB,IAAI,eAAuB;IAE3C,IAAW,YAAY,YAAgC;IACvD,IAAW,cAAc,YAAgC;IACzD,IAAW,eAAe,YAAsD;gBAE7D,MAAM,EAAE,cAAc,CAAC,MAAM;IA2BhD,OAAO,CAAC,UAAU;CAQnB;AAID;;GAEG;AACH,oBAAY,YAAY,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE3D,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAOhG"}
1
+ {"version":3,"file":"Material.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Material.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGpF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAC1C,gBAAuB,OAAO,EAAE,QAAQ,CAAgD;IAGxF,SAAgB,OAAO,EAAE,KAAK,CAAS;IACvC,SAAgB,YAAY,eAAuB;IACnD,SAAgB,IAAI,eAAuB;IAE3C,IAAW,YAAY,YAAgC;IACvD,IAAW,cAAc,YAAgC;IACzD,IAAW,eAAe,YAAsD;gBAE7D,MAAM,EAAE,cAAc,CAAC,MAAM;IA2BhD,OAAO,CAAC,UAAU;CAQnB;AAID;;GAEG;AACH,oBAAY,YAAY,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE3D,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAOhG"}