@itwin/core-frontend 4.10.0-dev.2 → 4.10.0-dev.22

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 (546) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  3. package/lib/cjs/AccuSnap.js +9 -5
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  6. package/lib/cjs/DisplayStyleState.js +5 -1
  7. package/lib/cjs/DisplayStyleState.js.map +1 -1
  8. package/lib/cjs/ElementLocateManager.d.ts +7 -1
  9. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  10. package/lib/cjs/ElementLocateManager.js +34 -10
  11. package/lib/cjs/ElementLocateManager.js.map +1 -1
  12. package/lib/cjs/HitDetail.d.ts +4 -0
  13. package/lib/cjs/HitDetail.d.ts.map +1 -1
  14. package/lib/cjs/HitDetail.js +3 -0
  15. package/lib/cjs/HitDetail.js.map +1 -1
  16. package/lib/cjs/IModelConnection.d.ts +1 -0
  17. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  18. package/lib/cjs/IModelConnection.js +2 -1
  19. package/lib/cjs/IModelConnection.js.map +1 -1
  20. package/lib/cjs/NoRenderApp.d.ts +1 -0
  21. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  22. package/lib/cjs/NoRenderApp.js +1 -0
  23. package/lib/cjs/NoRenderApp.js.map +1 -1
  24. package/lib/cjs/SheetViewState.d.ts +0 -1
  25. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  26. package/lib/cjs/SheetViewState.js +0 -1
  27. package/lib/cjs/SheetViewState.js.map +1 -1
  28. package/lib/cjs/Viewport.d.ts +25 -1
  29. package/lib/cjs/Viewport.d.ts.map +1 -1
  30. package/lib/cjs/Viewport.js +20 -12
  31. package/lib/cjs/Viewport.js.map +1 -1
  32. package/lib/cjs/common/WorkerProxy.d.ts +8 -4
  33. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  34. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  35. package/lib/cjs/common/imdl/ImdlModel.d.ts +3 -8
  36. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
  37. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  38. package/lib/cjs/common/internal/Symbols.d.ts +7 -0
  39. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -1
  40. package/lib/cjs/common/internal/Symbols.js +8 -1
  41. package/lib/cjs/common/internal/Symbols.js.map +1 -1
  42. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
  43. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
  44. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js +95 -0
  45. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
  46. package/lib/cjs/common/internal/render/LineCode.d.ts +9 -0
  47. package/lib/cjs/common/internal/render/LineCode.d.ts.map +1 -0
  48. package/lib/cjs/common/internal/render/LineCode.js +31 -0
  49. package/lib/cjs/common/internal/render/LineCode.js.map +1 -0
  50. package/lib/cjs/common/internal/render/OvrFlags.d.ts +27 -0
  51. package/lib/cjs/common/internal/render/OvrFlags.d.ts.map +1 -0
  52. package/lib/cjs/common/internal/render/OvrFlags.js +10 -0
  53. package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -0
  54. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -1
  55. package/lib/cjs/common/internal/render/VertexTable.js +3 -5
  56. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  57. package/lib/cjs/common/render/InstancedGraphicParams.d.ts +25 -1
  58. package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -1
  59. package/lib/cjs/common/render/InstancedGraphicParams.js +59 -0
  60. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
  61. package/lib/cjs/common/render/RenderInstancesParams.d.ts +76 -0
  62. package/lib/cjs/common/render/RenderInstancesParams.d.ts.map +1 -0
  63. package/lib/cjs/common/render/RenderInstancesParams.js +33 -0
  64. package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -0
  65. package/lib/cjs/common.d.ts +1 -0
  66. package/lib/cjs/common.d.ts.map +1 -1
  67. package/lib/cjs/common.js +1 -0
  68. package/lib/cjs/common.js.map +1 -1
  69. package/lib/cjs/core-frontend.d.ts +1 -0
  70. package/lib/cjs/core-frontend.d.ts.map +1 -1
  71. package/lib/cjs/core-frontend.js +1 -0
  72. package/lib/cjs/core-frontend.js.map +1 -1
  73. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +4 -1
  74. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -1
  75. package/lib/cjs/internal/render/PrimitiveBuilder.js +82 -35
  76. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
  77. package/lib/cjs/internal/render/RenderGeometry.d.ts +20 -0
  78. package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -0
  79. package/lib/cjs/internal/render/RenderGeometry.js +10 -0
  80. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -0
  81. package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
  82. package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
  83. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +69 -0
  84. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -0
  85. package/lib/cjs/render/GraphicBranch.d.ts +10 -1
  86. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  87. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  88. package/lib/cjs/render/GraphicBuilder.d.ts +17 -3
  89. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  90. package/lib/cjs/render/GraphicBuilder.js +7 -1
  91. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  92. package/lib/cjs/render/GraphicTemplate.d.ts +76 -0
  93. package/lib/cjs/render/GraphicTemplate.d.ts.map +1 -0
  94. package/lib/cjs/render/GraphicTemplate.js +41 -0
  95. package/lib/cjs/render/GraphicTemplate.js.map +1 -0
  96. package/lib/cjs/render/MockRender.d.ts +12 -2
  97. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  98. package/lib/cjs/render/MockRender.js +19 -5
  99. package/lib/cjs/render/MockRender.js.map +1 -1
  100. package/lib/cjs/render/Pixel.d.ts +6 -0
  101. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  102. package/lib/cjs/render/Pixel.js +2 -0
  103. package/lib/cjs/render/Pixel.js.map +1 -1
  104. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +1 -0
  105. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -1
  106. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  107. package/lib/cjs/render/RenderMemory.d.ts +2 -0
  108. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  109. package/lib/cjs/render/RenderMemory.js +2 -0
  110. package/lib/cjs/render/RenderMemory.js.map +1 -1
  111. package/lib/cjs/render/RenderPlan.d.ts +2 -1
  112. package/lib/cjs/render/RenderPlan.d.ts.map +1 -1
  113. package/lib/cjs/render/RenderPlan.js +2 -0
  114. package/lib/cjs/render/RenderPlan.js.map +1 -1
  115. package/lib/cjs/render/RenderSystem.d.ts +59 -11
  116. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  117. package/lib/cjs/render/RenderSystem.js +44 -6
  118. package/lib/cjs/render/RenderSystem.js.map +1 -1
  119. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  120. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  121. package/lib/cjs/render/RenderTarget.js.map +1 -1
  122. package/lib/cjs/render/webgl/BatchUniforms.d.ts +4 -0
  123. package/lib/cjs/render/webgl/BatchUniforms.d.ts.map +1 -1
  124. package/lib/cjs/render/webgl/BatchUniforms.js +18 -0
  125. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  126. package/lib/cjs/render/webgl/BranchState.d.ts +7 -0
  127. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  128. package/lib/cjs/render/webgl/BranchState.js +4 -0
  129. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  130. package/lib/cjs/render/webgl/BranchUniforms.d.ts +1 -0
  131. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  132. package/lib/cjs/render/webgl/BranchUniforms.js +14 -1
  133. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  134. package/lib/cjs/render/webgl/ContourUniforms.d.ts +22 -0
  135. package/lib/cjs/render/webgl/ContourUniforms.d.ts.map +1 -0
  136. package/lib/cjs/render/webgl/ContourUniforms.js +98 -0
  137. package/lib/cjs/render/webgl/ContourUniforms.js.map +1 -0
  138. package/lib/cjs/render/webgl/Contours.d.ts +34 -0
  139. package/lib/cjs/render/webgl/Contours.d.ts.map +1 -0
  140. package/lib/cjs/render/webgl/Contours.js +127 -0
  141. package/lib/cjs/render/webgl/Contours.js.map +1 -0
  142. package/lib/cjs/render/webgl/EdgeSettings.d.ts +2 -1
  143. package/lib/cjs/render/webgl/EdgeSettings.d.ts.map +1 -1
  144. package/lib/cjs/render/webgl/EdgeSettings.js +1 -1
  145. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  146. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  147. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  148. package/lib/cjs/render/webgl/FeatureOverrides.js +83 -69
  149. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  150. package/lib/cjs/render/webgl/GL.d.ts +2 -1
  151. package/lib/cjs/render/webgl/GL.d.ts.map +1 -1
  152. package/lib/cjs/render/webgl/GL.js +1 -0
  153. package/lib/cjs/render/webgl/GL.js.map +1 -1
  154. package/lib/cjs/render/webgl/Graphic.d.ts +9 -0
  155. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  156. package/lib/cjs/render/webgl/Graphic.js +27 -0
  157. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  158. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +40 -10
  159. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  160. package/lib/cjs/render/webgl/InstancedGeometry.js +99 -31
  161. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  162. package/lib/cjs/render/webgl/LineCode.d.ts.map +1 -1
  163. package/lib/cjs/render/webgl/LineCode.js +2 -14
  164. package/lib/cjs/render/webgl/LineCode.js.map +1 -1
  165. package/lib/cjs/render/webgl/Mesh.d.ts +9 -4
  166. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  167. package/lib/cjs/render/webgl/Mesh.js +18 -16
  168. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  169. package/lib/cjs/render/webgl/PointCloud.d.ts +5 -1
  170. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  171. package/lib/cjs/render/webgl/PointCloud.js +7 -2
  172. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  173. package/lib/cjs/render/webgl/PointString.d.ts +5 -1
  174. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  175. package/lib/cjs/render/webgl/PointString.js +8 -3
  176. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  177. package/lib/cjs/render/webgl/Polyline.d.ts +5 -1
  178. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  179. package/lib/cjs/render/webgl/Polyline.js +7 -2
  180. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  181. package/lib/cjs/render/webgl/Primitive.d.ts +1 -3
  182. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  183. package/lib/cjs/render/webgl/Primitive.js +1 -6
  184. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  185. package/lib/cjs/render/webgl/RealityMesh.d.ts +5 -1
  186. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  187. package/lib/cjs/render/webgl/RealityMesh.js +7 -1
  188. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  189. package/lib/cjs/render/webgl/RenderFlags.d.ts +2 -19
  190. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  191. package/lib/cjs/render/webgl/RenderFlags.js +2 -0
  192. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  193. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  194. package/lib/cjs/render/webgl/SceneCompositor.js +12 -3
  195. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  196. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +15 -13
  197. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  198. package/lib/cjs/render/webgl/ShaderBuilder.js +18 -10
  199. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  200. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  201. package/lib/cjs/render/webgl/ShaderProgram.js +26 -0
  202. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  203. package/lib/cjs/render/webgl/System.d.ts +11 -5
  204. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  205. package/lib/cjs/render/webgl/System.js +81 -13
  206. package/lib/cjs/render/webgl/System.js.map +1 -1
  207. package/lib/cjs/render/webgl/Target.d.ts +6 -2
  208. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  209. package/lib/cjs/render/webgl/Target.js +24 -1
  210. package/lib/cjs/render/webgl/Target.js.map +1 -1
  211. package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
  212. package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
  213. package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
  214. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  215. package/lib/cjs/render/webgl/Texture.d.ts +2 -1
  216. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  217. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  218. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
  219. package/lib/cjs/render/webgl/glsl/Atmosphere.js +1 -1
  220. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  221. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +1 -1
  222. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +1 -1
  223. package/lib/cjs/render/webgl/glsl/Clipping.js +1 -1
  224. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  225. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  226. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  227. package/lib/cjs/render/webgl/glsl/Contours.d.ts +4 -0
  228. package/lib/cjs/render/webgl/glsl/Contours.d.ts.map +1 -0
  229. package/lib/cjs/render/webgl/glsl/Contours.js +138 -0
  230. package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -0
  231. package/lib/cjs/render/webgl/glsl/CopyColor.js +1 -1
  232. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +1 -1
  233. package/lib/cjs/render/webgl/glsl/CopyStencil.js +5 -5
  234. package/lib/cjs/render/webgl/glsl/EDL.js +4 -4
  235. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -1
  236. package/lib/cjs/render/webgl/glsl/Edge.js +1 -1
  237. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
  238. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  239. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +28 -15
  240. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  241. package/lib/cjs/render/webgl/glsl/Fragment.js +9 -9
  242. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  243. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +4 -4
  244. package/lib/cjs/render/webgl/glsl/PointCloud.js +1 -1
  245. package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -3
  246. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  247. package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -1
  248. package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -1
  249. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
  250. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  251. package/lib/cjs/render/webgl/glsl/Surface.js +5 -3
  252. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  253. package/lib/cjs/render/webgl/glsl/Translucency.js +1 -1
  254. package/lib/cjs/render/webgl/glsl/Wiremesh.js +1 -1
  255. package/lib/cjs/tile/GltfReader.d.ts +27 -7
  256. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  257. package/lib/cjs/tile/GltfReader.js +84 -68
  258. package/lib/cjs/tile/GltfReader.js.map +1 -1
  259. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -1
  260. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  261. package/lib/cjs/tile/ImdlGraphicsCreator.js +32 -22
  262. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  263. package/lib/cjs/tile/TileDrawArgs.d.ts +4 -0
  264. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  265. package/lib/cjs/tile/TileDrawArgs.js +2 -0
  266. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  267. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  268. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  269. package/lib/cjs/tile/TileTreeReference.js +3 -0
  270. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  271. package/lib/cjs/tile/map/MapTile.js +1 -1
  272. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  273. package/lib/esm/AccuSnap.d.ts.map +1 -1
  274. package/lib/esm/AccuSnap.js +9 -5
  275. package/lib/esm/AccuSnap.js.map +1 -1
  276. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  277. package/lib/esm/DisplayStyleState.js +5 -1
  278. package/lib/esm/DisplayStyleState.js.map +1 -1
  279. package/lib/esm/ElementLocateManager.d.ts +7 -1
  280. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  281. package/lib/esm/ElementLocateManager.js +34 -10
  282. package/lib/esm/ElementLocateManager.js.map +1 -1
  283. package/lib/esm/HitDetail.d.ts +4 -0
  284. package/lib/esm/HitDetail.d.ts.map +1 -1
  285. package/lib/esm/HitDetail.js +3 -0
  286. package/lib/esm/HitDetail.js.map +1 -1
  287. package/lib/esm/IModelConnection.d.ts +1 -0
  288. package/lib/esm/IModelConnection.d.ts.map +1 -1
  289. package/lib/esm/IModelConnection.js +2 -1
  290. package/lib/esm/IModelConnection.js.map +1 -1
  291. package/lib/esm/NoRenderApp.d.ts +1 -0
  292. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  293. package/lib/esm/NoRenderApp.js +1 -0
  294. package/lib/esm/NoRenderApp.js.map +1 -1
  295. package/lib/esm/SheetViewState.d.ts +0 -1
  296. package/lib/esm/SheetViewState.d.ts.map +1 -1
  297. package/lib/esm/SheetViewState.js +0 -1
  298. package/lib/esm/SheetViewState.js.map +1 -1
  299. package/lib/esm/Viewport.d.ts +25 -1
  300. package/lib/esm/Viewport.d.ts.map +1 -1
  301. package/lib/esm/Viewport.js +20 -12
  302. package/lib/esm/Viewport.js.map +1 -1
  303. package/lib/esm/common/WorkerProxy.d.ts +8 -4
  304. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  305. package/lib/esm/common/WorkerProxy.js.map +1 -1
  306. package/lib/esm/common/imdl/ImdlModel.d.ts +3 -8
  307. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
  308. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  309. package/lib/esm/common/internal/Symbols.d.ts +7 -0
  310. package/lib/esm/common/internal/Symbols.d.ts.map +1 -1
  311. package/lib/esm/common/internal/Symbols.js +7 -0
  312. package/lib/esm/common/internal/Symbols.js.map +1 -1
  313. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
  314. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
  315. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js +91 -0
  316. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
  317. package/lib/esm/common/internal/render/LineCode.d.ts +9 -0
  318. package/lib/esm/common/internal/render/LineCode.d.ts.map +1 -0
  319. package/lib/esm/common/internal/render/LineCode.js +27 -0
  320. package/lib/esm/common/internal/render/LineCode.js.map +1 -0
  321. package/lib/esm/common/internal/render/OvrFlags.d.ts +27 -0
  322. package/lib/esm/common/internal/render/OvrFlags.d.ts.map +1 -0
  323. package/lib/esm/common/internal/render/OvrFlags.js +9 -0
  324. package/lib/esm/common/internal/render/OvrFlags.js.map +1 -0
  325. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -1
  326. package/lib/esm/common/internal/render/VertexTable.js +3 -5
  327. package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
  328. package/lib/esm/common/render/InstancedGraphicParams.d.ts +25 -1
  329. package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -1
  330. package/lib/esm/common/render/InstancedGraphicParams.js +58 -1
  331. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
  332. package/lib/esm/common/render/RenderInstancesParams.d.ts +76 -0
  333. package/lib/esm/common/render/RenderInstancesParams.d.ts.map +1 -0
  334. package/lib/esm/common/render/RenderInstancesParams.js +30 -0
  335. package/lib/esm/common/render/RenderInstancesParams.js.map +1 -0
  336. package/lib/esm/common.d.ts +1 -0
  337. package/lib/esm/common.d.ts.map +1 -1
  338. package/lib/esm/common.js +1 -0
  339. package/lib/esm/common.js.map +1 -1
  340. package/lib/esm/core-frontend.d.ts +1 -0
  341. package/lib/esm/core-frontend.d.ts.map +1 -1
  342. package/lib/esm/core-frontend.js +1 -0
  343. package/lib/esm/core-frontend.js.map +1 -1
  344. package/lib/esm/internal/render/PrimitiveBuilder.d.ts +4 -1
  345. package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -1
  346. package/lib/esm/internal/render/PrimitiveBuilder.js +82 -35
  347. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
  348. package/lib/esm/internal/render/RenderGeometry.d.ts +20 -0
  349. package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -0
  350. package/lib/esm/internal/render/RenderGeometry.js +9 -0
  351. package/lib/esm/internal/render/RenderGeometry.js.map +1 -0
  352. package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
  353. package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
  354. package/lib/esm/internal/render/RenderInstancesParamsImpl.js +64 -0
  355. package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -0
  356. package/lib/esm/render/GraphicBranch.d.ts +10 -1
  357. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  358. package/lib/esm/render/GraphicBranch.js.map +1 -1
  359. package/lib/esm/render/GraphicBuilder.d.ts +17 -3
  360. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  361. package/lib/esm/render/GraphicBuilder.js +7 -1
  362. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  363. package/lib/esm/render/GraphicTemplate.d.ts +76 -0
  364. package/lib/esm/render/GraphicTemplate.d.ts.map +1 -0
  365. package/lib/esm/render/GraphicTemplate.js +37 -0
  366. package/lib/esm/render/GraphicTemplate.js.map +1 -0
  367. package/lib/esm/render/MockRender.d.ts +12 -2
  368. package/lib/esm/render/MockRender.d.ts.map +1 -1
  369. package/lib/esm/render/MockRender.js +19 -5
  370. package/lib/esm/render/MockRender.js.map +1 -1
  371. package/lib/esm/render/Pixel.d.ts +6 -0
  372. package/lib/esm/render/Pixel.d.ts.map +1 -1
  373. package/lib/esm/render/Pixel.js +2 -0
  374. package/lib/esm/render/Pixel.js.map +1 -1
  375. package/lib/esm/render/RealityMeshGraphicParams.d.ts +1 -0
  376. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -1
  377. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  378. package/lib/esm/render/RenderMemory.d.ts +2 -0
  379. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  380. package/lib/esm/render/RenderMemory.js +2 -0
  381. package/lib/esm/render/RenderMemory.js.map +1 -1
  382. package/lib/esm/render/RenderPlan.d.ts +2 -1
  383. package/lib/esm/render/RenderPlan.d.ts.map +1 -1
  384. package/lib/esm/render/RenderPlan.js +2 -0
  385. package/lib/esm/render/RenderPlan.js.map +1 -1
  386. package/lib/esm/render/RenderSystem.d.ts +59 -11
  387. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  388. package/lib/esm/render/RenderSystem.js +46 -8
  389. package/lib/esm/render/RenderSystem.js.map +1 -1
  390. package/lib/esm/render/RenderTarget.d.ts +1 -1
  391. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  392. package/lib/esm/render/RenderTarget.js.map +1 -1
  393. package/lib/esm/render/webgl/BatchUniforms.d.ts +4 -0
  394. package/lib/esm/render/webgl/BatchUniforms.d.ts.map +1 -1
  395. package/lib/esm/render/webgl/BatchUniforms.js +18 -0
  396. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  397. package/lib/esm/render/webgl/BranchState.d.ts +7 -0
  398. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  399. package/lib/esm/render/webgl/BranchState.js +4 -0
  400. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  401. package/lib/esm/render/webgl/BranchUniforms.d.ts +1 -0
  402. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  403. package/lib/esm/render/webgl/BranchUniforms.js +14 -1
  404. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  405. package/lib/esm/render/webgl/ContourUniforms.d.ts +22 -0
  406. package/lib/esm/render/webgl/ContourUniforms.d.ts.map +1 -0
  407. package/lib/esm/render/webgl/ContourUniforms.js +94 -0
  408. package/lib/esm/render/webgl/ContourUniforms.js.map +1 -0
  409. package/lib/esm/render/webgl/Contours.d.ts +34 -0
  410. package/lib/esm/render/webgl/Contours.d.ts.map +1 -0
  411. package/lib/esm/render/webgl/Contours.js +123 -0
  412. package/lib/esm/render/webgl/Contours.js.map +1 -0
  413. package/lib/esm/render/webgl/EdgeSettings.d.ts +2 -1
  414. package/lib/esm/render/webgl/EdgeSettings.d.ts.map +1 -1
  415. package/lib/esm/render/webgl/EdgeSettings.js +1 -1
  416. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  417. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  418. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  419. package/lib/esm/render/webgl/FeatureOverrides.js +83 -69
  420. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  421. package/lib/esm/render/webgl/GL.d.ts +2 -1
  422. package/lib/esm/render/webgl/GL.d.ts.map +1 -1
  423. package/lib/esm/render/webgl/GL.js +1 -0
  424. package/lib/esm/render/webgl/GL.js.map +1 -1
  425. package/lib/esm/render/webgl/Graphic.d.ts +9 -0
  426. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  427. package/lib/esm/render/webgl/Graphic.js +27 -0
  428. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  429. package/lib/esm/render/webgl/InstancedGeometry.d.ts +40 -10
  430. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  431. package/lib/esm/render/webgl/InstancedGeometry.js +97 -30
  432. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  433. package/lib/esm/render/webgl/LineCode.d.ts.map +1 -1
  434. package/lib/esm/render/webgl/LineCode.js +2 -14
  435. package/lib/esm/render/webgl/LineCode.js.map +1 -1
  436. package/lib/esm/render/webgl/Mesh.d.ts +9 -4
  437. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  438. package/lib/esm/render/webgl/Mesh.js +19 -17
  439. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  440. package/lib/esm/render/webgl/PointCloud.d.ts +5 -1
  441. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  442. package/lib/esm/render/webgl/PointCloud.js +7 -2
  443. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  444. package/lib/esm/render/webgl/PointString.d.ts +5 -1
  445. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  446. package/lib/esm/render/webgl/PointString.js +8 -3
  447. package/lib/esm/render/webgl/PointString.js.map +1 -1
  448. package/lib/esm/render/webgl/Polyline.d.ts +5 -1
  449. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  450. package/lib/esm/render/webgl/Polyline.js +7 -2
  451. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  452. package/lib/esm/render/webgl/Primitive.d.ts +1 -3
  453. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  454. package/lib/esm/render/webgl/Primitive.js +2 -7
  455. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  456. package/lib/esm/render/webgl/RealityMesh.d.ts +5 -1
  457. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  458. package/lib/esm/render/webgl/RealityMesh.js +7 -1
  459. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  460. package/lib/esm/render/webgl/RenderFlags.d.ts +2 -19
  461. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  462. package/lib/esm/render/webgl/RenderFlags.js +2 -0
  463. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  464. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  465. package/lib/esm/render/webgl/SceneCompositor.js +12 -3
  466. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  467. package/lib/esm/render/webgl/ShaderBuilder.d.ts +15 -13
  468. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  469. package/lib/esm/render/webgl/ShaderBuilder.js +18 -10
  470. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  471. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  472. package/lib/esm/render/webgl/ShaderProgram.js +26 -0
  473. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  474. package/lib/esm/render/webgl/System.d.ts +11 -5
  475. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  476. package/lib/esm/render/webgl/System.js +82 -14
  477. package/lib/esm/render/webgl/System.js.map +1 -1
  478. package/lib/esm/render/webgl/Target.d.ts +6 -2
  479. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  480. package/lib/esm/render/webgl/Target.js +24 -1
  481. package/lib/esm/render/webgl/Target.js.map +1 -1
  482. package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
  483. package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
  484. package/lib/esm/render/webgl/TargetUniforms.js +2 -0
  485. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  486. package/lib/esm/render/webgl/Texture.d.ts +2 -1
  487. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  488. package/lib/esm/render/webgl/Texture.js.map +1 -1
  489. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
  490. package/lib/esm/render/webgl/glsl/Atmosphere.js +1 -1
  491. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  492. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +1 -1
  493. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +1 -1
  494. package/lib/esm/render/webgl/glsl/Clipping.js +1 -1
  495. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  496. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  497. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  498. package/lib/esm/render/webgl/glsl/Contours.d.ts +4 -0
  499. package/lib/esm/render/webgl/glsl/Contours.d.ts.map +1 -0
  500. package/lib/esm/render/webgl/glsl/Contours.js +134 -0
  501. package/lib/esm/render/webgl/glsl/Contours.js.map +1 -0
  502. package/lib/esm/render/webgl/glsl/CopyColor.js +1 -1
  503. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +1 -1
  504. package/lib/esm/render/webgl/glsl/CopyStencil.js +5 -5
  505. package/lib/esm/render/webgl/glsl/EDL.js +4 -4
  506. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
  507. package/lib/esm/render/webgl/glsl/Edge.js +1 -1
  508. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
  509. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  510. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +27 -15
  511. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  512. package/lib/esm/render/webgl/glsl/Fragment.js +9 -9
  513. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  514. package/lib/esm/render/webgl/glsl/PlanarClassification.js +4 -4
  515. package/lib/esm/render/webgl/glsl/PointCloud.js +1 -1
  516. package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -3
  517. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  518. package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
  519. package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
  520. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
  521. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  522. package/lib/esm/render/webgl/glsl/Surface.js +5 -3
  523. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  524. package/lib/esm/render/webgl/glsl/Translucency.js +1 -1
  525. package/lib/esm/render/webgl/glsl/Wiremesh.js +1 -1
  526. package/lib/esm/tile/GltfReader.d.ts +27 -7
  527. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  528. package/lib/esm/tile/GltfReader.js +82 -67
  529. package/lib/esm/tile/GltfReader.js.map +1 -1
  530. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -1
  531. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  532. package/lib/esm/tile/ImdlGraphicsCreator.js +31 -22
  533. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  534. package/lib/esm/tile/TileDrawArgs.d.ts +4 -0
  535. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  536. package/lib/esm/tile/TileDrawArgs.js +2 -0
  537. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  538. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  539. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  540. package/lib/esm/tile/TileTreeReference.js +3 -0
  541. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  542. package/lib/esm/tile/map/MapTile.js +1 -1
  543. package/lib/esm/tile/map/MapTile.js.map +1 -1
  544. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  545. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  546. package/package.json +18 -18
