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

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":"MockRender.js","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, EmptyLocalization, RenderFeatureTable } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { MeshParams } from \"../common/render/primitives/MeshParams\";\r\nimport { PointStringParams } from \"../common/render/primitives/PointStringParams\";\r\nimport { PolylineParams } from \"../common/render/primitives/PolylineParams\";\r\nimport { ViewRect } from \"../common/ViewRect\";\r\nimport { Decorations } from \"./Decorations\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./GraphicBranch\";\r\nimport { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\r\nimport { Pixel } from \"./Pixel\";\r\nimport { PrimitiveBuilder } from \"./primitives/geometry/GeometryListBuilder\";\r\nimport { PointCloudArgs } from \"./primitives/PointCloudPrimitive\";\r\nimport { GraphicList, RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlan } from \"./RenderPlan\";\r\nimport { RenderAreaPattern, RenderGeometry, RenderSystem } from \"./RenderSystem\";\r\nimport { RenderTarget } from \"./RenderTarget\";\r\nimport { Scene } from \"./Scene\";\r\n\r\n/** Contains extensible mock implementations of the various components of a RenderSystem, intended for use in tests.\r\n * Use these for tests instead of the default RenderSystem wherever possible because:\r\n * (1) Electron has a bug on Windows in which it fails to obtain a WebGLRenderingContext when running inside a VM (e.g., during CI job); and\r\n * (2) To decouple the logic which uses aspects of the RenderSystem from the full implementation.\r\n * Any and all of these types can be extended for the purposes of specific tests.\r\n * To use this:\r\n * (1) If overriding anything in the implementation supplied herein, pass a SystemFactory function to MockRender.App.systemFactory.\r\n * (2) Call MockRender.App.startup() instead of IModelApp.startup() before tests begin.\r\n * (3) Likewise call MockRender.App.shutdown() when finished. This resets the SystemFactory to its default.\r\n * @note The APIs within this namespace are intended *strictly* for use with unit tests.\r\n * @internal\r\n */\r\nexport namespace MockRender {\r\n /** @internal */\r\n export abstract class Target extends RenderTarget {\r\n protected constructor(private readonly _system: RenderSystem) { super(); }\r\n\r\n public get renderSystem(): RenderSystem { return this._system; }\r\n public get wantInvertBlackBackground() { return false; }\r\n public get analysisFraction() { return 0; }\r\n public set analysisFraction(_fraction: number) { }\r\n public changeScene(_scene: Scene) { }\r\n public changeDynamics(_dynamics?: GraphicList) { }\r\n public changeDecorations(_decs: Decorations) { }\r\n public changeRenderPlan(_plan: RenderPlan) { }\r\n public drawFrame(_sceneTime?: number) { }\r\n public updateViewRect() { return false; }\r\n public readPixels(_rect: ViewRect, _selector: Pixel.Selector, receiver: Pixel.Receiver, _excludeNonLocatable: boolean) { receiver(undefined); }\r\n public get screenSpaceEffects(): Iterable<string> { return []; }\r\n public set screenSpaceEffects(_effects: Iterable<string>) { }\r\n }\r\n\r\n /** @internal */\r\n export class OnScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _canvas: HTMLCanvasElement) { super(system); }\r\n\r\n public get viewRect() { return new ViewRect(0, 0, this._canvas.clientWidth, this._canvas.clientHeight); }\r\n public setViewRect(_rect: ViewRect, _temp: boolean) { }\r\n }\r\n\r\n /** @internal */\r\n export class OffScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _viewRect: ViewRect) { super(system); }\r\n\r\n public get viewRect() { return this._viewRect; }\r\n public setViewRect(rect: ViewRect, _temp: boolean) { this._viewRect.setFrom(rect); }\r\n }\r\n\r\n /** @internal */\r\n export class Builder extends PrimitiveBuilder {\r\n public constructor(system: System, options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\r\n super(system, options);\r\n }\r\n }\r\n\r\n export class Graphic extends RenderGraphic {\r\n public constructor() { super(); }\r\n\r\n public dispose() { }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n public unionRange() { }\r\n }\r\n\r\n export class List extends Graphic {\r\n public constructor(public readonly graphics: RenderGraphic[]) { super(); }\r\n\r\n public override dispose() {\r\n for (const graphic of this.graphics)\r\n dispose(graphic);\r\n\r\n this.graphics.length = 0;\r\n }\r\n }\r\n\r\n export class Branch extends Graphic {\r\n public constructor(public readonly branch: GraphicBranch, public readonly transform: Transform, public readonly options?: GraphicBranchOptions) { super(); }\r\n\r\n public override dispose() { this.branch.dispose(); }\r\n }\r\n\r\n export class Batch extends Graphic {\r\n public constructor(public readonly graphic: RenderGraphic, public readonly featureTable: RenderFeatureTable, public readonly range: ElementAlignedBox3d) { super(); }\r\n\r\n public override dispose() {\r\n dispose(this.graphic);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Geometry implements RenderGeometry {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n /** @internal */\r\n export class AreaPattern implements RenderAreaPattern {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n export class System extends RenderSystem {\r\n public get isValid() { return true; }\r\n public dispose(): void { }\r\n public override get maxTextureSize() { return 4096; }\r\n\r\n public constructor() { super(); }\r\n\r\n /** @internal */\r\n public override doIdleWork(): boolean { return false; }\r\n\r\n /** @internal */\r\n public override createTarget(canvas: HTMLCanvasElement): OnScreenTarget { return new OnScreenTarget(this, canvas); }\r\n /** @internal */\r\n public override createOffscreenTarget(rect: ViewRect): RenderTarget { return new OffScreenTarget(this, rect); }\r\n\r\n public override createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions): GraphicBuilder {\r\n return new Builder(this, options);\r\n }\r\n\r\n public override createGraphicList(primitives: RenderGraphic[]) { return new List(primitives); }\r\n public override createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions) { return new Branch(branch, transform, options); }\r\n public override createBatch(graphic: RenderGraphic, features: RenderFeatureTable, range: ElementAlignedBox3d) { return new Batch(graphic, features, range); }\r\n\r\n /** @internal */\r\n public override createMesh(_params: MeshParams) { return new Graphic(); }\r\n /** @internal */\r\n public override createPolyline(_params: PolylineParams) { return new Graphic(); }\r\n /** @internal */\r\n public override createPointString(_params: PointStringParams) { return new Graphic(); }\r\n /** @internal */\r\n public override createPointCloud(_args: PointCloudArgs, _imodel: IModelConnection) { return new Graphic(); }\r\n public override createRenderGraphic() { return new Graphic(); }\r\n\r\n /** @internal */\r\n public override createMeshGeometry() { return new Geometry(); }\r\n /** @internal */\r\n public override createPolylineGeometry() { return new Geometry(); }\r\n /** @internal */\r\n public override createPointStringGeometry() { return new Geometry(); }\r\n /** @internal */\r\n public override createAreaPattern() { return new AreaPattern(); }\r\n }\r\n\r\n export type SystemFactory = () => RenderSystem;\r\n\r\n /** An implementation of IModelApp which uses a MockRender.System by default. */\r\n export class App {\r\n public static systemFactory: SystemFactory = () => App.createDefaultRenderSystem();\r\n\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n opts = opts ? opts : {};\r\n opts.renderSys = this.systemFactory();\r\n opts.localization = opts.localization ?? new EmptyLocalization();\r\n await IModelApp.startup(opts);\r\n }\r\n\r\n public static async shutdown(): Promise<void> {\r\n this.systemFactory = () => App.createDefaultRenderSystem();\r\n await IModelApp.shutdown();\r\n }\r\n\r\n protected static createDefaultRenderSystem() { return new System(); }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MockRender.js","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ElementAlignedBox3d, EmptyLocalization, RenderFeatureTable } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { MeshParams } from \"../common/internal/render/MeshParams\";\r\nimport { PointStringParams } from \"../common/internal/render/PointStringParams\";\r\nimport { PolylineParams } from \"../common/internal/render/PolylineParams\";\r\nimport { ViewRect } from \"../common/ViewRect\";\r\nimport { Decorations } from \"./Decorations\";\r\nimport { GraphicBranch, GraphicBranchOptions } from \"./GraphicBranch\";\r\nimport { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from \"./GraphicBuilder\";\r\nimport { Pixel } from \"./Pixel\";\r\nimport { PrimitiveBuilder } from \"../internal/render/PrimitiveBuilder\";\r\nimport { PointCloudArgs } from \"../common/internal/render/PointCloudPrimitive\";\r\nimport { GraphicList, RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlan } from \"./RenderPlan\";\r\nimport { RenderAreaPattern, RenderGeometry, RenderSystem } from \"./RenderSystem\";\r\nimport { RenderTarget } from \"./RenderTarget\";\r\nimport { Scene } from \"./Scene\";\r\nimport { _implementationProhibited } from \"../common/internal/Symbols\";\r\n\r\n/** Contains extensible mock implementations of the various components of a RenderSystem, intended for use in tests.\r\n * Use these for tests instead of the default RenderSystem wherever possible because:\r\n * (1) Electron has a bug on Windows in which it fails to obtain a WebGLRenderingContext when running inside a VM (e.g., during CI job); and\r\n * (2) To decouple the logic which uses aspects of the RenderSystem from the full implementation.\r\n * Any and all of these types can be extended for the purposes of specific tests.\r\n * To use this:\r\n * (1) If overriding anything in the implementation supplied herein, pass a SystemFactory function to MockRender.App.systemFactory.\r\n * (2) Call MockRender.App.startup() instead of IModelApp.startup() before tests begin.\r\n * (3) Likewise call MockRender.App.shutdown() when finished. This resets the SystemFactory to its default.\r\n * @note The APIs within this namespace are intended *strictly* for use with unit tests.\r\n * @internal\r\n */\r\nexport namespace MockRender {\r\n /** @internal */\r\n export abstract class Target extends RenderTarget {\r\n protected override readonly [_implementationProhibited] = undefined;\r\n\r\n protected constructor(private readonly _system: RenderSystem) { super(); }\r\n\r\n public get renderSystem(): RenderSystem { return this._system; }\r\n public get wantInvertBlackBackground() { return false; }\r\n public get analysisFraction() { return 0; }\r\n public set analysisFraction(_fraction: number) { }\r\n public changeScene(_scene: Scene) { }\r\n public changeDynamics(_dynamics?: GraphicList) { }\r\n public changeDecorations(_decs: Decorations) { }\r\n public changeRenderPlan(_plan: RenderPlan) { }\r\n public drawFrame(_sceneTime?: number) { }\r\n public updateViewRect() { return false; }\r\n public readPixels(_rect: ViewRect, _selector: Pixel.Selector, receiver: Pixel.Receiver, _excludeNonLocatable: boolean) { receiver(undefined); }\r\n public get screenSpaceEffects(): Iterable<string> { return []; }\r\n public set screenSpaceEffects(_effects: Iterable<string>) { }\r\n }\r\n\r\n /** @internal */\r\n export class OnScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _canvas: HTMLCanvasElement) { super(system); }\r\n\r\n public get viewRect() { return new ViewRect(0, 0, this._canvas.clientWidth, this._canvas.clientHeight); }\r\n public setViewRect(_rect: ViewRect, _temp: boolean) { }\r\n }\r\n\r\n /** @internal */\r\n export class OffScreenTarget extends Target {\r\n public constructor(system: RenderSystem, private readonly _viewRect: ViewRect) { super(system); }\r\n\r\n public get viewRect() { return this._viewRect; }\r\n public setViewRect(rect: ViewRect, _temp: boolean) { this._viewRect.setFrom(rect); }\r\n }\r\n\r\n /** @internal */\r\n export class Builder extends PrimitiveBuilder {\r\n public constructor(system: System, options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions) {\r\n super(system, options);\r\n }\r\n }\r\n\r\n export class Graphic extends RenderGraphic {\r\n public constructor() { super(); }\r\n\r\n public dispose() { }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n public unionRange() { }\r\n }\r\n\r\n export class List extends Graphic {\r\n public constructor(public readonly graphics: RenderGraphic[]) { super(); }\r\n\r\n public override dispose() {\r\n for (const graphic of this.graphics)\r\n dispose(graphic);\r\n\r\n this.graphics.length = 0;\r\n }\r\n }\r\n\r\n export class Branch extends Graphic {\r\n public constructor(public readonly branch: GraphicBranch, public readonly transform: Transform, public readonly options?: GraphicBranchOptions) { super(); }\r\n\r\n public override dispose() { this.branch.dispose(); }\r\n }\r\n\r\n export class Batch extends Graphic {\r\n public constructor(public readonly graphic: RenderGraphic, public readonly featureTable: RenderFeatureTable, public readonly range: ElementAlignedBox3d) { super(); }\r\n\r\n public override dispose() {\r\n dispose(this.graphic);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export class Geometry implements RenderGeometry {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n /** @internal */\r\n export class AreaPattern implements RenderAreaPattern {\r\n public dispose(): void { }\r\n public collectStatistics(): void { }\r\n }\r\n\r\n export class System extends RenderSystem {\r\n public get isValid() { return true; }\r\n public dispose(): void { }\r\n public override get maxTextureSize() { return 4096; }\r\n\r\n public constructor() { super(); }\r\n\r\n /** @internal */\r\n public override doIdleWork(): boolean { return false; }\r\n\r\n /** @internal */\r\n public override createTarget(canvas: HTMLCanvasElement): OnScreenTarget { return new OnScreenTarget(this, canvas); }\r\n /** @internal */\r\n public override createOffscreenTarget(rect: ViewRect): RenderTarget { return new OffScreenTarget(this, rect); }\r\n\r\n public override createGraphic(options: CustomGraphicBuilderOptions | ViewportGraphicBuilderOptions): GraphicBuilder {\r\n return new Builder(this, options);\r\n }\r\n\r\n public override createGraphicList(primitives: RenderGraphic[]) { return new List(primitives); }\r\n public override createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions) { return new Branch(branch, transform, options); }\r\n public override createBatch(graphic: RenderGraphic, features: RenderFeatureTable, range: ElementAlignedBox3d) { return new Batch(graphic, features, range); }\r\n\r\n /** @internal */\r\n public override createMesh(_params: MeshParams) { return new Graphic(); }\r\n /** @internal */\r\n public override createPolyline(_params: PolylineParams) { return new Graphic(); }\r\n /** @internal */\r\n public override createPointString(_params: PointStringParams) { return new Graphic(); }\r\n /** @internal */\r\n public override createPointCloud(_args: PointCloudArgs, _imodel: IModelConnection) { return new Graphic(); }\r\n public override createRenderGraphic() { return new Graphic(); }\r\n\r\n /** @internal */\r\n public override createMeshGeometry() { return new Geometry(); }\r\n /** @internal */\r\n public override createPolylineGeometry() { return new Geometry(); }\r\n /** @internal */\r\n public override createPointStringGeometry() { return new Geometry(); }\r\n /** @internal */\r\n public override createAreaPattern() { return new AreaPattern(); }\r\n }\r\n\r\n export type SystemFactory = () => RenderSystem;\r\n\r\n /** An implementation of IModelApp which uses a MockRender.System by default. */\r\n export class App {\r\n public static systemFactory: SystemFactory = () => App.createDefaultRenderSystem();\r\n\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n opts = opts ? opts : {};\r\n opts.renderSys = this.systemFactory();\r\n opts.localization = opts.localization ?? new EmptyLocalization();\r\n await IModelApp.startup(opts);\r\n }\r\n\r\n public static async shutdown(): Promise<void> {\r\n this.systemFactory = () => App.createDefaultRenderSystem();\r\n await IModelApp.shutdown();\r\n }\r\n\r\n protected static createDefaultRenderSystem() { return new System(); }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleCollectionBuilder.d.ts","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAkD,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAC8G,aAAa,EACjI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAErB,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,yDAAyD;IACzD,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAEtB,6KAA6K;IAC7K,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,sIAAsI;IACtI,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB,iIAAiI;IACjI,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;OAIG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAE/C;;;OAGG;IACH,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;CACzC;AAED;;;GAGG;AACH,yBAAiB,yBAAyB,CAAC;IACzC;;OAEG;IACH,SAAgB,MAAM,CAAC,MAAM,EAAE,+BAA+B,GAAG,yBAAyB,CAEzF;CACF"}
1
+ {"version":3,"file":"ParticleCollectionBuilder.d.ts","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAkD,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAC8G,aAAa,EACjI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAErB,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,yDAAyD;IACzD,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAEtB,6KAA6K;IAC7K,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,sIAAsI;IACtI,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB,iIAAiI;IACjI,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;OAIG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAE/C;;;OAGG;IACH,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;CACzC;AAED;;;GAGG;AACH,yBAAiB,yBAAyB,CAAC;IACzC;;OAEG;IACH,SAAgB,MAAM,CAAC,MAAM,EAAE,+BAA+B,GAAG,yBAAyB,CAEzF;CACF"}
@@ -11,8 +11,9 @@ exports.ParticleCollectionBuilder = void 0;
11
11
  const core_geometry_1 = require("@itwin/core-geometry");
