@itwin/core-frontend 4.10.0-dev.8 → 5.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  3. package/lib/cjs/AccuDraw.js +0 -2
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  6. package/lib/cjs/AccuSnap.js +17 -8
  7. package/lib/cjs/AccuSnap.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.js +3 -3
  9. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  10. package/lib/cjs/BingLocation.js +1 -1
  11. package/lib/cjs/BingLocation.js.map +1 -1
  12. package/lib/cjs/BriefcaseConnection.d.ts +0 -1
  13. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  14. package/lib/cjs/BriefcaseConnection.js +2 -3
  15. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  16. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  17. package/lib/cjs/ChangeFlags.d.ts +1 -1
  18. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  19. package/lib/cjs/ChangeFlags.js.map +1 -1
  20. package/lib/cjs/CheckpointConnection.js +1 -1
  21. package/lib/cjs/CheckpointConnection.js.map +1 -1
  22. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  23. package/lib/cjs/DisplayStyleState.js +6 -6
  24. package/lib/cjs/DisplayStyleState.js.map +1 -1
  25. package/lib/cjs/DrawingViewState.d.ts +8 -6
  26. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  27. package/lib/cjs/DrawingViewState.js +20 -10
  28. package/lib/cjs/DrawingViewState.js.map +1 -1
  29. package/lib/cjs/EnvironmentDecorations.js +1 -1
  30. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  31. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  32. package/lib/cjs/HitDetail.d.ts +37 -5
  33. package/lib/cjs/HitDetail.d.ts.map +1 -1
  34. package/lib/cjs/HitDetail.js +12 -2
  35. package/lib/cjs/HitDetail.js.map +1 -1
  36. package/lib/cjs/IModelApp.d.ts.map +1 -1
  37. package/lib/cjs/IModelApp.js +1 -2
  38. package/lib/cjs/IModelApp.js.map +1 -1
  39. package/lib/cjs/IModelConnection.d.ts +1 -0
  40. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  41. package/lib/cjs/IModelConnection.js +9 -8
  42. package/lib/cjs/IModelConnection.js.map +1 -1
  43. package/lib/cjs/IpcApp.d.ts.map +1 -1
  44. package/lib/cjs/IpcApp.js +8 -1
  45. package/lib/cjs/IpcApp.js.map +1 -1
  46. package/lib/cjs/LinePlaneIntersect.js +1 -2
  47. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  48. package/lib/cjs/ModelState.d.ts +0 -8
  49. package/lib/cjs/ModelState.d.ts.map +1 -1
  50. package/lib/cjs/ModelState.js +0 -8
  51. package/lib/cjs/ModelState.js.map +1 -1
  52. package/lib/cjs/NativeApp.d.ts +1 -1
  53. package/lib/cjs/NativeApp.d.ts.map +1 -1
  54. package/lib/cjs/NativeApp.js.map +1 -1
  55. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  56. package/lib/cjs/NotificationManager.d.ts +2 -2
  57. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  58. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  59. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +1 -2
  60. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  61. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -1
  62. package/lib/cjs/RealityDataSourceContextShareImpl.js +2 -3
  63. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  64. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +1 -1
  65. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  66. package/lib/cjs/SheetViewState.d.ts +4 -11
  67. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  68. package/lib/cjs/SheetViewState.js +18 -12
  69. package/lib/cjs/SheetViewState.js.map +1 -1
  70. package/lib/cjs/SpatialViewState.d.ts +0 -1
  71. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  72. package/lib/cjs/SpatialViewState.js +1 -2
  73. package/lib/cjs/SpatialViewState.js.map +1 -1
  74. package/lib/cjs/SubCategoriesCache.js +1 -1
  75. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  76. package/lib/cjs/TentativePoint.js +1 -1
  77. package/lib/cjs/TentativePoint.js.map +1 -1
  78. package/lib/cjs/ViewCreator3d.js +1 -1
  79. package/lib/cjs/ViewCreator3d.js.map +1 -1
  80. package/lib/cjs/ViewGlobalLocation.js +9 -9
  81. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  82. package/lib/cjs/ViewState.d.ts +14 -1
  83. package/lib/cjs/ViewState.d.ts.map +1 -1
  84. package/lib/cjs/ViewState.js +4 -2
  85. package/lib/cjs/ViewState.js.map +1 -1
  86. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  87. package/lib/cjs/ViewingSpace.js +3 -0
  88. package/lib/cjs/ViewingSpace.js.map +1 -1
  89. package/lib/cjs/Viewport.d.ts.map +1 -1
  90. package/lib/cjs/Viewport.js +2 -4
  91. package/lib/cjs/Viewport.js.map +1 -1
  92. package/lib/cjs/ViewportSync.js +6 -6
  93. package/lib/cjs/ViewportSync.js.map +1 -1
  94. package/lib/cjs/common/ImageUtil.js +15 -16
  95. package/lib/cjs/common/ImageUtil.js.map +1 -1
  96. package/lib/cjs/common/WorkerProxy.d.ts +8 -4
  97. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  98. package/lib/cjs/common/WorkerProxy.js +1 -2
  99. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  100. package/lib/cjs/common/gltf/GltfParser.js +7 -8
  101. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  102. package/lib/cjs/common/gltf/GltfSchema.d.ts +1 -1
  103. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  104. package/lib/cjs/common/gltf/GltfSchema.js +5 -5
  105. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  106. package/lib/cjs/common/imdl/CompactEdges.js +1 -2
  107. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  108. package/lib/cjs/common/imdl/ImdlModel.js +2 -3
  109. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  110. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  111. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  112. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  113. package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -12
  114. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  115. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
  116. package/lib/cjs/common/internal/render/EdgeParams.js +2 -3
  117. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  118. package/lib/cjs/common/internal/render/GeometryList.d.ts +1 -1
  119. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +3 -3
  120. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  121. package/lib/cjs/common/internal/render/LineCode.js +1 -2
  122. package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
  123. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
  124. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
  125. package/lib/cjs/common/internal/render/MeshPrimitives.js +3 -3
  126. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  127. package/lib/cjs/common/internal/render/OvrFlags.d.ts +4 -2
  128. package/lib/cjs/common/internal/render/OvrFlags.d.ts.map +1 -1
  129. package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
  130. package/lib/cjs/common/internal/render/PointStringParams.js +1 -2
  131. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
  132. package/lib/cjs/common/internal/render/PolylineParams.js +4 -5
  133. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  134. package/lib/cjs/common/internal/render/SurfaceParams.js +3 -3
  135. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
  136. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -1
  137. package/lib/cjs/common/internal/render/VertexTable.js +4 -7
  138. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  139. package/lib/cjs/common/internal/render/VertexTableBuilder.js +2 -2
  140. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  141. package/lib/cjs/common/internal/render/VertexTableSplitter.js +4 -4
  142. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  143. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
  144. package/lib/cjs/extension/providers/ExtensionLoadScript.js +1 -2
  145. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  146. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +2 -3
  147. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  148. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  149. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +1 -1
  150. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  151. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +2 -2
  152. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  153. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js +2 -2
  154. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  155. package/lib/cjs/quantity-formatting/QuantityFormatter.js +3 -3
  156. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  157. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.d.ts +12 -1
  159. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  160. package/lib/cjs/render/GraphicBranch.js +2 -2
  161. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  162. package/lib/cjs/render/GraphicTemplate.js +1 -2
  163. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/Pixel.d.ts +14 -4
  166. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  167. package/lib/cjs/render/Pixel.js +22 -5
  168. package/lib/cjs/render/Pixel.js.map +1 -1
  169. package/lib/cjs/render/RealityMeshGraphicParams.d.ts +1 -0
  170. package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -1
  171. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  172. package/lib/cjs/render/RenderMemory.d.ts +2 -0
  173. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  174. package/lib/cjs/render/RenderMemory.js +2 -0
  175. package/lib/cjs/render/RenderMemory.js.map +1 -1
  176. package/lib/cjs/render/RenderPlan.d.ts +2 -1
  177. package/lib/cjs/render/RenderPlan.d.ts.map +1 -1
  178. package/lib/cjs/render/RenderPlan.js +5 -3
  179. package/lib/cjs/render/RenderPlan.js.map +1 -1
  180. package/lib/cjs/render/RenderSystem.d.ts +1 -1
  181. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  182. package/lib/cjs/render/RenderSystem.js +8 -9
  183. package/lib/cjs/render/RenderSystem.js.map +1 -1
  184. package/lib/cjs/render/UpsampleRealityMeshParams.js +1 -2
  185. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  186. package/lib/cjs/render/VisibleFeature.js +1 -2
  187. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  188. package/lib/cjs/render/webgl/AttributeBuffers.js +5 -5
  189. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  190. package/lib/cjs/render/webgl/BatchUniforms.d.ts +4 -0
  191. package/lib/cjs/render/webgl/BatchUniforms.d.ts.map +1 -1
  192. package/lib/cjs/render/webgl/BatchUniforms.js +18 -0
  193. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  194. package/lib/cjs/render/webgl/BranchState.d.ts +9 -0
  195. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  196. package/lib/cjs/render/webgl/BranchState.js +6 -0
  197. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  198. package/lib/cjs/render/webgl/BranchUniforms.d.ts +1 -0
  199. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  200. package/lib/cjs/render/webgl/BranchUniforms.js +14 -1
  201. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  202. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  203. package/lib/cjs/render/webgl/ClippingProgram.js +2 -2
  204. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  205. package/lib/cjs/render/webgl/ContourUniforms.d.ts +22 -0
  206. package/lib/cjs/render/webgl/ContourUniforms.d.ts.map +1 -0
  207. package/lib/cjs/render/webgl/ContourUniforms.js +98 -0
  208. package/lib/cjs/render/webgl/ContourUniforms.js.map +1 -0
  209. package/lib/cjs/render/webgl/Contours.d.ts +34 -0
  210. package/lib/cjs/render/webgl/Contours.d.ts.map +1 -0
  211. package/lib/cjs/render/webgl/Contours.js +127 -0
  212. package/lib/cjs/render/webgl/Contours.js.map +1 -0
  213. package/lib/cjs/render/webgl/DrawCommand.js +3 -3
  214. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  215. package/lib/cjs/render/webgl/EdgeSettings.js +1 -1
  216. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  217. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -0
  218. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  219. package/lib/cjs/render/webgl/FeatureOverrides.js +48 -51
  220. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  221. package/lib/cjs/render/webgl/FrustumUniforms.js +2 -2
  222. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  223. package/lib/cjs/render/webgl/GL.d.ts +2 -1
  224. package/lib/cjs/render/webgl/GL.d.ts.map +1 -1
  225. package/lib/cjs/render/webgl/GL.js +1 -0
  226. package/lib/cjs/render/webgl/GL.js.map +1 -1
  227. package/lib/cjs/render/webgl/Graphic.d.ts +12 -0
  228. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  229. package/lib/cjs/render/webgl/Graphic.js +31 -0
  230. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  231. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -2
  232. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  233. package/lib/cjs/render/webgl/Material.js +4 -4
  234. package/lib/cjs/render/webgl/Material.js.map +1 -1
  235. package/lib/cjs/render/webgl/Matrix.js +3 -3
  236. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  237. package/lib/cjs/render/webgl/RealityMesh.js +1 -1
  238. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  239. package/lib/cjs/render/webgl/RenderFlags.d.ts +2 -1
  240. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  241. package/lib/cjs/render/webgl/RenderFlags.js +4 -2
  242. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  243. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  244. package/lib/cjs/render/webgl/SceneCompositor.js +19 -7
  245. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  246. package/lib/cjs/render/webgl/ScratchDrawParams.js +2 -3
  247. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  248. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +2 -2
  249. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  250. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +15 -13
  251. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  252. package/lib/cjs/render/webgl/ShaderBuilder.js +18 -10
  253. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  254. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  255. package/lib/cjs/render/webgl/ShaderProgram.js +26 -0
  256. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  257. package/lib/cjs/render/webgl/SurfaceGeometry.js +2 -2
  258. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  259. package/lib/cjs/render/webgl/Sync.js +3 -4
  260. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  261. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/System.js +7 -7
  263. package/lib/cjs/render/webgl/System.js.map +1 -1
  264. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  265. package/lib/cjs/render/webgl/Target.js +2 -1
  266. package/lib/cjs/render/webgl/Target.js.map +1 -1
  267. package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
  268. package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
  269. package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
  270. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  271. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  272. package/lib/cjs/render/webgl/TechniqueId.js +1 -2
  273. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  274. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  275. package/lib/cjs/render/webgl/Texture.js +2 -2
  276. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  277. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  278. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +2 -3
  279. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  280. package/lib/cjs/render/webgl/glsl/Animation.js +1 -2
  281. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  282. package/lib/cjs/render/webgl/glsl/Atmosphere.js +2 -3
  283. package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
  284. package/lib/cjs/render/webgl/glsl/Blur.js +2 -3
  285. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  286. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -3
  287. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  288. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -3
  289. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  290. package/lib/cjs/render/webgl/glsl/Clipping.js +3 -3
  291. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  292. package/lib/cjs/render/webgl/glsl/Color.js +2 -3
  293. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  294. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +2 -3
  295. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  296. package/lib/cjs/render/webgl/glsl/CombineTextures.js +2 -3
  297. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  298. package/lib/cjs/render/webgl/glsl/Common.js +7 -7
  299. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  300. package/lib/cjs/render/webgl/glsl/Composite.js +2 -3
  301. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  302. package/lib/cjs/render/webgl/glsl/Contours.d.ts +4 -0
  303. package/lib/cjs/render/webgl/glsl/Contours.d.ts.map +1 -0
  304. package/lib/cjs/render/webgl/glsl/Contours.js +137 -0
  305. package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -0
  306. package/lib/cjs/render/webgl/glsl/CopyColor.js +2 -3
  307. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  308. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -3
  309. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  310. package/lib/cjs/render/webgl/glsl/CopyStencil.js +9 -10
  311. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  312. package/lib/cjs/render/webgl/glsl/Decode.js +2 -2
  313. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  314. package/lib/cjs/render/webgl/glsl/EDL.js +8 -9
  315. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  316. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -3
  317. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  318. package/lib/cjs/render/webgl/glsl/Edge.js +3 -4
  319. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  320. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
  321. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +35 -28
  323. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  324. package/lib/cjs/render/webgl/glsl/Fragment.js +15 -15
  325. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  326. package/lib/cjs/render/webgl/glsl/Instancing.js +3 -4
  327. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  328. package/lib/cjs/render/webgl/glsl/Lighting.js +1 -2
  329. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  330. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +2 -3
  331. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  332. package/lib/cjs/render/webgl/glsl/LookupTable.js +1 -2
  333. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  334. package/lib/cjs/render/webgl/glsl/Monochrome.js +2 -3
  335. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  336. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +9 -9
  337. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  338. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +1 -1
  339. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  340. package/lib/cjs/render/webgl/glsl/PointCloud.js +3 -4
  341. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  342. package/lib/cjs/render/webgl/glsl/PointString.js +2 -3
  343. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  344. package/lib/cjs/render/webgl/glsl/Polyline.js +6 -6
  345. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  346. package/lib/cjs/render/webgl/glsl/RealityMesh.js +8 -8
  347. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  348. package/lib/cjs/render/webgl/glsl/RenderPass.js +1 -2
  349. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  350. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -3
  351. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  352. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -3
  353. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  354. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -3
  355. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  356. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +4 -4
  357. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  358. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  359. package/lib/cjs/render/webgl/glsl/Surface.js +11 -9
  360. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  361. package/lib/cjs/render/webgl/glsl/Thematic.js +2 -3
  362. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  363. package/lib/cjs/render/webgl/glsl/Translucency.js +3 -3
  364. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  365. package/lib/cjs/render/webgl/glsl/Vertex.js +13 -13
  366. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  367. package/lib/cjs/render/webgl/glsl/Viewport.js +3 -4
  368. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  369. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -2
  370. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  371. package/lib/cjs/render/webgl/glsl/Wiremesh.js +2 -3
  372. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  373. package/lib/cjs/request/Request.d.ts.map +1 -1
  374. package/lib/cjs/request/Request.js +2 -2
  375. package/lib/cjs/request/Request.js.map +1 -1
  376. package/lib/cjs/request/utils.js +3 -4
  377. package/lib/cjs/request/utils.js.map +1 -1
  378. package/lib/cjs/tile/ClassifierTileTree.js +3 -3
  379. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  380. package/lib/cjs/tile/ContextShareProvider.js +2 -2
  381. package/lib/cjs/tile/ContextShareProvider.js.map +1 -1
  382. package/lib/cjs/tile/GltfReader.d.ts +1 -1
  383. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  384. package/lib/cjs/tile/GltfReader.js +18 -16
  385. package/lib/cjs/tile/GltfReader.js.map +1 -1
  386. package/lib/cjs/tile/IModelTile.js +2 -2
  387. package/lib/cjs/tile/IModelTile.js.map +1 -1
  388. package/lib/cjs/tile/IModelTileTree.js +2 -2
  389. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  390. package/lib/cjs/tile/ImdlDecoder.js +1 -2
  391. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  392. package/lib/cjs/tile/ImdlGraphicsCreator.js +7 -8
  393. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  394. package/lib/cjs/tile/ImdlParser.js +1 -2
  395. package/lib/cjs/tile/ImdlParser.js.map +1 -1
  396. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  397. package/lib/cjs/tile/ImdlReader.js +3 -3
  398. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  399. package/lib/cjs/tile/MeshoptCompression.js +1 -2
  400. package/lib/cjs/tile/MeshoptCompression.js.map +1 -1
  401. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  402. package/lib/cjs/tile/OrbitGtTileTree.js +3 -4
  403. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  404. package/lib/cjs/tile/PntsReader.js +2 -3
  405. package/lib/cjs/tile/PntsReader.js.map +1 -1
  406. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  407. package/lib/cjs/tile/PrimaryTileTree.js +12 -12
  408. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  409. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  410. package/lib/cjs/tile/RealityModelTileTree.js +3 -4
  411. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  412. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  413. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  414. package/lib/cjs/tile/RealityTileLoader.js +1 -1
  415. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  416. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  417. package/lib/cjs/tile/RenderGraphicTileTree.js +1 -2
  418. package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
  419. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
  420. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  421. package/lib/cjs/tile/Tile.js +2 -2
  422. package/lib/cjs/tile/Tile.js.map +1 -1
  423. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  424. package/lib/cjs/tile/TileAdmin.js +3 -4
  425. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  426. package/lib/cjs/tile/TileDrawArgs.d.ts +4 -0
  427. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  428. package/lib/cjs/tile/TileDrawArgs.js +2 -0
  429. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  430. package/lib/cjs/tile/TileRequest.js +1 -1
  431. package/lib/cjs/tile/TileRequest.js.map +1 -1
  432. package/lib/cjs/tile/TileRequestChannel.js +1 -1
  433. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  434. package/lib/cjs/tile/TileStorage.js +1 -1
  435. package/lib/cjs/tile/TileStorage.js.map +1 -1
  436. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  437. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  438. package/lib/cjs/tile/TileTreeReference.js +3 -0
  439. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  440. package/lib/cjs/tile/ViewFlagOverrides.js +1 -2
  441. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  442. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -1
  443. package/lib/cjs/tile/map/ArcGISTileMap.js +0 -1
  444. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  445. package/lib/cjs/tile/map/ArcGisUtilities.js +1 -1
  446. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  447. package/lib/cjs/tile/map/BingElevation.js +3 -3
  448. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  449. package/lib/cjs/tile/map/CesiumTerrainProvider.js +7 -8
  450. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  451. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -1
  452. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  453. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  454. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +4 -5
  455. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  456. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js +1 -2
  457. package/lib/cjs/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  458. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +1 -1
  459. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  460. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  461. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  462. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  463. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +2 -2
  464. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  465. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  466. package/lib/cjs/tile/map/MapTile.js +1 -1
  467. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  468. package/lib/cjs/tile/map/MapTileLoader.js +1 -1
  469. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  470. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  471. package/lib/cjs/tile/map/MapTileTree.js +2 -2
  472. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  473. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  474. package/lib/cjs/tile/map/MapTilingScheme.js +4 -0
  475. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  476. package/lib/cjs/tile/map/UrlUtils.js +1 -2
  477. package/lib/cjs/tile/map/UrlUtils.js.map +1 -1
  478. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  479. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  480. package/lib/cjs/tools/MeasureTool.js +2 -2
  481. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  482. package/lib/cjs/tools/Tool.d.ts +1 -1
  483. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  484. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  485. package/lib/cjs/tools/ViewTool.js +2 -2
  486. package/lib/cjs/tools/ViewTool.js.map +1 -1
  487. package/lib/cjs/workers/RegisterWorker.js +1 -2
  488. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  489. package/lib/esm/AccuDraw.d.ts.map +1 -1
  490. package/lib/esm/AccuDraw.js +0 -2
  491. package/lib/esm/AccuDraw.js.map +1 -1
  492. package/lib/esm/AccuSnap.d.ts.map +1 -1
  493. package/lib/esm/AccuSnap.js +17 -8
  494. package/lib/esm/AccuSnap.js.map +1 -1
  495. package/lib/esm/BingLocation.js +1 -1
  496. package/lib/esm/BingLocation.js.map +1 -1
  497. package/lib/esm/BriefcaseConnection.d.ts +0 -1
  498. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  499. package/lib/esm/BriefcaseConnection.js +2 -3
  500. package/lib/esm/BriefcaseConnection.js.map +1 -1
  501. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  502. package/lib/esm/ChangeFlags.d.ts +1 -1
  503. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  504. package/lib/esm/ChangeFlags.js.map +1 -1
  505. package/lib/esm/CheckpointConnection.js +1 -1
  506. package/lib/esm/CheckpointConnection.js.map +1 -1
  507. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  508. package/lib/esm/DisplayStyleState.js +6 -6
  509. package/lib/esm/DisplayStyleState.js.map +1 -1
  510. package/lib/esm/DrawingViewState.d.ts +8 -6
  511. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  512. package/lib/esm/DrawingViewState.js +20 -10
  513. package/lib/esm/DrawingViewState.js.map +1 -1
  514. package/lib/esm/EnvironmentDecorations.js +1 -1
  515. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  516. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  517. package/lib/esm/HitDetail.d.ts +37 -5
  518. package/lib/esm/HitDetail.d.ts.map +1 -1
  519. package/lib/esm/HitDetail.js +12 -2
  520. package/lib/esm/HitDetail.js.map +1 -1
  521. package/lib/esm/IModelApp.d.ts.map +1 -1
  522. package/lib/esm/IModelApp.js +1 -2
  523. package/lib/esm/IModelApp.js.map +1 -1
  524. package/lib/esm/IModelConnection.d.ts +1 -0
  525. package/lib/esm/IModelConnection.d.ts.map +1 -1
  526. package/lib/esm/IModelConnection.js +9 -8
  527. package/lib/esm/IModelConnection.js.map +1 -1
  528. package/lib/esm/IpcApp.d.ts.map +1 -1
  529. package/lib/esm/IpcApp.js +8 -1
  530. package/lib/esm/IpcApp.js.map +1 -1
  531. package/lib/esm/ModelState.d.ts +0 -8
  532. package/lib/esm/ModelState.d.ts.map +1 -1
  533. package/lib/esm/ModelState.js +0 -8
  534. package/lib/esm/ModelState.js.map +1 -1
  535. package/lib/esm/NativeApp.d.ts +1 -1
  536. package/lib/esm/NativeApp.d.ts.map +1 -1
  537. package/lib/esm/NativeApp.js.map +1 -1
  538. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  539. package/lib/esm/NotificationManager.d.ts +2 -2
  540. package/lib/esm/NotificationManager.d.ts.map +1 -1
  541. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -1
  542. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +1 -2
  543. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  544. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -1
  545. package/lib/esm/RealityDataSourceContextShareImpl.js +2 -3
  546. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  547. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +1 -1
  548. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  549. package/lib/esm/SheetViewState.d.ts +4 -11
  550. package/lib/esm/SheetViewState.d.ts.map +1 -1
  551. package/lib/esm/SheetViewState.js +18 -12
  552. package/lib/esm/SheetViewState.js.map +1 -1
  553. package/lib/esm/SpatialViewState.d.ts +0 -1
  554. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  555. package/lib/esm/SpatialViewState.js +1 -2
  556. package/lib/esm/SpatialViewState.js.map +1 -1
  557. package/lib/esm/SubCategoriesCache.js +1 -1
  558. package/lib/esm/SubCategoriesCache.js.map +1 -1
  559. package/lib/esm/TentativePoint.js +1 -1
  560. package/lib/esm/TentativePoint.js.map +1 -1
  561. package/lib/esm/ViewCreator3d.js +1 -1
  562. package/lib/esm/ViewCreator3d.js.map +1 -1
  563. package/lib/esm/ViewState.d.ts +14 -1
  564. package/lib/esm/ViewState.d.ts.map +1 -1
  565. package/lib/esm/ViewState.js +4 -2
  566. package/lib/esm/ViewState.js.map +1 -1
  567. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  568. package/lib/esm/ViewingSpace.js +3 -0
  569. package/lib/esm/ViewingSpace.js.map +1 -1
  570. package/lib/esm/Viewport.d.ts.map +1 -1
  571. package/lib/esm/Viewport.js +2 -4
  572. package/lib/esm/Viewport.js.map +1 -1
  573. package/lib/esm/common/WorkerProxy.d.ts +8 -4
  574. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  575. package/lib/esm/common/WorkerProxy.js.map +1 -1
  576. package/lib/esm/common/gltf/GltfParser.js +6 -6
  577. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  578. package/lib/esm/common/gltf/GltfSchema.d.ts +1 -1
  579. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  580. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  581. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  582. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  583. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  584. package/lib/esm/common/imdl/ParseImdlDocument.js +4 -5
  585. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  586. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
  587. package/lib/esm/common/internal/render/GeometryList.d.ts +1 -1
  588. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
  589. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
  590. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  591. package/lib/esm/common/internal/render/OvrFlags.d.ts +4 -2
  592. package/lib/esm/common/internal/render/OvrFlags.d.ts.map +1 -1
  593. package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
  594. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -1
  595. package/lib/esm/common/internal/render/VertexTable.js +3 -5
  596. package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
  597. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
  598. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  599. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +1 -1
  600. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  601. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js +2 -2
  602. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  603. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -1
  604. package/lib/esm/render/GraphicBranch.d.ts +12 -1
  605. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  606. package/lib/esm/render/GraphicBranch.js.map +1 -1
  607. package/lib/esm/render/MockRender.d.ts.map +1 -1
  608. package/lib/esm/render/Pixel.d.ts +14 -4
  609. package/lib/esm/render/Pixel.d.ts.map +1 -1
  610. package/lib/esm/render/Pixel.js +22 -5
  611. package/lib/esm/render/Pixel.js.map +1 -1
  612. package/lib/esm/render/RealityMeshGraphicParams.d.ts +1 -0
  613. package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -1
  614. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  615. package/lib/esm/render/RenderMemory.d.ts +2 -0
  616. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  617. package/lib/esm/render/RenderMemory.js +2 -0
  618. package/lib/esm/render/RenderMemory.js.map +1 -1
  619. package/lib/esm/render/RenderPlan.d.ts +2 -1
  620. package/lib/esm/render/RenderPlan.d.ts.map +1 -1
  621. package/lib/esm/render/RenderPlan.js +2 -0
  622. package/lib/esm/render/RenderPlan.js.map +1 -1
  623. package/lib/esm/render/RenderSystem.d.ts +1 -1
  624. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  625. package/lib/esm/render/RenderSystem.js +8 -9
  626. package/lib/esm/render/RenderSystem.js.map +1 -1
  627. package/lib/esm/render/webgl/BatchUniforms.d.ts +4 -0
  628. package/lib/esm/render/webgl/BatchUniforms.d.ts.map +1 -1
  629. package/lib/esm/render/webgl/BatchUniforms.js +18 -0
  630. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  631. package/lib/esm/render/webgl/BranchState.d.ts +9 -0
  632. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  633. package/lib/esm/render/webgl/BranchState.js +6 -0
  634. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  635. package/lib/esm/render/webgl/BranchUniforms.d.ts +1 -0
  636. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  637. package/lib/esm/render/webgl/BranchUniforms.js +14 -1
  638. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  639. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  640. package/lib/esm/render/webgl/ContourUniforms.d.ts +22 -0
  641. package/lib/esm/render/webgl/ContourUniforms.d.ts.map +1 -0
  642. package/lib/esm/render/webgl/ContourUniforms.js +94 -0
  643. package/lib/esm/render/webgl/ContourUniforms.js.map +1 -0
  644. package/lib/esm/render/webgl/Contours.d.ts +34 -0
  645. package/lib/esm/render/webgl/Contours.d.ts.map +1 -0
  646. package/lib/esm/render/webgl/Contours.js +123 -0
  647. package/lib/esm/render/webgl/Contours.js.map +1 -0
  648. package/lib/esm/render/webgl/EdgeSettings.js +1 -1
  649. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  650. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -0
  651. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  652. package/lib/esm/render/webgl/FeatureOverrides.js +46 -49
  653. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  654. package/lib/esm/render/webgl/GL.d.ts +2 -1
  655. package/lib/esm/render/webgl/GL.d.ts.map +1 -1
  656. package/lib/esm/render/webgl/GL.js +1 -0
  657. package/lib/esm/render/webgl/GL.js.map +1 -1
  658. package/lib/esm/render/webgl/Graphic.d.ts +12 -0
  659. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  660. package/lib/esm/render/webgl/Graphic.js +31 -0
  661. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  662. package/lib/esm/render/webgl/Material.js +2 -2
  663. package/lib/esm/render/webgl/Material.js.map +1 -1
  664. package/lib/esm/render/webgl/RealityMesh.js +1 -1
  665. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  666. package/lib/esm/render/webgl/RenderFlags.d.ts +2 -1
  667. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  668. package/lib/esm/render/webgl/RenderFlags.js +2 -0
  669. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  670. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  671. package/lib/esm/render/webgl/SceneCompositor.js +16 -4
  672. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  673. package/lib/esm/render/webgl/ShaderBuilder.d.ts +15 -13
  674. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  675. package/lib/esm/render/webgl/ShaderBuilder.js +18 -10
  676. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  677. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  678. package/lib/esm/render/webgl/ShaderProgram.js +26 -0
  679. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  680. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  681. package/lib/esm/render/webgl/System.js +7 -7
  682. package/lib/esm/render/webgl/System.js.map +1 -1
  683. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  684. package/lib/esm/render/webgl/Target.js +2 -1
  685. package/lib/esm/render/webgl/Target.js.map +1 -1
  686. package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
  687. package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
  688. package/lib/esm/render/webgl/TargetUniforms.js +2 -0
  689. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  690. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  691. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  692. package/lib/esm/render/webgl/Texture.js +2 -2
  693. package/lib/esm/render/webgl/Texture.js.map +1 -1
  694. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  695. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
  696. package/lib/esm/render/webgl/glsl/Atmosphere.js +1 -1
  697. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  698. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +1 -1
  699. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +1 -1
  700. package/lib/esm/render/webgl/glsl/Clipping.js +1 -1
  701. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  702. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  703. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  704. package/lib/esm/render/webgl/glsl/Contours.d.ts +4 -0
  705. package/lib/esm/render/webgl/glsl/Contours.d.ts.map +1 -0
  706. package/lib/esm/render/webgl/glsl/Contours.js +134 -0
  707. package/lib/esm/render/webgl/glsl/Contours.js.map +1 -0
  708. package/lib/esm/render/webgl/glsl/CopyColor.js +1 -1
  709. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +1 -1
  710. package/lib/esm/render/webgl/glsl/CopyStencil.js +5 -5
  711. package/lib/esm/render/webgl/glsl/EDL.js +4 -4
  712. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
  713. package/lib/esm/render/webgl/glsl/Edge.js +1 -1
  714. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
  715. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  716. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +21 -15
  717. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  718. package/lib/esm/render/webgl/glsl/Fragment.js +9 -9
  719. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  720. package/lib/esm/render/webgl/glsl/PlanarClassification.js +4 -4
  721. package/lib/esm/render/webgl/glsl/PointCloud.js +1 -1
  722. package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -3
  723. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  724. package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
  725. package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
  726. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
  727. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  728. package/lib/esm/render/webgl/glsl/Surface.js +5 -3
  729. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  730. package/lib/esm/render/webgl/glsl/Translucency.js +1 -1
  731. package/lib/esm/render/webgl/glsl/Wiremesh.js +1 -1
  732. package/lib/esm/request/Request.d.ts.map +1 -1
  733. package/lib/esm/request/Request.js.map +1 -1
  734. package/lib/esm/tile/ClassifierTileTree.js +1 -1
  735. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  736. package/lib/esm/tile/ContextShareProvider.js +2 -2
  737. package/lib/esm/tile/ContextShareProvider.js.map +1 -1
  738. package/lib/esm/tile/GltfReader.d.ts +1 -1
  739. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  740. package/lib/esm/tile/GltfReader.js +14 -12
  741. package/lib/esm/tile/GltfReader.js.map +1 -1
  742. package/lib/esm/tile/ImdlGraphicsCreator.js +4 -4
  743. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  744. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  745. package/lib/esm/tile/ImdlReader.js.map +1 -1
  746. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  747. package/lib/esm/tile/OrbitGtTileTree.js +1 -2
  748. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  749. package/lib/esm/tile/PntsReader.js +1 -1
  750. package/lib/esm/tile/PntsReader.js.map +1 -1
  751. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  752. package/lib/esm/tile/PrimaryTileTree.js +6 -6
  753. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  754. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  755. package/lib/esm/tile/RealityModelTileTree.js +1 -2
  756. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  757. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  758. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  759. package/lib/esm/tile/RealityTileLoader.js +1 -1
  760. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  761. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  762. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
  763. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  764. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  765. package/lib/esm/tile/TileAdmin.js +1 -2
  766. package/lib/esm/tile/TileAdmin.js.map +1 -1
  767. package/lib/esm/tile/TileDrawArgs.d.ts +4 -0
  768. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  769. package/lib/esm/tile/TileDrawArgs.js +2 -0
  770. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  771. package/lib/esm/tile/TileRequest.js +1 -1
  772. package/lib/esm/tile/TileRequest.js.map +1 -1
  773. package/lib/esm/tile/TileRequestChannel.js +1 -1
  774. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  775. package/lib/esm/tile/TileStorage.js +1 -1
  776. package/lib/esm/tile/TileStorage.js.map +1 -1
  777. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  778. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  779. package/lib/esm/tile/TileTreeReference.js +3 -0
  780. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  781. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -1
  782. package/lib/esm/tile/map/ArcGISTileMap.js +0 -1
  783. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  784. package/lib/esm/tile/map/ArcGisUtilities.js +1 -1
  785. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  786. package/lib/esm/tile/map/BingElevation.js +3 -3
  787. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  788. package/lib/esm/tile/map/CesiumTerrainProvider.js +3 -3
  789. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  790. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -1
  791. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  792. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  793. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +4 -5
  794. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  795. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js +1 -1
  796. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  797. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  798. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  799. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  800. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  801. package/lib/esm/tile/map/MapTile.js +1 -1
  802. package/lib/esm/tile/map/MapTile.js.map +1 -1
  803. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  804. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  805. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  806. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  807. package/lib/esm/tile/map/MapTilingScheme.js +4 -0
  808. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  809. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  810. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  811. package/lib/esm/tools/MeasureTool.js +2 -2
  812. package/lib/esm/tools/MeasureTool.js.map +1 -1
  813. package/lib/esm/tools/Tool.d.ts +1 -1
  814. package/lib/esm/tools/Tool.d.ts.map +1 -1
  815. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  816. package/lib/esm/tools/ViewTool.js +2 -2
  817. package/lib/esm/tools/ViewTool.js.map +1 -1
  818. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  819. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  820. package/package.json +30 -36
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicTemplate.js","sourceRoot":"","sources":["../../../src/render/GraphicTemplate.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,wDAAgG;AAiEhG;;;;;;GAMG;AACH,SAAgB,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,mCAAyB,CAAC,EAAE,SAAS;QACtC,cAAc;QACd,CAAC,gBAAM,CAAC,EAAE,IAAI,CAAC,KAAK;QACpB,CAAC,gBAAM,CAAC,EAAE,IAAI,CAAC,KAAK;QACpB,CAAC,iBAAO,CAAC,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AA3BD,sDA2BC","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
+ {"version":3,"file":"GraphicTemplate.js","sourceRoot":"","sources":["../../../src/render/GraphicTemplate.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AA2EH,sDA2BC;AAnGD,wDAAgG;AAiEhG;;;;;;GAMG;AACH,SAAgB,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,mCAAyB,CAAC,EAAE,SAAS;QACtC,cAAc;QACd,CAAC,gBAAM,CAAC,EAAE,IAAI,CAAC,KAAK;QACpB,CAAC,gBAAM,CAAC,EAAE,IAAI,CAAC,KAAK;QACpB,CAAC,iBAAO,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 +1 @@
1
- {"version":3,"file":"MockRender.d.ts","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MockRender.d.ts","sourceRoot":"","sources":["../../../src/render/MockRender.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,10 @@
3
3
  */
4
4
  import { Id64String } from "@itwin/core-bentley";
5
5
  import { BatchType, Feature, GeometryClass, ModelFeature } from "@itwin/core-common";
6
- import { HitPriority, ViewAttachmentHitInfo } from "../HitDetail";
6
+ import { HitPath, HitPriority } 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,11 +29,17 @@ 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
34
37
  */
35
38
  readonly viewAttachmentId?: Id64String;
39
+ /** True if the pixel originated from a [[SpatialViewState]] attached via a [SectionDrawing]($backend).
40
+ * @beta
41
+ */
42
+ readonly inSectionDrawingAttachment: boolean;
36
43
  /** @internal */
37
44
  get isClassifier(): boolean;
38
45
  /** @internal */
@@ -45,6 +52,8 @@ export declare namespace Pixel {
45
52
  iModel?: IModelConnection;
46
53
  tileId?: string;
47
54
  viewAttachmentId?: string;
55
+ inSectionDrawingAttachment?: boolean;
56
+ transformFromIModel?: Transform;
48
57
  });
49
58
  /** The Id of the element that produced the pixel. */
50
59
  get elementId(): Id64String | undefined;
@@ -91,17 +100,18 @@ export declare namespace Pixel {
91
100
  * @internal
92
101
  */
93
102
  sourceIModel?: IModelConnection;
103
+ /** @internal */
104
+ transformFromSourceIModel?: Transform;
94
105
  /** @internal chiefly for debugging */
95
106
  tileId?: string;
96
107
  /** True if the hit originated from a reality model classifier.
97
108
  * @alpha
98
109
  */
99
110
  isClassifier?: boolean;
100
- /** Information about the [ViewAttachment]($backend) within which the hit geometry resides, if any.
101
- * @note Only [[SheetViewState]]s can have view attachments.
111
+ /** Path through which the hit was located.
102
112
  * @beta
103
113
  */
104
- viewAttachment?: ViewAttachmentHitInfo;
114
+ path?: HitPath;
105
115
  }
106
116
  /** Describes the type of geometry that produced the [[Pixel.Data]]. */
107
117
  enum GeometryType {
@@ -1 +1 @@
1
- {"version":3,"file":"Pixel.d.ts","sourceRoot":"","sources":["../../../src/render/Pixel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pixel.d.ts","sourceRoot":"","sources":["../../../src/render/Pixel.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,8 @@ var Pixel;
35
35
  this.iModel = args?.iModel;
36
36
  this.tileId = args?.tileId;
37
37
  this.viewAttachmentId = args?.viewAttachmentId;
38
+ this.inSectionDrawingAttachment = true === args?.inSectionDrawingAttachment;
39
+ this.transformFromIModel = args?.transformFromIModel;
38
40
  }
39
41
  /** The Id of the element that produced the pixel. */
40
42
  get elementId() {
@@ -67,11 +69,25 @@ var Pixel;
67
69
  * @param viewport The viewport in which the hit originated.
68
70
  */
69
71
  toHitProps(viewport) {
70
- let viewAttachment;
72
+ let path;
71
73
  if (this.viewAttachmentId) {
72
- const attachmentViewport = viewport.view.getAttachmentViewport(this.viewAttachmentId);
73
- if (attachmentViewport)
74
- viewAttachment = { viewport: attachmentViewport, id: this.viewAttachmentId };
74
+ const attachmentViewport = viewport.view.getAttachmentViewport({ viewAttachmentId: this.viewAttachmentId });
75
+ if (attachmentViewport) {
76
+ path = {
77
+ viewAttachment: {
78
+ viewport: attachmentViewport,
79
+ id: this.viewAttachmentId,
80
+ },
81
+ };
82
+ }
83
+ }
84
+ if (this.inSectionDrawingAttachment) {
85
+ const checkVp = path?.viewAttachment?.viewport ?? viewport;
86
+ const attachVp = checkVp.view.getAttachmentViewport({ inSectionDrawingAttachment: true });
87
+ if (attachVp) {
88
+ path = path ?? {};
89
+ path.sectionDrawingAttachment = { viewport: attachVp };
90
+ }
75
91
  }
76
92
  return {
77
93
  sourceId: this.elementId ?? core_bentley_1.Id64.invalid,
@@ -83,7 +99,8 @@ var Pixel;
83
99
  tileId: this.tileId,
84
100
  isClassifier: this.isClassifier,
85
101
  sourceIModel: this.iModel,
86
- viewAttachment,
102
+ transformFromSourceIModel: this.transformFromIModel,
103
+ path,
87
104
  };
88
105
  }
89
106
  }
@@ -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 { HitPath, HitPriority } 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 /** True if the pixel originated from a [[SpatialViewState]] attached via a [SectionDrawing]($backend).\r\n * @beta\r\n */\r\n public readonly inSectionDrawingAttachment: boolean;\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 inSectionDrawingAttachment?: boolean;\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.inSectionDrawingAttachment = true === args?.inSectionDrawingAttachment;\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 path: HitPath | undefined;\r\n if (this.viewAttachmentId) {\r\n const attachmentViewport = viewport.view.getAttachmentViewport({ viewAttachmentId: this.viewAttachmentId });\r\n if (attachmentViewport) {\r\n path = {\r\n viewAttachment: {\r\n viewport: attachmentViewport,\r\n id: this.viewAttachmentId,\r\n },\r\n };\r\n }\r\n }\r\n\r\n if (this.inSectionDrawingAttachment) {\r\n const checkVp = path?.viewAttachment?.viewport ?? viewport;\r\n const attachVp = checkVp.view.getAttachmentViewport({ inSectionDrawingAttachment: true });\r\n if (attachVp) {\r\n path = path ?? { };\r\n path.sectionDrawingAttachment = { viewport: attachVp };\r\n }\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 path,\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 /** Path through which the hit was located.\r\n * @beta\r\n */\r\n path?: HitPath;\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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"}
@@ -171,6 +171,8 @@ var RenderMemory;
171
171
  /** @internal */
172
172
  addFeatureOverrides(numBytes) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }
173
173
  /** @internal */
174
+ addContours(numBytes) { this.addConsumer(ConsumerType.FeatureOverrides, numBytes); }
175
+ /** @internal */
174
176
  addClipVolume(numBytes) { this.addConsumer(ConsumerType.ClipVolumes, numBytes); }
175
177
  /** @internal */
176
178
  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"}
@@ -7,7 +7,9 @@
7
7
  * @module Rendering
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createRenderPlanFromViewport = exports.createEmptyRenderPlan = exports.RenderPlanEllipsoid = void 0;
10
+ exports.RenderPlanEllipsoid = void 0;
11
+ exports.createEmptyRenderPlan = createEmptyRenderPlan;
12
+ exports.createRenderPlanFromViewport = createRenderPlanFromViewport;
11
13
  const core_common_1 = require("@itwin/core-common");
12
14
  const core_geometry_1 = require("@itwin/core-geometry");
13
15
  const FlashSettings_1 = require("../FlashSettings");
@@ -56,7 +58,6 @@ function createEmptyRenderPlan() {
56
58
  whiteOnWhiteReversal: core_common_1.WhiteOnWhiteReversalSettings.fromJSON(),
57
59
  };
58
60
  }
59
- exports.createEmptyRenderPlan = createEmptyRenderPlan;
60
61
  /** @internal */
61
62
  function createRenderPlanFromViewport(vp) {
62
63
  const view = vp.view;
@@ -82,6 +83,7 @@ function createRenderPlanFromViewport(vp) {
82
83
  const ao = style.is3d() ? style.settings.ambientOcclusionSettings : undefined;
83
84
  const analysisStyle = style.settings.analysisStyle;
84
85
  const thematic = (style.is3d() && view.displayStyle.viewFlags.thematicDisplay) ? style.settings.thematic : undefined;
86
+ const contours = (style.is3d() && style.settings.contours.groups.length > 0) ? style.settings.contours : undefined;
85
87
  const shouldDisplayAtmosphere = (style.is3d() && core_common_1.GlobeMode.Ellipsoid === view.globeMode && vp.iModel.isGeoLocated && style.viewFlags.backgroundMap) ? vp.view.getDisplayStyle3d().environment.displayAtmosphere : false;
86
88
  const atmosphere = shouldDisplayAtmosphere ? vp.view.getDisplayStyle3d().environment.atmosphere : undefined;
87
89
  let upVector;
@@ -117,6 +119,7 @@ function createRenderPlanFromViewport(vp) {
117
119
  analysisStyle,
118
120
  ao,
119
121
  thematic,
122
+ contours,
120
123
  atmosphere,
121
124
  isFadeOutActive,
122
125
  analysisTexture,
@@ -131,5 +134,4 @@ function createRenderPlanFromViewport(vp) {
131
134
  ellipsoid,
132
135
  };
133
136
  }
134
- exports.createRenderPlanFromViewport = createRenderPlanFromViewport;
135
137
  //# sourceMappingURL=RenderPlan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPlan.js","sourceRoot":"","sources":["../../../src/render/RenderPlan.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,oDAG4B;AAC5B,wDAAyF;AACzF,oDAAiD;AAIjD,MAAM,cAAc,GAAG,IAAI,uBAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,uBAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,uBAAO,EAAE,CAAC;AAErC;;GAEG;AACH,MAAa,mBAAmB;IAK9B,YAAY,eAAwB,EAAE,iBAA2B,EAAE,cAAuB;QACxF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,KAA0B;QACtC,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApBD,kDAoBC;AAkCD,gBAAgB;AAChB,SAAgB,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI,uBAAS,EAAE;QAC1B,OAAO,EAAE,sBAAQ,CAAC,KAAK;QACvB,SAAS,EAAE,sBAAQ,CAAC,KAAK;QACzB,cAAc,EAAE,4BAAc,CAAC,MAAM;QACrC,cAAc,EAAE,IAAI,oBAAM,CAAC,QAAQ,EAAE;QACrC,gBAAgB,EAAE,IAAI,oBAAM,CAAC,QAAQ,EAAE;QACvC,aAAa,EAAE,IAAI,6BAAa,EAAE;QAClC,SAAS,EAAE,uBAAS,CAAC,QAAQ;QAC7B,OAAO,EAAE,IAAI,qBAAO,EAAE;QACtB,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,KAAK;QACtB,oBAAoB,EAAE,CAAC;QACvB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,wBAAQ,CAAC,KAAK,EAAE;QAC1B,oBAAoB,EAAE,0CAA4B,CAAC,QAAQ,EAAE;KAC9D,CAAC;AACJ,CAAC;AApBD,sDAoBC;AAED,gBAAgB;AAChB,SAAgB,4BAA4B,CAAC,EAAY;IACvD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7E,MAAM,aAAa,GAAG,uBAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;IAErD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACjC,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;IAC7C,MAAM,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACvC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC;IAEhC,MAAM,eAAe,GAAG,EAAE,CAAC,eAAe,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACnD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrH,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,uBAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,IAAoB,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;IACzO,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,CAAE,EAAE,CAAC,IAAoB,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7H,IAAI,QAAQ,CAAC;IACb,IAAI,uBAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAG,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAG,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;QAC1H,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,iBAAG,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;QACtH,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACrD,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,wBAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe,CAAC;IACpB,IAAI,aAAa,EAAE,QAAQ;QACzB,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAE1G,IAAI,SAA0C,CAAC;IAC/C,IAAI,uBAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,mBAAmB,CACjC,uBAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EACpC,WAAW,CAAC,MAAM,EAClB,uBAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,wBAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,wBAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,wBAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CACrI,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,SAAS;QACT,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,IAAI;QACJ,SAAS;QACT,KAAK;QACL,aAAa;QACb,EAAE;QACF,QAAQ;QACR,UAAU;QACV,eAAe;QACf,eAAe;QACf,OAAO;QACP,QAAQ;QACR,oBAAoB;QACpB,aAAa;QACb,eAAe;QACf,QAAQ;QACR,MAAM;QACN,oBAAoB,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB;QACnE,SAAS;KACV,CAAC;AACJ,CAAC;AApFD,oEAoFC","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 {\r\n AmbientOcclusion, AnalysisStyle, Atmosphere, ClipStyle, ColorDef, Frustum, GlobeMode, HiddenLine, Hilite, LightSettings, MonochromeMode, Npc,\r\n RenderTexture, ThematicDisplay, ViewFlags, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport { ClipVector, Constant, Matrix3d, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { FlashSettings } from \"../FlashSettings\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { ViewState3d } from \"../ViewState\";\r\n\r\nconst scratchPoint3a = new Point3d();\r\nconst scratchPoint3b = new Point3d();\r\nconst scratchPoint3c = new Point3d();\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class RenderPlanEllipsoid {\r\n public readonly ellipsoidCenter: Point3d;\r\n public readonly ellipsoidRotation: Matrix3d;\r\n public readonly ellipsoidRadii: Point3d;\r\n\r\n constructor(ellipsoidCenter: Point3d, ellipsoidRotation: Matrix3d, ellipsoidRadii: Point3d) {\r\n this.ellipsoidCenter = ellipsoidCenter;\r\n this.ellipsoidRotation = ellipsoidRotation;\r\n this.ellipsoidRadii = ellipsoidRadii;\r\n }\r\n\r\n public equals(other: RenderPlanEllipsoid): boolean {\r\n if (this.ellipsoidCenter.isAlmostEqual(other.ellipsoidCenter))\r\n return false;\r\n if (this.ellipsoidRotation.isAlmostEqual(other.ellipsoidRotation))\r\n return false;\r\n if (this.ellipsoidRadii.isAlmostEqual(other.ellipsoidRadii))\r\n return false;\r\n return true;\r\n }\r\n}\r\n\r\n/** A RenderPlan holds a Frustum and the render settings for displaying a RenderScene into a RenderTarget.\r\n * @internal\r\n */\r\nexport interface RenderPlan {\r\n readonly is3d: boolean;\r\n readonly viewFlags: ViewFlags;\r\n readonly bgColor: ColorDef;\r\n readonly monoColor: ColorDef;\r\n readonly monochromeMode: MonochromeMode;\r\n readonly hiliteSettings: Hilite.Settings;\r\n readonly emphasisSettings: Hilite.Settings;\r\n readonly flashSettings: FlashSettings;\r\n readonly clip?: ClipVector;\r\n readonly clipStyle: ClipStyle;\r\n readonly hline?: HiddenLine.Settings;\r\n readonly analysisStyle?: AnalysisStyle;\r\n readonly ao?: AmbientOcclusion.Settings;\r\n readonly thematic?: ThematicDisplay;\r\n readonly atmosphere?: Atmosphere.Settings;\r\n readonly isFadeOutActive: boolean;\r\n readonly analysisTexture?: RenderTexture;\r\n readonly frustum: Frustum;\r\n readonly fraction: number;\r\n readonly globalViewTransition: number;\r\n readonly isGlobeMode3D: boolean;\r\n readonly backgroundMapOn: boolean;\r\n readonly upVector: Vector3d;\r\n readonly lights?: LightSettings;\r\n readonly whiteOnWhiteReversal: WhiteOnWhiteReversalSettings;\r\n readonly ellipsoid?: RenderPlanEllipsoid;\r\n}\r\n\r\n/** @internal */\r\nexport function createEmptyRenderPlan(): RenderPlan {\r\n return {\r\n is3d: true,\r\n viewFlags: new ViewFlags(),\r\n bgColor: ColorDef.white,\r\n monoColor: ColorDef.white,\r\n monochromeMode: MonochromeMode.Scaled,\r\n hiliteSettings: new Hilite.Settings(),\r\n emphasisSettings: new Hilite.Settings(),\r\n flashSettings: new FlashSettings(),\r\n clipStyle: ClipStyle.defaults,\r\n frustum: new Frustum(),\r\n fraction: 0,\r\n isFadeOutActive: false,\r\n globalViewTransition: 0,\r\n isGlobeMode3D: false,\r\n backgroundMapOn: false,\r\n upVector: Vector3d.unitZ(),\r\n whiteOnWhiteReversal: WhiteOnWhiteReversalSettings.fromJSON(),\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function createRenderPlanFromViewport(vp: Viewport): RenderPlan {\r\n const view = vp.view;\r\n const style = view.displayStyle;\r\n\r\n const is3d = view.is3d();\r\n\r\n const globalViewTransition = view.is3d() ? view.globalViewTransition() : 0.0;\r\n const isGlobeMode3D = GlobeMode.Ellipsoid === view.globeMode;\r\n const backgroundMapOn = view.displayStyle.viewFlags.backgroundMap;\r\n const frustum = vp.viewingSpace.getFrustum();\r\n const fraction = vp.viewingSpace.frustFraction;\r\n const viewFlags = style.viewFlags;\r\n\r\n const bgColor = view.backgroundColor;\r\n const monoColor = style.monochromeColor;\r\n const monochromeMode = style.settings.monochromeMode;\r\n\r\n const hiliteSettings = vp.hilite;\r\n const emphasisSettings = vp.emphasisSettings;\r\n const flashSettings = vp.flashSettings;\r\n const lights = vp.lightSettings;\r\n\r\n const isFadeOutActive = vp.isFadeOutActive;\r\n const clip = view.getViewClip();\r\n const clipStyle = view.displayStyle.settings.clipStyle;\r\n const hline = style.is3d() ? style.settings.hiddenLineSettings : undefined;\r\n const ao = style.is3d() ? style.settings.ambientOcclusionSettings : undefined;\r\n const analysisStyle = style.settings.analysisStyle;\r\n const thematic = (style.is3d() && view.displayStyle.viewFlags.thematicDisplay) ? style.settings.thematic : undefined;\r\n const shouldDisplayAtmosphere = (style.is3d() && GlobeMode.Ellipsoid === view.globeMode && vp.iModel.isGeoLocated && style.viewFlags.backgroundMap) ? (vp.view as ViewState3d).getDisplayStyle3d().environment.displayAtmosphere : false;\r\n const atmosphere = shouldDisplayAtmosphere ? (vp.view as ViewState3d).getDisplayStyle3d().environment.atmosphere : undefined;\r\n\r\n let upVector;\r\n if (GlobeMode.Ellipsoid === view.globeMode) {\r\n const lb = frustum.getCorner(Npc.LeftBottomRear).interpolate(0.5, frustum.getCorner(Npc.LeftBottomFront), scratchPoint3a);\r\n const rt = frustum.getCorner(Npc.RightTopRear).interpolate(0.5, frustum.getCorner(Npc.RightTopFront), scratchPoint3b);\r\n const cntr = lb.interpolate(0.5, rt, scratchPoint3c);\r\n upVector = view.getUpVector(cntr);\r\n } else {\r\n upVector = Vector3d.unitZ();\r\n }\r\n\r\n let analysisTexture;\r\n if (analysisStyle?.thematic)\r\n analysisTexture = vp.target.renderSystem.getGradientTexture(analysisStyle.thematic.gradient, vp.iModel);\r\n\r\n let ellipsoid: RenderPlanEllipsoid | undefined;\r\n if (GlobeMode.Ellipsoid === view.globeMode) {\r\n const mapEcefToDb = view.iModel.getMapEcefToDb(0);\r\n ellipsoid = new RenderPlanEllipsoid(\r\n Point3d.fromJSON(mapEcefToDb.origin),\r\n mapEcefToDb.matrix,\r\n Point3d.fromJSON({ x: Constant.earthRadiusWGS84.equator, y: Constant.earthRadiusWGS84.equator, z: Constant.earthRadiusWGS84.polar }),\r\n );\r\n }\r\n\r\n return {\r\n is3d,\r\n viewFlags,\r\n bgColor,\r\n monoColor,\r\n monochromeMode,\r\n hiliteSettings,\r\n emphasisSettings,\r\n flashSettings,\r\n clip,\r\n clipStyle,\r\n hline,\r\n analysisStyle,\r\n ao,\r\n thematic,\r\n atmosphere,\r\n isFadeOutActive,\r\n analysisTexture,\r\n frustum,\r\n fraction,\r\n globalViewTransition,\r\n isGlobeMode3D,\r\n backgroundMapOn,\r\n upVector,\r\n lights,\r\n whiteOnWhiteReversal: vp.displayStyle.settings.whiteOnWhiteReversal,\r\n ellipsoid,\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"RenderPlan.js","sourceRoot":"","sources":["../../../src/render/RenderPlan.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 {\r\n AmbientOcclusion, AnalysisStyle, Atmosphere, ClipStyle, ColorDef, ContourDisplay, Frustum, GlobeMode, HiddenLine, Hilite, LightSettings, MonochromeMode, Npc,\r\n RenderTexture, ThematicDisplay, ViewFlags, WhiteOnWhiteReversalSettings,\r\n} from \"@itwin/core-common\";\r\nimport { ClipVector, Constant, Matrix3d, Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { FlashSettings } from \"../FlashSettings\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { ViewState3d } from \"../ViewState\";\r\n\r\nconst scratchPoint3a = new Point3d();\r\nconst scratchPoint3b = new Point3d();\r\nconst scratchPoint3c = new Point3d();\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class RenderPlanEllipsoid {\r\n public readonly ellipsoidCenter: Point3d;\r\n public readonly ellipsoidRotation: Matrix3d;\r\n public readonly ellipsoidRadii: Point3d;\r\n\r\n constructor(ellipsoidCenter: Point3d, ellipsoidRotation: Matrix3d, ellipsoidRadii: Point3d) {\r\n this.ellipsoidCenter = ellipsoidCenter;\r\n this.ellipsoidRotation = ellipsoidRotation;\r\n this.ellipsoidRadii = ellipsoidRadii;\r\n }\r\n\r\n public equals(other: RenderPlanEllipsoid): boolean {\r\n if (this.ellipsoidCenter.isAlmostEqual(other.ellipsoidCenter))\r\n return false;\r\n if (this.ellipsoidRotation.isAlmostEqual(other.ellipsoidRotation))\r\n return false;\r\n if (this.ellipsoidRadii.isAlmostEqual(other.ellipsoidRadii))\r\n return false;\r\n return true;\r\n }\r\n}\r\n\r\n/** A RenderPlan holds a Frustum and the render settings for displaying a RenderScene into a RenderTarget.\r\n * @internal\r\n */\r\nexport interface RenderPlan {\r\n readonly is3d: boolean;\r\n readonly viewFlags: ViewFlags;\r\n readonly bgColor: ColorDef;\r\n readonly monoColor: ColorDef;\r\n readonly monochromeMode: MonochromeMode;\r\n readonly hiliteSettings: Hilite.Settings;\r\n readonly emphasisSettings: Hilite.Settings;\r\n readonly flashSettings: FlashSettings;\r\n readonly clip?: ClipVector;\r\n readonly clipStyle: ClipStyle;\r\n readonly hline?: HiddenLine.Settings;\r\n readonly analysisStyle?: AnalysisStyle;\r\n readonly ao?: AmbientOcclusion.Settings;\r\n readonly thematic?: ThematicDisplay;\r\n readonly contours?: ContourDisplay;\r\n readonly atmosphere?: Atmosphere.Settings;\r\n readonly isFadeOutActive: boolean;\r\n readonly analysisTexture?: RenderTexture;\r\n readonly frustum: Frustum;\r\n readonly fraction: number;\r\n readonly globalViewTransition: number;\r\n readonly isGlobeMode3D: boolean;\r\n readonly backgroundMapOn: boolean;\r\n readonly upVector: Vector3d;\r\n readonly lights?: LightSettings;\r\n readonly whiteOnWhiteReversal: WhiteOnWhiteReversalSettings;\r\n readonly ellipsoid?: RenderPlanEllipsoid;\r\n}\r\n\r\n/** @internal */\r\nexport function createEmptyRenderPlan(): RenderPlan {\r\n return {\r\n is3d: true,\r\n viewFlags: new ViewFlags(),\r\n bgColor: ColorDef.white,\r\n monoColor: ColorDef.white,\r\n monochromeMode: MonochromeMode.Scaled,\r\n hiliteSettings: new Hilite.Settings(),\r\n emphasisSettings: new Hilite.Settings(),\r\n flashSettings: new FlashSettings(),\r\n clipStyle: ClipStyle.defaults,\r\n frustum: new Frustum(),\r\n fraction: 0,\r\n isFadeOutActive: false,\r\n globalViewTransition: 0,\r\n isGlobeMode3D: false,\r\n backgroundMapOn: false,\r\n upVector: Vector3d.unitZ(),\r\n whiteOnWhiteReversal: WhiteOnWhiteReversalSettings.fromJSON(),\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function createRenderPlanFromViewport(vp: Viewport): RenderPlan {\r\n const view = vp.view;\r\n const style = view.displayStyle;\r\n\r\n const is3d = view.is3d();\r\n\r\n const globalViewTransition = view.is3d() ? view.globalViewTransition() : 0.0;\r\n const isGlobeMode3D = GlobeMode.Ellipsoid === view.globeMode;\r\n const backgroundMapOn = view.displayStyle.viewFlags.backgroundMap;\r\n const frustum = vp.viewingSpace.getFrustum();\r\n const fraction = vp.viewingSpace.frustFraction;\r\n const viewFlags = style.viewFlags;\r\n\r\n const bgColor = view.backgroundColor;\r\n const monoColor = style.monochromeColor;\r\n const monochromeMode = style.settings.monochromeMode;\r\n\r\n const hiliteSettings = vp.hilite;\r\n const emphasisSettings = vp.emphasisSettings;\r\n const flashSettings = vp.flashSettings;\r\n const lights = vp.lightSettings;\r\n\r\n const isFadeOutActive = vp.isFadeOutActive;\r\n const clip = view.getViewClip();\r\n const clipStyle = view.displayStyle.settings.clipStyle;\r\n const hline = style.is3d() ? style.settings.hiddenLineSettings : undefined;\r\n const ao = style.is3d() ? style.settings.ambientOcclusionSettings : undefined;\r\n const analysisStyle = style.settings.analysisStyle;\r\n const thematic = (style.is3d() && view.displayStyle.viewFlags.thematicDisplay) ? style.settings.thematic : undefined;\r\n const contours = (style.is3d() && style.settings.contours.groups.length > 0) ? style.settings.contours : undefined;\r\n const shouldDisplayAtmosphere = (style.is3d() && GlobeMode.Ellipsoid === view.globeMode && vp.iModel.isGeoLocated && style.viewFlags.backgroundMap) ? (vp.view as ViewState3d).getDisplayStyle3d().environment.displayAtmosphere : false;\r\n const atmosphere = shouldDisplayAtmosphere ? (vp.view as ViewState3d).getDisplayStyle3d().environment.atmosphere : undefined;\r\n\r\n let upVector;\r\n if (GlobeMode.Ellipsoid === view.globeMode) {\r\n const lb = frustum.getCorner(Npc.LeftBottomRear).interpolate(0.5, frustum.getCorner(Npc.LeftBottomFront), scratchPoint3a);\r\n const rt = frustum.getCorner(Npc.RightTopRear).interpolate(0.5, frustum.getCorner(Npc.RightTopFront), scratchPoint3b);\r\n const cntr = lb.interpolate(0.5, rt, scratchPoint3c);\r\n upVector = view.getUpVector(cntr);\r\n } else {\r\n upVector = Vector3d.unitZ();\r\n }\r\n\r\n let analysisTexture;\r\n if (analysisStyle?.thematic)\r\n analysisTexture = vp.target.renderSystem.getGradientTexture(analysisStyle.thematic.gradient, vp.iModel);\r\n\r\n let ellipsoid: RenderPlanEllipsoid | undefined;\r\n if (GlobeMode.Ellipsoid === view.globeMode) {\r\n const mapEcefToDb = view.iModel.getMapEcefToDb(0);\r\n ellipsoid = new RenderPlanEllipsoid(\r\n Point3d.fromJSON(mapEcefToDb.origin),\r\n mapEcefToDb.matrix,\r\n Point3d.fromJSON({ x: Constant.earthRadiusWGS84.equator, y: Constant.earthRadiusWGS84.equator, z: Constant.earthRadiusWGS84.polar }),\r\n );\r\n }\r\n\r\n return {\r\n is3d,\r\n viewFlags,\r\n bgColor,\r\n monoColor,\r\n monochromeMode,\r\n hiliteSettings,\r\n emphasisSettings,\r\n flashSettings,\r\n clip,\r\n clipStyle,\r\n hline,\r\n analysisStyle,\r\n ao,\r\n thematic,\r\n contours,\r\n atmosphere,\r\n isFadeOutActive,\r\n analysisTexture,\r\n frustum,\r\n fraction,\r\n globalViewTransition,\r\n isGlobeMode3D,\r\n backgroundMapOn,\r\n upVector,\r\n lights,\r\n whiteOnWhiteReversal: vp.displayStyle.settings.whiteOnWhiteReversal,\r\n ellipsoid,\r\n };\r\n}\r\n"]}
@@ -397,7 +397,7 @@ export declare abstract class RenderSystem implements IDisposable {
397
397
  /** Create a RenderGraphic consisting of a list of Graphics to be drawn together. */
398
398
  abstract createGraphicList(primitives: RenderGraphic[]): RenderGraphic;
399
399
  /** Create a RenderGraphic consisting of a list of Graphics, with optional transform and symbology overrides applied to the list */
400
- createBranch(branch: GraphicBranch, transform: Transform): RenderGraphic;
400
+ createBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic;
401
401
  /** Create a graphic from a [[GraphicBranch]]. */
402
402
  abstract createGraphicBranch(branch: GraphicBranch, transform: Transform, options?: GraphicBranchOptions): RenderGraphic;
403
403
  /** Create a node in the scene graph corresponding to a transform node in the scene's schedule script.