@@ -30,12 +30,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
30
30
  return result;
31
31
  };
32
32
  Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.GltfGraphicsReader = exports.readGltf = exports.readGltfGraphics = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData = void 0;
33
+ exports.GltfGraphicsReader = exports.readGltf = exports.readGltfTemplate = exports.readGltfGraphics = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData = void 0;
34
34
  const core_bentley_1 = require("@itwin/core-bentley");
35
35
  const core_geometry_1 = require("@itwin/core-geometry");
36
36
  const core_common_1 = require("@itwin/core-common");
37
37
  const IModelApp_1 = require("../IModelApp");
38
- const GraphicBranch_1 = require("../render/GraphicBranch");
39
38
  const RealityMeshParams_1 = require("../render/RealityMeshParams");
40
39
  const MeshPrimitives_1 = require("../common/internal/render/MeshPrimitives");
41
40
  const Primitives_1 = require("../common/internal/render/Primitives");
@@ -45,6 +44,7 @@ const FrontendLoggerCategory_1 = require("../common/FrontendLoggerCategory");
45
44
  const ImageUtil_1 = require("../common/ImageUtil");
46
45
  const MeshPrimitive_1 = require("../common/internal/render/MeshPrimitive");
47
46
  const GltfSchema_1 = require("../common/gltf/GltfSchema");