12
12
  const core_common_1 = require("@itwin/core-common");
13
13
  const GraphicBranch_1 = require("./GraphicBranch");
14
- const DisplayParams_1 = require("../common/render/primitives/DisplayParams");
15
- const VertexTableBuilder_1 = require("./primitives/VertexTableBuilder");
14
+ const DisplayParams_1 = require("../common/internal/render/DisplayParams");
15
+ const VertexTableBuilder_1 = require("../common/internal/render/VertexTableBuilder");
16
+ const IModelApp_1 = require("../IModelApp");
16
17
  /**
17
18
  * @public
18
19
  * @extensions
@@ -233,7 +234,7 @@ function createQuad(size, texture, transparency, viewport) {
233
234
  uvParams: [new core_geometry_1.Point2d(0, 1), new core_geometry_1.Point2d(1, 1), new core_geometry_1.Point2d(0, 0), new core_geometry_1.Point2d(1, 0)],
234
235
  },
235
236
  };
236
- return (0, VertexTableBuilder_1.createMeshParams)(quadArgs, viewport.target.renderSystem.maxTextureSize);
237
+ return (0, VertexTableBuilder_1.createMeshParams)(quadArgs, viewport.target.renderSystem.maxTextureSize, "non-indexed" !== IModelApp_1.IModelApp.tileAdmin.edgeOptions.type);
237
238
  }
238
239
  function clampTransparency(transparency) {
239
240
  transparency = Math.min(255, transparency, Math.max(0, transparency));
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleCollectionBuilder.js","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.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 Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { Matrix3d, Point2d, Point3d, Range3d, Transform, Vector2d, XAndY, XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, ColorIndex, Feature, FeatureIndex, FeatureTable, FillFlags, PackedFeatureTable, QParams3d, QPoint3dList, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { RenderGraphic } from \"./RenderGraphic\";\r\nimport { GraphicBranch } from \"./GraphicBranch\";\r\nimport { MeshArgs } from \"./primitives/mesh/MeshPrimitives\";\r\nimport { DisplayParams } from \"../common/render/primitives/DisplayParams\";\r\nimport { MeshParams } from \"../common/render/primitives/MeshParams\";\r\nimport { createMeshParams } from \"./primitives/VertexTableBuilder\";\r\n\r\n/** Parameters used to construct a [[ParticleCollectionBuilder]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ParticleCollectionBuilderParams {\r\n /** The image mapped to each particle quad.\r\n * @note The texture should be disposed of when no longer needed to free up WebGL resources. For example, if a [[Decorator]] creates the texture, the\r\n * texture should probably be disposed of when the decorator is removed from the [[ViewManager]].\r\n */\r\n texture: RenderTexture;\r\n\r\n /** The default extents of the particle quad. Individual particles may apply a scale to these extents to produce particles of varying dimensions.\r\n * Must be positive.\r\n */\r\n size: XAndY | number;\r\n\r\n /** The initial transparency of the particles as an integer in [0,255]. Defaults to zero if omitted. */\r\n transparency?: number;\r\n\r\n /** The origin of the particle collection in world coordinates. Defaults to (0, 0, 0). */\r\n origin?: XYAndZ;\r\n\r\n /** If the particles are to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\r\n * @see [[IModelConnection.transientIdSequence]] to obtain an Id that is unique within an iModel.\r\n */\r\n pickableId?: Id64String;\r\n\r\n /** The viewport in which the particles will be drawn. */\r\n viewport: Viewport;\r\n\r\n /** If true, the finished graphic will be defined in view coordinates, for use as a decoration of type [[GraphicType.ViewBackground]] or [[GraphicType.ViewOverlay]].\r\n * Defaults to false, indicating the graphic will be defined in world coordinates.\r\n * @see [[CoordSystem.View]] and [[CoordSystem.World]].\r\n */\r\n isViewCoords?: boolean;\r\n}\r\n\r\n/** Describes a particle to to add to a particle collection via [[ParticleCollectionBuilder.addParticle]].\r\n * The x, y, and z coordinates represent the centroid of the particle quad in the collection's coordinate space.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ParticleProps extends XYAndZ {\r\n /** The size of the particle, in the collection's coordinate space. If omitted, it defaults to the size supplied to the collection by [[ParticleCollectionBuilderParams.size]].\r\n * Supplying a `number` produces a square; supplying a non-uniform `XAndY` produces a rectangle. Must be positive.\r\n */\r\n size?: XAndY | number;\r\n\r\n /** The transparency with which to draw the particle as an integer in [0,255]. If omitted, it defaults to the current value of [[ParticleCollectionBuilder.transparency]]. */\r\n transparency?: number;\r\n\r\n /** A rotation matrix to orient the particle. If supplied then the particle will not be automatically oriented towards the camera. */\r\n rotationMatrix?: Matrix3d;\r\n}\r\n\r\n/** Interface for producing a collection of particles suitable for use in particle effects.\r\n * Particle effects involve animating hundreds or thousands of small particles to simulate phenomena like smoke, fire, snow, etc.\r\n * A particle collection represents each particle as a quad (rectangle) displaying an image. The position of each particle corresponds to the\r\n * centroid of its quad. The transparency and size of each particle can be specified individually. By default, the quads will always rotate to face the camera\r\n * such that the image is fully visible.\r\n *\r\n * Creating a particle collection using a ParticleCollectionBuilder is far more efficient (in both CPU and GPU usage) than doing so using a [[GraphicBuilder]].\r\n * @see interactive demonstrations of [Snow and Rain](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=snow-rain-sample&imodel=Villa) and\r\n * [Fire and Smoke](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=fire-sample&imodel=Villa) particle effects.\r\n * @see [SnowEffect]($frontend-devtools) for an example of a particle effect.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ParticleCollectionBuilder {\r\n /** The default transparency for newly-added particles as an integer in [0,255], used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.transparency]] is omitted.\r\n * Changing this value has no effect on the transparency of previously-added particles.\r\n */\r\n transparency: number;\r\n\r\n /** The default size of each particle, used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.size]] is omitted. */\r\n size: XAndY;\r\n\r\n /** Add a particle to the collection.\r\n * If `size` is omitted, `this.size` is used.\r\n * If `transparency` is omitted, `this.transparency` is used.\r\n * @throws Error if particle size is defined and not greater than zero.\r\n */\r\n addParticle: (particle: ParticleProps) => void;\r\n\r\n /** Produces a finished graphic from the accumulated particles.\r\n * It returns the finished graphic, or `undefined` if the collection contains no particles or the [[RenderSystem]] failed to produce the graphic.\r\n * @note After this method returns, the particle collection is empty.\r\n */\r\n finish: () => RenderGraphic | undefined;\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace ParticleCollectionBuilder {\r\n /** Creates a new ParticleCollectionBuilder.\r\n * @throws Error if size is not greater than zero.\r\n */\r\n export function create(params: ParticleCollectionBuilderParams): ParticleCollectionBuilder {\r\n return new Builder(params);\r\n }\r\n}\r\n\r\nclass Particle {\r\n public readonly centroid: Point3d;\r\n public readonly transparency: number;\r\n public readonly width: number;\r\n public readonly height: number;\r\n public readonly rotationMatrix?: Matrix3d;\r\n\r\n public constructor(centroid: XYAndZ, width: number, height: number, transparency: number, rotationMatrix?: Matrix3d) {\r\n this.centroid = Point3d.fromJSON(centroid);\r\n this.transparency = transparency;\r\n this.width = width;\r\n this.height = height;\r\n this.rotationMatrix = rotationMatrix;\r\n }\r\n}\r\n\r\nclass Builder implements ParticleCollectionBuilder {\r\n private readonly _viewport: Viewport;\r\n private readonly _isViewCoords: boolean;\r\n private readonly _pickableId?: Id64String;\r\n private readonly _texture: RenderTexture;\r\n private readonly _size: Vector2d;\r\n private _transparency: number;\r\n private _hasVaryingTransparency = false;\r\n private readonly _localToWorldTransform: Transform;\r\n private readonly _range = Range3d.createNull();\r\n private _particlesOpaque: Particle[] = [];\r\n private _particlesTranslucent: Particle[] = [];\r\n\r\n public constructor(params: ParticleCollectionBuilderParams) {\r\n this._viewport = params.viewport;\r\n this._isViewCoords = true === params.isViewCoords;\r\n this._pickableId = params.pickableId;\r\n this._texture = params.texture;\r\n this._transparency = undefined !== params.transparency ? clampTransparency(params.transparency) : 0;\r\n this._localToWorldTransform = params.origin ? Transform.createTranslationXYZ(params.origin.x, params.origin.y, params.origin.z) : Transform.createIdentity();\r\n\r\n if (\"number\" === typeof params.size)\r\n this._size = new Vector2d(params.size, params.size);\r\n else\r\n this._size = Vector2d.fromJSON(params.size);\r\n\r\n if (this._size.x <= 0 || this._size.y <= 0)\r\n throw new Error(\"Particle size must be greater than zero\");\r\n }\r\n\r\n public get size(): XAndY {\r\n return this._size;\r\n }\r\n\r\n public get transparency() {\r\n return this._transparency;\r\n }\r\n\r\n public set transparency(transparency: number) {\r\n transparency = clampTransparency(transparency);\r\n if (transparency !== this._transparency) {\r\n this._transparency = transparency;\r\n this._hasVaryingTransparency = this._particlesTranslucent.length > 0;\r\n }\r\n }\r\n\r\n public addParticle(props: ParticleProps): void {\r\n const size = props.size ?? this._size;\r\n let width, height;\r\n if (\"number\" === typeof size) {\r\n width = height = size;\r\n } else {\r\n width = size.x;\r\n height = size.y;\r\n }\r\n\r\n if (width <= 0 || height <= 0)\r\n throw new Error(\"A particle must have a size greater than zero\");\r\n\r\n const transparency = undefined !== props.transparency ? clampTransparency(props.transparency) : this.transparency;\r\n if (transparency !== this.transparency && this._particlesTranslucent.length > 0)\r\n this._hasVaryingTransparency = true;\r\n\r\n const particle = new Particle(props, width, height, transparency, props.rotationMatrix);\r\n if (transparency > 0)\r\n this._particlesTranslucent.push(particle);\r\n else\r\n this._particlesOpaque.push(particle);\r\n this._range.extendPoint(particle.centroid);\r\n }\r\n\r\n public finish(): RenderGraphic | undefined {\r\n if (0 === this._particlesTranslucent.length + this._particlesOpaque.length)\r\n return undefined;\r\n\r\n // Order-independent transparency doesn't work well with opaque geometry - it will look semi-transparent.\r\n // If we have a mix of opaque and transparent particles, put them in separate graphics to be rendered in separate passes.\r\n const opaque = this.createGraphic(this._particlesOpaque, 0);\r\n const transparent = this.createGraphic(this._particlesTranslucent, this._hasVaryingTransparency ? undefined : this._transparency);\r\n\r\n // Empty the collection before any return statements.\r\n const range = this._range.clone();\r\n this._range.setNull();\r\n this._particlesOpaque.length = 0;\r\n this._particlesTranslucent.length = 0;\r\n this._hasVaryingTransparency = false;\r\n\r\n if (!transparent && !opaque)\r\n return undefined;\r\n\r\n // Transform from origin to collection, then to world.\r\n const toCollection = Transform.createTranslation(range.center);\r\n const toWorld = toCollection.multiplyTransformTransform(this._localToWorldTransform);\r\n const branch = new GraphicBranch(true);\r\n if (opaque)\r\n branch.add(opaque);\r\n\r\n if (transparent)\r\n branch.add(transparent);\r\n\r\n let graphic = this._viewport.target.renderSystem.createGraphicBranch(branch, toWorld);\r\n\r\n // If we have a pickable Id, produce a batch.\r\n // NB: We pass this._pickableId as the FeatureTable's modelId so that it will be treated like a reality model or a map -\r\n // specifically, it can be located and display a tooltip, but can't be selected.\r\n const featureTable = this._pickableId ? new FeatureTable(1, this._pickableId) : undefined;\r\n if (featureTable) {\r\n this._localToWorldTransform.multiplyRange(range, range);\r\n featureTable.insert(new Feature(this._pickableId));\r\n graphic = this._viewport.target.renderSystem.createBatch(graphic, PackedFeatureTable.pack(featureTable), range);\r\n }\r\n\r\n return graphic;\r\n }\r\n\r\n private createGraphic(particles: Particle[], uniformTransparency: number | undefined): RenderGraphic | undefined {\r\n const numParticles = particles.length;\r\n if (numParticles <= 0)\r\n return undefined;\r\n\r\n // To keep scale values close to 1, compute mean size to use as size of quad.\r\n const meanSize = new Vector2d();\r\n let maxSize = 0;\r\n for (const particle of particles) {\r\n meanSize.x += particle.width;\r\n meanSize.y += particle.height;\r\n if (particle.width > maxSize)\r\n maxSize = particle.width;\r\n if (particle.height > maxSize)\r\n maxSize = particle.height;\r\n }\r\n meanSize.x /= numParticles;\r\n meanSize.y /= numParticles;\r\n\r\n // Define InstancedGraphicParams for particles.\r\n const rangeCenter = this._range.center;\r\n const floatsPerTransform = 12;\r\n const transforms = new Float32Array(floatsPerTransform * numParticles);\r\n const bytesPerOverride = 8;\r\n const symbologyOverrides = undefined === uniformTransparency ? new Uint8Array(bytesPerOverride * numParticles) : undefined;\r\n\r\n const viewToWorld = this._viewport.view.getRotation().transpose();\r\n let tfIndex = 0;\r\n let ovrIndex = 0;\r\n for (const particle of particles) {\r\n const scaleX = particle.width / meanSize.x;\r\n const scaleY = particle.height / meanSize.y;\r\n if (this._isViewCoords) {\r\n // Particles already face the camera in view coords - just apply the scale.\r\n transforms[tfIndex + 0] = scaleX;\r\n transforms[tfIndex + 5] = scaleY;\r\n transforms[tfIndex + 10] = 1;\r\n } else if (undefined !== particle.rotationMatrix) {\r\n // Scale rotation matrix relative to size of quad.\r\n transforms[tfIndex + 0] = particle.rotationMatrix.coffs[0] * scaleX;\r\n transforms[tfIndex + 1] = particle.rotationMatrix.coffs[1] * scaleY;\r\n transforms[tfIndex + 2] = particle.rotationMatrix.coffs[2];\r\n transforms[tfIndex + 4] = particle.rotationMatrix.coffs[3] * scaleX;\r\n transforms[tfIndex + 5] = particle.rotationMatrix.coffs[4] * scaleY;\r\n transforms[tfIndex + 6] = particle.rotationMatrix.coffs[5];\r\n transforms[tfIndex + 8] = particle.rotationMatrix.coffs[6] * scaleX;\r\n transforms[tfIndex + 9] = particle.rotationMatrix.coffs[7] * scaleY;\r\n transforms[tfIndex + 10] = particle.rotationMatrix.coffs[8];\r\n } else {\r\n // Rotate about origin by inverse view matrix so quads always face the camera and scale relative to size of quad.\r\n transforms[tfIndex + 0] = viewToWorld.coffs[0] * scaleX;\r\n transforms[tfIndex + 1] = viewToWorld.coffs[1] * scaleY;\r\n transforms[tfIndex + 2] = viewToWorld.coffs[2];\r\n transforms[tfIndex + 4] = viewToWorld.coffs[3] * scaleX;\r\n transforms[tfIndex + 5] = viewToWorld.coffs[4] * scaleY;\r\n transforms[tfIndex + 6] = viewToWorld.coffs[5];\r\n transforms[tfIndex + 8] = viewToWorld.coffs[6] * scaleX;\r\n transforms[tfIndex + 9] = viewToWorld.coffs[7] * scaleY;\r\n transforms[tfIndex + 10] = viewToWorld.coffs[8];\r\n }\r\n\r\n // Translate relative to center of particles range.\r\n transforms[tfIndex + 3] = particle.centroid.x - rangeCenter.x;\r\n transforms[tfIndex + 7] = particle.centroid.y - rangeCenter.y;\r\n transforms[tfIndex + 11] = particle.centroid.z - rangeCenter.z;\r\n\r\n tfIndex += floatsPerTransform;\r\n\r\n if (symbologyOverrides) {\r\n // See FeatureOverrides.buildLookupTable() for layout.\r\n symbologyOverrides[ovrIndex + 0] = 1 << 2; // OvrFlags.Alpha\r\n symbologyOverrides[ovrIndex + 7] = 0xff - particle.transparency;\r\n\r\n ovrIndex += bytesPerOverride;\r\n }\r\n }\r\n\r\n // Produce instanced quads.\r\n // Note: We do not need to allocate an array of featureIds. If we have a pickableId, all particles refer to the same Feature, with index 0.\r\n // So we leave the vertex attribute disabled causing the shader to receive the default (0, 0, 0) which happens to correspond to our feature index.\r\n const quad = createQuad(meanSize, this._texture, uniformTransparency ?? 0x7f, this._viewport);\r\n const transformCenter = new Point3d(0, 0, 0);\r\n const range = computeRange(this._range, rangeCenter, maxSize);\r\n const instances = { count: numParticles, transforms, transformCenter, symbologyOverrides, range };\r\n return this._viewport.target.renderSystem.createMesh(quad, instances);\r\n }\r\n}\r\n\r\nfunction createQuad(size: XAndY, texture: RenderTexture, transparency: number, viewport: Viewport): MeshParams {\r\n const halfWidth = size.x / 2;\r\n const halfHeight = size.y / 2;\r\n const corners = [\r\n new Point3d(-halfWidth, -halfHeight, 0), new Point3d(halfWidth, -halfHeight, 0),\r\n new Point3d(-halfWidth, halfHeight, 0), new Point3d(halfWidth, halfHeight, 0),\r\n ];\r\n\r\n const range = new Range3d();\r\n range.low = corners[0];\r\n range.high = corners[3];\r\n\r\n const points = new QPoint3dList(QParams3d.fromRange(range));\r\n for (const corner of corners)\r\n points.add(corner);\r\n\r\n const colors = new ColorIndex();\r\n colors.initUniform(ColorDef.white.withTransparency(transparency));\r\n\r\n const quadArgs: MeshArgs = {\r\n points,\r\n vertIndices: [0, 1, 2, 2, 1, 3],\r\n fillFlags: FillFlags.None,\r\n isPlanar: true,\r\n colors,\r\n features: new FeatureIndex(),\r\n textureMapping: {\r\n texture,\r\n uvParams: [new Point2d(0, 1), new Point2d(1, 1), new Point2d(0, 0), new Point2d(1, 0)],\r\n },\r\n };\r\n\r\n return createMeshParams(quadArgs, viewport.target.renderSystem.maxTextureSize);\r\n}\r\n\r\nfunction clampTransparency(transparency: number): number {\r\n transparency = Math.min(255, transparency, Math.max(0, transparency));\r\n transparency = Math.floor(transparency);\r\n if (transparency < DisplayParams.minTransparency)\r\n transparency = 0;\r\n\r\n return transparency;\r\n}\r\n\r\nfunction computeRange(centroidRange: Range3d, center: Point3d, maxSize: number): Range3d {\r\n const range2 = centroidRange.clone();\r\n range2.low.subtractInPlace(center);\r\n range2.high.subtractInPlace(center);\r\n const halfSize = maxSize * 0.5;\r\n range2.low.x -= halfSize;\r\n range2.low.y -= halfSize;\r\n range2.low.z -= halfSize;\r\n range2.high.x += halfSize;\r\n range2.high.y += halfSize;\r\n range2.high.z += halfSize;\r\n return range2;\r\n}\r\n"]}
1
+ {"version":3,"file":"ParticleCollectionBuilder.js","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.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 Rendering\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { Matrix3d, Point2d, Point3d, Range3d, Transform, Vector2d, XAndY, XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, ColorIndex, Feature, FeatureIndex, FeatureTable, FillFlags, PackedFeatureTable, QParams3d, QPoint3dList, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { RenderGraphic } from \"./RenderGraphic\";\r\nimport { GraphicBranch } from \"./GraphicBranch\";\r\nimport { DisplayParams } from \"../common/internal/render/DisplayParams\";\r\nimport { MeshParams } from \"../common/internal/render/MeshParams\";\r\nimport { createMeshParams } from \"../common/internal/render/VertexTableBuilder\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { MeshArgs } from \"./MeshArgs\";\r\n\r\n/** Parameters used to construct a [[ParticleCollectionBuilder]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ParticleCollectionBuilderParams {\r\n /** The image mapped to each particle quad.\r\n * @note The texture should be disposed of when no longer needed to free up WebGL resources. For example, if a [[Decorator]] creates the texture, the\r\n * texture should probably be disposed of when the decorator is removed from the [[ViewManager]].\r\n */\r\n texture: RenderTexture;\r\n\r\n /** The default extents of the particle quad. Individual particles may apply a scale to these extents to produce particles of varying dimensions.\r\n * Must be positive.\r\n */\r\n size: XAndY | number;\r\n\r\n /** The initial transparency of the particles as an integer in [0,255]. Defaults to zero if omitted. */\r\n transparency?: number;\r\n\r\n /** The origin of the particle collection in world coordinates. Defaults to (0, 0, 0). */\r\n origin?: XYAndZ;\r\n\r\n /** If the particles are to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\r\n * @see [[IModelConnection.transientIdSequence]] to obtain an Id that is unique within an iModel.\r\n */\r\n pickableId?: Id64String;\r\n\r\n /** The viewport in which the particles will be drawn. */\r\n viewport: Viewport;\r\n\r\n /** If true, the finished graphic will be defined in view coordinates, for use as a decoration of type [[GraphicType.ViewBackground]] or [[GraphicType.ViewOverlay]].\r\n * Defaults to false, indicating the graphic will be defined in world coordinates.\r\n * @see [[CoordSystem.View]] and [[CoordSystem.World]].\r\n */\r\n isViewCoords?: boolean;\r\n}\r\n\r\n/** Describes a particle to to add to a particle collection via [[ParticleCollectionBuilder.addParticle]].\r\n * The x, y, and z coordinates represent the centroid of the particle quad in the collection's coordinate space.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ParticleProps extends XYAndZ {\r\n /** The size of the particle, in the collection's coordinate space. If omitted, it defaults to the size supplied to the collection by [[ParticleCollectionBuilderParams.size]].\r\n * Supplying a `number` produces a square; supplying a non-uniform `XAndY` produces a rectangle. Must be positive.\r\n */\r\n size?: XAndY | number;\r\n\r\n /** The transparency with which to draw the particle as an integer in [0,255]. If omitted, it defaults to the current value of [[ParticleCollectionBuilder.transparency]]. */\r\n transparency?: number;\r\n\r\n /** A rotation matrix to orient the particle. If supplied then the particle will not be automatically oriented towards the camera. */\r\n rotationMatrix?: Matrix3d;\r\n}\r\n\r\n/** Interface for producing a collection of particles suitable for use in particle effects.\r\n * Particle effects involve animating hundreds or thousands of small particles to simulate phenomena like smoke, fire, snow, etc.\r\n * A particle collection represents each particle as a quad (rectangle) displaying an image. The position of each particle corresponds to the\r\n * centroid of its quad. The transparency and size of each particle can be specified individually. By default, the quads will always rotate to face the camera\r\n * such that the image is fully visible.\r\n *\r\n * Creating a particle collection using a ParticleCollectionBuilder is far more efficient (in both CPU and GPU usage) than doing so using a [[GraphicBuilder]].\r\n * @see interactive demonstrations of [Snow and Rain](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=snow-rain-sample&imodel=Villa) and\r\n * [Fire and Smoke](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=fire-sample&imodel=Villa) particle effects.\r\n * @see [SnowEffect]($frontend-devtools) for an example of a particle effect.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ParticleCollectionBuilder {\r\n /** The default transparency for newly-added particles as an integer in [0,255], used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.transparency]] is omitted.\r\n * Changing this value has no effect on the transparency of previously-added particles.\r\n */\r\n transparency: number;\r\n\r\n /** The default size of each particle, used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.size]] is omitted. */\r\n size: XAndY;\r\n\r\n /** Add a particle to the collection.\r\n * If `size` is omitted, `this.size` is used.\r\n * If `transparency` is omitted, `this.transparency` is used.\r\n * @throws Error if particle size is defined and not greater than zero.\r\n */\r\n addParticle: (particle: ParticleProps) => void;\r\n\r\n /** Produces a finished graphic from the accumulated particles.\r\n * It returns the finished graphic, or `undefined` if the collection contains no particles or the [[RenderSystem]] failed to produce the graphic.\r\n * @note After this method returns, the particle collection is empty.\r\n */\r\n finish: () => RenderGraphic | undefined;\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace ParticleCollectionBuilder {\r\n /** Creates a new ParticleCollectionBuilder.\r\n * @throws Error if size is not greater than zero.\r\n */\r\n export function create(params: ParticleCollectionBuilderParams): ParticleCollectionBuilder {\r\n return new Builder(params);\r\n }\r\n}\r\n\r\nclass Particle {\r\n public readonly centroid: Point3d;\r\n public readonly transparency: number;\r\n public readonly width: number;\r\n public readonly height: number;\r\n public readonly rotationMatrix?: Matrix3d;\r\n\r\n public constructor(centroid: XYAndZ, width: number, height: number, transparency: number, rotationMatrix?: Matrix3d) {\r\n this.centroid = Point3d.fromJSON(centroid);\r\n this.transparency = transparency;\r\n this.width = width;\r\n this.height = height;\r\n this.rotationMatrix = rotationMatrix;\r\n }\r\n}\r\n\r\nclass Builder implements ParticleCollectionBuilder {\r\n private readonly _viewport: Viewport;\r\n private readonly _isViewCoords: boolean;\r\n private readonly _pickableId?: Id64String;\r\n private readonly _texture: RenderTexture;\r\n private readonly _size: Vector2d;\r\n private _transparency: number;\r\n private _hasVaryingTransparency = false;\r\n private readonly _localToWorldTransform: Transform;\r\n private readonly _range = Range3d.createNull();\r\n private _particlesOpaque: Particle[] = [];\r\n private _particlesTranslucent: Particle[] = [];\r\n\r\n public constructor(params: ParticleCollectionBuilderParams) {\r\n this._viewport = params.viewport;\r\n this._isViewCoords = true === params.isViewCoords;\r\n this._pickableId = params.pickableId;\r\n this._texture = params.texture;\r\n this._transparency = undefined !== params.transparency ? clampTransparency(params.transparency) : 0;\r\n this._localToWorldTransform = params.origin ? Transform.createTranslationXYZ(params.origin.x, params.origin.y, params.origin.z) : Transform.createIdentity();\r\n\r\n if (\"number\" === typeof params.size)\r\n this._size = new Vector2d(params.size, params.size);\r\n else\r\n this._size = Vector2d.fromJSON(params.size);\r\n\r\n if (this._size.x <= 0 || this._size.y <= 0)\r\n throw new Error(\"Particle size must be greater than zero\");\r\n }\r\n\r\n public get size(): XAndY {\r\n return this._size;\r\n }\r\n\r\n public get transparency() {\r\n return this._transparency;\r\n }\r\n\r\n public set transparency(transparency: number) {\r\n transparency = clampTransparency(transparency);\r\n if (transparency !== this._transparency) {\r\n this._transparency = transparency;\r\n this._hasVaryingTransparency = this._particlesTranslucent.length > 0;\r\n }\r\n }\r\n\r\n public addParticle(props: ParticleProps): void {\r\n const size = props.size ?? this._size;\r\n let width, height;\r\n if (\"number\" === typeof size) {\r\n width = height = size;\r\n } else {\r\n width = size.x;\r\n height = size.y;\r\n }\r\n\r\n if (width <= 0 || height <= 0)\r\n throw new Error(\"A particle must have a size greater than zero\");\r\n\r\n const transparency = undefined !== props.transparency ? clampTransparency(props.transparency) : this.transparency;\r\n if (transparency !== this.transparency && this._particlesTranslucent.length > 0)\r\n this._hasVaryingTransparency = true;\r\n\r\n const particle = new Particle(props, width, height, transparency, props.rotationMatrix);\r\n if (transparency > 0)\r\n this._particlesTranslucent.push(particle);\r\n else\r\n this._particlesOpaque.push(particle);\r\n this._range.extendPoint(particle.centroid);\r\n }\r\n\r\n public finish(): RenderGraphic | undefined {\r\n if (0 === this._particlesTranslucent.length + this._particlesOpaque.length)\r\n return undefined;\r\n\r\n // Order-independent transparency doesn't work well with opaque geometry - it will look semi-transparent.\r\n // If we have a mix of opaque and transparent particles, put them in separate graphics to be rendered in separate passes.\r\n const opaque = this.createGraphic(this._particlesOpaque, 0);\r\n const transparent = this.createGraphic(this._particlesTranslucent, this._hasVaryingTransparency ? undefined : this._transparency);\r\n\r\n // Empty the collection before any return statements.\r\n const range = this._range.clone();\r\n this._range.setNull();\r\n this._particlesOpaque.length = 0;\r\n this._particlesTranslucent.length = 0;\r\n this._hasVaryingTransparency = false;\r\n\r\n if (!transparent && !opaque)\r\n return undefined;\r\n\r\n // Transform from origin to collection, then to world.\r\n const toCollection = Transform.createTranslation(range.center);\r\n const toWorld = toCollection.multiplyTransformTransform(this._localToWorldTransform);\r\n const branch = new GraphicBranch(true);\r\n if (opaque)\r\n branch.add(opaque);\r\n\r\n if (transparent)\r\n branch.add(transparent);\r\n\r\n let graphic = this._viewport.target.renderSystem.createGraphicBranch(branch, toWorld);\r\n\r\n // If we have a pickable Id, produce a batch.\r\n // NB: We pass this._pickableId as the FeatureTable's modelId so that it will be treated like a reality model or a map -\r\n // specifically, it can be located and display a tooltip, but can't be selected.\r\n const featureTable = this._pickableId ? new FeatureTable(1, this._pickableId) : undefined;\r\n if (featureTable) {\r\n this._localToWorldTransform.multiplyRange(range, range);\r\n featureTable.insert(new Feature(this._pickableId));\r\n graphic = this._viewport.target.renderSystem.createBatch(graphic, PackedFeatureTable.pack(featureTable), range);\r\n }\r\n\r\n return graphic;\r\n }\r\n\r\n private createGraphic(particles: Particle[], uniformTransparency: number | undefined): RenderGraphic | undefined {\r\n const numParticles = particles.length;\r\n if (numParticles <= 0)\r\n return undefined;\r\n\r\n // To keep scale values close to 1, compute mean size to use as size of quad.\r\n const meanSize = new Vector2d();\r\n let maxSize = 0;\r\n for (const particle of particles) {\r\n meanSize.x += particle.width;\r\n meanSize.y += particle.height;\r\n if (particle.width > maxSize)\r\n maxSize = particle.width;\r\n if (particle.height > maxSize)\r\n maxSize = particle.height;\r\n }\r\n meanSize.x /= numParticles;\r\n meanSize.y /= numParticles;\r\n\r\n // Define InstancedGraphicParams for particles.\r\n const rangeCenter = this._range.center;\r\n const floatsPerTransform = 12;\r\n const transforms = new Float32Array(floatsPerTransform * numParticles);\r\n const bytesPerOverride = 8;\r\n const symbologyOverrides = undefined === uniformTransparency ? new Uint8Array(bytesPerOverride * numParticles) : undefined;\r\n\r\n const viewToWorld = this._viewport.view.getRotation().transpose();\r\n let tfIndex = 0;\r\n let ovrIndex = 0;\r\n for (const particle of particles) {\r\n const scaleX = particle.width / meanSize.x;\r\n const scaleY = particle.height / meanSize.y;\r\n if (this._isViewCoords) {\r\n // Particles already face the camera in view coords - just apply the scale.\r\n transforms[tfIndex + 0] = scaleX;\r\n transforms[tfIndex + 5] = scaleY;\r\n transforms[tfIndex + 10] = 1;\r\n } else if (undefined !== particle.rotationMatrix) {\r\n // Scale rotation matrix relative to size of quad.\r\n transforms[tfIndex + 0] = particle.rotationMatrix.coffs[0] * scaleX;\r\n transforms[tfIndex + 1] = particle.rotationMatrix.coffs[1] * scaleY;\r\n transforms[tfIndex + 2] = particle.rotationMatrix.coffs[2];\r\n transforms[tfIndex + 4] = particle.rotationMatrix.coffs[3] * scaleX;\r\n transforms[tfIndex + 5] = particle.rotationMatrix.coffs[4] * scaleY;\r\n transforms[tfIndex + 6] = particle.rotationMatrix.coffs[5];\r\n transforms[tfIndex + 8] = particle.rotationMatrix.coffs[6] * scaleX;\r\n transforms[tfIndex + 9] = particle.rotationMatrix.coffs[7] * scaleY;\r\n transforms[tfIndex + 10] = particle.rotationMatrix.coffs[8];\r\n } else {\r\n // Rotate about origin by inverse view matrix so quads always face the camera and scale relative to size of quad.\r\n transforms[tfIndex + 0] = viewToWorld.coffs[0] * scaleX;\r\n transforms[tfIndex + 1] = viewToWorld.coffs[1] * scaleY;\r\n transforms[tfIndex + 2] = viewToWorld.coffs[2];\r\n transforms[tfIndex + 4] = viewToWorld.coffs[3] * scaleX;\r\n transforms[tfIndex + 5] = viewToWorld.coffs[4] * scaleY;\r\n transforms[tfIndex + 6] = viewToWorld.coffs[5];\r\n transforms[tfIndex + 8] = viewToWorld.coffs[6] * scaleX;\r\n transforms[tfIndex + 9] = viewToWorld.coffs[7] * scaleY;\r\n transforms[tfIndex + 10] = viewToWorld.coffs[8];\r\n }\r\n\r\n // Translate relative to center of particles range.\r\n transforms[tfIndex + 3] = particle.centroid.x - rangeCenter.x;\r\n transforms[tfIndex + 7] = particle.centroid.y - rangeCenter.y;\r\n transforms[tfIndex + 11] = particle.centroid.z - rangeCenter.z;\r\n\r\n tfIndex += floatsPerTransform;\r\n\r\n if (symbologyOverrides) {\r\n // See FeatureOverrides.buildLookupTable() for layout.\r\n symbologyOverrides[ovrIndex + 0] = 1 << 2; // OvrFlags.Alpha\r\n symbologyOverrides[ovrIndex + 7] = 0xff - particle.transparency;\r\n\r\n ovrIndex += bytesPerOverride;\r\n }\r\n }\r\n\r\n // Produce instanced quads.\r\n // Note: We do not need to allocate an array of featureIds. If we have a pickableId, all particles refer to the same Feature, with index 0.\r\n // So we leave the vertex attribute disabled causing the shader to receive the default (0, 0, 0) which happens to correspond to our feature index.\r\n const quad = createQuad(meanSize, this._texture, uniformTransparency ?? 0x7f, this._viewport);\r\n const transformCenter = new Point3d(0, 0, 0);\r\n const range = computeRange(this._range, rangeCenter, maxSize);\r\n const instances = { count: numParticles, transforms, transformCenter, symbologyOverrides, range };\r\n return this._viewport.target.renderSystem.createMesh(quad, instances);\r\n }\r\n}\r\n\r\nfunction createQuad(size: XAndY, texture: RenderTexture, transparency: number, viewport: Viewport): MeshParams {\r\n const halfWidth = size.x / 2;\r\n const halfHeight = size.y / 2;\r\n const corners = [\r\n new Point3d(-halfWidth, -halfHeight, 0), new Point3d(halfWidth, -halfHeight, 0),\r\n new Point3d(-halfWidth, halfHeight, 0), new Point3d(halfWidth, halfHeight, 0),\r\n ];\r\n\r\n const range = new Range3d();\r\n range.low = corners[0];\r\n range.high = corners[3];\r\n\r\n const points = new QPoint3dList(QParams3d.fromRange(range));\r\n for (const corner of corners)\r\n points.add(corner);\r\n\r\n const colors = new ColorIndex();\r\n colors.initUniform(ColorDef.white.withTransparency(transparency));\r\n\r\n const quadArgs: MeshArgs = {\r\n points,\r\n vertIndices: [0, 1, 2, 2, 1, 3],\r\n fillFlags: FillFlags.None,\r\n isPlanar: true,\r\n colors,\r\n features: new FeatureIndex(),\r\n textureMapping: {\r\n texture,\r\n uvParams: [new Point2d(0, 1), new Point2d(1, 1), new Point2d(0, 0), new Point2d(1, 0)],\r\n },\r\n };\r\n\r\n return createMeshParams(quadArgs, viewport.target.renderSystem.maxTextureSize, \"non-indexed\" !== IModelApp.tileAdmin.edgeOptions.type);\r\n}\r\n\r\nfunction clampTransparency(transparency: number): number {\r\n transparency = Math.min(255, transparency, Math.max(0, transparency));\r\n transparency = Math.floor(transparency);\r\n if (transparency < DisplayParams.minTransparency)\r\n transparency = 0;\r\n\r\n return transparency;\r\n}\r\n\r\nfunction computeRange(centroidRange: Range3d, center: Point3d, maxSize: number): Range3d {\r\n const range2 = centroidRange.clone();\r\n range2.low.subtractInPlace(center);\r\n range2.high.subtractInPlace(center);\r\n const halfSize = maxSize * 0.5;\r\n range2.low.x -= halfSize;\r\n range2.low.y -= halfSize;\r\n range2.low.z -= halfSize;\r\n range2.high.x += halfSize;\r\n range2.high.y += halfSize;\r\n range2.high.z += halfSize;\r\n return range2;\r\n}\r\n"]}
@@ -0,0 +1,31 @@
1
+ /** @packageDocumentation
2
+ * @module Rendering
3
+ */
4
+ import { ColorIndex, FeatureIndex, LinePixels, PolylineFlags, PolylineIndices, QPoint3dList } from "@itwin/core-common";
5
+ import { Point3d, Range3d } from "@itwin/core-geometry";
6
+ /** Arguments supplied to [[RenderSystem.createIndexedPolylines]] describing a set of "polylines" (i.e., line strings or point strings).
7
+ * Line strings consist of two or more points, connected by segments between them with a width specified in pixels.
8
+ * Point strings consist of one or more disconnected points, drawn as dots with a radius specified in pixels.
9
+ * @public
10
+ */
11
+ export interface PolylineArgs {
12
+ /** The color(s) of the vertices. */
13
+ colors: ColorIndex;
14
+ /** The [Feature]($common)(s) contained in the [[polylines]]. */
15
+ features: FeatureIndex;
16
+ /** The width of the lines or radius of the points, in pixels. */
17
+ width: number;
18
+ /** The pixel pattern to apply to the line strings. */
19
+ linePixels: LinePixels;
20
+ /** Flags describing how to draw the [[polylines]]. */
21
+ flags: PolylineFlags;
22
+ /** The positions of the [[polylines]]' vertices. If the positions are not quantized, they must include
23
+ * a precomputed [Range3d]($core-geometry) encompassing all of the points.
24
+ */
25
+ points: QPoint3dList | (Array<Point3d> & {
26
+ range: Range3d;
27
+ });
28
+ /** The set of polylines. Each entry in the array describes a separate line string or point string as a series of indices into [[points]]. */
29
+ polylines: PolylineIndices[];
30
+ }
31
+ //# sourceMappingURL=PolylineArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolylineArgs.d.ts","sourceRoot":"","sources":["../../../src/render/PolylineArgs.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,gEAAgE;IAChE,QAAQ,EAAE,YAAY,CAAC;IACvB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,UAAU,EAAE,UAAU,CAAC;IACvB,sDAAsD;IACtD,KAAK,EAAE,aAAa,CAAC;IACrB;;OAEG;IACH,MAAM,EAAE,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7D,6IAA6I;IAC7I,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Rendering
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=PolylineArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolylineArgs.js","sourceRoot":"","sources":["../../../src/render/PolylineArgs.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Rendering\r\n */\r\n\r\nimport { ColorIndex, FeatureIndex, LinePixels, PolylineFlags, PolylineIndices, QPoint3dList } from \"@itwin/core-common\";\r\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\r\n\r\n/** Arguments supplied to [[RenderSystem.createIndexedPolylines]] describing a set of \"polylines\" (i.e., line strings or point strings).\r\n * Line strings consist of two or more points, connected by segments between them with a width specified in pixels.\r\n * Point strings consist of one or more disconnected points, drawn as dots with a radius specified in pixels.\r\n * @public\r\n */\r\nexport interface PolylineArgs {\r\n /** The color(s) of the vertices. */\r\n colors: ColorIndex;\r\n /** The [Feature]($common)(s) contained in the [[polylines]]. */\r\n features: FeatureIndex;\r\n /** The width of the lines or radius of the points, in pixels. */\r\n width: number;\r\n /** The pixel pattern to apply to the line strings. */\r\n linePixels: LinePixels;\r\n /** Flags describing how to draw the [[polylines]]. */\r\n flags: PolylineFlags;\r\n /** The positions of the [[polylines]]' vertices. If the positions are not quantized, they must include\r\n * a precomputed [Range3d]($core-geometry) encompassing all of the points.\r\n */\r\n points: QPoint3dList | (Array<Point3d> & { range: Range3d });\r\n /** The set of polylines. Each entry in the array describes a separate line string or point string as a series of indices into [[points]]. */\r\n polylines: PolylineIndices[];\r\n}\r\n\r\n"]}
@@ -11,7 +11,7 @@ exports.RealityMeshParamsBuilder = exports.RealityMeshParams = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const core_common_1 = require("@itwin/core-common");
14
- const MeshPrimitive_1 = require("../common/render/primitives/MeshPrimitive");
14
+ const MeshPrimitive_1 = require("../common/internal/render/MeshPrimitive");
15
15
  function precondition(condition, message) {
16
16
  if (condition)
17
17
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.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 Rendering\r\n */\r\n\r\nimport { assert, Uint16ArrayBuilder, UintArray, UintArrayBuilder } from \"@itwin/core-bentley\";\r\nimport {\r\n IndexedPolyface, Point2d, Point3d, Range2d, Range3d, Transform, Vector3d, XAndY, XYAndZ,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n OctEncodedNormal, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { GltfMeshData } from \"../tile/internal\";\r\nimport { MeshPrimitiveType } from \"../common/render/primitives/MeshPrimitive\";\r\n\r\nfunction precondition(condition: boolean, message: string | (() => string)): asserts condition {\r\n if (condition)\r\n return;\r\n\r\n if (\"string\" !== typeof message)\r\n message = message();\r\n\r\n throw new Error(`Logic Error: ${message}`);\r\n}\r\n\r\n/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].\r\n * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes\r\n * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using\r\n * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).\r\n * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.\r\n * @public\r\n */\r\nexport interface RealityMeshParams {\r\n /** The 3d position of each vertex in the mesh, indexed by [[indices]]. */\r\n positions: QPoint3dBuffer;\r\n /** The 2d texture coordinates of each vertex in the mesh, indexed by [[indices]]. */\r\n uvs: QPoint2dBuffer;\r\n /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */\r\n normals?: Uint16Array;\r\n /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */\r\n indices: UintArray;\r\n /** @alpha unused by terrain meshes */\r\n featureID?: number; // default 0\r\n /** @alpha unused by terrain meshes */\r\n texture?: RenderTexture;\r\n}\r\n\r\n/** @public */\r\nexport namespace RealityMeshParams {\r\n /** @internal */\r\n export function fromGltfMesh(mesh: GltfMeshData): RealityMeshParams | undefined {\r\n // The specialized reality mesh shaders expect a mesh with uvs and no edges.\r\n if (mesh.primitive.type !== MeshPrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices)\r\n return undefined;\r\n\r\n return {\r\n indices: mesh.indices,\r\n positions: {\r\n params: mesh.pointQParams,\r\n points: mesh.points,\r\n },\r\n uvs: {\r\n params: mesh.uvQParams,\r\n points: mesh.uvs,\r\n },\r\n normals: mesh.normals,\r\n // featureID: 0,\r\n texture: mesh.primitive.displayParams.textureMapping?.texture,\r\n };\r\n }\r\n\r\n /** @alpha */\r\n export function toPolyface(params: RealityMeshParams, options?: { transform?: Transform, wantNormals?: boolean, wantParams?: boolean }): IndexedPolyface | undefined {\r\n const { positions, normals, uvs, indices } = params;\r\n const includeNormals = options?.wantNormals && undefined !== normals;\r\n const includeParams = options?.wantParams;\r\n\r\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\r\n const points = positions.points;\r\n const point = new Point3d();\r\n const transform = options?.transform;\r\n for (let i = 0; i < positions.points.length; i += 3) {\r\n positions.params.unquantize(points[i], points[i + 1], points[i + 2], point);\r\n transform?.multiplyPoint3d(point, point);\r\n polyface.addPoint(point);\r\n }\r\n\r\n if (includeNormals) {\r\n const normal = new Vector3d();\r\n for (const oen of normals)\r\n polyface.addNormal(OctEncodedNormal.decodeValue(oen, normal));\r\n }\r\n\r\n if (includeParams) {\r\n const uv = new Point2d();\r\n for (let i = 0; i < uvs.points.length; i += 2)\r\n polyface.addParam(uvs.params.unquantize(uvs.points[i], uvs.points[i + 1], uv));\r\n }\r\n\r\n let j = 0;\r\n indices.forEach((index: number) => {\r\n polyface.addPointIndex(index);\r\n if (includeNormals)\r\n polyface.addNormalIndex(index);\r\n\r\n if (includeParams)\r\n polyface.addParamIndex(index);\r\n\r\n if (0 === (++j % 3))\r\n polyface.terminateFacet();\r\n });\r\n\r\n return polyface;\r\n }\r\n}\r\n\r\n/** Options used to construct a [[RealityMeshParamsBuilder]].\r\n * @beta\r\n */\r\nexport interface RealityMeshParamsBuilderOptions {\r\n /** A bounding box fully containing the positions of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.positions]].\r\n */\r\n positionRange: Range3d;\r\n /** A range fully containing the texture coordinates of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.uvs]].\r\n * Default: [0.0, 1.0].\r\n */\r\n uvRange?: Range2d;\r\n /** If true, [[RealityMeshParams.normals]] will be populated.\r\n * If you set this to true, you must supply a normal for every vertex when calling [[RealityMeshParamsBuilder.addQuantizedVertex]] or [[RealityMeshParamsBuilder.addUnquantizedVertex]].\r\n */\r\n wantNormals?: boolean;\r\n /** If defined, memory for this number of vertices will be allocated up-front. Set this if you know the minimum number of vertices in the mesh, to\r\n * avoid unnecessary reallocations when adding vertices.\r\n */\r\n initialVertexCapacity?: number;\r\n /** If defined, memory for this number of indices will be allocated up-front. Set this if you know the minimum number of triangles in the mesh, to avoid\r\n * unnecessary reallocations when adding triangles. The number of indices is equal to three times the number of triangles.\r\n */\r\n initialIndexCapacity?: number;\r\n}\r\n\r\n/** Incrementally constructs a [[RealityMeshParams]].\r\n * The following simple example produces a rectangular mesh containing two triangles.\r\n * ```ts\r\n * [[include:Build_Reality_Mesh_Params]]\r\n * ```\r\n * @beta\r\n */\r\nexport class RealityMeshParamsBuilder {\r\n /** The indices of the vertices in each triangle of the mesh.\r\n * @see [[addTriangle]] to add 3 indices describing a single triangle.\r\n * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.\r\n * @see [[addIndices]] to add any number of indices.\r\n */\r\n public readonly indices: UintArrayBuilder;\r\n /** The 3d position of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly positions: QPoint3dBufferBuilder;\r\n /** The 2d texture coordinates of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly uvs: QPoint2dBufferBuilder;\r\n /** The normal vector of each vertex in the mesh, or `undefined` if [[RealityMeshParamsBuilderOptions.wantNormals]] was not `true` when constructing the builder.\r\n * A normal vector must be supplied to [[addQuantizedVertex]] and [[addUnquantizedVertex]] if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was\r\n * specified as `true`.\r\n * The vectors are stored as [OctEncodedNormal]($common)s.\r\n */\r\n public normals?: Uint16ArrayBuilder;\r\n\r\n // Scratch variables\r\n private readonly _q3d = new QPoint3d();\r\n private readonly _q2d = new QPoint2d();\r\n\r\n /** Construct a builder from the specified options. */\r\n public constructor(options: RealityMeshParamsBuilderOptions) {\r\n let initialType;\r\n if (undefined !== options.initialVertexCapacity && options.initialVertexCapacity > 0xff)\r\n initialType = options.initialVertexCapacity > 0xffff ? Uint32Array : Uint16Array;\r\n\r\n this.indices = new UintArrayBuilder({\r\n initialCapacity: options.initialIndexCapacity,\r\n initialType,\r\n });\r\n\r\n if (options.wantNormals)\r\n this.normals = new Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });\r\n\r\n this.positions = new QPoint3dBufferBuilder({\r\n range: options.positionRange,\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n\r\n this.uvs = new QPoint2dBufferBuilder({\r\n range: options.uvRange ?? new Range2d(0, 0, 1, 1),\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, which will be quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, which will be quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param the normal vector, to be supplied if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addQuantizedVertex]] if your vertex data is already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n */\r\n public addUnquantizedVertex(position: XYAndZ, uv: XAndY, normal?: XYAndZ): number {\r\n this._q3d.init(position, this.positions.params);\r\n this._q2d.init(uv, this.uvs.params);\r\n const oen = normal ? OctEncodedNormal.encode(normal) : undefined;\r\n return this.addQuantizedVertex(this._q3d, this._q2d, oen);\r\n }\r\n\r\n /** Original API had weird mix of quantized and unquantized, used by CesiumTerrainProvider.\r\n * @internal\r\n */\r\n public addVertex(position: XYAndZ, uv: XAndY, normal?: number): void {\r\n this._q3d.init(position, this.positions.params);\r\n this.addQuantizedVertex(this._q3d, uv, normal);\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param normal The unsigned 16-bit [OctEncodedNormal]($common) integer representation of the normal vector, to be supplied if and only if\r\n * [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addUnquantizedVertex]] if your vertex data is not already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n * @throws Error if `normal` is `undefined` but `wantNormals` was specified at construction of the builder, or vice-versa.\r\n */\r\n public addQuantizedVertex(position: XYAndZ, uv: XAndY, normal?: number): number {\r\n precondition((undefined === normal) === (undefined === this.normals), \"RealityMeshParams requires all vertices to have normals, or none.\");\r\n\r\n this.positions.push(position);\r\n this.uvs.push(uv);\r\n if (undefined !== normal) {\r\n assert(undefined !== this.normals);\r\n this.normals.push(normal);\r\n }\r\n\r\n return this.positions.length - 1;\r\n }\r\n\r\n /** Add a triangle corresponding to the three specified vertices. */\r\n public addTriangle(i0: number, i1: number, i2: number): void {\r\n this.addIndex(i0);\r\n this.addIndex(i1);\r\n this.addIndex(i2);\r\n }\r\n\r\n /** Add two triangles sharing an edge. This is equivalent to calling `addTriangle(i0, i1, i2); addTriangle(i1, i3, i2);`. */\r\n public addQuad(i0: number, i1: number, i2: number, i3: number): void {\r\n this.addTriangle(i0, i1, i2);\r\n this.addTriangle(i1, i3, i2);\r\n }\r\n\r\n /** Add all of the indices in `indices` to the index buffer. */\r\n public addIndices(indices: Iterable<number>): void {\r\n for (const index of indices)\r\n this.addIndex(index);\r\n }\r\n\r\n private addIndex(index: number): void {\r\n this.indices.push(index);\r\n }\r\n\r\n /** Extract the finished [[RealityMeshParams]].\r\n * @throws Error if the mesh contains no triangles.\r\n */\r\n public finish(): RealityMeshParams {\r\n precondition(this.positions.length >= 3 && this.indices.length >= 3, \"RealityMeshParams requires at least one triangle\");\r\n return {\r\n positions: this.positions.finish(),\r\n uvs: this.uvs.finish(),\r\n normals: this.normals?.toTypedArray(),\r\n indices: this.indices.toTypedArray(),\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityMeshParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshParams.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 Rendering\r\n */\r\n\r\nimport { assert, Uint16ArrayBuilder, UintArray, UintArrayBuilder } from \"@itwin/core-bentley\";\r\nimport {\r\n IndexedPolyface, Point2d, Point3d, Range2d, Range3d, Transform, Vector3d, XAndY, XYAndZ,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n OctEncodedNormal, QPoint2d, QPoint2dBuffer, QPoint2dBufferBuilder, QPoint3d, QPoint3dBuffer, QPoint3dBufferBuilder, RenderTexture,\r\n} from \"@itwin/core-common\";\r\nimport { GltfMeshData } from \"../tile/internal\";\r\nimport { MeshPrimitiveType } from \"../common/internal/render/MeshPrimitive\";\r\n\r\nfunction precondition(condition: boolean, message: string | (() => string)): asserts condition {\r\n if (condition)\r\n return;\r\n\r\n if (\"string\" !== typeof message)\r\n message = message();\r\n\r\n throw new Error(`Logic Error: ${message}`);\r\n}\r\n\r\n/** Geometry for a reality mesh to be submitted to the [[RenderSystem]] for conversion to a [[RenderGraphic]].\r\n * A reality mesh is a simple triangle mesh to which a [RenderTexture]($common) image can be mapped. Sources of reality meshes\r\n * include [[TerrainMeshProvider]]s to which background map imagery is applied, and [ContextRealityModel]($common)s captured using\r\n * [photogrammetry](https://en.wikipedia.org/wiki/Photogrammetry).\r\n * @see [[RealityMeshParamsBuilder]] to incrementally construct a `RealityMeshParams`.\r\n * @public\r\n */\r\nexport interface RealityMeshParams {\r\n /** The 3d position of each vertex in the mesh, indexed by [[indices]]. */\r\n positions: QPoint3dBuffer;\r\n /** The 2d texture coordinates of each vertex in the mesh, indexed by [[indices]]. */\r\n uvs: QPoint2dBuffer;\r\n /** The optional normal vector for each vertex in the mesh, indexed by [[indices]], stored as [OctEncodedNormal]($common)s. */\r\n normals?: Uint16Array;\r\n /** The integer indices of each triangle in the mesh. The array's length must be a multiple of 3. */\r\n indices: UintArray;\r\n /** @alpha unused by terrain meshes */\r\n featureID?: number; // default 0\r\n /** @alpha unused by terrain meshes */\r\n texture?: RenderTexture;\r\n}\r\n\r\n/** @public */\r\nexport namespace RealityMeshParams {\r\n /** @internal */\r\n export function fromGltfMesh(mesh: GltfMeshData): RealityMeshParams | undefined {\r\n // The specialized reality mesh shaders expect a mesh with uvs and no edges.\r\n if (mesh.primitive.type !== MeshPrimitiveType.Mesh || mesh.primitive.edges || !mesh.pointQParams || !mesh.uvQParams || !mesh.points || !mesh.uvs || !mesh.indices)\r\n return undefined;\r\n\r\n return {\r\n indices: mesh.indices,\r\n positions: {\r\n params: mesh.pointQParams,\r\n points: mesh.points,\r\n },\r\n uvs: {\r\n params: mesh.uvQParams,\r\n points: mesh.uvs,\r\n },\r\n normals: mesh.normals,\r\n // featureID: 0,\r\n texture: mesh.primitive.displayParams.textureMapping?.texture,\r\n };\r\n }\r\n\r\n /** @alpha */\r\n export function toPolyface(params: RealityMeshParams, options?: { transform?: Transform, wantNormals?: boolean, wantParams?: boolean }): IndexedPolyface | undefined {\r\n const { positions, normals, uvs, indices } = params;\r\n const includeNormals = options?.wantNormals && undefined !== normals;\r\n const includeParams = options?.wantParams;\r\n\r\n const polyface = IndexedPolyface.create(includeNormals, includeParams);\r\n const points = positions.points;\r\n const point = new Point3d();\r\n const transform = options?.transform;\r\n for (let i = 0; i < positions.points.length; i += 3) {\r\n positions.params.unquantize(points[i], points[i + 1], points[i + 2], point);\r\n transform?.multiplyPoint3d(point, point);\r\n polyface.addPoint(point);\r\n }\r\n\r\n if (includeNormals) {\r\n const normal = new Vector3d();\r\n for (const oen of normals)\r\n polyface.addNormal(OctEncodedNormal.decodeValue(oen, normal));\r\n }\r\n\r\n if (includeParams) {\r\n const uv = new Point2d();\r\n for (let i = 0; i < uvs.points.length; i += 2)\r\n polyface.addParam(uvs.params.unquantize(uvs.points[i], uvs.points[i + 1], uv));\r\n }\r\n\r\n let j = 0;\r\n indices.forEach((index: number) => {\r\n polyface.addPointIndex(index);\r\n if (includeNormals)\r\n polyface.addNormalIndex(index);\r\n\r\n if (includeParams)\r\n polyface.addParamIndex(index);\r\n\r\n if (0 === (++j % 3))\r\n polyface.terminateFacet();\r\n });\r\n\r\n return polyface;\r\n }\r\n}\r\n\r\n/** Options used to construct a [[RealityMeshParamsBuilder]].\r\n * @beta\r\n */\r\nexport interface RealityMeshParamsBuilderOptions {\r\n /** A bounding box fully containing the positions of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.positions]].\r\n */\r\n positionRange: Range3d;\r\n /** A range fully containing the texture coordinates of all vertices to be included in the mesh.\r\n * This range is used to quantize [[RealityMeshParams.uvs]].\r\n * Default: [0.0, 1.0].\r\n */\r\n uvRange?: Range2d;\r\n /** If true, [[RealityMeshParams.normals]] will be populated.\r\n * If you set this to true, you must supply a normal for every vertex when calling [[RealityMeshParamsBuilder.addQuantizedVertex]] or [[RealityMeshParamsBuilder.addUnquantizedVertex]].\r\n */\r\n wantNormals?: boolean;\r\n /** If defined, memory for this number of vertices will be allocated up-front. Set this if you know the minimum number of vertices in the mesh, to\r\n * avoid unnecessary reallocations when adding vertices.\r\n */\r\n initialVertexCapacity?: number;\r\n /** If defined, memory for this number of indices will be allocated up-front. Set this if you know the minimum number of triangles in the mesh, to avoid\r\n * unnecessary reallocations when adding triangles. The number of indices is equal to three times the number of triangles.\r\n */\r\n initialIndexCapacity?: number;\r\n}\r\n\r\n/** Incrementally constructs a [[RealityMeshParams]].\r\n * The following simple example produces a rectangular mesh containing two triangles.\r\n * ```ts\r\n * [[include:Build_Reality_Mesh_Params]]\r\n * ```\r\n * @beta\r\n */\r\nexport class RealityMeshParamsBuilder {\r\n /** The indices of the vertices in each triangle of the mesh.\r\n * @see [[addTriangle]] to add 3 indices describing a single triangle.\r\n * @see [[addQuad]] to add 4 indices describing two triangles sharing an edge.\r\n * @see [[addIndices]] to add any number of indices.\r\n */\r\n public readonly indices: UintArrayBuilder;\r\n /** The 3d position of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly positions: QPoint3dBufferBuilder;\r\n /** The 2d texture coordinates of each vertex in the mesh.\r\n * @see [[addQuantizedVertex]] and [[addUnquantizedVertex]] to add a vertex.\r\n */\r\n public readonly uvs: QPoint2dBufferBuilder;\r\n /** The normal vector of each vertex in the mesh, or `undefined` if [[RealityMeshParamsBuilderOptions.wantNormals]] was not `true` when constructing the builder.\r\n * A normal vector must be supplied to [[addQuantizedVertex]] and [[addUnquantizedVertex]] if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was\r\n * specified as `true`.\r\n * The vectors are stored as [OctEncodedNormal]($common)s.\r\n */\r\n public normals?: Uint16ArrayBuilder;\r\n\r\n // Scratch variables\r\n private readonly _q3d = new QPoint3d();\r\n private readonly _q2d = new QPoint2d();\r\n\r\n /** Construct a builder from the specified options. */\r\n public constructor(options: RealityMeshParamsBuilderOptions) {\r\n let initialType;\r\n if (undefined !== options.initialVertexCapacity && options.initialVertexCapacity > 0xff)\r\n initialType = options.initialVertexCapacity > 0xffff ? Uint32Array : Uint16Array;\r\n\r\n this.indices = new UintArrayBuilder({\r\n initialCapacity: options.initialIndexCapacity,\r\n initialType,\r\n });\r\n\r\n if (options.wantNormals)\r\n this.normals = new Uint16ArrayBuilder({ initialCapacity: options.initialVertexCapacity });\r\n\r\n this.positions = new QPoint3dBufferBuilder({\r\n range: options.positionRange,\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n\r\n this.uvs = new QPoint2dBufferBuilder({\r\n range: options.uvRange ?? new Range2d(0, 0, 1, 1),\r\n initialCapacity: options.initialVertexCapacity,\r\n });\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, which will be quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, which will be quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param the normal vector, to be supplied if and only if [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addQuantizedVertex]] if your vertex data is already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n */\r\n public addUnquantizedVertex(position: XYAndZ, uv: XAndY, normal?: XYAndZ): number {\r\n this._q3d.init(position, this.positions.params);\r\n this._q2d.init(uv, this.uvs.params);\r\n const oen = normal ? OctEncodedNormal.encode(normal) : undefined;\r\n return this.addQuantizedVertex(this._q3d, this._q2d, oen);\r\n }\r\n\r\n /** Original API had weird mix of quantized and unquantized, used by CesiumTerrainProvider.\r\n * @internal\r\n */\r\n public addVertex(position: XYAndZ, uv: XAndY, normal?: number): void {\r\n this._q3d.init(position, this.positions.params);\r\n this.addQuantizedVertex(this._q3d, uv, normal);\r\n }\r\n\r\n /** Add a vertex to the mesh and return its index in [[positions]].\r\n * @param position The 3d position, quantized to the [[RealityMeshParamsBuilderOptions.positionRange]] supplied to the builder's constructor.\r\n * @param uv The texture coordinates, quantized to the [[RealityMeshParamsBuilderOptions.uvRange]] supplied to the builder's constructor.\r\n * @param normal The unsigned 16-bit [OctEncodedNormal]($common) integer representation of the normal vector, to be supplied if and only if\r\n * [[RealityMeshParamsBuilderOptions.wantNormals]] was `true` when the builder was constructed.\r\n * @see [[addUnquantizedVertex]] if your vertex data is not already quantized.\r\n * @returns the index of the new vertex in [[positions]].\r\n * @throws Error if `normal` is `undefined` but `wantNormals` was specified at construction of the builder, or vice-versa.\r\n */\r\n public addQuantizedVertex(position: XYAndZ, uv: XAndY, normal?: number): number {\r\n precondition((undefined === normal) === (undefined === this.normals), \"RealityMeshParams requires all vertices to have normals, or none.\");\r\n\r\n this.positions.push(position);\r\n this.uvs.push(uv);\r\n if (undefined !== normal) {\r\n assert(undefined !== this.normals);\r\n this.normals.push(normal);\r\n }\r\n\r\n return this.positions.length - 1;\r\n }\r\n\r\n /** Add a triangle corresponding to the three specified vertices. */\r\n public addTriangle(i0: number, i1: number, i2: number): void {\r\n this.addIndex(i0);\r\n this.addIndex(i1);\r\n this.addIndex(i2);\r\n }\r\n\r\n /** Add two triangles sharing an edge. This is equivalent to calling `addTriangle(i0, i1, i2); addTriangle(i1, i3, i2);`. */\r\n public addQuad(i0: number, i1: number, i2: number, i3: number): void {\r\n this.addTriangle(i0, i1, i2);\r\n this.addTriangle(i1, i3, i2);\r\n }\r\n\r\n /** Add all of the indices in `indices` to the index buffer. */\r\n public addIndices(indices: Iterable<number>): void {\r\n for (const index of indices)\r\n this.addIndex(index);\r\n }\r\n\r\n private addIndex(index: number): void {\r\n this.indices.push(index);\r\n }\r\n\r\n /** Extract the finished [[RealityMeshParams]].\r\n * @throws Error if the mesh contains no triangles.\r\n */\r\n public finish(): RealityMeshParams {\r\n precondition(this.positions.length >= 3 && this.indices.length >= 3, \"RealityMeshParams requires at least one triangle\");\r\n return {\r\n positions: this.positions.finish(),\r\n uvs: this.uvs.finish(),\r\n normals: this.normals?.toTypedArray(),\r\n indices: this.indices.toTypedArray(),\r\n };\r\n }\r\n}\r\n"]}
@@ -9,18 +9,18 @@ import { IModelConnection } from "../IModelConnection";
9
9
  import { MapTileTreeReference, TileTreeReference } from "../tile/internal";
