@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
@@ -0,0 +1,37 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Rendering
7
+ */
8
+ import { _batch, _branch, _implementationProhibited, _nodes } from "../common/internal/Symbols";
9
+ /** Create a GraphicTemplate.
10
+ * If the caller specifies `noDispose` as `true`, every RenderGeometry in every node will be marked `noDispose`;
11
+ * this permits the same template to be reused by multiple graphics. The garbage collector will reclaim its
12
+ * WebGL resources and its `dispose` method will do nothing.
13
+ * The `isInstancable` flag will be calculated from the nodes and their geometry.
14
+ * @internal
15
+ */
16
+ export function createGraphicTemplate(args) {
17
+ let isInstanceable = true;
18
+ for (const node of args.nodes) {
19
+ if (node.instances) {
20
+ isInstanceable = false;
21
+ }
22
+ for (const geometry of node.geometry) {
23
+ geometry.noDispose = args.noDispose;
24
+ if (!geometry.isInstanceable) {
25
+ isInstanceable = false;
26
+ }
27
+ }
28
+ }
29
+ return {
30
+ [_implementationProhibited]: undefined,
31
+ isInstanceable,
32
+ [_nodes]: args.nodes,
33
+ [_batch]: args.batch,
34
+ [_branch]: args.branch,
35
+ };
36
+ }
37
+ //# sourceMappingURL=GraphicTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphicTemplate.js","sourceRoot":"","sources":["../../../src/render/GraphicTemplate.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAiEhG;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAKrC;IACC,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC7B,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,CAAC,yBAAyB,CAAC,EAAE,SAAS;QACtC,cAAc;QACd,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK;QACpB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK;QACpB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { _batch, _branch, _implementationProhibited, _nodes } from \"../common/internal/Symbols\";\r\nimport { RenderGeometry } from \"../internal/render/RenderGeometry\";\r\nimport { RenderFeatureTable, ViewFlagOverrides } from \"@itwin/core-common\";\r\nimport { InstancedGraphicParams } from \"../common/render/InstancedGraphicParams\";\r\nimport { BatchOptions } from \"../common/render/BatchOptions\";\r\n\r\n/** @internal */\r\nexport interface GraphicTemplateNode {\r\n geometry: RenderGeometry[];\r\n /** For glTF models, the flattened transform of the scene graph node. */\r\n transform?: Transform;\r\n /** For glTF models, the instances associated with the scene graph node, or with the model as a whole. */\r\n instances?: InstancedGraphicParams;\r\n}\r\n\r\n/** Describes the collection of $[Feature]($common)s in a [[GraphicTemplate]].\r\n * If the template is used for instancing, the batch information in the [[RenderInstances]] overrides this.\r\n * @internal\r\n */\r\nexport interface GraphicTemplateBatch {\r\n readonly featureTable: RenderFeatureTable;\r\n readonly options?: BatchOptions;\r\n readonly range: Range3d;\r\n}\r\n\r\n/** Applies a transform and/or view flag overrides to all of the nodes in a [[GraphicTemplate]].\r\n * @internal\r\n */\r\nexport interface GraphicTemplateBranch {\r\n readonly transform?: Transform;\r\n readonly viewFlagOverrides?: ViewFlagOverrides;\r\n}\r\n\r\n/** A reusable representation of a [[RenderGraphic]].\r\n * You can use [[RenderSystem.createGraphicFromTemplate]] to produce a [[RenderGraphic]] from a template.\r\n * The template contains all of the WebGL resources required to render the graphics, so no matter how many times you use the template,\r\n * no additional GPU resources will be allocated.\r\n * The primary use for a template is [instanced rendering](https://webglfundamentals.org/webgl/lessons/webgl-instanced-drawing.html) - efficiently\r\n * drawing many repetitions of the same graphic with different positions, scales, rotations, and symbology.\r\n * Using instancing to draw 1 template N times is far more efficient than drawing N [[RenderGraphic]]s created from the same template.\r\n * You can instance a template by supplying a [[RenderInstances]] to [[RenderSystem.createGraphicFromTemplate]], unless [[isInstanceable]] is `false`.\r\n * @see [[GraphicBuilder.finishTemplate]] to create a template from a [[GraphicBuilder]].\r\n * @see [[RenderSystem.createTemplateFromDescription]] to create a template from a [[GraphicDescription]].\r\n * @see [[readGltfTemplate]] to create a template from a glTF model.\r\n * @beta\r\n */\r\nexport interface GraphicTemplate {\r\n /** @internal */\r\n readonly [_implementationProhibited]: unknown;\r\n\r\n /** Whether the graphics in this template can be instanced. Non-instanceable graphics include those produced from glTF models that already\r\n * contain instanced geometry and view-independent geometry created from a [[GraphicBuilder]].\r\n * [[RenderSystem.createGraphicFromTemplate]] will throw an error if you attempt to instance a non-instanceable template by supplying\r\n * [[CreateGraphicFromTemplateArgs.instances]].\r\n */\r\n readonly isInstanceable: boolean;\r\n\r\n /** @internal */\r\n readonly [_nodes]: GraphicTemplateNode[];\r\n /** @internal */\r\n readonly [_batch]?: GraphicTemplateBatch;\r\n /** @internal */\r\n readonly [_branch]?: GraphicTemplateBranch;\r\n}\r\n\r\n/** Create a GraphicTemplate.\r\n * If the caller specifies `noDispose` as `true`, every RenderGeometry in every node will be marked `noDispose`;\r\n * this permits the same template to be reused by multiple graphics. The garbage collector will reclaim its\r\n * WebGL resources and its `dispose` method will do nothing.\r\n * The `isInstancable` flag will be calculated from the nodes and their geometry.\r\n * @internal\r\n */\r\nexport function createGraphicTemplate(args: {\r\n nodes: GraphicTemplateNode[];\r\n batch?: GraphicTemplateBatch;\r\n noDispose: boolean;\r\n branch?: GraphicTemplateBranch;\r\n}): GraphicTemplate {\r\n let isInstanceable = true;\r\n for (const node of args.nodes) {\r\n if (node.instances) {\r\n isInstanceable = false;\r\n }\r\n\r\n for (const geometry of node.geometry) {\r\n geometry.noDispose = args.noDispose;\r\n if (!geometry.isInstanceable) {\r\n isInstanceable = false;\r\n }\r\n }\r\n }\r\n\r\n return {\r\n [_implementationProhibited]: undefined,\r\n isInstanceable,\r\n [_nodes]: args.nodes,\r\n [_batch]: args.batch,\r\n [_branch]: args.branch,\r\n };\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { Transform } from "@itwin/core-geometry";
1
+ import { Range3d, Transform } from "@itwin/core-geometry";
2
2
  import { ElementAlignedBox3d, RenderFeatureTable } from "@itwin/core-common";
3
3
  import { IModelAppOptions } from "../IModelApp";
4
4
  import { IModelConnection } from "../IModelConnection";
@@ -15,10 +15,11 @@ import { PointCloudArgs } from "../common/internal/render/PointCloudPrimitive";
15
15
  import { GraphicList, RenderGraphic } from "./RenderGraphic";
16
16
  import { RenderMemory } from "./RenderMemory";
17
17
  import { RenderPlan } from "./RenderPlan";
18
- import { RenderAreaPattern, RenderGeometry, RenderSystem } from "./RenderSystem";
18
+ import { RenderAreaPattern, RenderSystem } from "./RenderSystem";
19
19
  import { RenderTarget } from "./RenderTarget";
20
20
  import { Scene } from "./Scene";
21
21
  import { _implementationProhibited } from "../common/internal/Symbols";
22
+ import { RenderGeometry } from "../internal/render/RenderGeometry";
22
23
  /** Contains extensible mock implementations of the various components of a RenderSystem, intended for use in tests.
23
24
  * Use these for tests instead of the default RenderSystem wherever possible because:
24
25
  * (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
@@ -96,11 +97,18 @@ export declare namespace MockRender {
96
97
  }
97
98
  /** @internal */
98
99
  class Geometry implements RenderGeometry {
100
+ readonly renderGeometryType: "mesh" | "polyline" | "point-string";
101
+ noDispose: boolean;
102
+ readonly isInstanceable = true;
103
+ isDisposed: boolean;
104
+ constructor(renderGeometryType: "mesh" | "polyline" | "point-string");
99
105
  dispose(): void;
100
106
  collectStatistics(): void;
107
+ computeRange(): Range3d;
101
108
  }
102
109
  /** @internal */
103
110
  class AreaPattern implements RenderAreaPattern {
111
+ readonly [_implementationProhibited] = "renderAreaPattern";
104
112
  dispose(): void;
105
113
  collectStatistics(): void;
106
114
  }
@@ -136,6 +144,8 @@ export declare namespace MockRender {
136
144
  createPointStringGeometry(): Geometry;
137
145
  /** @internal */
138
146
  createAreaPattern(): AreaPattern;
147
+ /** @internal */
148
+ createGraphicFromTemplate(): Graphic;
139
149
  }