47
+ const GraphicTemplate_1 = require("../render/GraphicTemplate");
48
48
  /**
49
49
  * A chunk of binary data exposed as a typed array.
50
50
  * The count member indicates how many elements exist. This may be less than this.buffer.length due to padding added to the
@@ -121,6 +121,14 @@ class GltfBufferView {
121
121
  return GltfBufferData.create(this.data, this.type, desiredType, this.count);
122
122
  }
123
123
  }
124
+ function templateToGraphicResult(result, system) {
125
+ const template = result.template;
126
+ delete result.template;
127
+ return {
128
+ ...result,
129
+ graphic: template ? system.createGraphicFromTemplate({ template }) : undefined,
130
+ };
131
+ }
124
132
  /** Data required for creating a [[GltfReader]] capable of deserializing [glTF](https://www.khronos.org/gltf/).
125
133
  * @internal
126
134
  */
@@ -342,6 +350,10 @@ class GltfReader {
342
350
  return transform;
343
351
  }
344
352
  readGltfAndCreateGraphics(isLeaf, featureTable, contentRange, transformToRoot, pseudoRtcBias, instances) {
353
+ const result = this.readGltfAndCreateTemplate(isLeaf, featureTable, contentRange, true, transformToRoot, pseudoRtcBias, instances);
354
+ return templateToGraphicResult(result, this._system);
355
+ }
356
+ readGltfAndCreateTemplate(isLeaf, featureTable, contentRange, noDispose, transformToRoot, pseudoRtcBias, instances) {
345
357
  if (this._isCanceled)
346
358
  return { readStatus: core_common_1.TileReadStatus.Canceled, isLeaf };
347
359
  // If contentRange was not supplied, we will compute it as we read the meshes.
@@ -359,12 +371,12 @@ class GltfReader {
359
371
  if (this._returnToCenter || this._nodes[0]?.matrix || (pseudoRtcBias && pseudoRtcBias.magnitude() < 1.0E5))
360
372
  pseudoRtcBias = undefined;
361
373
  const transformStack = new TransformStack();
362
- const renderGraphicList = [];
374
+ const templateNodes = [];
363
375
  let readStatus = core_common_1.TileReadStatus.InvalidTileData;
364
376
  for (const nodeKey of this._sceneNodes) {
365
377
  (0, core_bentley_1.assert)(transformStack.isEmpty);
366
378
  const node = this._nodes[nodeKey];
367
- if (node && core_common_1.TileReadStatus.Success !== (readStatus = this.readNodeAndCreateGraphics(renderGraphicList, node, featureTable, transformStack, instances, pseudoRtcBias)))
379
+ if (node && core_common_1.TileReadStatus.Success !== (readStatus = this.readTemplateNodes(templateNodes, node, featureTable, transformStack, instances, pseudoRtcBias)))
368
380
  return { readStatus, isLeaf };
369
381
  }
370
382
  // Creates a feature table based on instance features
@@ -375,39 +387,35 @@ class GltfReader {
375
387
  featureTable.insertWithIndex(this._instanceFeatures[instanceFeatureId], instanceFeatureId);
376
388
  }
377
389
  }
378
- if (0 === renderGraphicList.length)
390
+ if (0 === templateNodes.length)
379
391
  return { readStatus: core_common_1.TileReadStatus.InvalidTileData, isLeaf };
380
- let renderGraphic;
381
- if (1 === renderGraphicList.length)
382
- renderGraphic = renderGraphicList[0];
383
- else
384
- renderGraphic = this._system.createGraphicList(renderGraphicList);
385
- const transform = this.getTileTransform(transformToRoot, pseudoRtcBias);
386
392
  // Compute range in tileset/world space.
387
393
  let range = contentRange;
394
+ const transform = this.getTileTransform(transformToRoot, pseudoRtcBias);
388
395
  const invTransform = transform?.inverse();
389
396
  if (invTransform)
390
397
  range = invTransform.multiplyRange(contentRange);
391
398
  // The batch range needs to be in tile coordinate space.
392
399
  // If we computed the content range ourselves, it's already in tile space.
393
400
  // If the content range was supplied by the caller, it's in tileset space and needs to be transformed to tile space.
394
- if (featureTable)
395
- renderGraphic = this._system.createBatch(renderGraphic, core_common_1.PackedFeatureTable.pack(featureTable), this._computedContentRange ? contentRange : range);
401
+ const batch = !featureTable ? undefined : {
402
+ featureTable: core_common_1.PackedFeatureTable.pack(featureTable),
403
+ range: this._computedContentRange ? contentRange : range,
404
+ };
396
405
  const viewFlagOverrides = this.viewFlagOverrides;
397
- if (transform || viewFlagOverrides) {
398
- const branch = new GraphicBranch_1.GraphicBranch(true);
399
- if (viewFlagOverrides)
400
- branch.setViewFlagOverrides(viewFlagOverrides);
401
- branch.add(renderGraphic);
402
- renderGraphic = this._system.createBranch(branch, transform ?? core_geometry_1.Transform.createIdentity());
403
- }
406
+ const branch = transform || viewFlagOverrides ? { transform, viewFlagOverrides } : undefined;
404
407
  return {
405
408
  readStatus,
406
409
  isLeaf,
407
410
  contentRange,
408
411
  range,
409
- graphic: renderGraphic,
410
412
  containsPointCloud: this._containsPointCloud,
413
+ template: (0, GraphicTemplate_1.createGraphicTemplate)({
414
+ nodes: templateNodes,
415
+ batch,
416
+ branch,
417
+ noDispose,
418
+ }),
411
419
  };
412
420
  }