10
10
  import { SceneContext } from "../ViewContext";
11
11
  import { Viewport } from "../Viewport";
12
- import { MeshParams } from "../common/render/primitives/MeshParams";
13
- import { PointStringParams } from "../common/render/primitives/PointStringParams";
14
- import { PolylineParams } from "../common/render/primitives/PolylineParams";
12
+ import { MeshParams } from "../common/internal/render/MeshParams";
13
+ import { PointStringParams } from "../common/internal/render/PointStringParams";
14
+ import { PolylineParams } from "../common/internal/render/PolylineParams";
15
15
  import { TextureCacheKey } from "../common/render/TextureParams";
16
16
  import { ViewRect } from "../common/ViewRect";
17
17
  import { GraphicBranch, GraphicBranchOptions } from "./GraphicBranch";
18
- import { BatchOptions, CustomGraphicBuilderOptions, GraphicBuilder, GraphicType, ViewportGraphicBuilderOptions } from "./GraphicBuilder";
19
- import { InstancedGraphicParams, PatternGraphicParams } from "./InstancedGraphicParams";
20
- import { MeshArgs, PolylineArgs } from "./primitives/mesh/MeshPrimitives";
18
+ import { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from "./GraphicBuilder";
19
+ import { InstancedGraphicParams, PatternGraphicParams } from "../common/render/InstancedGraphicParams";
20
+ import { Mesh } from "../common/internal/render/MeshPrimitives";
21
21
  import { RealityMeshGraphicParams } from "./RealityMeshGraphicParams";
22
22
  import { RealityMeshParams } from "./RealityMeshParams";
23
- import { PointCloudArgs } from "./primitives/PointCloudPrimitive";
23
+ import { PointCloudArgs } from "../common/internal/render/PointCloudPrimitive";
24
24
  import { RenderClipVolume } from "./RenderClipVolume";
25
25
  import { RenderGraphic, RenderGraphicOwner } from "./RenderGraphic";
26
26
  import { CreateRenderMaterialArgs } from "./CreateRenderMaterialArgs";
@@ -29,6 +29,12 @@ import { RenderPlanarClassifier } from "./RenderPlanarClassifier";
29
29
  import { RenderTarget } from "./RenderTarget";
30
30
  import { CreateTextureArgs, CreateTextureFromSourceArgs } from "./CreateTextureArgs";
31
31
  import { ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams } from "./ScreenSpaceEffectBuilder";
32
+ import { GraphicType } from "../common/render/GraphicType";
33
+ import { BatchOptions } from "../common/render/BatchOptions";
34
+ import { GraphicDescription } from "../common/render/GraphicDescriptionBuilder";
35
+ import { GraphicDescriptionContext, GraphicDescriptionContextProps, WorkerGraphicDescriptionContextProps } from "../common/render/GraphicDescriptionContext";
36
+ import { MeshArgs } from "./MeshArgs";
37
+ import { PolylineArgs } from "./PolylineArgs";
32
38
  /** An opaque representation of a texture draped on geometry within a [[Viewport]].
33
39
  * @internal
34
40
  */
@@ -190,6 +196,15 @@ export interface RenderSkyCubeParams {
190
196
  }
191
197
  /** @internal */
192
198
  export type RenderSkyBoxParams = RenderSkyGradientParams | RenderSkySphereParams | RenderSkyCubeParams;
199
+ /** Arguments supplied to [[RenderSystem.createGraphicFromDescription]].
200
+ * @beta
201
+ */
202
+ export interface CreateGraphicFromDescriptionArgs {
203
+ /** A description of the [[RenderGraphic]] to create, obtained from a [[GraphicDescriptionBuilder]]. */
204
+ description: GraphicDescription;
205
+ /** The context that was used to create the graphic description, obtained from [[RenderSystem.resolveGraphicDescriptionContext]]. */
206
+ context: GraphicDescriptionContext;
207
+ }
193
208
  /** A RenderSystem provides access to resources used by the internal WebGL-based rendering system.
194
209
  * An application rarely interacts directly with the RenderSystem; instead it interacts with types like [[Viewport]] which
195
210
  * coordinate with the RenderSystem on the application's behalf.
@@ -281,6 +296,8 @@ export declare abstract class RenderSystem implements IDisposable {
281
296
  createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams): RenderGraphic | undefined;
282
297
  /** @internal */
283
298
  createTriMesh(args: MeshArgs, instances?: InstancedGraphicParams | RenderAreaPattern | Point3d): RenderGraphic | undefined;
299
+ /** @internal */
300
+ createMeshGraphics(mesh: Mesh, instances?: InstancedGraphicParams | Point3d): RenderGraphic | undefined;
284
301
  /** Create a graphic from a low-level representation of a set of line strings.
285
302
  * @param args A description of the line strings.
286
303
  * @param instances Repetitions of the line strings to be drawn.
@@ -455,6 +472,18 @@ export declare abstract class RenderSystem implements IDisposable {
455
472
  * @see [[TileAdmin.totalTileContentBytes]] for the amount of GPU memory allocated for tile graphics.
456
473
  */
457
474
  static contextLossHandler(): Promise<any>;
475
+ /** Convert a [[GraphicDescription]] produced by a [[GraphicDescriptionBuilder]] into a [[RenderGraphic]].
476
+ * @beta
477
+ */
478
+ createGraphicFromDescription(args: CreateGraphicFromDescriptionArgs): Promise<RenderGraphic | undefined>;
479
+ /** Obtain the JSON representation of a [[WorkerGraphicDescriptionContext]] for the specified `iModel` that can be forwarded to a Worker for use with a [[GraphicDescriptionBuilder]].
480
+ * @beta
481
+ */
482
+ createWorkerGraphicDescriptionContextProps(iModel: IModelConnection): WorkerGraphicDescriptionContextProps;
483
+ /** Synchronize changes made to a [[WorkerGraphicDescriptionContext]] on a Worker with the state of the `iModel` from which it was created.
484
+ * @beta
485
+ */
486
+ resolveGraphicDescriptionContext(props: GraphicDescriptionContextProps, iModel: IModelConnection): Promise<GraphicDescriptionContext>;
458
487
  }
459
488
  /** A RenderSystem provides access to resources used by the internal WebGL-based rendering system.
460
489
  * An application rarely interacts directly with the RenderSystem; instead it interacts with types like [[Viewport]] which
@@ -1 +1 @@
1
- {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../../src/render/RenderSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderSystem.d.ts","sourceRoot":"","sources":["../../../src/render/RenderSystem.ts"],"names":[],"mappings":"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"}