@itwin/core-frontend 4.8.0-dev.4 → 4.8.0-dev.41

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 (1086) hide show
  1. package/CHANGELOG.md +62 -1
  2. package/README.md +9 -1
  3. package/ThirdPartyNotices.md +3 -3
  4. package/lib/cjs/AccuDraw.d.ts +6 -1
  5. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  6. package/lib/cjs/AccuDraw.js +18 -6
  7. package/lib/cjs/AccuDraw.js.map +1 -1
  8. package/lib/cjs/AccuSnap.d.ts +9 -0
  9. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  10. package/lib/cjs/AccuSnap.js +15 -3
  11. package/lib/cjs/AccuSnap.js.map +1 -1
  12. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  13. package/lib/cjs/AuxCoordSys.js +2 -2
  14. package/lib/cjs/AuxCoordSys.js.map +1 -1
  15. package/lib/cjs/DecorationsCache.d.ts +1 -1
  16. package/lib/cjs/DecorationsCache.d.ts.map +1 -1
  17. package/lib/cjs/DecorationsCache.js.map +1 -1
  18. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  19. package/lib/cjs/EnvironmentDecorations.js +2 -2
  20. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  21. package/lib/cjs/HitDetail.d.ts.map +1 -1
  22. package/lib/cjs/HitDetail.js +3 -3
  23. package/lib/cjs/HitDetail.js.map +1 -1
  24. package/lib/cjs/IModelApp.d.ts +2 -3
  25. package/lib/cjs/IModelApp.d.ts.map +1 -1
  26. package/lib/cjs/IModelApp.js +2 -2
  27. package/lib/cjs/IModelApp.js.map +1 -1
  28. package/lib/cjs/IModelConnection.d.ts +16 -6
  29. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  30. package/lib/cjs/IModelConnection.js +21 -7
  31. package/lib/cjs/IModelConnection.js.map +1 -1
  32. package/lib/cjs/IpcApp.d.ts +5 -1
  33. package/lib/cjs/IpcApp.d.ts.map +1 -1
  34. package/lib/cjs/IpcApp.js +11 -5
  35. package/lib/cjs/IpcApp.js.map +1 -1
  36. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  37. package/lib/cjs/LocalhostIpcApp.js +2 -1
  38. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  39. package/lib/cjs/NativeApp.d.ts.map +1 -1
  40. package/lib/cjs/NativeApp.js +2 -1
  41. package/lib/cjs/NativeApp.js.map +1 -1
  42. package/lib/cjs/NoRenderApp.d.ts +2 -0
  43. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  44. package/lib/cjs/NoRenderApp.js +7 -0
  45. package/lib/cjs/NoRenderApp.js.map +1 -1
  46. package/lib/cjs/PlanarClipMaskState.d.ts +8 -3
  47. package/lib/cjs/PlanarClipMaskState.d.ts.map +1 -1
  48. package/lib/cjs/PlanarClipMaskState.js +47 -17
  49. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  50. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
  51. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  52. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +15 -4
  53. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  54. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  55. package/lib/cjs/SheetViewState.js +3 -3
  56. package/lib/cjs/SheetViewState.js.map +1 -1
  57. package/lib/cjs/SpatialViewState.d.ts +14 -1
  58. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  59. package/lib/cjs/SpatialViewState.js +17 -0
  60. package/lib/cjs/SpatialViewState.js.map +1 -1
  61. package/lib/cjs/SubCategoriesCache.d.ts +3 -1
  62. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  63. package/lib/cjs/SubCategoriesCache.js +19 -5
  64. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  65. package/lib/cjs/ViewContext.d.ts +2 -1
  66. package/lib/cjs/ViewContext.d.ts.map +1 -1
  67. package/lib/cjs/ViewContext.js +8 -8
  68. package/lib/cjs/ViewContext.js.map +1 -1
  69. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  70. package/lib/cjs/ViewCreator3d.js +1 -0
  71. package/lib/cjs/ViewCreator3d.js.map +1 -1
  72. package/lib/cjs/ViewManager.d.ts +4 -7
  73. package/lib/cjs/ViewManager.d.ts.map +1 -1
  74. package/lib/cjs/ViewManager.js +4 -7
  75. package/lib/cjs/ViewManager.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.d.ts +3 -1
  77. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  78. package/lib/cjs/ViewingSpace.js +11 -2
  79. package/lib/cjs/ViewingSpace.js.map +1 -1
  80. package/lib/cjs/Viewport.d.ts +1 -3
  81. package/lib/cjs/Viewport.d.ts.map +1 -1
  82. package/lib/cjs/Viewport.js +3 -5
  83. package/lib/cjs/Viewport.js.map +1 -1
  84. package/lib/cjs/common/WorkerProxy.d.ts +7 -25
  85. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  86. package/lib/cjs/common/WorkerProxy.js +2 -1
  87. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  88. package/lib/cjs/common/gltf/GltfSchema.d.ts +15 -1
  89. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  90. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  91. package/lib/cjs/common/imdl/CompactEdges.d.ts +1 -1
  92. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  93. package/lib/cjs/common/imdl/CompactEdges.js +2 -2
  94. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  95. package/lib/cjs/common/imdl/ImdlModel.d.ts +5 -3
  96. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
  97. package/lib/cjs/common/imdl/ImdlModel.js +49 -42
  98. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  99. package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -4
  100. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  101. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  102. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +4 -2
  103. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  104. package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -8
  105. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  106. package/lib/cjs/common/internal/Symbols.d.ts +10 -0
  107. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
  108. package/lib/cjs/common/internal/Symbols.js +20 -0
  109. package/lib/cjs/common/internal/Symbols.js.map +1 -0
  110. package/lib/cjs/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  111. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -0
  112. package/lib/cjs/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  113. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -0
  114. package/lib/cjs/common/internal/render/ColorMap.d.ts.map +1 -0
  115. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -0
  116. package/lib/cjs/common/internal/render/DisplayParams.d.ts.map +1 -0
  117. package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.js +3 -6
  118. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -0
  119. package/lib/cjs/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  120. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -0
  121. package/lib/cjs/{render/primitives → common/internal/render}/EdgeParams.js +50 -16
  122. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -0
  123. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  124. package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  125. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  126. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -0
  127. package/lib/cjs/common/internal/render/GeometryList.d.ts.map +1 -0
  128. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -0
  129. package/lib/{esm/render/primitives/geometry → cjs/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  130. package/lib/cjs/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  131. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  132. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -0
  133. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
  134. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  135. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +252 -0
  136. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  137. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
  138. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
  139. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js +146 -0
  140. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
  141. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  142. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  143. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  144. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -0
  145. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  146. package/lib/cjs/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  147. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  148. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -0
  149. package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -0
  150. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -0
  151. package/lib/cjs/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  152. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -0
  153. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +82 -0
  154. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  155. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +82 -104
  156. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -0
  157. package/lib/cjs/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  158. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -0
  159. package/lib/{esm/common/render/primitives → cjs/common/internal/render}/PointStringParams.d.ts +3 -0
  160. package/lib/cjs/common/internal/render/PointStringParams.d.ts.map +1 -0
  161. package/lib/cjs/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  162. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -0
  163. package/lib/{esm/render/primitives → cjs/common/internal/render}/Polyface.d.ts +1 -1
  164. package/lib/cjs/common/internal/render/Polyface.d.ts.map +1 -0
  165. package/lib/cjs/common/internal/render/Polyface.js.map +1 -0
  166. package/lib/cjs/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
  167. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -0
  168. package/lib/cjs/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  169. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -0
  170. package/lib/{esm/render/primitives → cjs/common/internal/render}/Primitives.d.ts +3 -34
  171. package/lib/cjs/common/internal/render/Primitives.d.ts.map +1 -0
  172. package/lib/cjs/{render/primitives → common/internal/render}/Primitives.js +1 -44
  173. package/lib/cjs/common/internal/render/Primitives.js.map +1 -0
  174. package/lib/{esm/render/primitives → cjs/common/internal/render}/Strokes.d.ts +1 -1
  175. package/lib/cjs/common/internal/render/Strokes.d.ts.map +1 -0
  176. package/lib/cjs/common/internal/render/Strokes.js.map +1 -0
  177. package/lib/cjs/common/internal/render/SurfaceParams.d.ts.map +1 -0
  178. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -0
  179. package/lib/cjs/common/internal/render/VertexIndices.d.ts.map +1 -0
  180. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -0
  181. package/lib/cjs/common/internal/render/VertexKey.d.ts.map +1 -0
  182. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -0
  183. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -0
  184. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -0
  185. package/lib/{esm/render/primitives → cjs/common/internal/render}/VertexTableBuilder.d.ts +5 -4
  186. package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  187. package/lib/cjs/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  188. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -0
  189. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  190. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  191. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
  192. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -0
  193. package/lib/cjs/common/render/BatchOptions.d.ts +46 -0
  194. package/lib/cjs/common/render/BatchOptions.d.ts.map +1 -0
  195. package/lib/cjs/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  196. package/lib/cjs/common/render/BatchOptions.js.map +1 -0
  197. package/lib/cjs/common/render/GraphicAssembler.d.ts +197 -0
  198. package/lib/cjs/common/render/GraphicAssembler.d.ts.map +1 -0
  199. package/lib/cjs/common/render/GraphicAssembler.js +386 -0
  200. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -0
  201. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts +89 -0
  202. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  203. package/lib/cjs/common/render/GraphicDescriptionBuilder.js +34 -0
  204. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -0
  205. package/lib/cjs/common/render/GraphicDescriptionContext.d.ts +85 -0
  206. package/lib/cjs/common/render/GraphicDescriptionContext.d.ts.map +1 -0
  207. package/lib/cjs/common/render/GraphicDescriptionContext.js +22 -0
  208. package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -0
  209. package/lib/cjs/common/render/GraphicPrimitive.d.ts.map +1 -0
  210. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -0
  211. package/lib/cjs/common/render/GraphicType.d.ts +62 -0
  212. package/lib/cjs/common/render/GraphicType.d.ts.map +1 -0
  213. package/lib/cjs/common/render/GraphicType.js +70 -0
  214. package/lib/cjs/common/render/GraphicType.js.map +1 -0
  215. package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -0
  216. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -0
  217. package/lib/cjs/common.d.ts +14 -0
  218. package/lib/cjs/common.d.ts.map +1 -0
  219. package/lib/cjs/common.js +35 -0
  220. package/lib/cjs/common.js.map +1 -0
  221. package/lib/cjs/core-frontend.d.ts +5 -43
  222. package/lib/cjs/core-frontend.d.ts.map +1 -1
  223. package/lib/cjs/core-frontend.js +5 -43
  224. package/lib/cjs/core-frontend.js.map +1 -1
  225. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  226. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  227. package/lib/cjs/internal/cross-package.d.ts +7 -0
  228. package/lib/cjs/internal/cross-package.d.ts.map +1 -0
  229. package/lib/cjs/internal/cross-package.js +17 -0
  230. package/lib/cjs/internal/cross-package.js.map +1 -0
  231. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +33 -0
  232. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  233. package/lib/cjs/internal/render/PrimitiveBuilder.js +140 -0
  234. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -0
  235. package/lib/cjs/render/FeatureSymbology.js +3 -3
  236. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  237. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  238. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  239. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  240. package/lib/cjs/render/GraphicBuilder.d.ts +7 -254
  241. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  242. package/lib/cjs/render/GraphicBuilder.js +18 -235
  243. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  244. package/lib/cjs/render/MeshArgs.d.ts +56 -0
  245. package/lib/cjs/render/MeshArgs.d.ts.map +1 -0
  246. package/lib/cjs/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
  247. package/lib/cjs/render/MeshArgs.js.map +1 -0
  248. package/lib/cjs/render/MockRender.d.ts +7 -5
  249. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  250. package/lib/cjs/render/MockRender.js +6 -2
  251. package/lib/cjs/render/MockRender.js.map +1 -1
  252. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  253. package/lib/cjs/render/ParticleCollectionBuilder.js +4 -3
  254. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  255. package/lib/cjs/render/PolylineArgs.d.ts +31 -0
  256. package/lib/cjs/render/PolylineArgs.d.ts.map +1 -0
  257. package/lib/cjs/render/PolylineArgs.js +10 -0
  258. package/lib/cjs/render/PolylineArgs.js.map +1 -0
  259. package/lib/cjs/render/RealityMeshParams.js +1 -1
  260. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  261. package/lib/cjs/render/RenderSystem.d.ts +36 -7
  262. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  263. package/lib/cjs/render/RenderSystem.js +94 -6
  264. package/lib/cjs/render/RenderSystem.js.map +1 -1
  265. package/lib/cjs/render/RenderTarget.d.ts +49 -5
  266. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  267. package/lib/cjs/render/RenderTarget.js +33 -5
  268. package/lib/cjs/render/RenderTarget.js.map +1 -1
  269. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  270. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  271. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  272. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  273. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  274. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  275. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  276. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  277. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  278. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  279. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  280. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
  281. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  282. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  283. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  284. package/lib/cjs/render/webgl/Graphic.d.ts +1 -1
  285. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  286. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  287. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  288. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  289. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  290. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
  291. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  293. package/lib/cjs/render/webgl/Material.d.ts +5 -1
  294. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  295. package/lib/cjs/render/webgl/Material.js +5 -0
  296. package/lib/cjs/render/webgl/Material.js.map +1 -1
  297. package/lib/cjs/render/webgl/Mesh.d.ts +6 -3
  298. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  299. package/lib/cjs/render/webgl/Mesh.js +3 -1
  300. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  301. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  302. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  303. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  304. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  305. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  306. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +2 -0
  307. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/PlanarClassifier.js +38 -11
  309. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  310. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +3 -3
  311. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/PlanarTextureProjection.js +53 -19
  313. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  314. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
  315. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  316. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  317. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  318. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  320. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  321. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  323. package/lib/cjs/render/webgl/Primitive.d.ts +1 -1
  324. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  325. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  326. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  327. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  328. package/lib/cjs/render/webgl/SolarShadowMap.js +2 -2
  329. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  330. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  331. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  332. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  333. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  334. package/lib/cjs/render/webgl/System.d.ts +7 -6
  335. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/System.js +2 -2
  337. package/lib/cjs/render/webgl/System.js.map +1 -1
  338. package/lib/cjs/render/webgl/Target.d.ts +3 -0
  339. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  340. package/lib/cjs/render/webgl/Target.js +6 -1
  341. package/lib/cjs/render/webgl/Target.js.map +1 -1
  342. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  343. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  345. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  346. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  347. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  348. package/lib/cjs/tile/B3dmReader.d.ts +1 -2
  349. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  350. package/lib/cjs/tile/B3dmReader.js +1 -2
  351. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  352. package/lib/cjs/tile/DynamicIModelTile.js +1 -0
  353. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  354. package/lib/cjs/tile/GltfReader.d.ts +30 -6
  355. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  356. package/lib/cjs/tile/GltfReader.js +245 -9
  357. package/lib/cjs/tile/GltfReader.js.map +1 -1
  358. package/lib/cjs/tile/GraphicsCollector.d.ts.map +1 -1
  359. package/lib/cjs/tile/GraphicsCollector.js +5 -2
  360. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  361. package/lib/cjs/tile/I3dmReader.d.ts +1 -2
  362. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  363. package/lib/cjs/tile/I3dmReader.js +1 -2
  364. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  365. package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
  366. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -1
  367. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  368. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -0
  369. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  370. package/lib/cjs/tile/ImdlGraphicsCreator.js +88 -5
  371. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  372. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  373. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  374. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  375. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  376. package/lib/cjs/tile/OPCFormatInterpreter.js +7 -2
  377. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  378. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  379. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  380. package/lib/cjs/tile/PntsReader.js +1 -1
  381. package/lib/cjs/tile/PntsReader.js.map +1 -1
  382. package/lib/cjs/tile/PrimaryTileTree.d.ts +6 -2
  383. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  384. package/lib/cjs/tile/PrimaryTileTree.js +26 -1
  385. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  386. package/lib/cjs/tile/RealityModelTileTree.js +1 -1
  387. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  388. package/lib/cjs/tile/RealityTile.d.ts +2 -3
  389. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  390. package/lib/cjs/tile/RealityTile.js +0 -1
  391. package/lib/cjs/tile/RealityTile.js.map +1 -1
  392. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  393. package/lib/cjs/tile/RealityTileLoader.js +1 -0
  394. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  395. package/lib/cjs/tile/TileGeometryCollector.d.ts +4 -4
  396. package/lib/cjs/tile/TileGeometryCollector.js +1 -1
  397. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  398. package/lib/cjs/tile/TileTreeReference.d.ts +0 -4
  399. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  400. package/lib/cjs/tile/TileTreeReference.js +0 -3
  401. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  402. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -0
  403. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  404. package/lib/cjs/tile/map/ArcGisUtilities.js +7 -5
  405. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  406. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  407. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
  408. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  409. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  410. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  411. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  412. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  413. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  414. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  415. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +1 -1
  416. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  417. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  418. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  419. package/lib/cjs/tile/map/MapTileTree.js +5 -5
  420. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  421. package/lib/cjs/tools/AccuDrawTool.d.ts +21 -0
  422. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  423. package/lib/cjs/tools/AccuDrawTool.js +93 -1
  424. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  425. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  426. package/lib/cjs/tools/ClipViewTool.js +16 -16
  427. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  428. package/lib/cjs/tools/ElementSetTool.d.ts +9 -5
  429. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  430. package/lib/cjs/tools/ElementSetTool.js +9 -5
  431. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  432. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  433. package/lib/cjs/tools/MeasureTool.js +9 -9
  434. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  435. package/lib/cjs/tools/ToolAdmin.d.ts +2 -0
  436. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  437. package/lib/cjs/tools/ToolAdmin.js +6 -1
  438. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  439. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  440. package/lib/cjs/tools/ViewTool.js +8 -8
  441. package/lib/cjs/tools/ViewTool.js.map +1 -1
  442. package/lib/cjs/workers/RegisterWorker.d.ts +2 -1
  443. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -1
  444. package/lib/cjs/workers/RegisterWorker.js +2 -1
  445. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  446. package/lib/esm/AccuDraw.d.ts +6 -1
  447. package/lib/esm/AccuDraw.d.ts.map +1 -1
  448. package/lib/esm/AccuDraw.js +15 -3
  449. package/lib/esm/AccuDraw.js.map +1 -1
  450. package/lib/esm/AccuSnap.d.ts +9 -0
  451. package/lib/esm/AccuSnap.d.ts.map +1 -1
  452. package/lib/esm/AccuSnap.js +15 -3
  453. package/lib/esm/AccuSnap.js.map +1 -1
  454. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  455. package/lib/esm/AuxCoordSys.js +1 -1
  456. package/lib/esm/AuxCoordSys.js.map +1 -1
  457. package/lib/esm/DecorationsCache.d.ts +1 -1
  458. package/lib/esm/DecorationsCache.d.ts.map +1 -1
  459. package/lib/esm/DecorationsCache.js.map +1 -1
  460. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  461. package/lib/esm/EnvironmentDecorations.js +1 -1
  462. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  463. package/lib/esm/HitDetail.d.ts.map +1 -1
  464. package/lib/esm/HitDetail.js +1 -1
  465. package/lib/esm/HitDetail.js.map +1 -1
  466. package/lib/esm/IModelApp.d.ts +2 -3
  467. package/lib/esm/IModelApp.d.ts.map +1 -1
  468. package/lib/esm/IModelApp.js +2 -2
  469. package/lib/esm/IModelApp.js.map +1 -1
  470. package/lib/esm/IModelConnection.d.ts +16 -6
  471. package/lib/esm/IModelConnection.d.ts.map +1 -1
  472. package/lib/esm/IModelConnection.js +21 -7
  473. package/lib/esm/IModelConnection.js.map +1 -1
  474. package/lib/esm/IpcApp.d.ts +5 -1
  475. package/lib/esm/IpcApp.d.ts.map +1 -1
  476. package/lib/esm/IpcApp.js +11 -5
  477. package/lib/esm/IpcApp.js.map +1 -1
  478. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  479. package/lib/esm/LocalhostIpcApp.js +2 -1
  480. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  481. package/lib/esm/NativeApp.d.ts.map +1 -1
  482. package/lib/esm/NativeApp.js +2 -1
  483. package/lib/esm/NativeApp.js.map +1 -1
  484. package/lib/esm/NoRenderApp.d.ts +2 -0
  485. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  486. package/lib/esm/NoRenderApp.js +7 -0
  487. package/lib/esm/NoRenderApp.js.map +1 -1
  488. package/lib/esm/PlanarClipMaskState.d.ts +8 -3
  489. package/lib/esm/PlanarClipMaskState.d.ts.map +1 -1
  490. package/lib/esm/PlanarClipMaskState.js +48 -18
  491. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  492. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
  493. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  494. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +15 -4
  495. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  496. package/lib/esm/SheetViewState.d.ts.map +1 -1
  497. package/lib/esm/SheetViewState.js +1 -1
  498. package/lib/esm/SheetViewState.js.map +1 -1
  499. package/lib/esm/SpatialViewState.d.ts +14 -1
  500. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  501. package/lib/esm/SpatialViewState.js +17 -0
  502. package/lib/esm/SpatialViewState.js.map +1 -1
  503. package/lib/esm/SubCategoriesCache.d.ts +3 -1
  504. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  505. package/lib/esm/SubCategoriesCache.js +19 -5
  506. package/lib/esm/SubCategoriesCache.js.map +1 -1
  507. package/lib/esm/ViewContext.d.ts +2 -1
  508. package/lib/esm/ViewContext.d.ts.map +1 -1
  509. package/lib/esm/ViewContext.js +1 -1
  510. package/lib/esm/ViewContext.js.map +1 -1
  511. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  512. package/lib/esm/ViewCreator3d.js +1 -0
  513. package/lib/esm/ViewCreator3d.js.map +1 -1
  514. package/lib/esm/ViewManager.d.ts +4 -7
  515. package/lib/esm/ViewManager.d.ts.map +1 -1
  516. package/lib/esm/ViewManager.js +4 -7
  517. package/lib/esm/ViewManager.js.map +1 -1
  518. package/lib/esm/ViewingSpace.d.ts +3 -1
  519. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  520. package/lib/esm/ViewingSpace.js +11 -2
  521. package/lib/esm/ViewingSpace.js.map +1 -1
  522. package/lib/esm/Viewport.d.ts +1 -3
  523. package/lib/esm/Viewport.d.ts.map +1 -1
  524. package/lib/esm/Viewport.js +2 -4
  525. package/lib/esm/Viewport.js.map +1 -1
  526. package/lib/esm/common/WorkerProxy.d.ts +7 -25
  527. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  528. package/lib/esm/common/WorkerProxy.js +2 -1
  529. package/lib/esm/common/WorkerProxy.js.map +1 -1
  530. package/lib/esm/common/gltf/GltfSchema.d.ts +15 -1
  531. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  532. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  533. package/lib/esm/common/imdl/CompactEdges.d.ts +1 -1
  534. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  535. package/lib/esm/common/imdl/CompactEdges.js +2 -2
  536. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  537. package/lib/esm/common/imdl/ImdlModel.d.ts +5 -3
  538. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
  539. package/lib/esm/common/imdl/ImdlModel.js +47 -41
  540. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  541. package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -4
  542. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  543. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  544. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +4 -2
  545. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  546. package/lib/esm/common/imdl/ParseImdlDocument.js +9 -8
  547. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  548. package/lib/esm/common/internal/Symbols.d.ts +10 -0
  549. package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
  550. package/lib/esm/common/internal/Symbols.js +17 -0
  551. package/lib/esm/common/internal/Symbols.js.map +1 -0
  552. package/lib/esm/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  553. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -0
  554. package/lib/esm/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  555. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -0
  556. package/lib/esm/common/internal/render/ColorMap.d.ts.map +1 -0
  557. package/lib/esm/common/internal/render/ColorMap.js.map +1 -0
  558. package/lib/esm/common/internal/render/DisplayParams.d.ts.map +1 -0
  559. package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.js +4 -7
  560. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -0
  561. package/lib/esm/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  562. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -0
  563. package/lib/esm/{render/primitives → common/internal/render}/EdgeParams.js +47 -14
  564. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -0
  565. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  566. package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  567. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  568. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -0
  569. package/lib/esm/common/internal/render/GeometryList.d.ts.map +1 -0
  570. package/lib/esm/common/internal/render/GeometryList.js.map +1 -0
  571. package/lib/{cjs/render/primitives/geometry → esm/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  572. package/lib/esm/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  573. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  574. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -0
  575. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
  576. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  577. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +246 -0
  578. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  579. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
  580. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
  581. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js +140 -0
  582. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
  583. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  584. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  585. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  586. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -0
  587. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  588. package/lib/esm/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  589. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  590. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -0
  591. package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -0
  592. package/lib/esm/common/internal/render/MeshParams.js.map +1 -0
  593. package/lib/esm/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  594. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -0
  595. package/lib/esm/common/internal/render/MeshPrimitives.d.ts +82 -0
  596. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  597. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +79 -103
  598. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -0
  599. package/lib/esm/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  600. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -0
  601. package/lib/{cjs/common/render/primitives → esm/common/internal/render}/PointStringParams.d.ts +3 -0
  602. package/lib/esm/common/internal/render/PointStringParams.d.ts.map +1 -0
  603. package/lib/esm/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  604. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -0
  605. package/lib/{cjs/render/primitives → esm/common/internal/render}/Polyface.d.ts +1 -1
  606. package/lib/esm/common/internal/render/Polyface.d.ts.map +1 -0
  607. package/lib/esm/common/internal/render/Polyface.js.map +1 -0
  608. package/lib/esm/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
  609. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -0
  610. package/lib/esm/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  611. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -0
  612. package/lib/{cjs/render/primitives → esm/common/internal/render}/Primitives.d.ts +3 -34
  613. package/lib/esm/common/internal/render/Primitives.d.ts.map +1 -0
  614. package/lib/esm/{render/primitives → common/internal/render}/Primitives.js +0 -42
  615. package/lib/esm/common/internal/render/Primitives.js.map +1 -0
  616. package/lib/{cjs/render/primitives → esm/common/internal/render}/Strokes.d.ts +1 -1
  617. package/lib/esm/common/internal/render/Strokes.d.ts.map +1 -0
  618. package/lib/esm/common/internal/render/Strokes.js.map +1 -0
  619. package/lib/esm/common/internal/render/SurfaceParams.d.ts.map +1 -0
  620. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -0
  621. package/lib/esm/common/internal/render/VertexIndices.d.ts.map +1 -0
  622. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -0
  623. package/lib/esm/common/internal/render/VertexKey.d.ts.map +1 -0
  624. package/lib/esm/common/internal/render/VertexKey.js.map +1 -0
  625. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -0
  626. package/lib/esm/common/internal/render/VertexTable.js.map +1 -0
  627. package/lib/{cjs/render/primitives → esm/common/internal/render}/VertexTableBuilder.d.ts +5 -4
  628. package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  629. package/lib/esm/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  630. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -0
  631. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  632. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  633. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
  634. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -0
  635. package/lib/esm/common/render/BatchOptions.d.ts +46 -0
  636. package/lib/esm/common/render/BatchOptions.d.ts.map +1 -0
  637. package/lib/esm/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  638. package/lib/esm/common/render/BatchOptions.js.map +1 -0
  639. package/lib/esm/common/render/GraphicAssembler.d.ts +197 -0
  640. package/lib/esm/common/render/GraphicAssembler.d.ts.map +1 -0
  641. package/lib/esm/common/render/GraphicAssembler.js +382 -0
  642. package/lib/esm/common/render/GraphicAssembler.js.map +1 -0
  643. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts +89 -0
  644. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  645. package/lib/esm/common/render/GraphicDescriptionBuilder.js +31 -0
  646. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -0
  647. package/lib/esm/common/render/GraphicDescriptionContext.d.ts +85 -0
  648. package/lib/esm/common/render/GraphicDescriptionContext.d.ts.map +1 -0
  649. package/lib/esm/common/render/GraphicDescriptionContext.js +19 -0
  650. package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -0
  651. package/lib/esm/common/render/GraphicPrimitive.d.ts.map +1 -0
  652. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -0
  653. package/lib/esm/common/render/GraphicType.d.ts +62 -0
  654. package/lib/esm/common/render/GraphicType.d.ts.map +1 -0
  655. package/lib/esm/common/render/GraphicType.js +67 -0
  656. package/lib/esm/common/render/GraphicType.js.map +1 -0
  657. package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -0
  658. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -0
  659. package/lib/esm/common.d.ts +14 -0
  660. package/lib/esm/common.d.ts.map +1 -0
  661. package/lib/esm/common.js +19 -0
  662. package/lib/esm/common.js.map +1 -0
  663. package/lib/esm/core-frontend.d.ts +5 -43
  664. package/lib/esm/core-frontend.d.ts.map +1 -1
  665. package/lib/esm/core-frontend.js +5 -43
  666. package/lib/esm/core-frontend.js.map +1 -1
  667. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  668. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  669. package/lib/esm/internal/cross-package.d.ts +7 -0
  670. package/lib/esm/internal/cross-package.d.ts.map +1 -0
  671. package/lib/esm/internal/cross-package.js +11 -0
  672. package/lib/esm/internal/cross-package.js.map +1 -0
  673. package/lib/esm/internal/render/PrimitiveBuilder.d.ts +33 -0
  674. package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  675. package/lib/esm/internal/render/PrimitiveBuilder.js +136 -0
  676. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -0
  677. package/lib/esm/render/FeatureSymbology.js +3 -3
  678. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  679. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  680. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  681. package/lib/esm/render/GraphicBranch.js.map +1 -1
  682. package/lib/esm/render/GraphicBuilder.d.ts +7 -254
  683. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  684. package/lib/esm/render/GraphicBuilder.js +18 -235
  685. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  686. package/lib/esm/render/MeshArgs.d.ts +56 -0
  687. package/lib/esm/render/MeshArgs.d.ts.map +1 -0
  688. package/lib/esm/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
  689. package/lib/esm/render/MeshArgs.js.map +1 -0
  690. package/lib/esm/render/MockRender.d.ts +7 -5
  691. package/lib/esm/render/MockRender.d.ts.map +1 -1
  692. package/lib/esm/render/MockRender.js +5 -1
  693. package/lib/esm/render/MockRender.js.map +1 -1
  694. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  695. package/lib/esm/render/ParticleCollectionBuilder.js +4 -3
  696. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  697. package/lib/esm/render/PolylineArgs.d.ts +31 -0
  698. package/lib/esm/render/PolylineArgs.d.ts.map +1 -0
  699. package/lib/esm/render/PolylineArgs.js +9 -0
  700. package/lib/esm/render/PolylineArgs.js.map +1 -0
  701. package/lib/esm/render/RealityMeshParams.js +1 -1
  702. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  703. package/lib/esm/render/RenderSystem.d.ts +36 -7
  704. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  705. package/lib/esm/render/RenderSystem.js +96 -8
  706. package/lib/esm/render/RenderSystem.js.map +1 -1
  707. package/lib/esm/render/RenderTarget.d.ts +49 -5
  708. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  709. package/lib/esm/render/RenderTarget.js +33 -5
  710. package/lib/esm/render/RenderTarget.js.map +1 -1
  711. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  712. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  713. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  714. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  715. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  716. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  717. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  718. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  719. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  720. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  721. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  722. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
  723. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  724. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  725. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  726. package/lib/esm/render/webgl/Graphic.d.ts +1 -1
  727. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  728. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  729. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  730. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  731. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  732. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
  733. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  734. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  735. package/lib/esm/render/webgl/Material.d.ts +5 -1
  736. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  737. package/lib/esm/render/webgl/Material.js +5 -0
  738. package/lib/esm/render/webgl/Material.js.map +1 -1
  739. package/lib/esm/render/webgl/Mesh.d.ts +6 -3
  740. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  741. package/lib/esm/render/webgl/Mesh.js +3 -1
  742. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  743. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  744. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  745. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  746. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  747. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  748. package/lib/esm/render/webgl/PlanarClassifier.d.ts +2 -0
  749. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  750. package/lib/esm/render/webgl/PlanarClassifier.js +40 -13
  751. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  752. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +3 -3
  753. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  754. package/lib/esm/render/webgl/PlanarTextureProjection.js +54 -20
  755. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  756. package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
  757. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  758. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  759. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  760. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  761. package/lib/esm/render/webgl/PointString.js.map +1 -1
  762. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  763. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  764. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  765. package/lib/esm/render/webgl/Primitive.d.ts +1 -1
  766. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  767. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  768. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  769. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  770. package/lib/esm/render/webgl/SolarShadowMap.js +2 -2
  771. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  772. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  773. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  774. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  775. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  776. package/lib/esm/render/webgl/System.d.ts +7 -6
  777. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  778. package/lib/esm/render/webgl/System.js +1 -1
  779. package/lib/esm/render/webgl/System.js.map +1 -1
  780. package/lib/esm/render/webgl/Target.d.ts +3 -0
  781. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  782. package/lib/esm/render/webgl/Target.js +6 -1
  783. package/lib/esm/render/webgl/Target.js.map +1 -1
  784. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  785. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  786. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  787. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  788. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  789. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  790. package/lib/esm/tile/B3dmReader.d.ts +1 -2
  791. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  792. package/lib/esm/tile/B3dmReader.js +1 -2
  793. package/lib/esm/tile/B3dmReader.js.map +1 -1
  794. package/lib/esm/tile/DynamicIModelTile.js +1 -0
  795. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  796. package/lib/esm/tile/GltfReader.d.ts +30 -6
  797. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  798. package/lib/esm/tile/GltfReader.js +245 -9
  799. package/lib/esm/tile/GltfReader.js.map +1 -1
  800. package/lib/esm/tile/GraphicsCollector.d.ts.map +1 -1
  801. package/lib/esm/tile/GraphicsCollector.js +5 -2
  802. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  803. package/lib/esm/tile/I3dmReader.d.ts +1 -2
  804. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  805. package/lib/esm/tile/I3dmReader.js +1 -2
  806. package/lib/esm/tile/I3dmReader.js.map +1 -1
  807. package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
  808. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -1
  809. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  810. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -0
  811. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  812. package/lib/esm/tile/ImdlGraphicsCreator.js +88 -6
  813. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  814. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  815. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  816. package/lib/esm/tile/ImdlReader.js.map +1 -1
  817. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  818. package/lib/esm/tile/OPCFormatInterpreter.js +7 -2
  819. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  820. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  821. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  822. package/lib/esm/tile/PntsReader.js +1 -1
  823. package/lib/esm/tile/PntsReader.js.map +1 -1
  824. package/lib/esm/tile/PrimaryTileTree.d.ts +6 -2
  825. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  826. package/lib/esm/tile/PrimaryTileTree.js +26 -1
  827. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  828. package/lib/esm/tile/RealityModelTileTree.js +1 -1
  829. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  830. package/lib/esm/tile/RealityTile.d.ts +2 -3
  831. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  832. package/lib/esm/tile/RealityTile.js +0 -1
  833. package/lib/esm/tile/RealityTile.js.map +1 -1
  834. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  835. package/lib/esm/tile/RealityTileLoader.js +1 -0
  836. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  837. package/lib/esm/tile/TileGeometryCollector.d.ts +4 -4
  838. package/lib/esm/tile/TileGeometryCollector.js +1 -1
  839. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  840. package/lib/esm/tile/TileTreeReference.d.ts +0 -4
  841. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  842. package/lib/esm/tile/TileTreeReference.js +0 -3
  843. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  844. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -0
  845. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  846. package/lib/esm/tile/map/ArcGisUtilities.js +7 -5
  847. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  848. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  849. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
  850. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  851. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  852. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  853. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  854. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  855. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  856. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  857. package/lib/esm/tile/map/MapFeatureInfo.d.ts +1 -1
  858. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  859. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  860. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  861. package/lib/esm/tile/map/MapTileTree.js +5 -5
  862. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  863. package/lib/esm/tools/AccuDrawTool.d.ts +21 -0
  864. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  865. package/lib/esm/tools/AccuDrawTool.js +89 -0
  866. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  867. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  868. package/lib/esm/tools/ClipViewTool.js +1 -1
  869. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  870. package/lib/esm/tools/ElementSetTool.d.ts +9 -5
  871. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  872. package/lib/esm/tools/ElementSetTool.js +9 -5
  873. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  874. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  875. package/lib/esm/tools/MeasureTool.js +1 -1
  876. package/lib/esm/tools/MeasureTool.js.map +1 -1
  877. package/lib/esm/tools/ToolAdmin.d.ts +2 -0
  878. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  879. package/lib/esm/tools/ToolAdmin.js +6 -1
  880. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  881. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  882. package/lib/esm/tools/ViewTool.js +1 -1
  883. package/lib/esm/tools/ViewTool.js.map +1 -1
  884. package/lib/esm/workers/RegisterWorker.d.ts +2 -1
  885. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -1
  886. package/lib/esm/workers/RegisterWorker.js +2 -1
  887. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  888. package/lib/public/locales/en/CoreTools.json +15 -0
  889. package/lib/public/locales/en/iModelJs.json +5 -0
  890. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  891. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  892. package/package.json +18 -18
  893. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +0 -1
  894. package/lib/cjs/common/render/AnimationNodeId.js.map +0 -1
  895. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  896. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +0 -1
  897. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +0 -1
  898. package/lib/cjs/common/render/primitives/DisplayParams.js.map +0 -1
  899. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +0 -1
  900. package/lib/cjs/common/render/primitives/EdgeParams.js +0 -46
  901. package/lib/cjs/common/render/primitives/EdgeParams.js.map +0 -1
  902. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +0 -1
  903. package/lib/cjs/common/render/primitives/MeshParams.js.map +0 -1
  904. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  905. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +0 -1
  906. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +0 -1
  907. package/lib/cjs/common/render/primitives/PointStringParams.js.map +0 -1
  908. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +0 -1
  909. package/lib/cjs/common/render/primitives/PolylineParams.js.map +0 -1
  910. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  911. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +0 -1
  912. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +0 -1
  913. package/lib/cjs/common/render/primitives/VertexIndices.js.map +0 -1
  914. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +0 -1
  915. package/lib/cjs/common/render/primitives/VertexTable.js.map +0 -1
  916. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  917. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +0 -1
  918. package/lib/cjs/render/GraphicPrimitive.d.ts.map +0 -1
  919. package/lib/cjs/render/GraphicPrimitive.js.map +0 -1
  920. package/lib/cjs/render/InstancedGraphicParams.d.ts.map +0 -1
  921. package/lib/cjs/render/InstancedGraphicParams.js.map +0 -1
  922. package/lib/cjs/render/primitives/ColorMap.d.ts.map +0 -1
  923. package/lib/cjs/render/primitives/ColorMap.js.map +0 -1
  924. package/lib/cjs/render/primitives/EdgeParams.d.ts +0 -8
  925. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +0 -1
  926. package/lib/cjs/render/primitives/EdgeParams.js.map +0 -1
  927. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  928. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +0 -1
  929. package/lib/cjs/render/primitives/PointStringParams.d.ts +0 -8
  930. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +0 -1
  931. package/lib/cjs/render/primitives/PointStringParams.js.map +0 -1
  932. package/lib/cjs/render/primitives/Polyface.d.ts.map +0 -1
  933. package/lib/cjs/render/primitives/Polyface.js.map +0 -1
  934. package/lib/cjs/render/primitives/PolylineParams.d.ts +0 -15
  935. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +0 -1
  936. package/lib/cjs/render/primitives/PolylineParams.js.map +0 -1
  937. package/lib/cjs/render/primitives/Primitives.d.ts.map +0 -1
  938. package/lib/cjs/render/primitives/Primitives.js.map +0 -1
  939. package/lib/cjs/render/primitives/Strokes.d.ts.map +0 -1
  940. package/lib/cjs/render/primitives/Strokes.js.map +0 -1
  941. package/lib/cjs/render/primitives/VertexKey.d.ts.map +0 -1
  942. package/lib/cjs/render/primitives/VertexKey.js.map +0 -1
  943. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  944. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +0 -1
  945. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  946. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  947. package/lib/cjs/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  948. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +0 -1
  949. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  950. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  951. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +0 -176
  952. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  953. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  954. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  955. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +0 -1
  956. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  957. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  958. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
  959. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  960. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  961. package/lib/esm/common/render/AnimationNodeId.d.ts.map +0 -1
  962. package/lib/esm/common/render/AnimationNodeId.js.map +0 -1
  963. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  964. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +0 -1
  965. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +0 -1
  966. package/lib/esm/common/render/primitives/DisplayParams.js.map +0 -1
  967. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +0 -1
  968. package/lib/esm/common/render/primitives/EdgeParams.js +0 -42
  969. package/lib/esm/common/render/primitives/EdgeParams.js.map +0 -1
  970. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +0 -1
  971. package/lib/esm/common/render/primitives/MeshParams.js.map +0 -1
  972. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  973. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +0 -1
  974. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +0 -1
  975. package/lib/esm/common/render/primitives/PointStringParams.js.map +0 -1
  976. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +0 -1
  977. package/lib/esm/common/render/primitives/PolylineParams.js.map +0 -1
  978. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  979. package/lib/esm/common/render/primitives/SurfaceParams.js.map +0 -1
  980. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +0 -1
  981. package/lib/esm/common/render/primitives/VertexIndices.js.map +0 -1
  982. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +0 -1
  983. package/lib/esm/common/render/primitives/VertexTable.js.map +0 -1
  984. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  985. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +0 -1
  986. package/lib/esm/render/GraphicPrimitive.d.ts.map +0 -1
  987. package/lib/esm/render/GraphicPrimitive.js.map +0 -1
  988. package/lib/esm/render/InstancedGraphicParams.d.ts.map +0 -1
  989. package/lib/esm/render/InstancedGraphicParams.js.map +0 -1
  990. package/lib/esm/render/primitives/ColorMap.d.ts.map +0 -1
  991. package/lib/esm/render/primitives/ColorMap.js.map +0 -1
  992. package/lib/esm/render/primitives/EdgeParams.d.ts +0 -8
  993. package/lib/esm/render/primitives/EdgeParams.d.ts.map +0 -1
  994. package/lib/esm/render/primitives/EdgeParams.js.map +0 -1
  995. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  996. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +0 -1
  997. package/lib/esm/render/primitives/PointStringParams.d.ts +0 -8
  998. package/lib/esm/render/primitives/PointStringParams.d.ts.map +0 -1
  999. package/lib/esm/render/primitives/PointStringParams.js.map +0 -1
  1000. package/lib/esm/render/primitives/Polyface.d.ts.map +0 -1
  1001. package/lib/esm/render/primitives/Polyface.js.map +0 -1
  1002. package/lib/esm/render/primitives/PolylineParams.d.ts +0 -15
  1003. package/lib/esm/render/primitives/PolylineParams.d.ts.map +0 -1
  1004. package/lib/esm/render/primitives/PolylineParams.js.map +0 -1
  1005. package/lib/esm/render/primitives/Primitives.d.ts.map +0 -1
  1006. package/lib/esm/render/primitives/Primitives.js.map +0 -1
  1007. package/lib/esm/render/primitives/Strokes.d.ts.map +0 -1
  1008. package/lib/esm/render/primitives/Strokes.js.map +0 -1
  1009. package/lib/esm/render/primitives/VertexKey.d.ts.map +0 -1
  1010. package/lib/esm/render/primitives/VertexKey.js.map +0 -1
  1011. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  1012. package/lib/esm/render/primitives/VertexTableBuilder.js.map +0 -1
  1013. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  1014. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  1015. package/lib/esm/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  1016. package/lib/esm/render/primitives/geometry/GeometryList.js.map +0 -1
  1017. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  1018. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  1019. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +0 -171
  1020. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  1021. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  1022. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  1023. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +0 -1
  1024. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  1025. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  1026. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
  1027. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  1028. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  1029. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  1030. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.js +0 -0
  1031. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  1032. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  1033. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  1034. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  1035. /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  1036. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  1037. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  1038. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  1039. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  1040. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  1041. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  1042. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  1043. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  1044. /package/lib/cjs/{render/primitives → common/internal/render}/Polyface.js +0 -0
  1045. /package/lib/cjs/{render/primitives → common/internal/render}/Strokes.js +0 -0
  1046. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  1047. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  1048. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  1049. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  1050. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  1051. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  1052. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  1053. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  1054. /package/lib/cjs/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  1055. /package/lib/cjs/{render → common/render}/GraphicPrimitive.js +0 -0
  1056. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  1057. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.js +0 -0
  1058. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  1059. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.js +0 -0
  1060. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  1061. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  1062. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  1063. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  1064. /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  1065. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  1066. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  1067. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  1068. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  1069. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  1070. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  1071. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  1072. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  1073. /package/lib/esm/{render/primitives → common/internal/render}/Polyface.js +0 -0
  1074. /package/lib/esm/{render/primitives → common/internal/render}/Strokes.js +0 -0
  1075. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  1076. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  1077. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  1078. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  1079. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  1080. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  1081. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  1082. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  1083. /package/lib/esm/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  1084. /package/lib/esm/{render → common/render}/GraphicPrimitive.js +0 -0
  1085. /package/lib/esm/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  1086. /package/lib/esm/{render → common/render}/InstancedGraphicParams.js +0 -0
@@ -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 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 override get usesQuantizedPositions() { return this._repr.usesQuantizedPositions; }\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 public override wantMixMonochromeColor(target: Target): boolean { return this._repr.wantMixMonochromeColor(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 \"../../common/render/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 override get usesQuantizedPositions() { return this._repr.usesQuantizedPositions; }\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 public override wantMixMonochromeColor(target: Target): boolean { return this._repr.wantMixMonochromeColor(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 "../../common/render/primitives/SurfaceParams";
5
+ import { SurfaceMaterial, SurfaceMaterialAtlas } from "../../common/internal/render/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])
@@ -39,6 +39,10 @@ export declare class Material extends RenderMaterial {
39
39
  get overridesRgb(): boolean;
40
40
  get overridesAlpha(): boolean;
41
41
  get hasTranslucency(): boolean;
42
+ /** Strictly for testing. */
43
+ static preserveParams: boolean;
44
+ /** Strictly for testing. */
45
+ params?: RenderMaterial.Params;
42
46
  constructor(params: RenderMaterial.Params);
43
47
  private setInteger;
44
48
  }
@@ -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,8CAA8C,CAAC;AAGrG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAE1C,gBAAuB,OAAO,EAAE,QAAQ,CAAgD;IAGxF,SAAgB,OAAO,QAAkB;IACzC,SAAgB,YAAY,eAAuB;IACnD,SAAgB,IAAI,eAAuB;IAE3C,IAAW,YAAY,YAAgC;IACvD,IAAW,cAAc,YAAgC;IACzD,IAAW,eAAe,YAAsD;gBAG7D,MAAM,EAAE,cAAc,CAAC,MAAM;IA2BhD,OAAO,CAAC,UAAU;CAQnB;AAID;;GAEG;AACH,MAAM,MAAM,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;AAE9D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,QAAS,SAAQ,cAAc;IAE1C,gBAAuB,OAAO,EAAE,QAAQ,CAAgD;IAGxF,SAAgB,OAAO,QAAkB;IACzC,SAAgB,YAAY,eAAuB;IACnD,SAAgB,IAAI,eAAuB;IAE3C,IAAW,YAAY,YAAgC;IACvD,IAAW,cAAc,YAAgC;IACzD,IAAW,eAAe,YAAsD;IAEhF,4BAA4B;IAC5B,OAAc,cAAc,UAAS;IACrC,4BAA4B;IAErB,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC;gBAGnB,MAAM,EAAE,cAAc,CAAC,MAAM;IA+BhD,OAAO,CAAC,UAAU;CAQnB;AAID;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAE3D,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAOhG"}
@@ -46,6 +46,9 @@ export class Material extends RenderMaterial {
46
46
  this.isAtlas = false;
47
47
  this.fragUniforms = new Float32Array(4);
48
48
  this.rgba = new Float32Array(4);
49
+ if (Material.preserveParams) {
50
+ this.params = params;
51
+ }
49
52
  if (undefined !== params.diffuseColor) {
50
53
  const rgb = FloatRgb.fromColorDef(params.diffuseColor);
51
54
  this.rgba[0] = rgb.red;
@@ -75,6 +78,8 @@ export class Material extends RenderMaterial {
75
78
  }
76
79
  // eslint-disable-next-line deprecation/deprecation
77
80
  Material.default = new Material(RenderMaterial.Params.defaults);
81
+ /** Strictly for testing. */
82
+ Material.preserveParams = false;
78
83
  Object.freeze(Material.default);
79
84
  /** @internal */
80
85
  export function createMaterialInfo(source) {
@@ -1 +1 @@
1
- {"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../../src/render/webgl/Material.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 { ColorDef, RenderMaterial } from \"@itwin/core-common\";\r\nimport { SurfaceMaterial, SurfaceMaterialAtlas } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { FloatRgb } from \"./FloatRGBA\";\r\n\r\n/** Parameters describing a single material. The parameters used are:\r\n * - diffuse color rgb (vec3).\r\n * - alpha (float in [0..1])\r\n * - is rgb overridden (bool)\r\n * - is alpha overridden (bool)\r\n * - specular exponent (float).\r\n * - specular color (vec3).\r\n * - specular weight (float in [0..1])\r\n * - diffuse weight (float in [0..1])\r\n * - texture weight (float in [0..1])\r\n *\r\n * The rgb and alpha are applied in the vertex shader. Either can be negative, indicating the material does not override it.\r\n *\r\n * The rest are passed as a varying vec4 to be applied in the fragment shader.\r\n * All but the specular exponent are compressed such that floats in [0..1] become integers in [0..255] and concatenated bitwise in pairs into 16-bit integer values.\r\n *\r\n * The result is:\r\n * x: diffuse and specular weights\r\n * y: texture weight and specular red\r\n * z: specular green and blue\r\n * w: specular exponent\r\n *\r\n * This packing is motivated by the limited max number of varying vectors guaranteed by WebGL.\r\n * A varying is used because:\r\n * 1. Material atlases require looking up the material associated with a particular vertex; and\r\n * 2. The vertex material may be replaced with a default material based on other criteria such as view flags and feature symbology overrides.\r\n * @internal\r\n */\r\nexport class Material extends RenderMaterial {\r\n // eslint-disable-next-line deprecation/deprecation\r\n public static readonly default: Material = new Material(RenderMaterial.Params.defaults);\r\n\r\n // Used for type-switching vs MaterialAtlas\r\n public readonly isAtlas = false as const;\r\n public readonly fragUniforms = new Float32Array(4);\r\n public readonly rgba = new Float32Array(4);\r\n\r\n public get overridesRgb() { return this.rgba[0] >= 0; }\r\n public get overridesAlpha() { return this.rgba[3] >= 0; }\r\n public get hasTranslucency() { return this.overridesAlpha && this.rgba[3] < 1; }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public constructor(params: RenderMaterial.Params) {\r\n super(params);\r\n\r\n if (undefined !== params.diffuseColor) {\r\n const rgb = FloatRgb.fromColorDef(params.diffuseColor);\r\n this.rgba[0] = rgb.red;\r\n this.rgba[1] = rgb.green;\r\n this.rgba[2] = rgb.blue;\r\n } else {\r\n this.rgba[0] = this.rgba[1] = this.rgba[2] = -1;\r\n }\r\n\r\n const alpha = undefined !== params.alpha ? params.alpha : -1;\r\n this.rgba[3] = alpha;\r\n\r\n const scale = (value: number) => Math.floor(value * 255 + 0.5);\r\n this.setInteger(scale(params.diffuse), scale(params.specular), 0);\r\n\r\n const textureWeight = undefined !== this.textureMapping ? this.textureMapping.params.weight : 1.0;\r\n const specularRgb = undefined !== params.specularColor ? params.specularColor : ColorDef.white;\r\n const specularColors = specularRgb.colors;\r\n this.setInteger(scale(textureWeight), specularColors.r, 1);\r\n this.setInteger(specularColors.g, specularColors.b, 2);\r\n\r\n this.fragUniforms[3] = params.specularExponent;\r\n }\r\n\r\n private setInteger(loByte: number, hiByte: number, index: number): void {\r\n const clamp = (x: number) => Math.floor(Math.min(255, (Math.max(x, 0))));\r\n\r\n loByte = clamp(loByte);\r\n hiByte = clamp(hiByte);\r\n\r\n this.fragUniforms[index] = loByte + hiByte * 256;\r\n }\r\n}\r\n\r\nObject.freeze(Material.default);\r\n\r\n/** Describes the material associated with a surface.\r\n * @internal\r\n */\r\nexport type MaterialInfo = Material | SurfaceMaterialAtlas;\r\n\r\n/** @internal */\r\nexport function createMaterialInfo(source: SurfaceMaterial | undefined): MaterialInfo | undefined {\r\n if (undefined === source)\r\n return undefined;\r\n else if (source.isAtlas)\r\n return source;\r\n else\r\n return source.material as Material;\r\n}\r\n"]}
1
+ {"version":3,"file":"Material.js","sourceRoot":"","sources":["../../../../src/render/webgl/Material.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 { ColorDef, RenderMaterial } from \"@itwin/core-common\";\r\nimport { FloatRgb } from \"./FloatRGBA\";\r\nimport { SurfaceMaterial, SurfaceMaterialAtlas } from \"../../common/internal/render/SurfaceParams\";\r\n\r\n/** Parameters describing a single material. The parameters used are:\r\n * - diffuse color rgb (vec3).\r\n * - alpha (float in [0..1])\r\n * - is rgb overridden (bool)\r\n * - is alpha overridden (bool)\r\n * - specular exponent (float).\r\n * - specular color (vec3).\r\n * - specular weight (float in [0..1])\r\n * - diffuse weight (float in [0..1])\r\n * - texture weight (float in [0..1])\r\n *\r\n * The rgb and alpha are applied in the vertex shader. Either can be negative, indicating the material does not override it.\r\n *\r\n * The rest are passed as a varying vec4 to be applied in the fragment shader.\r\n * All but the specular exponent are compressed such that floats in [0..1] become integers in [0..255] and concatenated bitwise in pairs into 16-bit integer values.\r\n *\r\n * The result is:\r\n * x: diffuse and specular weights\r\n * y: texture weight and specular red\r\n * z: specular green and blue\r\n * w: specular exponent\r\n *\r\n * This packing is motivated by the limited max number of varying vectors guaranteed by WebGL.\r\n * A varying is used because:\r\n * 1. Material atlases require looking up the material associated with a particular vertex; and\r\n * 2. The vertex material may be replaced with a default material based on other criteria such as view flags and feature symbology overrides.\r\n * @internal\r\n */\r\nexport class Material extends RenderMaterial {\r\n // eslint-disable-next-line deprecation/deprecation\r\n public static readonly default: Material = new Material(RenderMaterial.Params.defaults);\r\n\r\n // Used for type-switching vs MaterialAtlas\r\n public readonly isAtlas = false as const;\r\n public readonly fragUniforms = new Float32Array(4);\r\n public readonly rgba = new Float32Array(4);\r\n\r\n public get overridesRgb() { return this.rgba[0] >= 0; }\r\n public get overridesAlpha() { return this.rgba[3] >= 0; }\r\n public get hasTranslucency() { return this.overridesAlpha && this.rgba[3] < 1; }\r\n\r\n /** Strictly for testing. */\r\n public static preserveParams = false;\r\n /** Strictly for testing. */\r\n // eslint-disable-next-line deprecation/deprecation\r\n public params?: RenderMaterial.Params;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public constructor(params: RenderMaterial.Params) {\r\n super(params);\r\n\r\n if (Material.preserveParams) {\r\n this.params = params;\r\n }\r\n\r\n if (undefined !== params.diffuseColor) {\r\n const rgb = FloatRgb.fromColorDef(params.diffuseColor);\r\n this.rgba[0] = rgb.red;\r\n this.rgba[1] = rgb.green;\r\n this.rgba[2] = rgb.blue;\r\n } else {\r\n this.rgba[0] = this.rgba[1] = this.rgba[2] = -1;\r\n }\r\n\r\n const alpha = undefined !== params.alpha ? params.alpha : -1;\r\n this.rgba[3] = alpha;\r\n\r\n const scale = (value: number) => Math.floor(value * 255 + 0.5);\r\n this.setInteger(scale(params.diffuse), scale(params.specular), 0);\r\n\r\n const textureWeight = undefined !== this.textureMapping ? this.textureMapping.params.weight : 1.0;\r\n const specularRgb = undefined !== params.specularColor ? params.specularColor : ColorDef.white;\r\n const specularColors = specularRgb.colors;\r\n this.setInteger(scale(textureWeight), specularColors.r, 1);\r\n this.setInteger(specularColors.g, specularColors.b, 2);\r\n\r\n this.fragUniforms[3] = params.specularExponent;\r\n }\r\n\r\n private setInteger(loByte: number, hiByte: number, index: number): void {\r\n const clamp = (x: number) => Math.floor(Math.min(255, (Math.max(x, 0))));\r\n\r\n loByte = clamp(loByte);\r\n hiByte = clamp(hiByte);\r\n\r\n this.fragUniforms[index] = loByte + hiByte * 256;\r\n }\r\n}\r\n\r\nObject.freeze(Material.default);\r\n\r\n/** Describes the material associated with a surface.\r\n * @internal\r\n */\r\nexport type MaterialInfo = Material | SurfaceMaterialAtlas;\r\n\r\n/** @internal */\r\nexport function createMaterialInfo(source: SurfaceMaterial | undefined): MaterialInfo | undefined {\r\n if (undefined === source)\r\n return undefined;\r\n else if (source.isAtlas)\r\n return source;\r\n else\r\n return source.material as Material;\r\n}\r\n"]}
@@ -2,12 +2,13 @@
2
2
  * @module WebGL
3
3
  */
4
4
  import { Point3d, Range3d } from "@itwin/core-geometry";
5
- import { InstancedGraphicParams } from "../InstancedGraphicParams";
6
- import { MeshParams } from "../../common/render/primitives/MeshParams";
7
- import { SurfaceType } from "../../common/render/primitives/SurfaceParams";
5
+ import { InstancedGraphicParams } from "../../common/render/InstancedGraphicParams";
6
+ import { MeshParams } from "../../common/internal/render/MeshParams";
7
+ import { SurfaceType } from "../../common/internal/render/SurfaceParams";
8
8
  import { RenderMemory } from "../RenderMemory";
9
9
  import { Graphic } from "./Graphic";
10
10
  import { PatternBuffers } from "./InstancedGeometry";
11
+ import { Primitive } from "./Primitive";
11
12
  import { RenderCommands } from "./RenderCommands";
12
13
  import { RenderPass } from "./RenderFlags";
13
14
  import { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from "./EdgeGeometry";
@@ -34,6 +35,8 @@ export declare class MeshGraphic extends Graphic {
34
35
  private readonly _primitives;
35
36
  private readonly _instances?;
36
37
  private readonly _meshRange;
38
+ get primitives(): readonly Primitive[];
39
+ get meshRange(): Readonly<Range3d>;
37
40
  static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined;
38
41
  private addPrimitive;
39
42
  private constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAmB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,gBAAgB;AAChB,qBAAa,kBAAkB;IAC7B,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzD,SAAgB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrD,SAAgB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnD,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B,OAAO;WAqBO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAK7G,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU;CAQxD;AAED,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,OAAO;IACtC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;WAEvB,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS;IAgBhI,OAAO,CAAC,YAAY;IAUpB,OAAO;IAaP,IAAW,UAAU,IAAI,OAAO,CAAsE;IACtG,IAAW,UAAU,YAAoB;IAElC,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM9C,UAAU,CAAC,KAAK,EAAE,OAAO;IAOlC,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAC9B,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAE/E,IAAW,WAAW,IAAI,WAAW,CAA+B;CACrE"}
1
+ {"version":3,"file":"Mesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAmB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,gBAAgB;AAChB,qBAAa,kBAAkB;IAC7B,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzD,SAAgB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrD,SAAgB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnD,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B,OAAO;WAqBO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAK7G,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU;CAQxD;AAED,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,OAAO;IACtC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,IAAW,UAAU,IAAI,SAAS,SAAS,EAAE,CAA6B;IAC1E,IAAW,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,CAA4B;WAEvD,MAAM,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS;IAgBhI,OAAO,CAAC,YAAY;IAUpB,OAAO;IAaP,IAAW,UAAU,IAAI,OAAO,CAAsE;IACtG,IAAW,UAAU,YAAoB;IAElC,OAAO;IASP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAM9C,UAAU,CAAC,KAAK,EAAE,OAAO;IAOlC,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAC9B,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAE/E,IAAW,WAAW,IAAI,WAAW,CAA+B;CACrE"}
@@ -6,7 +6,7 @@
6
6
  * @module WebGL
7
7
  */
8
8
  import { assert, dispose } from "@itwin/core-bentley";
9
- import { SurfaceType } from "../../common/render/primitives/SurfaceParams";
9
+ import { SurfaceType } from "../../common/internal/render/SurfaceParams";
10
10
  import { CachedGeometry } from "./CachedGeometry";
11
11
  import { Graphic } from "./Graphic";
12
12
  import { InstanceBuffers, PatternBuffers } from "./InstancedGeometry";
@@ -56,6 +56,8 @@ export class MeshRenderGeometry {
56
56
  }
57
57
  /** @internal */
58
58
  export class MeshGraphic extends Graphic {
59
+ get primitives() { return this._primitives; }
60
+ get meshRange() { return this._meshRange; }
59
61
  static create(geometry, instances) {
60
62
  let buffers;
61
63
  if (instances) {
@@ -1 +1 @@
1
- {"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.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 } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { MeshParams } from \"../../common/render/primitives/MeshParams\";\r\nimport { SurfaceType } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderGeometry } from \"../RenderSystem\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { MeshData } from \"./MeshData\";\r\n\r\n/** @internal */\r\nexport class MeshRenderGeometry {\r\n public readonly data: MeshData;\r\n public readonly surface?: SurfaceGeometry;\r\n public readonly segmentEdges?: EdgeGeometry;\r\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\r\n public readonly polylineEdges?: PolylineEdgeGeometry;\r\n public readonly indexedEdges?: IndexedEdgeGeometry;\r\n public readonly range: Range3d;\r\n\r\n private constructor(data: MeshData, params: MeshParams) {\r\n this.data = data;\r\n this.range = params.vertices.qparams.computeRange();\r\n this.surface = SurfaceGeometry.create(data, params.surface.indices);\r\n const edges = params.edges;\r\n if (!edges || data.type === SurfaceType.VolumeClassifier)\r\n return;\r\n\r\n if (edges.silhouettes)\r\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\r\n\r\n if (edges.segments)\r\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\r\n\r\n if (edges.polylines)\r\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\r\n\r\n if (edges.indexed)\r\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\r\n }\r\n\r\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\r\n const data = MeshData.create(params, viewIndependentOrigin);\r\n return data ? new this(data, params) : undefined;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.data);\r\n dispose(this.surface);\r\n dispose(this.segmentEdges);\r\n dispose(this.silhouetteEdges);\r\n dispose(this.polylineEdges);\r\n dispose(this.indexedEdges);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this.data.collectStatistics(stats);\r\n this.surface?.collectStatistics(stats);\r\n this.segmentEdges?.collectStatistics(stats);\r\n this.silhouetteEdges?.collectStatistics(stats);\r\n this.polylineEdges?.collectStatistics(stats);\r\n this.indexedEdges?.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshGraphic extends Graphic {\r\n public readonly meshData: MeshData;\r\n private readonly _primitives: Primitive[] = [];\r\n private readonly _instances?: InstanceBuffers | PatternBuffers;\r\n private readonly _meshRange: Range3d;\r\n\r\n public static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined {\r\n let buffers;\r\n if (instances) {\r\n if (instances instanceof PatternBuffers) {\r\n buffers = instances;\r\n } else {\r\n const instancesRange = instances.range ?? InstanceBuffers.computeRange(geometry.range, instances.transforms, instances.transformCenter);\r\n buffers = InstanceBuffers.create(instances, instancesRange);\r\n if (!buffers)\r\n return undefined;\r\n }\r\n }\r\n\r\n return new MeshGraphic(geometry, buffers);\r\n }\r\n\r\n private addPrimitive(geometry: RenderGeometry | undefined) {\r\n if (!geometry)\r\n return;\r\n\r\n assert(geometry instanceof CachedGeometry);\r\n const primitive = Primitive.createShared(geometry, this._instances);\r\n if (primitive)\r\n this._primitives.push(primitive);\r\n }\r\n\r\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\r\n super();\r\n this.meshData = geometry.data;\r\n this._meshRange = geometry.range;\r\n this._instances = instances;\r\n\r\n this.addPrimitive(geometry.surface);\r\n this.addPrimitive(geometry.segmentEdges);\r\n this.addPrimitive(geometry.silhouetteEdges);\r\n this.addPrimitive(geometry.polylineEdges);\r\n this.addPrimitive(geometry.indexedEdges);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n for (const primitive of this._primitives)\r\n dispose(primitive);\r\n\r\n dispose(this.meshData);\r\n dispose(this._instances);\r\n this._primitives.length = 0;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.meshData.collectStatistics(stats);\r\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\r\n this._instances?.collectStatistics(stats);\r\n }\r\n\r\n public override unionRange(range: Range3d) {\r\n if (this._instances)\r\n range.extendRange(range);\r\n else\r\n range.extendRange(this._meshRange);\r\n }\r\n\r\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\r\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\r\n\r\n public get surfaceType(): SurfaceType { return this.meshData.type; }\r\n}\r\n"]}
1
+ {"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.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 } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams } from \"../../common/render/InstancedGraphicParams\";\r\nimport { MeshParams } from \"../../common/internal/render/MeshParams\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderGeometry } from \"../RenderSystem\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { MeshData } from \"./MeshData\";\r\n\r\n/** @internal */\r\nexport class MeshRenderGeometry {\r\n public readonly data: MeshData;\r\n public readonly surface?: SurfaceGeometry;\r\n public readonly segmentEdges?: EdgeGeometry;\r\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\r\n public readonly polylineEdges?: PolylineEdgeGeometry;\r\n public readonly indexedEdges?: IndexedEdgeGeometry;\r\n public readonly range: Range3d;\r\n\r\n private constructor(data: MeshData, params: MeshParams) {\r\n this.data = data;\r\n this.range = params.vertices.qparams.computeRange();\r\n this.surface = SurfaceGeometry.create(data, params.surface.indices);\r\n const edges = params.edges;\r\n if (!edges || data.type === SurfaceType.VolumeClassifier)\r\n return;\r\n\r\n if (edges.silhouettes)\r\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\r\n\r\n if (edges.segments)\r\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\r\n\r\n if (edges.polylines)\r\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\r\n\r\n if (edges.indexed)\r\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\r\n }\r\n\r\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\r\n const data = MeshData.create(params, viewIndependentOrigin);\r\n return data ? new this(data, params) : undefined;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.data);\r\n dispose(this.surface);\r\n dispose(this.segmentEdges);\r\n dispose(this.silhouetteEdges);\r\n dispose(this.polylineEdges);\r\n dispose(this.indexedEdges);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this.data.collectStatistics(stats);\r\n this.surface?.collectStatistics(stats);\r\n this.segmentEdges?.collectStatistics(stats);\r\n this.silhouetteEdges?.collectStatistics(stats);\r\n this.polylineEdges?.collectStatistics(stats);\r\n this.indexedEdges?.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshGraphic extends Graphic {\r\n public readonly meshData: MeshData;\r\n private readonly _primitives: Primitive[] = [];\r\n private readonly _instances?: InstanceBuffers | PatternBuffers;\r\n private readonly _meshRange: Range3d;\r\n\r\n public get primitives(): readonly Primitive[] { return this._primitives; }\r\n public get meshRange(): Readonly<Range3d> { return this._meshRange; }\r\n\r\n public static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined {\r\n let buffers;\r\n if (instances) {\r\n if (instances instanceof PatternBuffers) {\r\n buffers = instances;\r\n } else {\r\n const instancesRange = instances.range ?? InstanceBuffers.computeRange(geometry.range, instances.transforms, instances.transformCenter);\r\n buffers = InstanceBuffers.create(instances, instancesRange);\r\n if (!buffers)\r\n return undefined;\r\n }\r\n }\r\n\r\n return new MeshGraphic(geometry, buffers);\r\n }\r\n\r\n private addPrimitive(geometry: RenderGeometry | undefined) {\r\n if (!geometry)\r\n return;\r\n\r\n assert(geometry instanceof CachedGeometry);\r\n const primitive = Primitive.createShared(geometry, this._instances);\r\n if (primitive)\r\n this._primitives.push(primitive);\r\n }\r\n\r\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\r\n super();\r\n this.meshData = geometry.data;\r\n this._meshRange = geometry.range;\r\n this._instances = instances;\r\n\r\n this.addPrimitive(geometry.surface);\r\n this.addPrimitive(geometry.segmentEdges);\r\n this.addPrimitive(geometry.silhouetteEdges);\r\n this.addPrimitive(geometry.polylineEdges);\r\n this.addPrimitive(geometry.indexedEdges);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n for (const primitive of this._primitives)\r\n dispose(primitive);\r\n\r\n dispose(this.meshData);\r\n dispose(this._instances);\r\n this._primitives.length = 0;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.meshData.collectStatistics(stats);\r\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\r\n this._instances?.collectStatistics(stats);\r\n }\r\n\r\n public override unionRange(range: Range3d) {\r\n if (this._instances)\r\n range.extendRange(range);\r\n else\r\n range.extendRange(this._meshRange);\r\n }\r\n\r\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\r\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\r\n\r\n public get surfaceType(): SurfaceType { return this.meshData.type; }\r\n}\r\n"]}
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import { Point3d } from "@itwin/core-geometry";
5
5
  import { FillFlags } from "@itwin/core-common";
6
- import { MeshParams } from "../../common/render/primitives/MeshParams";
7
- import { SurfaceType } from "../../common/render/primitives/SurfaceParams";
6
+ import { MeshParams } from "../../common/internal/render/MeshParams";
7
+ import { SurfaceType } from "../../common/internal/render/SurfaceParams";
8
8
  import { RenderMemory } from "../RenderMemory";
9
9
  import { WebGLDisposable } from "./Disposable";
10
10
  import { MaterialInfo } from "./Material";
@@ -1 +1 @@
1
- {"version":3,"file":"MeshData.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAsB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,QAAS,YAAW,eAAe;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1C,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClC,SAAgB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpC,SAAgB,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClD,SAAgB,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClD,SAAgB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjD,SAAgB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnD,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAClC,SAAgB,gBAAgB,EAAE,OAAO,CAAC;IAC1C,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAElD,OAAO;WAuDO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS;IAK7F,IAAW,UAAU,IAAI,OAAO,CAA8D;IAEvF,OAAO;IAMd,IAAW,OAAO,YAAiE;IACnF,IAAW,wBAAwB,YAA2D;IAG9F,OAAO,KAAK,YAAY,GAEvB;IAEM,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAK/D"}
1
+ {"version":3,"file":"MeshData.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAsB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,QAAS,YAAW,eAAe;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1C,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClC,SAAgB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpC,SAAgB,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClD,SAAgB,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClD,SAAgB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjD,SAAgB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnD,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,QAAQ,EAAE,OAAO,CAAC;IAClC,SAAgB,gBAAgB,EAAE,OAAO,CAAC;IAC1C,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAElD,OAAO;WAuDO,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS;IAK7F,IAAW,UAAU,IAAI,OAAO,CAA8D;IAEvF,OAAO;IAMd,IAAW,OAAO,YAAiE;IACnF,IAAW,wBAAwB,YAA2D;IAG9F,OAAO,KAAK,YAAY,GAEvB;IAEM,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAK/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"MeshData.js","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.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 { dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, FillFlags, LinePixels } from \"@itwin/core-common\";\r\nimport { MeshParams } from \"../../common/render/primitives/MeshParams\";\r\nimport { SurfaceType } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { createMaterialInfo, MaterialInfo } from \"./Material\";\r\nimport { Texture } from \"./Texture\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class MeshData implements WebGLDisposable {\r\n public readonly edgeWidth: number;\r\n public readonly hasFeatures: boolean;\r\n public readonly uniformFeatureId?: number; // Used strictly by BatchPrimitiveCommand.computeIsFlashed for flashing volume classification primitives.\r\n public readonly texture?: Texture;\r\n public readonly normalMap?: Texture;\r\n public readonly constantLodVParams?: Float32Array; // size 3, contains texture offset x & y and fake ortho distance (which will be set during binding)\r\n public readonly constantLodFParams?: Float32Array; // size 3, texture min and max size in worl units\r\n public readonly textureUsesConstantLod?: boolean;\r\n public readonly normalMapUsesConstantLod?: boolean;\r\n public readonly materialInfo?: MaterialInfo;\r\n public readonly type: SurfaceType;\r\n public readonly fillFlags: FillFlags;\r\n public readonly edgeLineCode: number; // Must call LineCode.valueFromLinePixels(val: LinePixels) and set the output to edgeLineCode\r\n public readonly isPlanar: boolean;\r\n public readonly hasBakedLighting: boolean;\r\n public readonly lut: VertexLUT;\r\n public readonly viewIndependentOrigin?: Point3d;\r\n private readonly _textureAlwaysDisplayed: boolean;\r\n\r\n private constructor(lut: VertexLUT, params: MeshParams, viOrigin: Point3d | undefined) {\r\n this.lut = lut;\r\n this.viewIndependentOrigin = viOrigin;\r\n\r\n this.hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n if (FeatureIndexType.Uniform === params.vertices.featureIndexType)\r\n this.uniformFeatureId = params.vertices.uniformFeatureID;\r\n\r\n this.textureUsesConstantLod = false;\r\n this.normalMapUsesConstantLod = false;\r\n if (undefined !== params.surface.textureMapping) {\r\n this.texture = params.surface.textureMapping.texture as Texture;\r\n this._textureAlwaysDisplayed = params.surface.textureMapping.alwaysDisplayed;\r\n if (undefined !== params.surface.material && !params.surface.material.isAtlas) {\r\n const matTM = params.surface.material.material.textureMapping;\r\n if (undefined !== matTM) {\r\n this.textureUsesConstantLod = this.texture && matTM.params.useConstantLod;\r\n if (undefined !== matTM.normalMapParams) {\r\n this.normalMapUsesConstantLod = matTM.normalMapParams.useConstantLod;\r\n if (undefined !== matTM.normalMapParams.normalMap) {\r\n this.normalMap = matTM.normalMapParams.normalMap as Texture;\r\n } else {\r\n // If there are normal map params but the normal map is not present, use the texture as a normal map instead of a pattern map.\r\n this.normalMap = this.texture;\r\n this.texture = undefined;\r\n }\r\n }\r\n if (this.normalMapUsesConstantLod || this.textureUsesConstantLod) {\r\n this.constantLodVParams = new Float32Array(3);\r\n this.constantLodVParams[0] = matTM.params.constantLodParams.offset.x; // x offset\r\n this.constantLodVParams[1] = matTM.params.constantLodParams.offset.y; // y offset\r\n this.constantLodVParams[3] = 0.0; // placeholder for orto view distance\r\n this.constantLodFParams = new Float32Array(3);\r\n this.constantLodFParams[0] = matTM.params.constantLodParams.minDistClamp; // Minimum texture size\r\n this.constantLodFParams[1] = matTM.params.constantLodParams.maxDistClamp; // Maximum texture size\r\n this.constantLodFParams[2] = matTM.params.constantLodParams.repetitions; // # repetitions of pattern (to scale it)\r\n }\r\n }\r\n }\r\n } else {\r\n this.texture = undefined;\r\n this._textureAlwaysDisplayed = false;\r\n }\r\n\r\n this.materialInfo = createMaterialInfo(params.surface.material);\r\n\r\n this.type = params.surface.type;\r\n this.fillFlags = params.surface.fillFlags;\r\n this.isPlanar = params.isPlanar;\r\n this.hasBakedLighting = params.surface.hasBakedLighting;\r\n const edges = params.edges;\r\n this.edgeWidth = undefined !== edges ? edges.weight : 1;\r\n this.edgeLineCode = LineCode.valueFromLinePixels(undefined !== edges ? edges.linePixels : LinePixels.Solid);\r\n }\r\n\r\n public static create(params: MeshParams, viOrigin: Point3d | undefined): MeshData | undefined {\r\n const lut = VertexLUT.createFromVertexTable(params.vertices, params.auxChannels);\r\n return undefined !== lut ? new MeshData(lut, params, viOrigin) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this.texture && this.lut.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.lut);\r\n if (this._ownsTexture)\r\n this.texture!.dispose();\r\n }\r\n\r\n public get isGlyph() { return undefined !== this.texture && this.texture.isGlyph; }\r\n public get isTextureAlwaysDisplayed() { return this.isGlyph || this._textureAlwaysDisplayed; }\r\n\r\n // Returns true if no one else owns this texture. Implies that the texture should be disposed when this object is disposed, and the texture's memory should be tracked as belonging to this object.\r\n private get _ownsTexture(): boolean {\r\n return undefined !== this.texture && !this.texture?.hasOwner;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n if (this._ownsTexture)\r\n stats.addTexture(this.texture!.bytesUsed);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MeshData.js","sourceRoot":"","sources":["../../../../src/render/webgl/MeshData.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 { dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, FillFlags, LinePixels } from \"@itwin/core-common\";\r\nimport { MeshParams } from \"../../common/internal/render/MeshParams\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { createMaterialInfo, MaterialInfo } from \"./Material\";\r\nimport { Texture } from \"./Texture\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class MeshData implements WebGLDisposable {\r\n public readonly edgeWidth: number;\r\n public readonly hasFeatures: boolean;\r\n public readonly uniformFeatureId?: number; // Used strictly by BatchPrimitiveCommand.computeIsFlashed for flashing volume classification primitives.\r\n public readonly texture?: Texture;\r\n public readonly normalMap?: Texture;\r\n public readonly constantLodVParams?: Float32Array; // size 3, contains texture offset x & y and fake ortho distance (which will be set during binding)\r\n public readonly constantLodFParams?: Float32Array; // size 3, texture min and max size in worl units\r\n public readonly textureUsesConstantLod?: boolean;\r\n public readonly normalMapUsesConstantLod?: boolean;\r\n public readonly materialInfo?: MaterialInfo;\r\n public readonly type: SurfaceType;\r\n public readonly fillFlags: FillFlags;\r\n public readonly edgeLineCode: number; // Must call LineCode.valueFromLinePixels(val: LinePixels) and set the output to edgeLineCode\r\n public readonly isPlanar: boolean;\r\n public readonly hasBakedLighting: boolean;\r\n public readonly lut: VertexLUT;\r\n public readonly viewIndependentOrigin?: Point3d;\r\n private readonly _textureAlwaysDisplayed: boolean;\r\n\r\n private constructor(lut: VertexLUT, params: MeshParams, viOrigin: Point3d | undefined) {\r\n this.lut = lut;\r\n this.viewIndependentOrigin = viOrigin;\r\n\r\n this.hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n if (FeatureIndexType.Uniform === params.vertices.featureIndexType)\r\n this.uniformFeatureId = params.vertices.uniformFeatureID;\r\n\r\n this.textureUsesConstantLod = false;\r\n this.normalMapUsesConstantLod = false;\r\n if (undefined !== params.surface.textureMapping) {\r\n this.texture = params.surface.textureMapping.texture as Texture;\r\n this._textureAlwaysDisplayed = params.surface.textureMapping.alwaysDisplayed;\r\n if (undefined !== params.surface.material && !params.surface.material.isAtlas) {\r\n const matTM = params.surface.material.material.textureMapping;\r\n if (undefined !== matTM) {\r\n this.textureUsesConstantLod = this.texture && matTM.params.useConstantLod;\r\n if (undefined !== matTM.normalMapParams) {\r\n this.normalMapUsesConstantLod = matTM.normalMapParams.useConstantLod;\r\n if (undefined !== matTM.normalMapParams.normalMap) {\r\n this.normalMap = matTM.normalMapParams.normalMap as Texture;\r\n } else {\r\n // If there are normal map params but the normal map is not present, use the texture as a normal map instead of a pattern map.\r\n this.normalMap = this.texture;\r\n this.texture = undefined;\r\n }\r\n }\r\n if (this.normalMapUsesConstantLod || this.textureUsesConstantLod) {\r\n this.constantLodVParams = new Float32Array(3);\r\n this.constantLodVParams[0] = matTM.params.constantLodParams.offset.x; // x offset\r\n this.constantLodVParams[1] = matTM.params.constantLodParams.offset.y; // y offset\r\n this.constantLodVParams[3] = 0.0; // placeholder for orto view distance\r\n this.constantLodFParams = new Float32Array(3);\r\n this.constantLodFParams[0] = matTM.params.constantLodParams.minDistClamp; // Minimum texture size\r\n this.constantLodFParams[1] = matTM.params.constantLodParams.maxDistClamp; // Maximum texture size\r\n this.constantLodFParams[2] = matTM.params.constantLodParams.repetitions; // # repetitions of pattern (to scale it)\r\n }\r\n }\r\n }\r\n } else {\r\n this.texture = undefined;\r\n this._textureAlwaysDisplayed = false;\r\n }\r\n\r\n this.materialInfo = createMaterialInfo(params.surface.material);\r\n\r\n this.type = params.surface.type;\r\n this.fillFlags = params.surface.fillFlags;\r\n this.isPlanar = params.isPlanar;\r\n this.hasBakedLighting = params.surface.hasBakedLighting;\r\n const edges = params.edges;\r\n this.edgeWidth = undefined !== edges ? edges.weight : 1;\r\n this.edgeLineCode = LineCode.valueFromLinePixels(undefined !== edges ? edges.linePixels : LinePixels.Solid);\r\n }\r\n\r\n public static create(params: MeshParams, viOrigin: Point3d | undefined): MeshData | undefined {\r\n const lut = VertexLUT.createFromVertexTable(params.vertices, params.auxChannels);\r\n return undefined !== lut ? new MeshData(lut, params, viOrigin) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this.texture && this.lut.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.lut);\r\n if (this._ownsTexture)\r\n this.texture!.dispose();\r\n }\r\n\r\n public get isGlyph() { return undefined !== this.texture && this.texture.isGlyph; }\r\n public get isTextureAlwaysDisplayed() { return this.isGlyph || this._textureAlwaysDisplayed; }\r\n\r\n // Returns true if no one else owns this texture. Implies that the texture should be disposed when this object is disposed, and the texture's memory should be tracked as belonging to this object.\r\n private get _ownsTexture(): boolean {\r\n return undefined !== this.texture && !this.texture?.hasOwner;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n if (this._ownsTexture)\r\n stats.addTexture(this.texture!.bytesUsed);\r\n }\r\n}\r\n"]}
@@ -19,7 +19,7 @@ export declare abstract class MeshGeometry extends LUTGeometry {
19
19
  get edgeWidth(): number;
20
20
  get edgeLineCode(): number;
21
21
  get hasFeatures(): boolean;
22
- get surfaceType(): import("../../core-frontend").SurfaceType;
22
+ get surfaceType(): import("../../common/internal/render/SurfaceParams").SurfaceType;
23
23
  get fillFlags(): import("@itwin/core-common").FillFlags;
24
24
  get isPlanar(): boolean;
25
25
  get colorInfo(): ColorInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"MeshGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAa,SAAQ,WAAW;IACpD,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC,IAAoB,MAAM,SAAmB;cAC1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGtE,IAAW,SAAS,WAAkC;IACtD,IAAW,YAAY,WAAqC;IAC5D,IAAoB,WAAW,YAAoC;IACnE,IAAW,WAAW,8CAA6B;IACnD,IAAW,SAAS,2CAAkC;IACtD,IAAW,QAAQ,YAAiC;IACpD,IAAW,SAAS,IAAI,SAAS,CAAoC;IACrE,IAAW,YAAY,IAAI,SAAS,GAAG,SAAS,CAA0E;IAC1H,IAAW,OAAO,4CAAgC;IAClD,IAAW,SAAS,4CAAkC;IACtD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,GAAG,oCAA4B;IAC1C,IAAW,kBAAkB,YAA+C;IAE5E,SAAS,aAAa,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAMxD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGhE,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGlE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAGrD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAYhD"}
1
+ {"version":3,"file":"MeshGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/MeshGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,8BAAsB,YAAa,SAAQ,WAAW;IACpD,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvC,IAAoB,MAAM,SAAmB;cAC1B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGtE,IAAW,SAAS,WAAkC;IACtD,IAAW,YAAY,WAAqC;IAC5D,IAAoB,WAAW,YAAoC;IACnE,IAAW,WAAW,qEAA6B;IACnD,IAAW,SAAS,2CAAkC;IACtD,IAAW,QAAQ,YAAiC;IACpD,IAAW,SAAS,IAAI,SAAS,CAAoC;IACrE,IAAW,YAAY,IAAI,SAAS,GAAG,SAAS,CAA0E;IAC1H,IAAW,OAAO,4CAAgC;IAClD,IAAW,SAAS,4CAAkC;IACtD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,GAAG,oCAA4B;IAC1C,IAAW,kBAAkB,YAA+C;IAE5E,SAAS,aAAa,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;IAMxD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGhE,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGlE,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAGrD,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAYhD"}
@@ -44,6 +44,8 @@ export declare class PlanarClassifier extends RenderPlanarClassifier implements
44
44
  private _classifierTreeRef?;
45
45
  private _planarClipMaskOverrides?;
46
46
  private _contentMode;
47
+ private _removeMe?;
48
+ private _featureSymbologySource;
47
49
  private static _postProjectionMatrix;
48
50
  private _debugFrustum?;
49
51
  private _doDebugFrustum;
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarClassifier.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanarClassifier.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarClassifier.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@
5
5
  /** @packageDocumentation
6
6
  * @module WebGL
7
7
  */
8
- import { dispose } from "@itwin/core-bentley";
8
+ import { BeEvent, dispose } from "@itwin/core-bentley";
9
9
  import { ColorDef, FrustumPlanes, RenderMode, RenderTexture, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay, TextureTransparency, } from "@itwin/core-common";
10
- import { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Vector3d } from "@itwin/core-geometry";
10
+ import { Matrix4d, Plane3dByOriginAndUnitNormal, Point3d, Range3d, Vector3d } from "@itwin/core-geometry";
11
11
  import { GraphicsCollectorDrawArgs } from "../../tile/internal";
12
12
  import { RenderPlanarClassifier } from "../RenderPlanarClassifier";
13
13
  import { BatchState } from "./BatchState";
@@ -199,6 +199,7 @@ class ClassifierAndMaskCombinationBuffer extends CombineTexturesFrameBuffer {
199
199
  const scratchPrevRenderState = new RenderState();
200
200
  /** @internal */
201
201
  export class PlanarClassifier extends RenderPlanarClassifier {
202
+ ;
202
203
  constructor(classifier, target) {
203
204
  super();
204
205
  this._projectionMatrix = Matrix4d.createIdentity();
@@ -214,6 +215,9 @@ export class PlanarClassifier extends RenderPlanarClassifier {
214
215
  this._renderState = new RenderState();
215
216
  this._branchStack = new BranchStack();
216
217
  this._contentMode = PlanarClassifierContent.None;
218
+ this._featureSymbologySource = {
219
+ onSourceDisposed: new BeEvent(),
220
+ };
217
221
  this._doDebugFrustum = false;
218
222
  this._debugFrustumGraphic = undefined;
219
223
  this._bgColor = ColorDef.from(0, 0, 0, 255);
@@ -264,6 +268,11 @@ export class PlanarClassifier extends RenderPlanarClassifier {
264
268
  this._maskBuffer = dispose(this._maskBuffer);
265
269
  this._classifierCombinedBuffer = dispose(this._classifierCombinedBuffer);
266
270
  this._classifierAndMaskCombinedBuffer = dispose(this._classifierAndMaskCombinedBuffer);
271
+ if (this._removeMe) {
272
+ this._removeMe();
273
+ this._removeMe = undefined;
274
+ }
275
+ this._featureSymbologySource.onSourceDisposed.raiseEvent();
267
276
  }
268
277
  get texture() {
269
278
  switch (this._contentMode) {
@@ -313,27 +322,40 @@ export class PlanarClassifier extends RenderPlanarClassifier {
313
322
  if (undefined === context.viewingSpace)
314
323
  return;
315
324
  const viewState = context.viewingSpace.view;
316
- if (undefined === viewState)
325
+ if (!viewState.isSpatialView())
317
326
  return;
318
- const requiredHeight = context.target.viewRect.height;
319
- const requiredWidth = context.target.viewRect.width;
327
+ this._doDebugFrustum = context.target.debugControl?.displayMaskFrustum ?? false;
328
+ const maxTextureSize = System.instance.maxTexSizeAllow;
329
+ const requiredHeight = maxTextureSize;
330
+ const requiredWidth = maxTextureSize;
320
331
  if (requiredWidth !== this._width || requiredHeight !== this._height)
321
332
  this.dispose();
322
333
  this._width = requiredWidth;
323
334
  this._height = requiredHeight;
324
- const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId);
335
+ const maskRange = Range3d.createNull();
336
+ const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId, maskRange);
325
337
  if (!maskTrees && !this._classifierTreeRef)
326
338
  return;
327
339
  const allTrees = maskTrees ? maskTrees.slice() : new Array();
328
340
  if (this._classifierTreeRef)
329
341
  allTrees.push(this._classifierTreeRef);
330
- const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height);
342
+ const projection = PlanarTextureProjection.computePlanarTextureProjection(this._plane, context, target, allTrees, viewState, this._width, this._height, maskRange);
331
343
  if (!projection.textureFrustum || !projection.projectionMatrix || !projection.worldToViewMap)
332
344
  return;
333
345
  this._projectionMatrix = projection.projectionMatrix;
334
346
  this._frustum = projection.textureFrustum;
335
347
  this._debugFrustum = projection.debugFrustum;
336
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();
348
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
349
+ if (!this._planarClipMask?.usingViewportOverrides && this._removeMe) {
350
+ this._removeMe();
351
+ this._removeMe = undefined;
352
+ }
353
+ else if (this._planarClipMask?.usingViewportOverrides && !this._removeMe) {
354
+ this._removeMe = context.viewport.onFeatureOverridesChanged.addListener(() => {
355
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
356
+ context.viewport.requestRedraw();
357
+ });
358
+ }
337
359
  const drawTree = (treeRef, graphics) => {
338
360
  this._graphics = graphics;
339
361
  const frustumPlanes = this._frustum ? FrustumPlanes.fromFrustum(this._frustum) : FrustumPlanes.createEmpty();
@@ -351,13 +373,20 @@ export class PlanarClassifier extends RenderPlanarClassifier {
351
373
  if (this._doDebugFrustum) {
352
374
  this._debugFrustumGraphic = dispose(this._debugFrustumGraphic);
353
375
  const builder = context.createSceneGraphicBuilder();
354
- builder.setSymbology(ColorDef.green, ColorDef.green, 1);
376
+ builder.setSymbology(ColorDef.green, ColorDef.green, 2);
355
377
  builder.addFrustum(context.viewingSpace.getFrustum());
356
- builder.setSymbology(ColorDef.red, ColorDef.red, 1);
378
+ builder.setSymbology(ColorDef.red, ColorDef.red, 2);
357
379
  builder.addFrustum(this._debugFrustum);
358
- builder.setSymbology(ColorDef.white, ColorDef.white, 1);
380
+ builder.setSymbology(ColorDef.blue, ColorDef.blue, 2);
359
381
  builder.addFrustum(this._frustum);
382
+ builder.setSymbology(ColorDef.from(0, 200, 0, 222), ColorDef.from(0, 200, 0, 222), 2);
383
+ builder.addFrustumSides(context.viewingSpace.getFrustum());
384
+ builder.setSymbology(ColorDef.from(200, 0, 0, 222), ColorDef.from(200, 0, 0, 222), 2);
385
+ builder.addFrustumSides(this._debugFrustum);
386
+ builder.setSymbology(ColorDef.from(0, 0, 200, 222), ColorDef.from(0, 0, 200, 222), 2);
387
+ builder.addFrustumSides(this._frustum);
360
388
  this._debugFrustumGraphic = builder.finish();
389
+ context.outputGraphic(this._debugFrustumGraphic);
361
390
  }
362
391
  }
363
392
  draw(target) {
@@ -408,8 +437,6 @@ export class PlanarClassifier extends RenderPlanarClassifier {
408
437
  this._contentMode = PlanarClassifierContent.ClassifierAndMask;
409
438
  }
410
439
  }
411
- if (undefined !== this._debugFrustumGraphic)
412
- target.graphics.foreground.push(this._debugFrustumGraphic);
413
440
  // Temporarily override the Target's state.
414
441
  const system = System.instance;
415
442
  const maskViewFlags = {