413
421
  readGltfAndCreateGeometry(transformToRoot, needNormals = false, needParams = false) {
@@ -420,14 +428,14 @@ class GltfReader {
420
428
  }
421
429
  return { polyfaces };
422
430
  }
423
- graphicFromMeshData(gltfMesh, instances) {
431
+ geometryFromMeshData(gltfMesh, isInstanced) {
424
432
  if ("pointcloud" === gltfMesh.type)
425
- return this._system.createPointCloud(gltfMesh, this._iModel);
433
+ return this._system.createPointCloudGeometry(gltfMesh);
426
434
  if (!gltfMesh.points || !gltfMesh.pointRange)
427
- return this._system.createMeshGraphics(gltfMesh.primitive, instances);
428
- const realityMeshPrimitive = (this._vertexTableRequired || instances) ? undefined : RealityMeshParams_1.RealityMeshParams.fromGltfMesh(gltfMesh);
435
+ return this._system.createGeometryFromMesh(gltfMesh.primitive, undefined);
436
+ const realityMeshPrimitive = (this._vertexTableRequired || isInstanced) ? undefined : RealityMeshParams_1.RealityMeshParams.fromGltfMesh(gltfMesh);
429
437
  if (realityMeshPrimitive) {
430
- const realityMesh = this._system.createRealityMesh(realityMeshPrimitive);
438
+ const realityMesh = this._system.createRealityMeshGeometry(realityMeshPrimitive);
431
439
  if (realityMesh)
432
440
  return realityMesh;
433
441
  }
@@ -445,7 +453,7 @@ class GltfReader {
445
453
  if (gltfMesh.normals)
446
454
  for (const normal of gltfMesh.normals)
447
455
  mesh.normals.push(new core_common_1.OctEncodedNormal(normal));
448
- return this._system.createMeshGraphics(mesh, instances);
456
+ return this._system.createGeometryFromMesh(mesh, undefined);
449
457
  }
450
458
  readInstanceAttributes(node, featureTable) {
451
459
  const ext = node.extensions?.EXT_mesh_gpu_instancing;
@@ -568,7 +576,7 @@ class GltfReader {
568
576
  }
569
577
  return { count, transforms, transformCenter, featureIds };
570
578
  }
571
- readNodeAndCreateGraphics(renderGraphicList, node, featureTable, transformStack, batchInstances, pseudoRtcBias) {
579
+ readTemplateNodes(templateNodes, node, featureTable, transformStack, batchInstances, pseudoRtcBias) {
572
580
  if (undefined === node)
573
581
  return core_common_1.TileReadStatus.InvalidTileData;
574
582
  // IMPORTANT: Do not return without popping this node from the stack.
@@ -590,28 +598,19 @@ class GltfReader {
590
598
  const nodeMesh = this._meshes[meshKey];
591
599
  if (nodeMesh?.primitives) {
592
600
  const meshes = this.readMeshPrimitives(node, featureTable, thisTransform, thisBias, nodeInstances);
593
- let renderGraphic;
594
601
  if (0 !== meshes.length) {
595
- if (1 === meshes.length) {
596
- renderGraphic = this.graphicFromMeshData(meshes[0], batchInstances ?? nodeInstances);
597
- }
598
- else {
599
- const thisList = [];
600
- for (const mesh of meshes) {
601
- renderGraphic = this.graphicFromMeshData(mesh, batchInstances ?? nodeInstances);
602
- if (undefined !== renderGraphic)
603
- thisList.push(renderGraphic);
604
- }
605
- if (0 !== thisList.length)
606
- renderGraphic = this._system.createGraphicList(thisList);
602
+ const thisList = [];
603
+ for (const mesh of meshes) {
604
+ const geometry = this.geometryFromMeshData(mesh, !!batchInstances || !!nodeInstances);
605
+ if (undefined !== geometry)
606
+ thisList.push(geometry);
607
607
  }
608
- if (renderGraphic) {
609
- if (thisTransform && !thisTransform.isIdentity) {
610
- const branch = new GraphicBranch_1.GraphicBranch(true);
611
- branch.add(renderGraphic);
612
- renderGraphic = this._system.createBranch(branch, thisTransform);
613
- }
614
- renderGraphicList.push(renderGraphic);
608
+ if (0 !== thisList.length) {
609
+ templateNodes.push({
610
+ geometry: thisList,
611
+ transform: thisTransform && !thisTransform.isIdentity ? thisTransform : undefined,
612
+ instances: batchInstances ?? nodeInstances,
613
+ });
615
614
  }
616
615
  }
617
616
  }
@@ -620,7 +619,7 @@ class GltfReader {
620
619
  for (const childId of node.children) {
621
620
  const child = this._nodes[childId];
622
621
  if (child)
623
- this.readNodeAndCreateGraphics(renderGraphicList, child, featureTable, transformStack, batchInstances ?? nodeInstances);
622
+ this.readTemplateNodes(templateNodes, child, featureTable, transformStack, batchInstances ?? nodeInstances);
624
623
  }
625
624
  }
626
625
  transformStack.pop();
@@ -1636,11 +1635,7 @@ class GltfReader {
1636
1635
  exports.GltfReader = GltfReader;
1637
1636
  /** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
1638
1637
  * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.
1639
- * @note Support for the full [glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html) is currently a work in progress.
1640
- * If a particular glTF asset fails to load and/or display properly, please
1641
- * [submit an issue](https://github.com/iTwin/itwinjs-core/issues).
1642
- * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.
1643
- * @see [[readGltf]] to obtain more information about the glTF model.
1638
+ * @see [[readGltf]] for more details.
1644
1639
  * @public
1645
1640
  * @extensions
1646
1641
  */
@@ -1649,6 +1644,27 @@ async function readGltfGraphics(args) {
1649
1644
  return result?.graphic;
1650
1645
  }
1651
1646
  exports.readGltfGraphics = readGltfGraphics;
1647
+ /** Produce a [[GraphicTemplate]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
1648
+ * @returns a template produced from the glTF asset's default scene, or `undefined` if a template could not be produced from the asset.
1649
+ * @see [[readGltf]] for more details.
1650
+ * @beta
1651
+ */
1652
+ async function readGltfTemplate(args) {
1653
+ const baseUrl = typeof args.baseUrl === "string" ? new URL(args.baseUrl) : args.baseUrl;
1654
+ const props = GltfReaderProps.create(args.gltf, true, baseUrl); // glTF supports exactly one coordinate system with y axis up.
1655
+ const reader = props ? new GltfGraphicsReader(props, args) : undefined;
1656
+ if (!reader)
1657
+ return undefined;
1658
+ const result = await reader.readTemplate();
1659
+ if (!result.template)
1660
+ return undefined;
1661
+ return {
1662
+ template: result.template,
1663
+ localBoundingBox: result.contentRange ?? core_geometry_1.Range3d.createNull(),
1664
+ boundingBox: result.range ?? core_geometry_1.Range3d.createNull(),
1665
+ };
1666
+ }
1667
+ exports.readGltfTemplate = readGltfTemplate;
1652
1668
  /** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
1653
1669
  * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.
1654
1670
  * The returned graphic also includes the bounding boxes of the glTF model in world and local coordiantes.
@@ -1656,23 +1672,19 @@ exports.readGltfGraphics = readGltfGraphics;
1656
1672
  * If a particular glTF asset fails to load and/or display properly, please
1657
1673
  * [submit an issue](https://github.com/iTwin/itwinjs-core/issues).
1658
1674
  * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.
1675
+ * @see [[readGltfTemplate]] to produce a [[GraphicTemplate]] instead of a [[RenderGraphic]].
1659
1676
  * @public
1660
1677
  */
1661
1678
  async function readGltf(args) {
1662
- const baseUrl = typeof args.baseUrl === "string" ? new URL(args.baseUrl) : args.baseUrl;
1663
- const props = GltfReaderProps.create(args.gltf, true, baseUrl); // glTF supports exactly one coordinate system with y axis up.
1664
- const reader = props ? new GltfGraphicsReader(props, args) : undefined;
1665
- if (!reader)
1666
- return undefined;
1667
- const result = await reader.read();
1668
- if (!result.graphic)
1679
+ const result = await readGltfTemplate(args);
1680
+ if (!result) {
1669
1681
  return undefined;
1670
- (0, core_bentley_1.assert)(result.contentRange !== undefined, "readGltf always computes content range");
1671
- (0, core_bentley_1.assert)(result.range !== undefined, "readGltf always computes world range");
1682
+ }
1683
+ const template = result.template;
1684
+ delete result.template;
1672
1685
  return {
1673
- graphic: result.graphic,
1674
- localBoundingBox: result.contentRange ?? core_geometry_1.Range3d.createNull(),
1675
- boundingBox: result.range ?? core_geometry_1.Range3d.createNull(),
1686
+ ...result,
1687
+ graphic: IModelApp_1.IModelApp.renderSystem.createGraphicFromTemplate({ template }),
1676
1688
  };
1677
1689
  }
1678
1690
  exports.readGltf = readGltf;
@@ -1859,10 +1871,14 @@ class GltfGraphicsReader extends GltfReader {
1859
1871
  }
1860
1872
  }
1861
1873
  }
1862
- async read() {
1874
+ async readTemplate() {
1863
1875
  await this.resolveResources();
1864
1876
  this.readGltfStructuralMetadata();
1865
- return this.readGltfAndCreateGraphics(this._isLeaf, this._featureTable, this._contentRange, this._transform);
1877
+ return this.readGltfAndCreateTemplate(this._isLeaf, this._featureTable, this._contentRange, true, this._transform);
1878
+ }
1879
+ async read() {
1880
+ const result = await this.readTemplate();
1881
+ return templateToGraphicResult(result, this._system);
1866
1882
  }
1867
1883
  get structuralMetadata() { return this._structuralMetadata; }
1868
1884
  get nodes() { return this._nodes; }