140
150
  type SystemFactory = () => RenderSystem;
141
151
  /** An implementation of IModelApp which uses a MockRender.System by default. */
@@ -1 +1 @@
1
- {"version":3,"file":"MockRender.d.ts","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAqB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAa,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;;;;;;;;;;GAWG;AACH,yBAAiB,UAAU,CAAC;IAC1B,gBAAgB;IAChB,eAAsB,MAAO,SAAQ,YAAY;QAGzB,OAAO,CAAC,QAAQ,CAAC,OAAO;QAF9C,mBAA4B,CAAC,yBAAyB,CAAC,YAAa;QAEpE,SAAS,aAA8B,OAAO,EAAE,YAAY;QAE5D,IAAW,YAAY,IAAI,YAAY,CAAyB;QAChE,IAAW,yBAAyB,YAAoB;QACxD,IAAW,gBAAgB,IACY,MAAM,CADF;QAC3C,IAAW,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAK;QAC3C,WAAW,CAAC,MAAM,EAAE,KAAK;QACzB,cAAc,CAAC,SAAS,CAAC,EAAE,WAAW;QACtC,iBAAiB,CAAC,KAAK,EAAE,WAAW;QACpC,gBAAgB,CAAC,KAAK,EAAE,UAAU;QAClC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM;QAC7B,cAAc;QACd,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO;QACrH,IAAW,kBAAkB,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAe;QAChE,IAAW,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAK;KAC9D;IAED,gBAAgB;IAChB,MAAa,cAAe,SAAQ,MAAM;QACC,OAAO,CAAC,QAAQ,CAAC,OAAO;oBAA9C,MAAM,EAAE,YAAY,EAAmB,OAAO,EAAE,iBAAiB;QAEpF,IAAW,QAAQ,aAAsF;QAClG,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;KACnD;IAED,gBAAgB;IAChB,MAAa,eAAgB,SAAQ,MAAM;QACA,OAAO,CAAC,QAAQ,CAAC,SAAS;oBAAhD,MAAM,EAAE,YAAY,EAAmB,SAAS,EAAE,QAAQ;QAE7E,IAAW,QAAQ,aAA6B;QACzC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;KAClD;IAED,gBAAgB;IAChB,MAAa,OAAQ,SAAQ,gBAAgB;oBACxB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,6BAA6B;KAGxG;IAED,MAAa,OAAQ,SAAQ,aAAa;;QAGjC,OAAO;QACP,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;QACxD,UAAU;KAClB;IAED,MAAa,IAAK,SAAQ,OAAO;iBACI,QAAQ,EAAE,aAAa,EAAE;oBAAzB,QAAQ,EAAE,aAAa,EAAE;QAE5C,OAAO;KAMxB;IAED,MAAa,MAAO,SAAQ,OAAO;iBACE,MAAM,EAAE,aAAa;iBAAkB,SAAS,EAAE,SAAS;iBAAkB,OAAO,CAAC;oBAArF,MAAM,EAAE,aAAa,EAAkB,SAAS,EAAE,SAAS,EAAkB,OAAO,CAAC,kCAAsB;QAE9H,OAAO;KACxB;IAED,MAAa,KAAM,SAAQ,OAAO;iBACG,OAAO,EAAE,aAAa;iBAAkB,YAAY,EAAE,kBAAkB;iBAAkB,KAAK,EAAE,mBAAmB;oBAApH,OAAO,EAAE,aAAa,EAAkB,YAAY,EAAE,kBAAkB,EAAkB,KAAK,EAAE,mBAAmB;QAEvI,OAAO;KAGxB;IAED,gBAAgB;IAChB,MAAa,QAAS,YAAW,cAAc;QACtC,OAAO,IAAI,IAAI;QACf,iBAAiB,IAAI,IAAI;KACjC;IAED,gBAAgB;IAChB,MAAa,WAAY,YAAW,iBAAiB;QAC5C,OAAO,IAAI,IAAI;QACf,iBAAiB,IAAI,IAAI;KACjC;IAED,MAAa,MAAO,SAAQ,YAAY;QACtC,IAAW,OAAO,YAAmB;QAC9B,OAAO,IAAI,IAAI;QACtB,IAAoB,cAAc,WAAmB;;QAIrD,gBAAgB;QACA,UAAU,IAAI,OAAO;QAErC,gBAAgB;QACA,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc;QACvE,gBAAgB;QACA,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY;QAEnD,aAAa,CAAC,OAAO,EAAE,2BAA2B,GAAG,6BAA6B,GAAG,cAAc;QAInG,iBAAiB,CAAC,UAAU,EAAE,aAAa,EAAE;QAC7C,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,oBAAoB;QAC/F,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB;QAE5G,gBAAgB;QACA,UAAU,CAAC,OAAO,EAAE,UAAU;QAC9C,gBAAgB;QACA,cAAc,CAAC,OAAO,EAAE,cAAc;QACtD,gBAAgB;QACA,iBAAiB,CAAC,OAAO,EAAE,iBAAiB;QAC5D,gBAAgB;QACA,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB;QACjE,mBAAmB;QAEnC,gBAAgB;QACA,kBAAkB;QAClC,gBAAgB;QACA,sBAAsB;QACtC,gBAAgB;QACA,yBAAyB;QACzC,gBAAgB;QACA,iBAAiB;KAClC;IAED,KAAY,aAAa,GAAG,MAAM,YAAY,CAAC;IAE/C,gFAAgF;IAChF,MAAa,GAAG;QACd,OAAc,aAAa,EAAE,aAAa,CAAyC;eAE/D,OAAO,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;eAO/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;QAK7C,SAAS,CAAC,MAAM,CAAC,yBAAyB;KAC3C;CACF"}
1
+ {"version":3,"file":"MockRender.d.ts","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * @module Utils
7
7
  */
8
8
  import { dispose } from "@itwin/core-bentley";
9
+ import { Range3d } from "@itwin/core-geometry";
9
10
  import { EmptyLocalization } from "@itwin/core-common";
10
11
  import { IModelApp } from "../IModelApp";
11
12
  import { ViewRect } from "../common/ViewRect";
@@ -28,7 +29,7 @@ import { _implementationProhibited } from "../common/internal/Symbols";
28
29
  */
29
30
  export var MockRender;
30
31
  (function (MockRender) {
31
- var _a;
32
+ var _a, _b;
32
33
  /** @internal */
33
34
  class Target extends RenderTarget {
34
35
  constructor(_system) {
@@ -122,15 +123,26 @@ export var MockRender;
122
123
  MockRender.Batch = Batch;
123
124
  /** @internal */
124
125
  class Geometry {
125
- dispose() { }
126
+ constructor(renderGeometryType) {
127
+ this.renderGeometryType = renderGeometryType;
128
+ this.noDispose = false;
129
+ this.isInstanceable = true;
130
+ this.isDisposed = false;
131
+ }
132
+ dispose() { this.isDisposed = true; }
126
133
  collectStatistics() { }
134
+ computeRange() { return new Range3d(); }
127
135
  }
128
136
  MockRender.Geometry = Geometry;
129
137
  /** @internal */
130
138
  class AreaPattern {
139
+ constructor() {
140
+ this[_b] = "renderAreaPattern";
141
+ }
131
142
  dispose() { }
132
143
  collectStatistics() { }
133
144
  }
145
+ _b = _implementationProhibited;
134
146
  MockRender.AreaPattern = AreaPattern;
135
147
  class System extends RenderSystem {
136
148
  get isValid() { return true; }
@@ -159,13 +171,15 @@ export var MockRender;
159
171
  createPointCloud(_args, _imodel) { return new Graphic(); }
160
172
  createRenderGraphic() { return new Graphic(); }
161
173
  /** @internal */
162
- createMeshGeometry() { return new Geometry(); }
174
+ createMeshGeometry() { return new Geometry("mesh"); }
163
175
  /** @internal */
164
- createPolylineGeometry() { return new Geometry(); }
176
+ createPolylineGeometry() { return new Geometry("polyline"); }
165
177
  /** @internal */
166
- createPointStringGeometry() { return new Geometry(); }
178
+ createPointStringGeometry() { return new Geometry("point-string"); }
167
179
  /** @internal */
168
180
  createAreaPattern() { return new AreaPattern(); }
181
+ /** @internal */
182
+ createGraphicFromTemplate() { return new Graphic(); }
169
183
  }
170
184
  MockRender.System = System;
171
185
  /** An implementation of IModelApp which uses a MockRender.System by default. */
@@ -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/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
+ {"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 { Range3d, 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, RenderSystem } from \"./RenderSystem\";\r\nimport { RenderTarget } from \"./RenderTarget\";\r\nimport { Scene } from \"./Scene\";\r\nimport { _implementationProhibited } from \"../common/internal/Symbols\";\r\nimport { RenderGeometry } from \"../internal/render/RenderGeometry\";\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 noDispose = false;\r\n public readonly isInstanceable = true;\r\n public isDisposed = false;\r\n public constructor(public readonly renderGeometryType: \"mesh\" | \"polyline\" | \"point-string\") {\r\n\r\n }\r\n public dispose(): void { this.isDisposed = true; }\r\n public collectStatistics(): void { }\r\n public computeRange() { return new Range3d(); }\r\n }\r\n\r\n /** @internal */\r\n export class AreaPattern implements RenderAreaPattern {\r\n public readonly [_implementationProhibited] = \"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(\"mesh\"); }\r\n /** @internal */\r\n public override createPolylineGeometry() { return new Geometry(\"polyline\"); }\r\n /** @internal */\r\n public override createPointStringGeometry() { return new Geometry(\"point-string\"); }\r\n /** @internal */\r\n public override createAreaPattern() { return new AreaPattern(); }\r\n /** @internal */\r\n public override createGraphicFromTemplate() { return new Graphic(); }\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"]}
@@ -6,6 +6,7 @@ import { BatchType, Feature, GeometryClass, ModelFeature } from "@itwin/core-com
6
6
  import { HitPriority, ViewAttachmentHitInfo } from "../HitDetail";
7
7
  import { IModelConnection } from "../IModelConnection";
8
8
  import type { Viewport } from "../Viewport";
9
+ import { Transform } from "@itwin/core-geometry";
9
10
  /** Describes aspects of a pixel as read from a [[Viewport]].
10
11
  * @see [[Viewport.readPixels]].
11
12
  * @public
@@ -28,6 +29,8 @@ export declare namespace Pixel {
28
29
  /** The iModel from which the geometry producing the pixel originated. */
29
30
  readonly iModel?: IModelConnection;
30
31
  /** @internal */
32
+ readonly transformFromIModel?: Transform;
33
+ /** @internal */
31
34
  readonly tileId?: string;
32
35
  /** The Id of the [ViewAttachment]($backend), if any, from which the pixel originated.
33
36
  * @beta
@@ -45,6 +48,7 @@ export declare namespace Pixel {
45
48
  iModel?: IModelConnection;
46
49
  tileId?: string;
47
50
  viewAttachmentId?: string;
51
+ transformFromIModel?: Transform;
48
52
  });
49
53
  /** The Id of the element that produced the pixel. */
50
54
  get elementId(): Id64String | undefined;
@@ -91,6 +95,8 @@ export declare namespace Pixel {
91
95
  * @internal
92
96
  */
93
97
  sourceIModel?: IModelConnection;
98
+ /** @internal */
99
+ transformFromSourceIModel?: Transform;
94
100
  /** @internal chiefly for debugging */
95
101
  tileId?: string;
96
102
  /** True if the hit originated from a reality model classifier.
@@ -1 +1 @@
1
- {"version":3,"file":"Pixel.d.ts","sourceRoot":"","sources":["../../../src/render/Pixel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;GAIG;AACH,yBAAiB,KAAK,CAAC;IACrB,0DAA0D;IAC1D,MAAa,IAAI;QACf,2CAA2C;QAC3C,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClC,SAAgB,OAAO,CAAC,EAAE,UAAU,CAAC;QACrC,sHAAsH;QACtH,SAAgB,gBAAgB,EAAE,MAAM,CAAC;QACzC,oDAAoD;QACpD,SAAgB,IAAI,EAAE,YAAY,CAAC;QACnC,6DAA6D;QAC7D,SAAgB,SAAS,EAAE,SAAS,CAAC;QACrC,gBAAgB;QAChB,SAAgB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtC,yEAAyE;QACzE,SAAgB,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1C,gBAAgB;QAChB,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChC;;WAEG;QACH,SAAgB,gBAAgB,CAAC,EAAE,UAAU,CAAC;QAC9C,gBAAgB;QAChB,IAAW,YAAY,IAAI,OAAO,CAEjC;QAED,gBAAgB;oBACG,IAAI,CAAC,EAAE;YACxB,OAAO,CAAC,EAAE,YAAY,CAAC;YACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,IAAI,CAAC,EAAE,YAAY,CAAC;YACpB,SAAS,CAAC,EAAE,SAAS,CAAC;YACtB,SAAS,CAAC,EAAE,SAAS,CAAC;YACtB,MAAM,CAAC,EAAE,gBAAgB,CAAC;YAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B;QAaD,qDAAqD;QACrD,IAAW,SAAS,IAAI,UAAU,GAAG,SAAS,CAE7C;QAED,qEAAqE;QACrE,IAAW,aAAa,IAAI,UAAU,GAAG,SAAS,CAEjD;QAED,qDAAqD;QACrD,IAAW,aAAa,IAAI,aAAa,GAAG,SAAS,CAEpD;QAED,0FAA0F;QACnF,kBAAkB,IAAI,WAAW;QAexC;;WAEG;QACI,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC,QAAQ;KAqBtD;IAED;;;;;;;;;;;;OAYG;IACH,UAAiB,QAAQ;QACvB,+HAA+H;QAC/H,QAAQ,EAAE,UAAU,CAAC;QACrB,gDAAgD;QAChD,QAAQ,EAAE,WAAW,CAAC;QACtB,2EAA2E;QAC3E,YAAY,EAAE,MAAM,CAAC;QACrB,qEAAqE;QACrE,aAAa,CAAC,EAAE,UAAU,CAAC;QAC3B,qCAAqC;QACrC,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,kEAAkE;QAClE,OAAO,CAAC,EAAE,UAAU,CAAC;QACrB;;;;WAIG;QACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;QAChC,sCAAsC;QACtC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB;;;WAGG;QACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC;IAED,uEAAuE;IACvE,KAAY,YAAY;QACtB,qGAAqG;QACrG,OAAO,IAAA,CAAE,6DAA6D;QACtE,8CAA8C;QAC9C,IAAI,IAAA;QACJ,qCAAqC;QACrC,OAAO,IAAA;QACP,yDAAyD;QACzD,MAAM,IAAA;QACN,uDAAuD;QACvD,IAAI,IAAA;QACJ,wEAAwE;QACxE,UAAU,IAAA;KACX;IAED,iFAAiF;IACjF,KAAY,SAAS;QACnB,0GAA0G;QAC1G,OAAO,IAAA;QACP,8CAA8C;QAC9C,IAAI,IAAA;QACJ,2CAA2C;QAC3C,MAAM,IAAA;QACN,+CAA+C;QAC/C,SAAS,IAAA;KACV;IAED;;;OAGG;IACH,KAAY,QAAQ;QAClB,IAAI,IAAI;QACR,wDAAwD;QACxD,OAAO,IAAS,CAAE,mDAAmD;QACrE,mJAAmJ;QACnJ,mBAAmB,IAAS;QAC5B,wCAAwC;QACxC,GAAG,IAAgC;KACpC;IAED;;;OAGG;IACH,UAAiB,MAAM;QACrB,gFAAgF;QAChF,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC;IAED;;OAEG;IACH,KAAY,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAC7D"}
1
+ {"version":3,"file":"Pixel.d.ts","sourceRoot":"","sources":["../../../src/render/Pixel.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export var Pixel;
32
32
  this.iModel = args?.iModel;
33
33
  this.tileId = args?.tileId;
34
34
  this.viewAttachmentId = args?.viewAttachmentId;
35
+ this.transformFromIModel = args?.transformFromIModel;
35
36
  }
36
37
  /** The Id of the element that produced the pixel. */
37
38
  get elementId() {
@@ -80,6 +81,7 @@ export var Pixel;
80
81
  tileId: this.tileId,
81
82
  isClassifier: this.isClassifier,
82
83
  sourceIModel: this.iModel,
84
+ transformFromSourceIModel: this.transformFromIModel,
83
85
  viewAttachment,
84
86
  };
85
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Pixel.js","sourceRoot":"","sources":["../../../src/render/Pixel.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 { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BatchType, Feature, GeometryClass, ModelFeature } from \"@itwin/core-common\";\r\nimport { HitPriority, ViewAttachmentHitInfo } from \"../HitDetail\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport type { Viewport } from \"../Viewport\";\r\n\r\n/** Describes aspects of a pixel as read from a [[Viewport]].\r\n * @see [[Viewport.readPixels]].\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace Pixel {\r\n /** Describes a single pixel within a [[Pixel.Buffer]]. */\r\n export class Data {\r\n /** The feature that produced the pixel. */\r\n public readonly feature?: Feature;\r\n public readonly modelId?: Id64String;\r\n /** The pixel's depth in [[CoordSystem.Npc]] coordinates (0 to 1), or -1 if depth was not written or not requested. */\r\n public readonly distanceFraction: number;\r\n /** The type of geometry that produced the pixel. */\r\n public readonly type: GeometryType;\r\n /** The planarity of the geometry that produced the pixel. */\r\n public readonly planarity: Planarity;\r\n /** @internal */\r\n public readonly batchType?: BatchType;\r\n /** The iModel from which the geometry producing the pixel originated. */\r\n public readonly iModel?: IModelConnection;\r\n /** @internal */\r\n public readonly tileId?: string;\r\n /** The Id of the [ViewAttachment]($backend), if any, from which the pixel originated.\r\n * @beta\r\n */\r\n public readonly viewAttachmentId?: Id64String;\r\n /** @internal */\r\n public get isClassifier(): boolean {\r\n return undefined !== this.batchType && BatchType.Primary !== this.batchType;\r\n }\r\n\r\n /** @internal */\r\n public constructor(args?: {\r\n feature?: ModelFeature;\r\n distanceFraction?: number;\r\n type?: GeometryType;\r\n planarity?: Planarity;\r\n batchType?: BatchType;\r\n iModel?: IModelConnection;\r\n tileId?: string;\r\n viewAttachmentId?: string;\r\n }) {\r\n if (args?.feature)\r\n this.feature = new Feature(args.feature.elementId, args.feature.subCategoryId, args.feature.geometryClass);\r\n\r\n this.modelId = args?.feature?.modelId;\r\n this.distanceFraction = args?.distanceFraction ?? -1;\r\n this.type = args?.type ?? GeometryType.Unknown;\r\n this.planarity = args?.planarity ?? Planarity.Unknown;\r\n this.iModel = args?.iModel;\r\n this.tileId = args?.tileId;\r\n this.viewAttachmentId = args?.viewAttachmentId;\r\n }\r\n\r\n /** The Id of the element that produced the pixel. */\r\n public get elementId(): Id64String | undefined {\r\n return this.feature?.elementId;\r\n }\r\n\r\n /** The Id of the [SubCategory]($backend) that produced the pixel. */\r\n public get subCategoryId(): Id64String | undefined {\r\n return this.feature?.subCategoryId;\r\n }\r\n\r\n /** The class of geometry that produced the pixel. */\r\n public get geometryClass(): GeometryClass | undefined {\r\n return this.feature?.geometryClass;\r\n }\r\n\r\n /** Computes the [[HitPriority]] of this pixel based on its [[type]] and [[planarity]]. */\r\n public computeHitPriority(): HitPriority {\r\n switch (this.type) {\r\n case Pixel.GeometryType.Surface:\r\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarSurface : HitPriority.NonPlanarSurface;\r\n case Pixel.GeometryType.Linear:\r\n return HitPriority.WireEdge;\r\n case Pixel.GeometryType.Edge:\r\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarEdge : HitPriority.NonPlanarEdge;\r\n case Pixel.GeometryType.Silhouette:\r\n return HitPriority.SilhouetteEdge;\r\n default:\r\n return HitPriority.Unknown;\r\n }\r\n }\r\n\r\n /** Convert this pixel to a [[Pixel.HitProps]] suitable for constructing a [[HitDetail]].\r\n * @param viewport The viewport in which the hit originated.\r\n */\r\n public toHitProps(viewport: Viewport): Pixel.HitProps {\r\n let viewAttachment: ViewAttachmentHitInfo | undefined;\r\n if (this.viewAttachmentId) {\r\n const attachmentViewport = viewport.view.getAttachmentViewport(this.viewAttachmentId);\r\n if (attachmentViewport)\r\n viewAttachment = { viewport: attachmentViewport, id: this.viewAttachmentId };\r\n }\r\n\r\n return {\r\n sourceId: this.elementId ?? Id64.invalid,\r\n priority: this.computeHitPriority(),\r\n distFraction: this.distanceFraction,\r\n subCategoryId: this.subCategoryId,\r\n geometryClass: this.geometryClass,\r\n modelId: this.modelId,\r\n tileId: this.tileId,\r\n isClassifier: this.isClassifier,\r\n sourceIModel: this.iModel,\r\n viewAttachment,\r\n };\r\n }\r\n }\r\n\r\n /** Describes a subset of [[HitDetailProps]] computed from a [[Pixel.Data]], suitable for constructing a [[HitDetail]].\r\n * For example, the following function creates a `HitDetail` from a `Pixel.Data` and other hit information:\r\n * ```ts\r\n * function makeHitDetail(pixel: Pixel.Data, viewport: ScreenViewport, testPoint: Point3d, hitSource: HitSource, hitPoint: Point3d, distXY: number): HitDetail {\r\n * return new HitDetail({\r\n * ...pixel.toHitProps(viewport),\r\n * viewport, testPoint, hitSource, hitPoint, distXY,\r\n * };\r\n * }\r\n * ```\r\n * @see [[Data.toHitProps]] to convert a [[Pixel.Data]] to a `HitProps`.\r\n * @public\r\n */\r\n export interface HitProps {\r\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\r\n sourceId: Id64String;\r\n /** The hit geometry priority/classification. */\r\n priority: HitPriority;\r\n /** The distance in view coordinates between the hit and the near plane. */\r\n distFraction: number;\r\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\r\n subCategoryId?: Id64String;\r\n /** The class of the hit geometry. */\r\n geometryClass?: GeometryClass;\r\n /** The Id of the [[ModelState]] from which the hit originated. */\r\n modelId?: Id64String;\r\n /** The IModelConnection from which the hit originated.\r\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\r\n * other than the one associated with the viewport.\r\n * @internal\r\n */\r\n sourceIModel?: IModelConnection;\r\n /** @internal chiefly for debugging */\r\n tileId?: string;\r\n /** True if the hit originated from a reality model classifier.\r\n * @alpha\r\n */\r\n isClassifier?: boolean;\r\n /** Information about the [ViewAttachment]($backend) within which the hit geometry resides, if any.\r\n * @note Only [[SheetViewState]]s can have view attachments.\r\n * @beta\r\n */\r\n viewAttachment?: ViewAttachmentHitInfo;\r\n }\r\n\r\n /** Describes the type of geometry that produced the [[Pixel.Data]]. */\r\n export enum GeometryType {\r\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the type could not be determined. */\r\n Unknown, // Geometry was not selected, or type could not be determined\r\n /** No geometry was rendered to this pixel. */\r\n None,\r\n /** A surface produced this pixel. */\r\n Surface,\r\n /** A point primitive or polyline produced this pixel. */\r\n Linear,\r\n /** This pixel was produced by an edge of a surface. */\r\n Edge,\r\n /** This pixel was produced by a silhouette edge of a curved surface. */\r\n Silhouette,\r\n }\r\n\r\n /** Describes the planarity of the foremost geometry which produced the pixel. */\r\n export enum Planarity {\r\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the planarity could not be determined. */\r\n Unknown,\r\n /** No geometry was rendered to this pixel. */\r\n None,\r\n /** Planar geometry produced this pixel. */\r\n Planar,\r\n /** Non-planar geometry produced this pixel. */\r\n NonPlanar,\r\n }\r\n\r\n /**\r\n * Bit-mask by which callers of [[Viewport.readPixels]] specify which aspects are of interest.\r\n * Aspects not specified will be omitted from the returned data.\r\n */\r\n export enum Selector {\r\n None = 0,\r\n /** Select the [[Feature]] which produced each pixel. */\r\n Feature = 1 << 0, // eslint-disable-line @typescript-eslint/no-shadow\r\n /** Select the type and planarity of geometry which produced each pixel as well as the fraction of its distance between the near and far planes. */\r\n GeometryAndDistance = 1 << 2,\r\n /** Select all aspects of each pixel. */\r\n All = GeometryAndDistance | Feature,\r\n }\r\n\r\n /** A rectangular array of pixels as read from a [[Viewport]]'s frame buffer. Each pixel is represented as a [[Pixel.Data]] object.\r\n * The contents of the pixel buffer will be specified using device pixels, not CSS pixels. See [[Viewport.devicePixelRatio]] and [[Viewport.cssPixelsToDevicePixels]].\r\n * @see [[Viewport.readPixels]].\r\n */\r\n export interface Buffer {\r\n /** Retrieve the data associated with the pixel at (x,y) in view coordinates. */\r\n getPixel(x: number, y: number): Data;\r\n }\r\n\r\n /** A function which receives the results of a call to [[Viewport.readPixels]].\r\n * @note The contents of the buffer become invalid once the Receiver function returns. Do not store a reference to it.\r\n */\r\n export type Receiver = (pixels: Buffer | undefined) => void;\r\n}\r\n"]}
1
+ {"version":3,"file":"Pixel.js","sourceRoot":"","sources":["../../../src/render/Pixel.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 { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { BatchType, Feature, GeometryClass, ModelFeature } from \"@itwin/core-common\";\r\nimport { HitPriority, ViewAttachmentHitInfo } from \"../HitDetail\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport type { Viewport } from \"../Viewport\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\n\r\n/** Describes aspects of a pixel as read from a [[Viewport]].\r\n * @see [[Viewport.readPixels]].\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace Pixel {\r\n /** Describes a single pixel within a [[Pixel.Buffer]]. */\r\n export class Data {\r\n /** The feature that produced the pixel. */\r\n public readonly feature?: Feature;\r\n public readonly modelId?: Id64String;\r\n /** The pixel's depth in [[CoordSystem.Npc]] coordinates (0 to 1), or -1 if depth was not written or not requested. */\r\n public readonly distanceFraction: number;\r\n /** The type of geometry that produced the pixel. */\r\n public readonly type: GeometryType;\r\n /** The planarity of the geometry that produced the pixel. */\r\n public readonly planarity: Planarity;\r\n /** @internal */\r\n public readonly batchType?: BatchType;\r\n /** The iModel from which the geometry producing the pixel originated. */\r\n public readonly iModel?: IModelConnection;\r\n /** @internal */\r\n public readonly transformFromIModel?: Transform;\r\n /** @internal */\r\n public readonly tileId?: string;\r\n /** The Id of the [ViewAttachment]($backend), if any, from which the pixel originated.\r\n * @beta\r\n */\r\n public readonly viewAttachmentId?: Id64String;\r\n /** @internal */\r\n public get isClassifier(): boolean {\r\n return undefined !== this.batchType && BatchType.Primary !== this.batchType;\r\n }\r\n\r\n /** @internal */\r\n public constructor(args?: {\r\n feature?: ModelFeature;\r\n distanceFraction?: number;\r\n type?: GeometryType;\r\n planarity?: Planarity;\r\n batchType?: BatchType;\r\n iModel?: IModelConnection;\r\n tileId?: string;\r\n viewAttachmentId?: string;\r\n transformFromIModel?: Transform;\r\n }) {\r\n if (args?.feature)\r\n this.feature = new Feature(args.feature.elementId, args.feature.subCategoryId, args.feature.geometryClass);\r\n\r\n this.modelId = args?.feature?.modelId;\r\n this.distanceFraction = args?.distanceFraction ?? -1;\r\n this.type = args?.type ?? GeometryType.Unknown;\r\n this.planarity = args?.planarity ?? Planarity.Unknown;\r\n this.iModel = args?.iModel;\r\n this.tileId = args?.tileId;\r\n this.viewAttachmentId = args?.viewAttachmentId;\r\n this.transformFromIModel = args?.transformFromIModel;\r\n }\r\n\r\n /** The Id of the element that produced the pixel. */\r\n public get elementId(): Id64String | undefined {\r\n return this.feature?.elementId;\r\n }\r\n\r\n /** The Id of the [SubCategory]($backend) that produced the pixel. */\r\n public get subCategoryId(): Id64String | undefined {\r\n return this.feature?.subCategoryId;\r\n }\r\n\r\n /** The class of geometry that produced the pixel. */\r\n public get geometryClass(): GeometryClass | undefined {\r\n return this.feature?.geometryClass;\r\n }\r\n\r\n /** Computes the [[HitPriority]] of this pixel based on its [[type]] and [[planarity]]. */\r\n public computeHitPriority(): HitPriority {\r\n switch (this.type) {\r\n case Pixel.GeometryType.Surface:\r\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarSurface : HitPriority.NonPlanarSurface;\r\n case Pixel.GeometryType.Linear:\r\n return HitPriority.WireEdge;\r\n case Pixel.GeometryType.Edge:\r\n return Pixel.Planarity.Planar === this.planarity ? HitPriority.PlanarEdge : HitPriority.NonPlanarEdge;\r\n case Pixel.GeometryType.Silhouette:\r\n return HitPriority.SilhouetteEdge;\r\n default:\r\n return HitPriority.Unknown;\r\n }\r\n }\r\n\r\n /** Convert this pixel to a [[Pixel.HitProps]] suitable for constructing a [[HitDetail]].\r\n * @param viewport The viewport in which the hit originated.\r\n */\r\n public toHitProps(viewport: Viewport): Pixel.HitProps {\r\n let viewAttachment: ViewAttachmentHitInfo | undefined;\r\n if (this.viewAttachmentId) {\r\n const attachmentViewport = viewport.view.getAttachmentViewport(this.viewAttachmentId);\r\n if (attachmentViewport)\r\n viewAttachment = { viewport: attachmentViewport, id: this.viewAttachmentId };\r\n }\r\n\r\n return {\r\n sourceId: this.elementId ?? Id64.invalid,\r\n priority: this.computeHitPriority(),\r\n distFraction: this.distanceFraction,\r\n subCategoryId: this.subCategoryId,\r\n geometryClass: this.geometryClass,\r\n modelId: this.modelId,\r\n tileId: this.tileId,\r\n isClassifier: this.isClassifier,\r\n sourceIModel: this.iModel,\r\n transformFromSourceIModel: this.transformFromIModel,\r\n viewAttachment,\r\n };\r\n }\r\n }\r\n\r\n /** Describes a subset of [[HitDetailProps]] computed from a [[Pixel.Data]], suitable for constructing a [[HitDetail]].\r\n * For example, the following function creates a `HitDetail` from a `Pixel.Data` and other hit information:\r\n * ```ts\r\n * function makeHitDetail(pixel: Pixel.Data, viewport: ScreenViewport, testPoint: Point3d, hitSource: HitSource, hitPoint: Point3d, distXY: number): HitDetail {\r\n * return new HitDetail({\r\n * ...pixel.toHitProps(viewport),\r\n * viewport, testPoint, hitSource, hitPoint, distXY,\r\n * };\r\n * }\r\n * ```\r\n * @see [[Data.toHitProps]] to convert a [[Pixel.Data]] to a `HitProps`.\r\n * @public\r\n */\r\n export interface HitProps {\r\n /** The source of the geometry. This may be a persistent element Id, or a transient Id used for, e.g., pickable decorations. */\r\n sourceId: Id64String;\r\n /** The hit geometry priority/classification. */\r\n priority: HitPriority;\r\n /** The distance in view coordinates between the hit and the near plane. */\r\n distFraction: number;\r\n /** The [SubCategory]($backend) to which the hit geometry belongs. */\r\n subCategoryId?: Id64String;\r\n /** The class of the hit geometry. */\r\n geometryClass?: GeometryClass;\r\n /** The Id of the [[ModelState]] from which the hit originated. */\r\n modelId?: Id64String;\r\n /** The IModelConnection from which the hit originated.\r\n * This should almost always be left undefined, unless the hit is known to have originated from an iModel\r\n * other than the one associated with the viewport.\r\n * @internal\r\n */\r\n sourceIModel?: IModelConnection;\r\n /** @internal */\r\n transformFromSourceIModel?: Transform;\r\n /** @internal chiefly for debugging */\r\n tileId?: string;\r\n /** True if the hit originated from a reality model classifier.\r\n * @alpha\r\n */\r\n isClassifier?: boolean;\r\n /** Information about the [ViewAttachment]($backend) within which the hit geometry resides, if any.\r\n * @note Only [[SheetViewState]]s can have view attachments.\r\n * @beta\r\n */\r\n viewAttachment?: ViewAttachmentHitInfo;\r\n }\r\n\r\n /** Describes the type of geometry that produced the [[Pixel.Data]]. */\r\n export enum GeometryType {\r\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the type could not be determined. */\r\n Unknown, // Geometry was not selected, or type could not be determined\r\n /** No geometry was rendered to this pixel. */\r\n None,\r\n /** A surface produced this pixel. */\r\n Surface,\r\n /** A point primitive or polyline produced this pixel. */\r\n Linear,\r\n /** This pixel was produced by an edge of a surface. */\r\n Edge,\r\n /** This pixel was produced by a silhouette edge of a curved surface. */\r\n Silhouette,\r\n }\r\n\r\n /** Describes the planarity of the foremost geometry which produced the pixel. */\r\n export enum Planarity {\r\n /** [[Pixel.Selector.GeometryAndDistance]] was not specified, or the planarity could not be determined. */\r\n Unknown,\r\n /** No geometry was rendered to this pixel. */\r\n None,\r\n /** Planar geometry produced this pixel. */\r\n Planar,\r\n /** Non-planar geometry produced this pixel. */\r\n NonPlanar,\r\n }\r\n\r\n /**\r\n * Bit-mask by which callers of [[Viewport.readPixels]] specify which aspects are of interest.\r\n * Aspects not specified will be omitted from the returned data.\r\n */\r\n export enum Selector {\r\n None = 0,\r\n /** Select the [[Feature]] which produced each pixel. */\r\n Feature = 1 << 0, // eslint-disable-line @typescript-eslint/no-shadow\r\n /** Select the type and planarity of geometry which produced each pixel as well as the fraction of its distance between the near and far planes. */\r\n GeometryAndDistance = 1 << 2,\r\n /** Select all aspects of each pixel. */\r\n All = GeometryAndDistance | Feature,\r\n }\r\n\r\n /** A rectangular array of pixels as read from a [[Viewport]]'s frame buffer. Each pixel is represented as a [[Pixel.Data]] object.\r\n * The contents of the pixel buffer will be specified using device pixels, not CSS pixels. See [[Viewport.devicePixelRatio]] and [[Viewport.cssPixelsToDevicePixels]].\r\n * @see [[Viewport.readPixels]].\r\n */\r\n export interface Buffer {\r\n /** Retrieve the data associated with the pixel at (x,y) in view coordinates. */\r\n getPixel(x: number, y: number): Data;\r\n }\r\n\r\n /** A function which receives the results of a call to [[Viewport.readPixels]].\r\n * @note The contents of the buffer become invalid once the Receiver function returns. Do not store a reference to it.\r\n */\r\n export type Receiver = (pixels: Buffer | undefined) => void;\r\n}\r\n"]}
@@ -15,5 +15,6 @@ export interface RealityMeshGraphicParams {
15
15
  readonly baseTransparent: boolean;
16
16
  readonly textures?: TerrainTexture[];
17
17
  readonly layerClassifiers?: MapLayerClassifiers;
18
+ readonly disableClipStyle?: true;
18
19
  }
19
20
  //# sourceMappingURL=RealityMeshGraphicParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMeshGraphicParams.d.ts","sourceRoot":"","sources":["../../../src/render/RealityMeshGraphicParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAG,qBAAqB,EAAG,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9F,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACjD"}
1
+ {"version":3,"file":"RealityMeshGraphicParams.d.ts","sourceRoot":"","sources":["../../../src/render/RealityMeshGraphicParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAG,qBAAqB,EAAG,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9F,gBAAgB;AAChB,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IAChD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;CAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RealityMeshGraphicParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshGraphicParams.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 { ColorDef, PackedFeatureTable } from \"@itwin/core-common\";\r\nimport { MapCartoRectangle, MapTileProjection } from \"../tile/internal\";\r\nimport { MapLayerClassifiers, RenderTerrainGeometry, TerrainTexture } from \"./RenderSystem\";\r\n\r\n/** @internal */\r\nexport interface RealityMeshGraphicParams {\r\n readonly realityMesh: RenderTerrainGeometry;\r\n readonly projection: MapTileProjection;\r\n readonly tileRectangle: MapCartoRectangle;\r\n readonly featureTable: PackedFeatureTable;\r\n readonly tileId: string | undefined;\r\n readonly baseColor: ColorDef | undefined;\r\n readonly baseTransparent: boolean;\r\n readonly textures?: TerrainTexture[];\r\n readonly layerClassifiers?: MapLayerClassifiers;\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityMeshGraphicParams.js","sourceRoot":"","sources":["../../../src/render/RealityMeshGraphicParams.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 { ColorDef, PackedFeatureTable } from \"@itwin/core-common\";\r\nimport { MapCartoRectangle, MapTileProjection } from \"../tile/internal\";\r\nimport { MapLayerClassifiers, RenderTerrainGeometry, TerrainTexture } from \"./RenderSystem\";\r\n\r\n/** @internal */\r\nexport interface RealityMeshGraphicParams {\r\n readonly realityMesh: RenderTerrainGeometry;\r\n readonly projection: MapTileProjection;\r\n readonly tileRectangle: MapCartoRectangle;\r\n readonly featureTable: PackedFeatureTable;\r\n readonly tileId: string | undefined;\r\n readonly baseColor: ColorDef | undefined;\r\n readonly baseTransparent: boolean;\r\n readonly textures?: TerrainTexture[];\r\n readonly layerClassifiers?: MapLayerClassifiers;\r\n readonly disableClipStyle?: true;\r\n}\r\n"]}
@@ -125,6 +125,8 @@ export declare namespace RenderMemory {
125
125
  /** @internal */
126
126
  addFeatureOverrides(numBytes: number): void;
127
127
  /** @internal */
128
+ addContours(numBytes: number): void;
129
+ /** @internal */
128
130
  addClipVolume(numBytes: number): void;
129
131
  /** @internal */
130
132
  addPlanarClassifier(numBytes: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderMemory.d.ts","sourceRoot":"","sources":["../../../src/render/RenderMemory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderMemory.d.ts","sourceRoot":"","sources":["../../../src/render/RenderMemory.ts"],"names":[],"mappings":"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"}
@@ -168,6 +168,8 @@ export var RenderMemory;
168
168
  /** @internal */
169
169
  addFeatureOverrides(numBytes) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }
170
170
  /** @internal */
171
+ addContours(numBytes) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }
172
+ /** @internal */
171
173
  addClipVolume(numBytes) { this.addConsumer(ConsumerType.ClipVolumes, numBytes); }
172
174
  /** @internal */
173
175
  addPlanarClassifier(numBytes) { this.addConsumer(ConsumerType.PlanarClassifiers, numBytes); }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderMemory.js","sourceRoot":"","sources":["../../../src/render/RenderMemory.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\n/** APIs for querying memory consumed by the [[RenderSystem]].\r\n * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.\r\n * @public\r\n */\r\nexport namespace RenderMemory {\r\n /** Describes memory consumed by a particular type of resource.\r\n * @internal\r\n */\r\n export class Consumers {\r\n public totalBytes = 0; // total number of bytes consumed by all consumers\r\n public maxBytes = 0; // largest number of bytes consumed by a single consumer\r\n public count = 0; // total number of consumers of this type\r\n\r\n public addConsumer(numBytes: number): void {\r\n this.totalBytes += numBytes;\r\n this.maxBytes = Math.max(this.maxBytes, numBytes);\r\n ++this.count;\r\n }\r\n\r\n public clear(): void {\r\n this.totalBytes = this.maxBytes = this.count = 0;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export enum BufferType {\r\n Surfaces = 0,\r\n VisibleEdges,\r\n SilhouetteEdges,\r\n PolylineEdges,\r\n IndexedEdges,\r\n Polylines,\r\n PointStrings,\r\n PointClouds,\r\n Instances,\r\n Terrain,\r\n RealityMesh,\r\n\r\n COUNT,\r\n }\r\n\r\n /** Describes memory consumed by GPU-allocated buffers.\r\n * @internal\r\n */\r\n export class Buffers extends Consumers {\r\n public readonly consumers: Consumers[];\r\n\r\n public constructor() {\r\n super();\r\n this.consumers = [];\r\n for (let i = 0; i < BufferType.COUNT; i++)\r\n this.consumers[i] = new Consumers();\r\n }\r\n\r\n public get surfaces() { return this.consumers[BufferType.Surfaces]; }\r\n public get visibleEdges() { return this.consumers[BufferType.VisibleEdges]; }\r\n public get indexedEdges() { return this.consumers[BufferType.IndexedEdges]; }\r\n public get silhouetteEdges() { return this.consumers[BufferType.SilhouetteEdges]; }\r\n public get polylineEdges() { return this.consumers[BufferType.PolylineEdges]; }\r\n public get polylines() { return this.consumers[BufferType.Polylines]; }\r\n public get pointStrings() { return this.consumers[BufferType.PointStrings]; }\r\n public get pointClouds() { return this.consumers[BufferType.PointClouds]; }\r\n public get instances() { return this.consumers[BufferType.Instances]; }\r\n public get terrain() { return this.consumers[BufferType.Terrain]; }\r\n public get reality() { return this.consumers[BufferType.RealityMesh]; }\r\n\r\n public override clear(): void {\r\n for (const consumer of this.consumers)\r\n consumer.clear();\r\n\r\n super.clear();\r\n }\r\n\r\n public addBuffer(type: BufferType, numBytes: number): void {\r\n this.addConsumer(numBytes);\r\n this.consumers[type].addConsumer(numBytes);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export enum ConsumerType {\r\n Textures = 0,\r\n VertexTables,\r\n EdgeTables,\r\n FeatureTables,\r\n FeatureOverrides,\r\n ClipVolumes,\r\n PlanarClassifiers,\r\n ShadowMaps,\r\n TextureAttachments,\r\n ThematicTextures,\r\n COUNT,\r\n }\r\n\r\n /** Contains statistics about the amount and type of memory consumed by the [[RenderSystem]].\r\n * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.\r\n * @see [[Statistics.create]] to instantiate an instance of this class.\r\n * @public\r\n */\r\n export class Statistics {\r\n private _totalBytes = 0;\r\n\r\n /** @internal */\r\n public readonly consumers: Consumers[];\r\n /** @internal */\r\n public readonly buffers = new Buffers();\r\n\r\n /** Create a new, empty statistics object. */\r\n public static create(): Statistics {\r\n return new Statistics();\r\n }\r\n\r\n /** @internal */\r\n public constructor() {\r\n this.consumers = [];\r\n for (let i = 0; i < ConsumerType.COUNT; i++)\r\n this.consumers[i] = new Consumers();\r\n }\r\n\r\n /** The total reported memory consumption, in bytes.\r\n * @note A web browser provides no direct access to actual memory used by the host device or its graphics hardware. The reported memory usage\r\n * is an estimate based on the number of bytes of data requested via WebGL APIs. It is always an *under-estimate* as each WebGL implementation imposes\r\n * its own additional overhead.\r\n */\r\n public get totalBytes(): number { return this._totalBytes; }\r\n /** @internal */\r\n public get textures() { return this.consumers[ConsumerType.Textures]; }\r\n /** @internal */\r\n public get vertexTables() { return this.consumers[ConsumerType.VertexTables]; }\r\n /** @internal */\r\n public get edgeTables() { return this.consumers[ConsumerType.EdgeTables]; }\r\n /** @internal */\r\n public get featureTables() { return this.consumers[ConsumerType.FeatureTables]; }\r\n /** @internal */\r\n public get thematicTextures() { return this.consumers[ConsumerType.ThematicTextures]; }\r\n /** @internal */\r\n public get featureOverrides() { return this.consumers[ConsumerType.FeatureOverrides]; }\r\n /** @internal */\r\n public get clipVolumes() { return this.consumers[ConsumerType.ClipVolumes]; }\r\n /** @internal */\r\n public get planarClassifiers() { return this.consumers[ConsumerType.PlanarClassifiers]; }\r\n /** @internal */\r\n public get shadowMaps() { return this.consumers[ConsumerType.ShadowMaps]; }\r\n /** @internal */\r\n public get textureAttachments() { return this.consumers[ConsumerType.TextureAttachments]; }\r\n\r\n /** @internal */\r\n public addBuffer(type: BufferType, numBytes: number): void {\r\n this._totalBytes += numBytes;\r\n this.buffers.addBuffer(type, numBytes);\r\n }\r\n\r\n /** @internal */\r\n public addConsumer(type: ConsumerType, numBytes: number): void {\r\n this._totalBytes += numBytes;\r\n this.consumers[type].addConsumer(numBytes);\r\n }\r\n\r\n /** @internal */\r\n public clear(): void {\r\n this._totalBytes = 0;\r\n this.buffers.clear();\r\n for (const consumer of this.consumers)\r\n consumer.clear();\r\n }\r\n\r\n /** @internal */\r\n public addTexture(numBytes: number) { this.addConsumer(ConsumerType.Textures, numBytes); }\r\n /** @internal */\r\n public addVertexTable(numBytes: number) { this.addConsumer(ConsumerType.VertexTables, numBytes); }\r\n /** @internal */\r\n public addEdgeTable(numBytes: number) { this.addConsumer(ConsumerType.EdgeTables, numBytes); }\r\n /** @internal */\r\n public addFeatureTable(numBytes: number) { this.addConsumer(ConsumerType.FeatureTables, numBytes); }\r\n /** @internal */\r\n public addThematicTexture(numBytes: number) { this.addConsumer(ConsumerType.ThematicTextures, numBytes); }\r\n /** @internal */\r\n public addFeatureOverrides(numBytes: number) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }\r\n /** @internal */\r\n public addClipVolume(numBytes: number) { this.addConsumer(ConsumerType.ClipVolumes, numBytes); }\r\n /** @internal */\r\n public addPlanarClassifier(numBytes: number) { this.addConsumer(ConsumerType.PlanarClassifiers, numBytes); }\r\n /** @internal */\r\n public addShadowMap(numBytes: number) { this.addConsumer(ConsumerType.ShadowMaps, numBytes); }\r\n /** @internal */\r\n public addTextureAttachment(numBytes: number) { this.addConsumer(ConsumerType.TextureAttachments, numBytes); }\r\n\r\n /** @internal */\r\n public addSurface(numBytes: number) { this.addBuffer(BufferType.Surfaces, numBytes); }\r\n /** @internal */\r\n public addVisibleEdges(numBytes: number) { this.addBuffer(BufferType.VisibleEdges, numBytes); }\r\n /** @internal */\r\n public addIndexedEdges(numBytes: number) { this.addBuffer(BufferType.IndexedEdges, numBytes); }\r\n /** @internal */\r\n public addSilhouetteEdges(numBytes: number) { this.addBuffer(BufferType.SilhouetteEdges, numBytes); }\r\n /** @internal */\r\n public addPolylineEdges(numBytes: number) { this.addBuffer(BufferType.PolylineEdges, numBytes); }\r\n /** @internal */\r\n public addPolyline(numBytes: number) { this.addBuffer(BufferType.Polylines, numBytes); }\r\n /** @internal */\r\n public addPointString(numBytes: number) { this.addBuffer(BufferType.PointStrings, numBytes); }\r\n /** @internal */\r\n public addPointCloud(numBytes: number) { this.addBuffer(BufferType.PointClouds, numBytes); }\r\n /** @internal */\r\n public addTerrain(numBytes: number) {\r\n this.addBuffer(BufferType.Terrain, numBytes);\r\n }\r\n /** @internal */\r\n public addRealityMesh(numBytes: number) {\r\n this.addBuffer(BufferType.RealityMesh, numBytes);\r\n }\r\n /** @internal */\r\n public addInstances(numBytes: number) { this.addBuffer(BufferType.Instances, numBytes); }\r\n }\r\n\r\n /** @internal */\r\n export interface Consumer {\r\n collectStatistics(stats: Statistics): void;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RenderMemory.js","sourceRoot":"","sources":["../../../src/render/RenderMemory.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\n/** APIs for querying memory consumed by the [[RenderSystem]].\r\n * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.\r\n * @public\r\n */\r\nexport namespace RenderMemory {\r\n /** Describes memory consumed by a particular type of resource.\r\n * @internal\r\n */\r\n export class Consumers {\r\n public totalBytes = 0; // total number of bytes consumed by all consumers\r\n public maxBytes = 0; // largest number of bytes consumed by a single consumer\r\n public count = 0; // total number of consumers of this type\r\n\r\n public addConsumer(numBytes: number): void {\r\n this.totalBytes += numBytes;\r\n this.maxBytes = Math.max(this.maxBytes, numBytes);\r\n ++this.count;\r\n }\r\n\r\n public clear(): void {\r\n this.totalBytes = this.maxBytes = this.count = 0;\r\n }\r\n }\r\n\r\n /** @internal */\r\n export enum BufferType {\r\n Surfaces = 0,\r\n VisibleEdges,\r\n SilhouetteEdges,\r\n PolylineEdges,\r\n IndexedEdges,\r\n Polylines,\r\n PointStrings,\r\n PointClouds,\r\n Instances,\r\n Terrain,\r\n RealityMesh,\r\n\r\n COUNT,\r\n }\r\n\r\n /** Describes memory consumed by GPU-allocated buffers.\r\n * @internal\r\n */\r\n export class Buffers extends Consumers {\r\n public readonly consumers: Consumers[];\r\n\r\n public constructor() {\r\n super();\r\n this.consumers = [];\r\n for (let i = 0; i < BufferType.COUNT; i++)\r\n this.consumers[i] = new Consumers();\r\n }\r\n\r\n public get surfaces() { return this.consumers[BufferType.Surfaces]; }\r\n public get visibleEdges() { return this.consumers[BufferType.VisibleEdges]; }\r\n public get indexedEdges() { return this.consumers[BufferType.IndexedEdges]; }\r\n public get silhouetteEdges() { return this.consumers[BufferType.SilhouetteEdges]; }\r\n public get polylineEdges() { return this.consumers[BufferType.PolylineEdges]; }\r\n public get polylines() { return this.consumers[BufferType.Polylines]; }\r\n public get pointStrings() { return this.consumers[BufferType.PointStrings]; }\r\n public get pointClouds() { return this.consumers[BufferType.PointClouds]; }\r\n public get instances() { return this.consumers[BufferType.Instances]; }\r\n public get terrain() { return this.consumers[BufferType.Terrain]; }\r\n public get reality() { return this.consumers[BufferType.RealityMesh]; }\r\n\r\n public override clear(): void {\r\n for (const consumer of this.consumers)\r\n consumer.clear();\r\n\r\n super.clear();\r\n }\r\n\r\n public addBuffer(type: BufferType, numBytes: number): void {\r\n this.addConsumer(numBytes);\r\n this.consumers[type].addConsumer(numBytes);\r\n }\r\n }\r\n\r\n /** @internal */\r\n export enum ConsumerType {\r\n Textures = 0,\r\n VertexTables,\r\n EdgeTables,\r\n FeatureTables,\r\n FeatureOverrides,\r\n ClipVolumes,\r\n PlanarClassifiers,\r\n ShadowMaps,\r\n TextureAttachments,\r\n ThematicTextures,\r\n COUNT,\r\n }\r\n\r\n /** Contains statistics about the amount and type of memory consumed by the [[RenderSystem]].\r\n * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.\r\n * @see [[Statistics.create]] to instantiate an instance of this class.\r\n * @public\r\n */\r\n export class Statistics {\r\n private _totalBytes = 0;\r\n\r\n /** @internal */\r\n public readonly consumers: Consumers[];\r\n /** @internal */\r\n public readonly buffers = new Buffers();\r\n\r\n /** Create a new, empty statistics object. */\r\n public static create(): Statistics {\r\n return new Statistics();\r\n }\r\n\r\n /** @internal */\r\n public constructor() {\r\n this.consumers = [];\r\n for (let i = 0; i < ConsumerType.COUNT; i++)\r\n this.consumers[i] = new Consumers();\r\n }\r\n\r\n /** The total reported memory consumption, in bytes.\r\n * @note A web browser provides no direct access to actual memory used by the host device or its graphics hardware. The reported memory usage\r\n * is an estimate based on the number of bytes of data requested via WebGL APIs. It is always an *under-estimate* as each WebGL implementation imposes\r\n * its own additional overhead.\r\n */\r\n public get totalBytes(): number { return this._totalBytes; }\r\n /** @internal */\r\n public get textures() { return this.consumers[ConsumerType.Textures]; }\r\n /** @internal */\r\n public get vertexTables() { return this.consumers[ConsumerType.VertexTables]; }\r\n /** @internal */\r\n public get edgeTables() { return this.consumers[ConsumerType.EdgeTables]; }\r\n /** @internal */\r\n public get featureTables() { return this.consumers[ConsumerType.FeatureTables]; }\r\n /** @internal */\r\n public get thematicTextures() { return this.consumers[ConsumerType.ThematicTextures]; }\r\n /** @internal */\r\n public get featureOverrides() { return this.consumers[ConsumerType.FeatureOverrides]; }\r\n /** @internal */\r\n public get clipVolumes() { return this.consumers[ConsumerType.ClipVolumes]; }\r\n /** @internal */\r\n public get planarClassifiers() { return this.consumers[ConsumerType.PlanarClassifiers]; }\r\n /** @internal */\r\n public get shadowMaps() { return this.consumers[ConsumerType.ShadowMaps]; }\r\n /** @internal */\r\n public get textureAttachments() { return this.consumers[ConsumerType.TextureAttachments]; }\r\n\r\n /** @internal */\r\n public addBuffer(type: BufferType, numBytes: number): void {\r\n this._totalBytes += numBytes;\r\n this.buffers.addBuffer(type, numBytes);\r\n }\r\n\r\n /** @internal */\r\n public addConsumer(type: ConsumerType, numBytes: number): void {\r\n this._totalBytes += numBytes;\r\n this.consumers[type].addConsumer(numBytes);\r\n }\r\n\r\n /** @internal */\r\n public clear(): void {\r\n this._totalBytes = 0;\r\n this.buffers.clear();\r\n for (const consumer of this.consumers)\r\n consumer.clear();\r\n }\r\n\r\n /** @internal */\r\n public addTexture(numBytes: number) { this.addConsumer(ConsumerType.Textures, numBytes); }\r\n /** @internal */\r\n public addVertexTable(numBytes: number) { this.addConsumer(ConsumerType.VertexTables, numBytes); }\r\n /** @internal */\r\n public addEdgeTable(numBytes: number) { this.addConsumer(ConsumerType.EdgeTables, numBytes); }\r\n /** @internal */\r\n public addFeatureTable(numBytes: number) { this.addConsumer(ConsumerType.FeatureTables, numBytes); }\r\n /** @internal */\r\n public addThematicTexture(numBytes: number) { this.addConsumer(ConsumerType.ThematicTextures, numBytes); }\r\n /** @internal */\r\n public addFeatureOverrides(numBytes: number) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }\r\n /** @internal */\r\n public addContours(numBytes: number) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }\r\n /** @internal */\r\n public addClipVolume(numBytes: number) { this.addConsumer(ConsumerType.ClipVolumes, numBytes); }\r\n /** @internal */\r\n public addPlanarClassifier(numBytes: number) { this.addConsumer(ConsumerType.PlanarClassifiers, numBytes); }\r\n /** @internal */\r\n public addShadowMap(numBytes: number) { this.addConsumer(ConsumerType.ShadowMaps, numBytes); }\r\n /** @internal */\r\n public addTextureAttachment(numBytes: number) { this.addConsumer(ConsumerType.TextureAttachments, numBytes); }\r\n\r\n /** @internal */\r\n public addSurface(numBytes: number) { this.addBuffer(BufferType.Surfaces, numBytes); }\r\n /** @internal */\r\n public addVisibleEdges(numBytes: number) { this.addBuffer(BufferType.VisibleEdges, numBytes); }\r\n /** @internal */\r\n public addIndexedEdges(numBytes: number) { this.addBuffer(BufferType.IndexedEdges, numBytes); }\r\n /** @internal */\r\n public addSilhouetteEdges(numBytes: number) { this.addBuffer(BufferType.SilhouetteEdges, numBytes); }\r\n /** @internal */\r\n public addPolylineEdges(numBytes: number) { this.addBuffer(BufferType.PolylineEdges, numBytes); }\r\n /** @internal */\r\n public addPolyline(numBytes: number) { this.addBuffer(BufferType.Polylines, numBytes); }\r\n /** @internal */\r\n public addPointString(numBytes: number) { this.addBuffer(BufferType.PointStrings, numBytes); }\r\n /** @internal */\r\n public addPointCloud(numBytes: number) { this.addBuffer(BufferType.PointClouds, numBytes); }\r\n /** @internal */\r\n public addTerrain(numBytes: number) {\r\n this.addBuffer(BufferType.Terrain, numBytes);\r\n }\r\n /** @internal */\r\n public addRealityMesh(numBytes: number) {\r\n this.addBuffer(BufferType.RealityMesh, numBytes);\r\n }\r\n /** @internal */\r\n public addInstances(numBytes: number) { this.addBuffer(BufferType.Instances, numBytes); }\r\n }\r\n\r\n /** @internal */\r\n export interface Consumer {\r\n collectStatistics(stats: Statistics): void;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Rendering
3
3
  */
4
- import { AmbientOcclusion, AnalysisStyle, Atmosphere, ClipStyle, ColorDef, Frustum, HiddenLine, Hilite, LightSettings, MonochromeMode, RenderTexture, ThematicDisplay, ViewFlags, WhiteOnWhiteReversalSettings } from "@itwin/core-common";
4
+ import { AmbientOcclusion, AnalysisStyle, Atmosphere, ClipStyle, ColorDef, ContourDisplay, Frustum, HiddenLine, Hilite, LightSettings, MonochromeMode, RenderTexture, ThematicDisplay, ViewFlags, WhiteOnWhiteReversalSettings } from "@itwin/core-common";
5
5
  import { ClipVector, Matrix3d, Point3d, Vector3d } from "@itwin/core-geometry";
6
6
  import { FlashSettings } from "../FlashSettings";
7
7
  import { Viewport } from "../Viewport";
@@ -33,6 +33,7 @@ export interface RenderPlan {
33
33
  readonly analysisStyle?: AnalysisStyle;
34
34
  readonly ao?: AmbientOcclusion.Settings;
35
35
  readonly thematic?: ThematicDisplay;
36
+ readonly contours?: ContourDisplay;
36
37
  readonly atmosphere?: Atmosphere.Settings;
37
38
  readonly isFadeOutActive: boolean;
38
39
  readonly analysisTexture?: RenderTexture;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPlan.d.ts","sourceRoot":"","sources":["../../../src/render/RenderPlan.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAa,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EACvI,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,4BAA4B,EACxE,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAY,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAE5B,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO;IAMnF,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;CASnD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED,gBAAgB;AAChB,wBAAgB,qBAAqB,IAAI,UAAU,CAoBlD;AAED,gBAAgB;AAChB,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,CAoFrE"}
1
+ {"version":3,"file":"RenderPlan.d.ts","sourceRoot":"","sources":["../../../src/render/RenderPlan.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAa,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EACvJ,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,4BAA4B,EACxE,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAY,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAE5B,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO;IAMnF,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;CASnD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED,gBAAgB;AAChB,wBAAgB,qBAAqB,IAAI,UAAU,CAoBlD;AAED,gBAAgB;AAChB,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,CAsFrE"}
@@ -77,6 +77,7 @@ export function createRenderPlanFromViewport(vp) {
77
77
  const ao = style.is3d() ? style.settings.ambientOcclusionSettings : undefined;
78
78
  const analysisStyle = style.settings.analysisStyle;
79
79
  const thematic = (style.is3d() && view.displayStyle.viewFlags.thematicDisplay) ? style.settings.thematic : undefined;
80
+ const contours = (style.is3d() && style.settings.contours.groups.length > 0) ? style.settings.contours : undefined;
80
81
  const shouldDisplayAtmosphere = (style.is3d() && GlobeMode.Ellipsoid === view.globeMode && vp.iModel.isGeoLocated && style.viewFlags.backgroundMap) ? vp.view.getDisplayStyle3d().environment.displayAtmosphere : false;
81
82
  const atmosphere = shouldDisplayAtmosphere ? vp.view.getDisplayStyle3d().environment.atmosphere : undefined;
82
83
  let upVector;
@@ -112,6 +113,7 @@ export function createRenderPlanFromViewport(vp) {
112
113
  analysisStyle,
113
114
  ao,
114
115
  thematic,
116
+ contours,
115
117
  atmosphere,
116
118
  isFadeOutActive,
117
119
  analysisTexture,