@itwin/core-frontend 3.3.0-dev.9 → 3.4.0-dev.10

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 (358) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/lib/cjs/DisplayStyleState.d.ts +80 -31
  3. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  4. package/lib/cjs/DisplayStyleState.js +150 -89
  5. package/lib/cjs/DisplayStyleState.js.map +1 -1
  6. package/lib/cjs/DrawingViewState.js +1 -1
  7. package/lib/cjs/DrawingViewState.js.map +1 -1
  8. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  9. package/lib/cjs/EmphasizeElements.js +5 -0
  10. package/lib/cjs/EmphasizeElements.js.map +1 -1
  11. package/lib/cjs/EntityState.d.ts +5 -5
  12. package/lib/cjs/EntityState.d.ts.map +1 -1
  13. package/lib/cjs/EntityState.js.map +1 -1
  14. package/lib/cjs/IModelApp.d.ts +5 -0
  15. package/lib/cjs/IModelApp.d.ts.map +1 -1
  16. package/lib/cjs/IModelApp.js +16 -12
  17. package/lib/cjs/IModelApp.js.map +1 -1
  18. package/lib/cjs/IModelConnection.d.ts +51 -4
  19. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  20. package/lib/cjs/IModelConnection.js +38 -3
  21. package/lib/cjs/IModelConnection.js.map +1 -1
  22. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  23. package/lib/cjs/LocalhostIpcApp.js +10 -0
  24. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  25. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  26. package/lib/cjs/NoRenderApp.js +1 -0
  27. package/lib/cjs/NoRenderApp.js.map +1 -1
  28. package/lib/cjs/PerModelCategoryVisibility.d.ts +17 -0
  29. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  30. package/lib/cjs/PerModelCategoryVisibility.js +63 -19
  31. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  32. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  33. package/lib/cjs/RealityDataSource.js +6 -2
  34. package/lib/cjs/RealityDataSource.js.map +1 -1
  35. package/lib/cjs/SelectionSet.d.ts +30 -4
  36. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  37. package/lib/cjs/SelectionSet.js +26 -2
  38. package/lib/cjs/SelectionSet.js.map +1 -1
  39. package/lib/cjs/SheetViewState.js +1 -1
  40. package/lib/cjs/SheetViewState.js.map +1 -1
  41. package/lib/cjs/SubCategoriesCache.d.ts +6 -12
  42. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  43. package/lib/cjs/SubCategoriesCache.js +48 -37
  44. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  45. package/lib/cjs/TentativePoint.js +1 -1
  46. package/lib/cjs/TentativePoint.js.map +1 -1
  47. package/lib/cjs/ViewState.d.ts +2 -3
  48. package/lib/cjs/ViewState.d.ts.map +1 -1
  49. package/lib/cjs/ViewState.js +13 -9
  50. package/lib/cjs/ViewState.js.map +1 -1
  51. package/lib/cjs/Viewport.d.ts +10 -10
  52. package/lib/cjs/Viewport.d.ts.map +1 -1
  53. package/lib/cjs/Viewport.js +19 -14
  54. package/lib/cjs/Viewport.js.map +1 -1
  55. package/lib/cjs/core-frontend.d.ts +0 -2
  56. package/lib/cjs/core-frontend.d.ts.map +1 -1
  57. package/lib/cjs/core-frontend.js +0 -2
  58. package/lib/cjs/core-frontend.js.map +1 -1
  59. package/lib/cjs/extension/ExtensionAdmin.d.ts +5 -2
  60. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  61. package/lib/cjs/extension/ExtensionAdmin.js +24 -6
  62. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  63. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +0 -2
  64. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
  65. package/lib/cjs/extension/providers/RemoteExtensionProvider.js +9 -22
  66. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  67. package/lib/cjs/render/FeatureSymbology.js +2 -2
  68. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  69. package/lib/cjs/render/GraphicBranch.d.ts +15 -9
  70. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  71. package/lib/cjs/render/GraphicBranch.js +38 -1
  72. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  73. package/lib/cjs/render/RenderSystem.d.ts +5 -0
  74. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  75. package/lib/cjs/render/RenderSystem.js.map +1 -1
  76. package/lib/cjs/render/primitives/EdgeParams.d.ts +11 -0
  77. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  78. package/lib/cjs/render/primitives/EdgeParams.js +36 -29
  79. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  80. package/lib/cjs/render/primitives/VertexTable.d.ts +11 -4
  81. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  82. package/lib/cjs/render/primitives/VertexTable.js +13 -6
  83. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  84. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts +41 -0
  85. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  86. package/lib/cjs/render/primitives/VertexTableSplitter.js +662 -0
  87. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -0
  88. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  89. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +3 -1
  90. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  91. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  92. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  93. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +4 -1
  94. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  95. package/lib/cjs/render/webgl/FeatureOverrides.js +56 -26
  96. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  97. package/lib/cjs/render/webgl/ShaderProgram.js +1 -1
  98. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  99. package/lib/cjs/render/webgl/Target.d.ts +2 -1
  100. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  101. package/lib/cjs/render/webgl/Target.js +1 -0
  102. package/lib/cjs/render/webgl/Target.js.map +1 -1
  103. package/lib/cjs/render/webgl/UniformHandle.d.ts +2 -1
  104. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  105. package/lib/cjs/render/webgl/UniformHandle.js +15 -3
  106. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  107. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  108. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +4 -1
  109. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  110. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  111. package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -2
  112. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  113. package/lib/cjs/render-primitives.d.ts +1 -0
  114. package/lib/cjs/render-primitives.d.ts.map +1 -1
  115. package/lib/cjs/render-primitives.js +1 -0
  116. package/lib/cjs/render-primitives.js.map +1 -1
  117. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  118. package/lib/cjs/tile/ClassifierTileTree.js +8 -8
  119. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  120. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  121. package/lib/cjs/tile/IModelTile.js +1 -0
  122. package/lib/cjs/tile/IModelTile.js.map +1 -1
  123. package/lib/cjs/tile/IModelTileTree.d.ts +3 -1
  124. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  125. package/lib/cjs/tile/IModelTileTree.js +1 -0
  126. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  127. package/lib/cjs/tile/ImdlReader.d.ts +9 -4
  128. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  129. package/lib/cjs/tile/ImdlReader.js +174 -60
  130. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  131. package/lib/cjs/tile/PrimaryTileTree.d.ts +8 -7
  132. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  133. package/lib/cjs/tile/PrimaryTileTree.js +30 -25
  134. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  135. package/lib/cjs/tile/TileAdmin.d.ts +21 -2
  136. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  137. package/lib/cjs/tile/TileAdmin.js +32 -12
  138. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  139. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  140. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -2
  141. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  142. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +1 -0
  143. package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
  144. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -0
  145. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  146. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +2 -1
  147. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  148. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  149. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +2 -0
  150. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  151. package/lib/cjs/tile/map/MapLayerImageryProvider.js +23 -9
  152. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  153. package/lib/cjs/tile/map/MapLayerSources.d.ts +14 -9
  154. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  155. package/lib/cjs/tile/map/MapLayerSources.js +14 -6
  156. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  157. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  158. package/lib/cjs/tools/ClipViewTool.js +25 -2
  159. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  160. package/lib/cjs/tools/PrimitiveTool.js +4 -4
  161. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  162. package/lib/cjs/tools/Tool.d.ts +7 -7
  163. package/lib/cjs/tools/Tool.js +7 -7
  164. package/lib/cjs/tools/Tool.js.map +1 -1
  165. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  166. package/lib/cjs/tools/ToolAdmin.js +25 -10
  167. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  168. package/lib/esm/DisplayStyleState.d.ts +80 -31
  169. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  170. package/lib/esm/DisplayStyleState.js +150 -89
  171. package/lib/esm/DisplayStyleState.js.map +1 -1
  172. package/lib/esm/DrawingViewState.js +1 -1
  173. package/lib/esm/DrawingViewState.js.map +1 -1
  174. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  175. package/lib/esm/EmphasizeElements.js +5 -0
  176. package/lib/esm/EmphasizeElements.js.map +1 -1
  177. package/lib/esm/EntityState.d.ts +5 -5
  178. package/lib/esm/EntityState.d.ts.map +1 -1
  179. package/lib/esm/EntityState.js.map +1 -1
  180. package/lib/esm/IModelApp.d.ts +5 -0
  181. package/lib/esm/IModelApp.d.ts.map +1 -1
  182. package/lib/esm/IModelApp.js +16 -12
  183. package/lib/esm/IModelApp.js.map +1 -1
  184. package/lib/esm/IModelConnection.d.ts +51 -4
  185. package/lib/esm/IModelConnection.d.ts.map +1 -1
  186. package/lib/esm/IModelConnection.js +38 -3
  187. package/lib/esm/IModelConnection.js.map +1 -1
  188. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  189. package/lib/esm/LocalhostIpcApp.js +11 -1
  190. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  191. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  192. package/lib/esm/NoRenderApp.js +1 -0
  193. package/lib/esm/NoRenderApp.js.map +1 -1
  194. package/lib/esm/PerModelCategoryVisibility.d.ts +17 -0
  195. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  196. package/lib/esm/PerModelCategoryVisibility.js +63 -19
  197. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  198. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  199. package/lib/esm/RealityDataSource.js +6 -2
  200. package/lib/esm/RealityDataSource.js.map +1 -1
  201. package/lib/esm/SelectionSet.d.ts +30 -4
  202. package/lib/esm/SelectionSet.d.ts.map +1 -1
  203. package/lib/esm/SelectionSet.js +26 -2
  204. package/lib/esm/SelectionSet.js.map +1 -1
  205. package/lib/esm/SheetViewState.js +1 -1
  206. package/lib/esm/SheetViewState.js.map +1 -1
  207. package/lib/esm/SubCategoriesCache.d.ts +6 -12
  208. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  209. package/lib/esm/SubCategoriesCache.js +50 -39
  210. package/lib/esm/SubCategoriesCache.js.map +1 -1
  211. package/lib/esm/TentativePoint.js +1 -1
  212. package/lib/esm/TentativePoint.js.map +1 -1
  213. package/lib/esm/ViewState.d.ts +2 -3
  214. package/lib/esm/ViewState.d.ts.map +1 -1
  215. package/lib/esm/ViewState.js +13 -9
  216. package/lib/esm/ViewState.js.map +1 -1
  217. package/lib/esm/Viewport.d.ts +10 -10
  218. package/lib/esm/Viewport.d.ts.map +1 -1
  219. package/lib/esm/Viewport.js +19 -14
  220. package/lib/esm/Viewport.js.map +1 -1
  221. package/lib/esm/core-frontend.d.ts +0 -2
  222. package/lib/esm/core-frontend.d.ts.map +1 -1
  223. package/lib/esm/core-frontend.js +0 -2
  224. package/lib/esm/core-frontend.js.map +1 -1
  225. package/lib/esm/extension/ExtensionAdmin.d.ts +5 -2
  226. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  227. package/lib/esm/extension/ExtensionAdmin.js +24 -6
  228. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  229. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +0 -2
  230. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
  231. package/lib/esm/extension/providers/RemoteExtensionProvider.js +9 -22
  232. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  233. package/lib/esm/render/FeatureSymbology.js +2 -2
  234. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  235. package/lib/esm/render/GraphicBranch.d.ts +15 -9
  236. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  237. package/lib/esm/render/GraphicBranch.js +36 -0
  238. package/lib/esm/render/GraphicBranch.js.map +1 -1
  239. package/lib/esm/render/RenderSystem.d.ts +5 -0
  240. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  241. package/lib/esm/render/RenderSystem.js.map +1 -1
  242. package/lib/esm/render/primitives/EdgeParams.d.ts +11 -0
  243. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  244. package/lib/esm/render/primitives/EdgeParams.js +34 -28
  245. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  246. package/lib/esm/render/primitives/VertexTable.d.ts +11 -4
  247. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  248. package/lib/esm/render/primitives/VertexTable.js +14 -7
  249. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  250. package/lib/esm/render/primitives/VertexTableSplitter.d.ts +41 -0
  251. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  252. package/lib/esm/render/primitives/VertexTableSplitter.js +655 -0
  253. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -0
  254. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  255. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +3 -1
  256. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  257. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  258. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  259. package/lib/esm/render/webgl/FeatureOverrides.d.ts +4 -1
  260. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  261. package/lib/esm/render/webgl/FeatureOverrides.js +56 -26
  262. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  263. package/lib/esm/render/webgl/ShaderProgram.js +1 -1
  264. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  265. package/lib/esm/render/webgl/Target.d.ts +2 -1
  266. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  267. package/lib/esm/render/webgl/Target.js +1 -0
  268. package/lib/esm/render/webgl/Target.js.map +1 -1
  269. package/lib/esm/render/webgl/UniformHandle.d.ts +2 -1
  270. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  271. package/lib/esm/render/webgl/UniformHandle.js +15 -3
  272. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  273. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  274. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +4 -1
  275. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  276. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  277. package/lib/esm/render/webgl/glsl/RealityMesh.js +5 -2
  278. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  279. package/lib/esm/render-primitives.d.ts +1 -0
  280. package/lib/esm/render-primitives.d.ts.map +1 -1
  281. package/lib/esm/render-primitives.js +1 -0
  282. package/lib/esm/render-primitives.js.map +1 -1
  283. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  284. package/lib/esm/tile/ClassifierTileTree.js +10 -10
  285. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  286. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  287. package/lib/esm/tile/IModelTile.js +1 -0
  288. package/lib/esm/tile/IModelTile.js.map +1 -1
  289. package/lib/esm/tile/IModelTileTree.d.ts +3 -1
  290. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  291. package/lib/esm/tile/IModelTileTree.js +1 -0
  292. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  293. package/lib/esm/tile/ImdlReader.d.ts +9 -4
  294. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  295. package/lib/esm/tile/ImdlReader.js +174 -60
  296. package/lib/esm/tile/ImdlReader.js.map +1 -1
  297. package/lib/esm/tile/PrimaryTileTree.d.ts +8 -7
  298. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  299. package/lib/esm/tile/PrimaryTileTree.js +31 -26
  300. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  301. package/lib/esm/tile/TileAdmin.d.ts +21 -2
  302. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  303. package/lib/esm/tile/TileAdmin.js +33 -13
  304. package/lib/esm/tile/TileAdmin.js.map +1 -1
  305. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  306. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -2
  307. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  308. package/lib/esm/tile/map/MapCartoRectangle.d.ts +1 -0
  309. package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
  310. package/lib/esm/tile/map/MapCartoRectangle.js +1 -0
  311. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  312. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +2 -1
  313. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  314. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  315. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +2 -0
  316. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  317. package/lib/esm/tile/map/MapLayerImageryProvider.js +24 -10
  318. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  319. package/lib/esm/tile/map/MapLayerSources.d.ts +14 -9
  320. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  321. package/lib/esm/tile/map/MapLayerSources.js +14 -6
  322. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  323. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  324. package/lib/esm/tools/ClipViewTool.js +25 -2
  325. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  326. package/lib/esm/tools/PrimitiveTool.js +4 -4
  327. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  328. package/lib/esm/tools/Tool.d.ts +7 -7
  329. package/lib/esm/tools/Tool.js +7 -7
  330. package/lib/esm/tools/Tool.js.map +1 -1
  331. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  332. package/lib/esm/tools/ToolAdmin.js +25 -10
  333. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  334. package/package.json +27 -27
  335. package/lib/cjs/RenderScheduleState.d.ts +0 -24
  336. package/lib/cjs/RenderScheduleState.d.ts.map +0 -1
  337. package/lib/cjs/RenderScheduleState.js +0 -76
  338. package/lib/cjs/RenderScheduleState.js.map +0 -1
  339. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +0 -52
  340. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +0 -1
  341. package/lib/cjs/extension/providers/ExtensionServiceClient.js +0 -131
  342. package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +0 -1
  343. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +0 -37
  344. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +0 -1
  345. package/lib/cjs/extension/providers/ServiceExtensionProvider.js +0 -84
  346. package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +0 -1
  347. package/lib/esm/RenderScheduleState.d.ts +0 -24
  348. package/lib/esm/RenderScheduleState.d.ts.map +0 -1
  349. package/lib/esm/RenderScheduleState.js +0 -71
  350. package/lib/esm/RenderScheduleState.js.map +0 -1
  351. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +0 -52
  352. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +0 -1
  353. package/lib/esm/extension/providers/ExtensionServiceClient.js +0 -127
  354. package/lib/esm/extension/providers/ExtensionServiceClient.js.map +0 -1
  355. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +0 -37
  356. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +0 -1
  357. package/lib/esm/extension/providers/ServiceExtensionProvider.js +0 -80
  358. package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +0 -1
@@ -44,7 +44,6 @@ export * from "./NoRenderApp";
44
44
  export * from "./NotificationManager";
45
45
  export * from "./PerModelCategoryVisibility";
46
46
  export * from "./PlanarClipMaskState";
47
- export * from "./RenderScheduleState";
48
47
  export * from "./SelectionSet";
49
48
  export * from "./SheetViewState";
50
49
  export * from "./SpatialViewState";
@@ -68,7 +67,6 @@ export * from "./ViewStatus";
68
67
  export * from "./extension/Extension";
69
68
  export * from "./extension/providers/LocalExtensionProvider";
70
69
  export * from "./extension/providers/RemoteExtensionProvider";
71
- export * from "./extension/providers/ServiceExtensionProvider";
72
70
  export * from "./properties/AngleDescription";
73
71
  export * from "./properties/FormattedQuantityDescription";
74
72
  export * from "./properties/LengthDescription";
@@ -1 +1 @@
1
- {"version":3,"file":"core-frontend.d.ts","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-frontend.d.ts","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,6 @@ export * from "./NoRenderApp";
48
48
  export * from "./NotificationManager";
49
49
  export * from "./PerModelCategoryVisibility";
50
50
  export * from "./PlanarClipMaskState";
51
- export * from "./RenderScheduleState";
52
51
  export * from "./SelectionSet";
53
52
  export * from "./SheetViewState";
54
53
  export * from "./SpatialViewState";
@@ -72,7 +71,6 @@ export * from "./ViewStatus";
72
71
  export * from "./extension/Extension";
73
72
  export * from "./extension/providers/LocalExtensionProvider";
74
73
  export * from "./extension/providers/RemoteExtensionProvider";
75
- export * from "./extension/providers/ServiceExtensionProvider";
76
74
  export * from "./properties/AngleDescription";
77
75
  export * from "./properties/FormattedQuantityDescription";
78
76
  export * from "./properties/LengthDescription";
@@ -1 +1 @@
1
- {"version":3,"file":"core-frontend.js","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nexport * from \"./AccuDraw\";\r\nexport * from \"./AccuSnap\";\r\nexport * from \"./AuxCoordSys\";\r\nexport * from \"./BingLocation\";\r\nexport * from \"./BriefcaseConnection\";\r\nexport * from \"./BriefcaseTxns\";\r\nexport * from \"./CategorySelectorState\";\r\nexport * from \"./ChangeFlags\";\r\nexport * from \"./CheckpointConnection\";\r\nexport * from \"./ContextRealityModelState\";\r\nexport * from \"./CoordSystem\";\r\nexport * from \"./DecorationsCache\";\r\nexport * from \"./DevTools\";\r\nexport * from \"./DisplayStyleState\";\r\nexport * from \"./DrawingViewState\";\r\nexport * from \"./ElementLocateManager\";\r\nexport * from \"./EmphasizeElements\";\r\nexport * from \"./EntityState\";\r\nexport * from \"./EnvironmentDecorations\";\r\nexport * from \"./FeatureOverrideProvider\";\r\nexport * from \"./FlashSettings\";\r\nexport * from \"./FrontendLoggerCategory\";\r\nexport * from \"./FrontendHubAccess\";\r\nexport * from \"./Frustum2d\";\r\nexport * from \"./FrustumAnimator\";\r\nexport * from \"./FuzzySearch\";\r\nexport * from \"./GeoServices\";\r\nexport * from \"./GlobeAnimator\";\r\nexport * from \"./GraphicalEditingScope\";\r\nexport * from \"./HitDetail\";\r\nexport * from \"./ImageUtil\";\r\nexport * from \"./IModelApp\";\r\nexport * from \"./IModelConnection\";\r\nexport * from \"./IModelRoutingContext\";\r\nexport * from \"./IpcApp\";\r\nexport * from \"./LinePlaneIntersect\";\r\nexport * from \"./MarginPercent\";\r\nexport * from \"./Marker\";\r\nexport * from \"./ModelSelectorState\";\r\nexport * from \"./ModelState\";\r\nexport * from \"./NativeApp\";\r\nexport * from \"./NativeAppLogger\";\r\nexport * from \"./NoRenderApp\";\r\nexport * from \"./NotificationManager\";\r\nexport * from \"./PerModelCategoryVisibility\";\r\nexport * from \"./PlanarClipMaskState\";\r\nexport * from \"./RenderScheduleState\";\r\nexport * from \"./SelectionSet\";\r\nexport * from \"./SheetViewState\";\r\nexport * from \"./SpatialViewState\";\r\nexport * from \"./Sprites\";\r\nexport * from \"./StandardView\";\r\nexport * from \"./SubCategoriesCache\";\r\nexport * from \"./TentativePoint\";\r\nexport * from \"./Tiles\";\r\nexport * from \"./UserPreferences\";\r\nexport * from \"./ViewAnimation\";\r\nexport * from \"./ViewContext\";\r\nexport * from \"./ViewGlobalLocation\";\r\nexport * from \"./ViewingSpace\";\r\nexport * from \"./ViewManager\";\r\nexport * from \"./Viewport\";\r\nexport * from \"./ViewportSync\";\r\nexport * from \"./ViewPose\";\r\nexport * from \"./ViewRect\";\r\nexport * from \"./ViewState\";\r\nexport * from \"./ViewStatus\";\r\nexport * from \"./extension/Extension\";\r\nexport * from \"./extension/providers/LocalExtensionProvider\";\r\nexport * from \"./extension/providers/RemoteExtensionProvider\";\r\nexport * from \"./extension/providers/ServiceExtensionProvider\";\r\nexport * from \"./properties/AngleDescription\";\r\nexport * from \"./properties/FormattedQuantityDescription\";\r\nexport * from \"./properties/LengthDescription\";\r\nexport * from \"./quantity-formatting/QuantityFormatter\";\r\nexport * from \"./quantity-formatting/BaseUnitFormattingSettingsProvider\";\r\nexport * from \"./quantity-formatting/LocalUnitFormatProvider\";\r\nexport * from \"./quantity-formatting/QuantityTypesEditorSpecs\";\r\nexport * from \"./render/CanvasDecoration\";\r\nexport * from \"./render/Decorations\";\r\nexport * from \"./render/FeatureSymbology\";\r\nexport * from \"./render/FrameStats\";\r\nexport * from \"./render/GraphicBranch\";\r\nexport * from \"./render/GraphicBuilder\";\r\nexport * from \"./render/GraphicPrimitive\";\r\nexport * from \"./render/InstancedGraphicParams\";\r\nexport * from \"./render/MockRender\";\r\nexport * from \"./render/ParticleCollectionBuilder\";\r\nexport * from \"./render/Pixel\";\r\nexport * from \"./render/RenderClipVolume\";\r\nexport * from \"./render/RenderGraphic\";\r\nexport * from \"./render/RenderMaterial\";\r\nexport * from \"./render/RenderMemory\";\r\nexport * from \"./render/RenderPlan\";\r\nexport * from \"./render/RenderPlanarClassifier\";\r\nexport * from \"./render/RenderTarget\";\r\nexport * from \"./render/RenderSystem\";\r\nexport * from \"./render/RenderTexture\";\r\nexport * from \"./render/Scene\";\r\nexport * from \"./render/ScreenSpaceEffectBuilder\";\r\nexport * from \"./render/VisibleFeature\";\r\nexport * from \"./render/webgl/PerformanceMetrics\";\r\nexport * from \"./render/webgl/Target\";\r\nexport * from \"./render/webgl/IModelFrameLifecycle\";\r\nexport * from \"./tile/internal\";\r\nexport * from \"./tools/AccuDrawTool\";\r\nexport * from \"./tools/ClipViewTool\";\r\nexport * from \"./tools/EditManipulator\";\r\nexport * from \"./tools/ElementSetTool\";\r\nexport * from \"./tools/EventController\";\r\nexport * from \"./tools/IdleTool\";\r\nexport * from \"./tools/MeasureTool\";\r\nexport * from \"./tools/PrimitiveTool\";\r\nexport * from \"./tools/SelectTool\";\r\nexport * from \"./tools/Tool\";\r\nexport * from \"./tools/ToolSettings\";\r\nexport * from \"./tools/ToolAdmin\";\r\nexport * from \"./tools/ToolAssistance\";\r\nexport * from \"./tools/ViewTool\";\r\nexport * from \"./BackgroundMapGeometry\";\r\nexport * from \"./ViewCreator2d\";\r\nexport * from \"./ViewCreator3d\";\r\nexport * from \"./LocalhostIpcApp\";\r\nexport * from \"./RealityDataSource\";\r\n// TODO/FIX: \"./extension/ExtensionRuntime\" import has to be last to avoid circular dependency errors.\r\nimport \"./extension/ExtensionRuntime\";\r\n\r\n/** @docs-package-description\r\n * The core-frontend package always runs in a web browser. It contains classes for [querying iModels and showing views]($docs/learning/frontend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description IModelApp\r\n * Classes for configuring and administering an iTwin.js application.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description IModelConnection\r\n * Classes for working with a connection to an [iModel briefcase]($docs/learning/IModels.md)\r\n */\r\n/**\r\n * @docs-group-description ElementState\r\n * Classes for working with the *state* of Elements in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description ModelState\r\n * Classes for working with the *state* of Models in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Tools\r\n * Classes for [working with Tools]($docs/learning/frontend/Tools.md)\r\n */\r\n/**\r\n * @docs-group-description Measure\r\n * Classes for reporting point to point distances and mass properties of elements.\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Classes for [working with Views]($docs/learning/frontend/Views.md)\r\n */\r\n/**\r\n * @docs-group-description LocatingElements\r\n * Classes for locating and snapping to elements in views.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description AccuDraw\r\n * AccuDraw provides helpful assistance for creating and modifying elements in a view.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Notifications\r\n * Notifications provide feedback to the user of something of interest.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Extensions\r\n * Classes for creating and managing Extensions.\r\n */\r\n/**\r\n * @docs-group-description Properties\r\n * Classes for working with property records and descriptions.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Classes for rendering the contents of views.\r\n */\r\n/**\r\n * @docs-group-description SelectionSet\r\n * Classes for working with the set of selected elements.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * Classes for working with Native Applications\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package\r\n */\r\n/**\r\n * @docs-group-description QuantityFormatting\r\n * Classes for formatting and parsing quantity values.\r\n */\r\n/**\r\n * @docs-group-description Tiles\r\n * Classes representing graphics as [hierarchical 3d tiles](https://github.com/CesiumGS/3d-tiles).\r\n */\r\n/**\r\n * @docs-group-description HubAccess\r\n * APIs for working with IModelHub\r\n */\r\n/**\r\n * @docs-group-description UserPreferences\r\n * APIs for working with user preferences in an iModelApp.\r\n * See [the learning articles]($docs/learning/frontend/preferences.md).\r\n */\r\n/**\r\n * @docs-group-description MapLayers\r\n * Classes supporting map layers display.\r\n */\r\n"]}
1
+ {"version":3,"file":"core-frontend.js","sourceRoot":"","sources":["../../src/core-frontend.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nexport * from \"./AccuDraw\";\r\nexport * from \"./AccuSnap\";\r\nexport * from \"./AuxCoordSys\";\r\nexport * from \"./BingLocation\";\r\nexport * from \"./BriefcaseConnection\";\r\nexport * from \"./BriefcaseTxns\";\r\nexport * from \"./CategorySelectorState\";\r\nexport * from \"./ChangeFlags\";\r\nexport * from \"./CheckpointConnection\";\r\nexport * from \"./ContextRealityModelState\";\r\nexport * from \"./CoordSystem\";\r\nexport * from \"./DecorationsCache\";\r\nexport * from \"./DevTools\";\r\nexport * from \"./DisplayStyleState\";\r\nexport * from \"./DrawingViewState\";\r\nexport * from \"./ElementLocateManager\";\r\nexport * from \"./EmphasizeElements\";\r\nexport * from \"./EntityState\";\r\nexport * from \"./EnvironmentDecorations\";\r\nexport * from \"./FeatureOverrideProvider\";\r\nexport * from \"./FlashSettings\";\r\nexport * from \"./FrontendLoggerCategory\";\r\nexport * from \"./FrontendHubAccess\";\r\nexport * from \"./Frustum2d\";\r\nexport * from \"./FrustumAnimator\";\r\nexport * from \"./FuzzySearch\";\r\nexport * from \"./GeoServices\";\r\nexport * from \"./GlobeAnimator\";\r\nexport * from \"./GraphicalEditingScope\";\r\nexport * from \"./HitDetail\";\r\nexport * from \"./ImageUtil\";\r\nexport * from \"./IModelApp\";\r\nexport * from \"./IModelConnection\";\r\nexport * from \"./IModelRoutingContext\";\r\nexport * from \"./IpcApp\";\r\nexport * from \"./LinePlaneIntersect\";\r\nexport * from \"./MarginPercent\";\r\nexport * from \"./Marker\";\r\nexport * from \"./ModelSelectorState\";\r\nexport * from \"./ModelState\";\r\nexport * from \"./NativeApp\";\r\nexport * from \"./NativeAppLogger\";\r\nexport * from \"./NoRenderApp\";\r\nexport * from \"./NotificationManager\";\r\nexport * from \"./PerModelCategoryVisibility\";\r\nexport * from \"./PlanarClipMaskState\";\r\nexport * from \"./SelectionSet\";\r\nexport * from \"./SheetViewState\";\r\nexport * from \"./SpatialViewState\";\r\nexport * from \"./Sprites\";\r\nexport * from \"./StandardView\";\r\nexport * from \"./SubCategoriesCache\";\r\nexport * from \"./TentativePoint\";\r\nexport * from \"./Tiles\";\r\nexport * from \"./UserPreferences\";\r\nexport * from \"./ViewAnimation\";\r\nexport * from \"./ViewContext\";\r\nexport * from \"./ViewGlobalLocation\";\r\nexport * from \"./ViewingSpace\";\r\nexport * from \"./ViewManager\";\r\nexport * from \"./Viewport\";\r\nexport * from \"./ViewportSync\";\r\nexport * from \"./ViewPose\";\r\nexport * from \"./ViewRect\";\r\nexport * from \"./ViewState\";\r\nexport * from \"./ViewStatus\";\r\nexport * from \"./extension/Extension\";\r\nexport * from \"./extension/providers/LocalExtensionProvider\";\r\nexport * from \"./extension/providers/RemoteExtensionProvider\";\r\nexport * from \"./properties/AngleDescription\";\r\nexport * from \"./properties/FormattedQuantityDescription\";\r\nexport * from \"./properties/LengthDescription\";\r\nexport * from \"./quantity-formatting/QuantityFormatter\";\r\nexport * from \"./quantity-formatting/BaseUnitFormattingSettingsProvider\";\r\nexport * from \"./quantity-formatting/LocalUnitFormatProvider\";\r\nexport * from \"./quantity-formatting/QuantityTypesEditorSpecs\";\r\nexport * from \"./render/CanvasDecoration\";\r\nexport * from \"./render/Decorations\";\r\nexport * from \"./render/FeatureSymbology\";\r\nexport * from \"./render/FrameStats\";\r\nexport * from \"./render/GraphicBranch\";\r\nexport * from \"./render/GraphicBuilder\";\r\nexport * from \"./render/GraphicPrimitive\";\r\nexport * from \"./render/InstancedGraphicParams\";\r\nexport * from \"./render/MockRender\";\r\nexport * from \"./render/ParticleCollectionBuilder\";\r\nexport * from \"./render/Pixel\";\r\nexport * from \"./render/RenderClipVolume\";\r\nexport * from \"./render/RenderGraphic\";\r\nexport * from \"./render/RenderMaterial\";\r\nexport * from \"./render/RenderMemory\";\r\nexport * from \"./render/RenderPlan\";\r\nexport * from \"./render/RenderPlanarClassifier\";\r\nexport * from \"./render/RenderTarget\";\r\nexport * from \"./render/RenderSystem\";\r\nexport * from \"./render/RenderTexture\";\r\nexport * from \"./render/Scene\";\r\nexport * from \"./render/ScreenSpaceEffectBuilder\";\r\nexport * from \"./render/VisibleFeature\";\r\nexport * from \"./render/webgl/PerformanceMetrics\";\r\nexport * from \"./render/webgl/Target\";\r\nexport * from \"./render/webgl/IModelFrameLifecycle\";\r\nexport * from \"./tile/internal\";\r\nexport * from \"./tools/AccuDrawTool\";\r\nexport * from \"./tools/ClipViewTool\";\r\nexport * from \"./tools/EditManipulator\";\r\nexport * from \"./tools/ElementSetTool\";\r\nexport * from \"./tools/EventController\";\r\nexport * from \"./tools/IdleTool\";\r\nexport * from \"./tools/MeasureTool\";\r\nexport * from \"./tools/PrimitiveTool\";\r\nexport * from \"./tools/SelectTool\";\r\nexport * from \"./tools/Tool\";\r\nexport * from \"./tools/ToolSettings\";\r\nexport * from \"./tools/ToolAdmin\";\r\nexport * from \"./tools/ToolAssistance\";\r\nexport * from \"./tools/ViewTool\";\r\nexport * from \"./BackgroundMapGeometry\";\r\nexport * from \"./ViewCreator2d\";\r\nexport * from \"./ViewCreator3d\";\r\nexport * from \"./LocalhostIpcApp\";\r\nexport * from \"./RealityDataSource\";\r\n// TODO/FIX: \"./extension/ExtensionRuntime\" import has to be last to avoid circular dependency errors.\r\nimport \"./extension/ExtensionRuntime\";\r\n\r\n/** @docs-package-description\r\n * The core-frontend package always runs in a web browser. It contains classes for [querying iModels and showing views]($docs/learning/frontend/index.md).\r\n */\r\n\r\n/**\r\n * @docs-group-description IModelApp\r\n * Classes for configuring and administering an iTwin.js application.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description IModelConnection\r\n * Classes for working with a connection to an [iModel briefcase]($docs/learning/IModels.md)\r\n */\r\n/**\r\n * @docs-group-description ElementState\r\n * Classes for working with the *state* of Elements in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description ModelState\r\n * Classes for working with the *state* of Models in the frontend.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Tools\r\n * Classes for [working with Tools]($docs/learning/frontend/Tools.md)\r\n */\r\n/**\r\n * @docs-group-description Measure\r\n * Classes for reporting point to point distances and mass properties of elements.\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Classes for [working with Views]($docs/learning/frontend/Views.md)\r\n */\r\n/**\r\n * @docs-group-description LocatingElements\r\n * Classes for locating and snapping to elements in views.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description AccuDraw\r\n * AccuDraw provides helpful assistance for creating and modifying elements in a view.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Notifications\r\n * Notifications provide feedback to the user of something of interest.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Extensions\r\n * Classes for creating and managing Extensions.\r\n */\r\n/**\r\n * @docs-group-description Properties\r\n * Classes for working with property records and descriptions.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Classes for rendering the contents of views.\r\n */\r\n/**\r\n * @docs-group-description SelectionSet\r\n * Classes for working with the set of selected elements.\r\n * See [the learning articles]($docs/learning/frontend/index.md).\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * Classes for working with Native Applications\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package\r\n */\r\n/**\r\n * @docs-group-description QuantityFormatting\r\n * Classes for formatting and parsing quantity values.\r\n */\r\n/**\r\n * @docs-group-description Tiles\r\n * Classes representing graphics as [hierarchical 3d tiles](https://github.com/CesiumGS/3d-tiles).\r\n */\r\n/**\r\n * @docs-group-description HubAccess\r\n * APIs for working with IModelHub\r\n */\r\n/**\r\n * @docs-group-description UserPreferences\r\n * APIs for working with user preferences in an iModelApp.\r\n * See [the learning articles]($docs/learning/frontend/preferences.md).\r\n */\r\n/**\r\n * @docs-group-description MapLayers\r\n * Classes supporting map layers display.\r\n */\r\n"]}
@@ -29,10 +29,13 @@ export declare class ExtensionAdmin {
29
29
  */
30
30
  addExtensions(providers: ExtensionProvider[]): Promise<void[]>;
31
31
  /**
32
- * Register a url (hostname) for extension hosting (i.e. https://localhost:3000, https://www.yourdomain.com, etc.)
33
- * @param hostUrl
32
+ * Registers a hostname for an extension.
33
+ * Once a hostname has been registered, only remote extensions from registered hosts are permitted to be added.
34
+ * @param hostUrl (string) Accepts both URLs and hostnames (e.g., http://localhost:3000, yourdomain.com, https://www.yourdomain.com, etc.).
34
35
  */
35
36
  registerHost(hostUrl: string): void;
37
+ /** Returns the hostname of an input string. Throws an error if input is not a valid hostname (or URL). */
38
+ private getHostName;
36
39
  /** Loops over all enabled Extensions and triggers each one if the provided event is defined. */
37
40
  private activateExtensionEvents;
38
41
  /** Executes the extension. Catches and logs any errors (so that an extension will not crash the main application). */
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionAdmin.d.ts","sourceRoot":"","sources":["../../../src/extension/ExtensionAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA4BxE;;;GAGG;AACH,qBAAa,cAAc;IACzB,2GAA2G;IAC3G,OAAO,CAAC,WAAW,CAA0E;IAC7F,OAAO,CAAC,MAAM,CAAW;IAEzB;;OAEG;IACI,SAAS,sBAEd;;IAMF;;;;;OAKG;IACU,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrE;;;;OAIG;IACU,aAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAM3E;;;OAGG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM;IAOnC,gGAAgG;YAClF,uBAAuB;IAWrC,sHAAsH;YACxG,QAAQ;CAOvB"}
1
+ {"version":3,"file":"ExtensionAdmin.d.ts","sourceRoot":"","sources":["../../../src/extension/ExtensionAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA4BxE;;;GAGG;AACH,qBAAa,cAAc;IACzB,2GAA2G;IAC3G,OAAO,CAAC,WAAW,CAA0E;IAC7F,OAAO,CAAC,MAAM,CAAW;IAEzB;;OAEG;IACI,SAAS,sBAEd;;IAMF;;;;;OAKG;IACU,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrE;;;;OAIG;IACU,aAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAM3E;;;;OAIG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM;IAOnC,0GAA0G;IAC1G,OAAO,CAAC,WAAW;IAgBnB,gGAAgG;YAClF,uBAAuB;IAWrC,sHAAsH;YACxG,QAAQ;CAOvB"}
@@ -47,7 +47,7 @@ export class ExtensionAdmin {
47
47
  provider.execute(); // eslint-disable-line @typescript-eslint/no-floating-promises
48
48
  }
49
49
  catch (e) {
50
- throw new Error(`Failed to get manifest from extension: ${e}`);
50
+ throw new Error(`Failed to get extension manifest ${provider.hostname ? `at ${provider.hostname}` : ""}: ${e}`);
51
51
  }
52
52
  }
53
53
  /**
@@ -59,13 +59,31 @@ export class ExtensionAdmin {
59
59
  return Promise.all(providers.map(async (provider) => this.addExtension(provider)));
60
60
  }
61
61
  /**
62
- * Register a url (hostname) for extension hosting (i.e. https://localhost:3000, https://www.yourdomain.com, etc.)
63
- * @param hostUrl
62
+ * Registers a hostname for an extension.
63
+ * Once a hostname has been registered, only remote extensions from registered hosts are permitted to be added.
64
+ * @param hostUrl (string) Accepts both URLs and hostnames (e.g., http://localhost:3000, yourdomain.com, https://www.yourdomain.com, etc.).
64
65
  */
65
66
  registerHost(hostUrl) {
66
- const url = new URL(hostUrl).hostname.replace("www", "");
67
- if (this._hosts.indexOf(url) < 0) {
68
- this._hosts.push(url);
67
+ const hostname = this.getHostName(hostUrl);
68
+ if (this._hosts.indexOf(hostname) < 0) {
69
+ this._hosts.push(hostname);
70
+ }
71
+ }
72
+ /** Returns the hostname of an input string. Throws an error if input is not a valid hostname (or URL). */
73
+ getHostName(inputUrl) {
74
+ // inputs without a protocol (e.g., http://) will throw an error in URL constructor
75
+ const inputWithProtocol = /(http|https):\/\//.test(inputUrl) ?
76
+ inputUrl :
77
+ `https://${inputUrl}`;
78
+ try {
79
+ const hostname = new URL(inputWithProtocol).hostname.replace("www.", "");
80
+ return hostname;
81
+ }
82
+ catch (e) {
83
+ if (e instanceof TypeError) {
84
+ throw new Error("Argument hostUrl should be a valid URL or hostname (i.e. http://localhost:3000, yourdomain.com, etc.).");
85
+ }
86
+ throw e;
69
87
  }
70
88
  }
71
89
  /** Loops over all enabled Extensions and triggers each one if the provided event is defined. */
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionAdmin.js","sourceRoot":"","sources":["../../../src/extension/ExtensionAdmin.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 Extensions\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\n\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport type { ExtensionManifest, ExtensionProvider } from \"./Extension\";\r\n\r\n/** The Extensions loading system has the following goals:\r\n * 1. Only fetch what is needed when it is required\r\n * 1. Load a manifest file\r\n * 2. Load the the main module when necessary (usually at an activation event)\r\n * 2. Download the extension's files\r\n *\r\n * 3 ways to load an Extension into the system:\r\n *\r\n * 1. Load both the Extension Manifest and import the main module of the extension from a local file/package.\r\n * 2. A minimum set of properties to get the manifest and javascript from a remote server.\r\n * 3. A minimum set of properties to get the manifest and javascript from Bentley's Extension Service.\r\n *\r\n * An Extension must be added to ExtensionAdmin before it can be executed during activation events.\r\n */\r\n\r\n/**\r\n * A \"ready to use\" Extension (contains a manifest object and an extension provider to help execute).\r\n * Will be used as the type for in-memory extensions in the ExtensionAdmin\r\n */\r\ninterface InstalledExtension {\r\n /** An extension provider that has been added to ExtensionAdmin */\r\n provider: ExtensionProvider;\r\n /** The manifest (package.json) of the extension */\r\n manifest: ExtensionManifest;\r\n}\r\n\r\n/** The Extension Admin controls the list of currently loaded Extensions.\r\n *\r\n * @alpha\r\n */\r\nexport class ExtensionAdmin {\r\n /** Defines the set of extensions that are currently known and can be invoked during activation events. */\r\n private _extensions: Map<string, InstalledExtension> = new Map<string, InstalledExtension>();\r\n private _hosts: string[];\r\n\r\n /** Fired when an Extension has been added or removed.\r\n * @internal\r\n */\r\n public onStartup = async () => {\r\n await this.activateExtensionEvents(\"onStartup\");\r\n };\r\n\r\n public constructor() {\r\n this._hosts = [];\r\n }\r\n\r\n /**\r\n * Adds an extension.\r\n * The manifest will be fetched and the extension will be activated on an activation event.\r\n * @param provider\r\n * @alpha\r\n */\r\n public async addExtension(provider: ExtensionProvider): Promise<void> {\r\n if (provider.hostname) {\r\n const hostName = provider.hostname;\r\n if (this._hosts.length > 0 && this._hosts.indexOf(hostName) < 0) {\r\n throw new Error(`Error loading extension: ${hostName} was not registered.`);\r\n }\r\n }\r\n try {\r\n const manifest = await provider.getManifest();\r\n this._extensions.set(manifest.name, {\r\n manifest,\r\n provider,\r\n });\r\n // TODO - temporary fix to execute the missed startup event\r\n if (manifest.activationEvents.includes(\"onStartup\"))\r\n provider.execute(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n } catch (e) {\r\n throw new Error(`Failed to get manifest from extension: ${e}`);\r\n }\r\n }\r\n\r\n /**\r\n * Adds a list of extensions\r\n * @param providers\r\n * @alpha\r\n */\r\n public async addExtensions(providers: ExtensionProvider[]): Promise<void[]> {\r\n return Promise.all(\r\n providers.map(async (provider) => this.addExtension(provider))\r\n );\r\n }\r\n\r\n /**\r\n * Register a url (hostname) for extension hosting (i.e. https://localhost:3000, https://www.yourdomain.com, etc.)\r\n * @param hostUrl\r\n */\r\n public registerHost(hostUrl: string) {\r\n const url = new URL(hostUrl).hostname.replace(\"www\", \"\");\r\n if (this._hosts.indexOf(url) < 0) {\r\n this._hosts.push(url);\r\n }\r\n }\r\n\r\n /** Loops over all enabled Extensions and triggers each one if the provided event is defined. */\r\n private async activateExtensionEvents(event: string) {\r\n for (const extension of this._extensions.values()) {\r\n if (!extension.manifest.activationEvents) continue;\r\n for (const activationEvent of extension.manifest.activationEvents) {\r\n if (activationEvent === event) {\r\n this._execute(extension); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Executes the extension. Catches and logs any errors (so that an extension will not crash the main application). */\r\n private async _execute(extension: InstalledExtension) {\r\n try {\r\n await extension.provider.execute();\r\n } catch (e) {\r\n Logger.logError(FrontendLoggerCategory.Extensions, `Error executing extension ${extension.manifest.name}: ${e}`);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ExtensionAdmin.js","sourceRoot":"","sources":["../../../src/extension/ExtensionAdmin.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 Extensions\r\n */\r\n\r\nimport { Logger } from \"@itwin/core-bentley\";\r\n\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport type { ExtensionManifest, ExtensionProvider } from \"./Extension\";\r\n\r\n/** The Extensions loading system has the following goals:\r\n * 1. Only fetch what is needed when it is required\r\n * 1. Load a manifest file\r\n * 2. Load the the main module when necessary (usually at an activation event)\r\n * 2. Download the extension's files\r\n *\r\n * 3 ways to load an Extension into the system:\r\n *\r\n * 1. Load both the Extension Manifest and import the main module of the extension from a local file/package.\r\n * 2. A minimum set of properties to get the manifest and javascript from a remote server.\r\n * 3. A minimum set of properties to get the manifest and javascript from Bentley's Extension Service.\r\n *\r\n * An Extension must be added to ExtensionAdmin before it can be executed during activation events.\r\n */\r\n\r\n/**\r\n * A \"ready to use\" Extension (contains a manifest object and an extension provider to help execute).\r\n * Will be used as the type for in-memory extensions in the ExtensionAdmin\r\n */\r\ninterface InstalledExtension {\r\n /** An extension provider that has been added to ExtensionAdmin */\r\n provider: ExtensionProvider;\r\n /** The manifest (package.json) of the extension */\r\n manifest: ExtensionManifest;\r\n}\r\n\r\n/** The Extension Admin controls the list of currently loaded Extensions.\r\n *\r\n * @alpha\r\n */\r\nexport class ExtensionAdmin {\r\n /** Defines the set of extensions that are currently known and can be invoked during activation events. */\r\n private _extensions: Map<string, InstalledExtension> = new Map<string, InstalledExtension>();\r\n private _hosts: string[];\r\n\r\n /** Fired when an Extension has been added or removed.\r\n * @internal\r\n */\r\n public onStartup = async () => {\r\n await this.activateExtensionEvents(\"onStartup\");\r\n };\r\n\r\n public constructor() {\r\n this._hosts = [];\r\n }\r\n\r\n /**\r\n * Adds an extension.\r\n * The manifest will be fetched and the extension will be activated on an activation event.\r\n * @param provider\r\n * @alpha\r\n */\r\n public async addExtension(provider: ExtensionProvider): Promise<void> {\r\n if (provider.hostname) {\r\n const hostName = provider.hostname;\r\n if (this._hosts.length > 0 && this._hosts.indexOf(hostName) < 0) {\r\n throw new Error(`Error loading extension: ${hostName} was not registered.`);\r\n }\r\n }\r\n try {\r\n const manifest = await provider.getManifest();\r\n this._extensions.set(manifest.name, {\r\n manifest,\r\n provider,\r\n });\r\n // TODO - temporary fix to execute the missed startup event\r\n if (manifest.activationEvents.includes(\"onStartup\"))\r\n provider.execute(); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n } catch (e) {\r\n throw new Error(`Failed to get extension manifest ${provider.hostname ? `at ${provider.hostname}` : \"\"}: ${e}`);\r\n }\r\n }\r\n\r\n /**\r\n * Adds a list of extensions\r\n * @param providers\r\n * @alpha\r\n */\r\n public async addExtensions(providers: ExtensionProvider[]): Promise<void[]> {\r\n return Promise.all(\r\n providers.map(async (provider) => this.addExtension(provider))\r\n );\r\n }\r\n\r\n /**\r\n * Registers a hostname for an extension.\r\n * Once a hostname has been registered, only remote extensions from registered hosts are permitted to be added.\r\n * @param hostUrl (string) Accepts both URLs and hostnames (e.g., http://localhost:3000, yourdomain.com, https://www.yourdomain.com, etc.).\r\n */\r\n public registerHost(hostUrl: string) {\r\n const hostname = this.getHostName(hostUrl);\r\n if (this._hosts.indexOf(hostname) < 0) {\r\n this._hosts.push(hostname);\r\n }\r\n }\r\n\r\n /** Returns the hostname of an input string. Throws an error if input is not a valid hostname (or URL). */\r\n private getHostName(inputUrl: string): string {\r\n // inputs without a protocol (e.g., http://) will throw an error in URL constructor\r\n const inputWithProtocol = /(http|https):\\/\\//.test(inputUrl) ?\r\n inputUrl :\r\n `https://${inputUrl}`;\r\n try {\r\n const hostname = new URL(inputWithProtocol).hostname.replace(\"www.\", \"\");\r\n return hostname;\r\n } catch (e) {\r\n if (e instanceof TypeError) {\r\n throw new Error(\"Argument hostUrl should be a valid URL or hostname (i.e. http://localhost:3000, yourdomain.com, etc.).\");\r\n }\r\n throw e;\r\n }\r\n }\r\n\r\n /** Loops over all enabled Extensions and triggers each one if the provided event is defined. */\r\n private async activateExtensionEvents(event: string) {\r\n for (const extension of this._extensions.values()) {\r\n if (!extension.manifest.activationEvents) continue;\r\n for (const activationEvent of extension.manifest.activationEvents) {\r\n if (activationEvent === event) {\r\n this._execute(extension); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n }\r\n }\r\n }\r\n }\r\n\r\n /** Executes the extension. Catches and logs any errors (so that an extension will not crash the main application). */\r\n private async _execute(extension: InstalledExtension) {\r\n try {\r\n await extension.provider.execute();\r\n } catch (e) {\r\n Logger.logError(FrontendLoggerCategory.Extensions, `Error executing extension ${extension.manifest.name}: ${e}`);\r\n }\r\n }\r\n}\r\n"]}
@@ -30,7 +30,5 @@ export declare class RemoteExtensionProvider implements ExtensionProvider {
30
30
  * Throws an error if the provided manifestUrl is not accessible.
31
31
  */
32
32
  getManifest(): Promise<ExtensionManifest>;
33
- /** Checks if url actually exists */
34
- private _exists;
35
33
  }
36
34
  //# sourceMappingURL=RemoteExtensionProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteExtensionProvider.d.ts","sourceRoot":"","sources":["../../../../src/extension/providers/RemoteExtensionProvider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAGtB;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAInD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,4DAA4D;IAC5D,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAEJ,MAAM,EAAE,4BAA4B;IAIjE;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAQvC;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQtD,oCAAoC;YACtB,OAAO;CAWtB"}
1
+ {"version":3,"file":"RemoteExtensionProvider.d.ts","sourceRoot":"","sources":["../../../../src/extension/providers/RemoteExtensionProvider.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAInD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,4DAA4D;IAC5D,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAEJ,MAAM,EAAE,4BAA4B;IAIjE;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAWvD"}
@@ -1,3 +1,4 @@
1
+ import { request } from "../../request/Request";
1
2
  import { loadScript } from "./ExtensionLoadScript";
2
3
  /**
3
4
  * Implements a "remote" extension.
@@ -15,10 +16,6 @@ export class RemoteExtensionProvider {
15
16
  * Throws an error if the provided jsUrl is not accessible.
16
17
  */
17
18
  async execute() {
18
- const doesUrlExist = await this._exists(this._props.jsUrl);
19
- if (!doesUrlExist) {
20
- throw new Error(`Extension at ${this._props.jsUrl} could not be found.`);
21
- }
22
19
  return loadScript(this._props.jsUrl);
23
20
  }
24
21
  /**
@@ -26,24 +23,14 @@ export class RemoteExtensionProvider {
26
23
  * Throws an error if the provided manifestUrl is not accessible.
27
24
  */
28
25
  async getManifest() {
29
- const doesUrlExist = await this._exists(this._props.manifestUrl);
30
- if (!doesUrlExist) {
31
- throw new Error(`Manifest at ${this._props.manifestUrl} could not be found.`);
32
- }
33
- return (await fetch(this._props.manifestUrl)).json();
34
- }
35
- /** Checks if url actually exists */
36
- async _exists(url) {
37
- let exists = false;
38
- try {
39
- const response = await fetch(url, { method: "HEAD" });
40
- if (response.status === 200)
41
- exists = true;
42
- }
43
- catch (error) {
44
- exists = false;
45
- }
46
- return exists;
26
+ const options = { method: "GET" };
27
+ const response = await request(this._props.manifestUrl, options);
28
+ const data = response.body || (() => {
29
+ if (!response.text)
30
+ throw new Error("Manifest file was empty.");
31
+ return JSON.parse(response.text);
32
+ })();
33
+ return data;
47
34
  }
48
35
  }
49
36
  //# sourceMappingURL=RemoteExtensionProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteExtensionProvider.js","sourceRoot":"","sources":["../../../../src/extension/providers/RemoteExtensionProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAanD;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAIlC,YAA6B,MAAoC;QAApC,WAAM,GAAN,MAAM,CAA8B;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC,CAAC;SAC1E;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW;QACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,WAAW,sBAAsB,CAAC,CAAC;SAC/E;QACD,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IAED,oCAAoC;IAC5B,KAAK,CAAC,OAAO,CAAC,GAAW;QAC/B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACzB,MAAM,GAAG,IAAI,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,GAAG,KAAK,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF","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\nimport type {\r\n ExtensionManifest,\r\n ExtensionProvider,\r\n} from \"../Extension\";\r\nimport { loadScript } from \"./ExtensionLoadScript\";\r\n\r\n/**\r\n * Required props for a remote extension provider\r\n * @alpha\r\n */\r\nexport interface RemoteExtensionProviderProps {\r\n /** URL where the extension entry point can be loaded from */\r\n jsUrl: string;\r\n /** URL where the manifest (package.json) can be loaded from */\r\n manifestUrl: string;\r\n}\r\n\r\n/**\r\n * Implements a \"remote\" extension.\r\n * Remote extensions are hosted on an external server.\r\n * The execute() and getManifest() methods are used by the ExtensionAdmin to load and execute the extension.\r\n * @alpha\r\n */\r\nexport class RemoteExtensionProvider implements ExtensionProvider {\r\n /** The name of the server where the extension is hosted. */\r\n public readonly hostname: string;\r\n\r\n constructor(private readonly _props: RemoteExtensionProviderProps) {\r\n this.hostname = new URL(this._props.jsUrl).hostname.replace(\"www\", \"\");\r\n }\r\n\r\n /**\r\n * Attempts to execute an extension.\r\n * Throws an error if the provided jsUrl is not accessible.\r\n */\r\n public async execute(): Promise<string> {\r\n const doesUrlExist = await this._exists(this._props.jsUrl);\r\n if (!doesUrlExist) {\r\n throw new Error(`Extension at ${this._props.jsUrl} could not be found.`);\r\n }\r\n return loadScript(this._props.jsUrl);\r\n }\r\n\r\n /**\r\n * Attempts to fetch an extension's manifest (package.json) file.\r\n * Throws an error if the provided manifestUrl is not accessible.\r\n */\r\n public async getManifest(): Promise<ExtensionManifest> {\r\n const doesUrlExist = await this._exists(this._props.manifestUrl);\r\n if (!doesUrlExist) {\r\n throw new Error(`Manifest at ${this._props.manifestUrl} could not be found.`);\r\n }\r\n return (await fetch(this._props.manifestUrl)).json();\r\n }\r\n\r\n /** Checks if url actually exists */\r\n private async _exists(url: string): Promise<boolean> {\r\n let exists = false;\r\n try {\r\n const response = await fetch(url, { method: \"HEAD\" });\r\n if (response.status === 200)\r\n exists = true;\r\n } catch (error) {\r\n exists = false;\r\n }\r\n return exists;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RemoteExtensionProvider.js","sourceRoot":"","sources":["../../../../src/extension/providers/RemoteExtensionProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAkB,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAanD;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAIlC,YAA6B,MAAoC;QAApC,WAAM,GAAN,MAAM,CAA8B;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW;QACtB,MAAM,OAAO,GAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI;gBAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC;CAEF","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\nimport type {\r\n ExtensionManifest,\r\n ExtensionProvider,\r\n} from \"../Extension\";\r\nimport { request, RequestOptions } from \"../../request/Request\";\r\nimport { loadScript } from \"./ExtensionLoadScript\";\r\n\r\n/**\r\n * Required props for a remote extension provider\r\n * @alpha\r\n */\r\nexport interface RemoteExtensionProviderProps {\r\n /** URL where the extension entry point can be loaded from */\r\n jsUrl: string;\r\n /** URL where the manifest (package.json) can be loaded from */\r\n manifestUrl: string;\r\n}\r\n\r\n/**\r\n * Implements a \"remote\" extension.\r\n * Remote extensions are hosted on an external server.\r\n * The execute() and getManifest() methods are used by the ExtensionAdmin to load and execute the extension.\r\n * @alpha\r\n */\r\nexport class RemoteExtensionProvider implements ExtensionProvider {\r\n /** The name of the server where the extension is hosted. */\r\n public readonly hostname: string;\r\n\r\n constructor(private readonly _props: RemoteExtensionProviderProps) {\r\n this.hostname = new URL(this._props.jsUrl).hostname.replace(\"www\", \"\");\r\n }\r\n\r\n /**\r\n * Attempts to execute an extension.\r\n * Throws an error if the provided jsUrl is not accessible.\r\n */\r\n public async execute(): Promise<string> {\r\n return loadScript(this._props.jsUrl);\r\n }\r\n\r\n /**\r\n * Attempts to fetch an extension's manifest (package.json) file.\r\n * Throws an error if the provided manifestUrl is not accessible.\r\n */\r\n public async getManifest(): Promise<ExtensionManifest> {\r\n const options: RequestOptions = { method: \"GET\" };\r\n const response = await request(this._props.manifestUrl, options);\r\n const data = response.body || (() => {\r\n if (!response.text)\r\n throw new Error(\"Manifest file was empty.\");\r\n return JSON.parse(response.text);\r\n })();\r\n return data;\r\n }\r\n\r\n}\r\n"]}
@@ -118,9 +118,9 @@ export var FeatureSymbology;
118
118
  if (realityModel.appearanceOverrides && realityModel.modelId)
119
119
  this.override({ modelId: realityModel.modelId, appearance: realityModel.appearanceOverrides });
120
120
  });
121
- const script = style.scheduleState;
121
+ const script = style.scheduleScript;
122
122
  if (script)
123
- script.getSymbologyOverrides(this, (_a = style.settings.timePoint) !== null && _a !== void 0 ? _a : 0);
123
+ script.addSymbologyOverrides(this, (_a = style.settings.timePoint) !== null && _a !== void 0 ? _a : 0);
124
124
  if (!view.is3d())
125
125
  return;
126
126
  const planProjectionSettings = view.getDisplayStyle3d().settings.planProjectionSettings;
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureSymbology.js","sourceRoot":"","sources":["../../../src/render/FeatureSymbology.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 { BeEvent, Id64 } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearance, FeatureOverrides } from \"@itwin/core-common\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { ViewState } from \"../ViewState\";\r\n\r\n// cspell:ignore subcat subcats\r\n\r\n/** Contains types that enable an application to customize how [Feature]($common)s are drawn within a [[Viewport]].\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace FeatureSymbology {\r\n /** An object that serves as the source of a [[FeatureSymbology.Overrides]].\r\n * Use this if you are drawing the same tiles into a single Viewport and overriding the FeatureSymbology.Overrides applied to them\r\n * by settings [[GraphicBranch.symbologyOverrides]].\r\n * Each tile will have a separate set of feature overrides per combination of Source and Viewport. This prevents the display system\r\n * from constantly recomputing the feature overrides for a tile.\r\n * You must call `onSourceDisposed.raiseEvent()` when the source is no longer being used by the Viewport to allow the feature overrides\r\n * and their WebGL resources to be freed - failure to do so will result in memory leaks, which may eventually produce WebGL context loss.\r\n * @alpha\r\n */\r\n export interface Source {\r\n /** An event raised when this source becomes disassociated with the viewport, indicating any WebGL resources allocated for it\r\n * can be freed.\r\n * Failure to invoke this event appropriately will result in memory leaks, which may eventually produce WebGL context loss.\r\n */\r\n readonly onSourceDisposed: BeEvent<() => void>;\r\n }\r\n\r\n /** Allows a [[Viewport]] to customize the appearance of individual [Feature]($common)s within it.\r\n *\r\n * The Viewport computes its base Overrides based on the following:\r\n * - The set of categories enabled for display in its [[CategorySelectorState]]. Every [[SubCategory]] belonging to an enabled [[Category]] is added to the set of visible subcategories - all other subcategories are assumed to be invisible.\r\n * - For the set of visible subcategories, any [[SubCategoryOverride]]s defined by the view's [[DisplayStyleState]] are applied. This may render some subcategories invisible, and change the symbology of others.\r\n * - The visibility of each [GeometryClass]($common) is set based on the view's [ViewFlags]($common).\r\n * - The line weight is overridden to 1 pixel for all Features if line weight has been disabled by the view's [ViewFlags]($common).\r\n * - The sets of elements which are always drawn and never drawn are initialized from the [[Viewport]]'s sets.\r\n * An application can further customize the symbology of any Features by registering a [[FeatureOverrideProvider]] with a [[Viewport]]. That provider's addFeatureOverrides function will be invoked\r\n * whenever the Overrides need to be regenerated.\r\n *\r\n * To override the symbology of *most* Features within a view, specify a `defaultOverrides` to be applied to any Feature not explicitly overridden.\r\n * If default overrides are defined and some Features should draw normally without being affected by the default overrides, override that Feature with\r\n * an Appearance which defines no overrides.\r\n *\r\n * It is possible to override multiple aspects of a Feature. For example, you might specify that all elements belonging to subcategory \"A\" should be drawn in red, and\r\n * that the element with Id \"0x123\" should be drawn with 0.25 transparency. In this case, when drawing a Feature with subcategory \"A\" and element Id \"0x123\", the two overrides will\r\n * be merged, causing the Feature's geometry to draw 25% transparent red. On the other hand, if subcategory \"A\" is specified to draw in red and element \"0x123\" to draw in green,\r\n * the color specified by the element override will take precedence over that specified for the subcategory, resulting in a green Feature.\r\n *\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.neverDrawn]]\r\n */\r\n export class Overrides extends FeatureOverrides {\r\n private _source?: Source;\r\n\r\n /** @alpha */\r\n public get source(): Source | undefined {\r\n return this._source;\r\n }\r\n\r\n /** Construct a new Overrides. The result is an empty set of overrides if no view or viewport is supplied.\r\n * @param view If supplied, the overrides will be initialized based on the current state of the view or viewport.\r\n */\r\n public constructor(view?: ViewState | Viewport) {\r\n super();\r\n if (undefined !== view) {\r\n if (view instanceof Viewport)\r\n this.initFromViewport(view);\r\n else\r\n this.initFromView(view);\r\n }\r\n }\r\n\r\n /** Create symbology overrides associated with a [[FeatureSymbology.Source]].\r\n * @alpha\r\n */\r\n public static withSource(source: Source, view?: ViewState | Viewport): Overrides {\r\n const ovrs = new Overrides(view);\r\n ovrs._source = source;\r\n return ovrs;\r\n }\r\n\r\n /** Initialize these Overrides based on a specific view.\r\n * @internal\r\n */\r\n public initFromView(view: ViewState): void {\r\n this._initFromView(view);\r\n this._initSubCategoryOverrides(view);\r\n }\r\n\r\n /** Initialize these Overrides based on a specific viewport.\r\n * @internal\r\n */\r\n public initFromViewport(viewport: Viewport): void {\r\n const view = viewport.view;\r\n this._initFromView(view);\r\n\r\n if (undefined !== viewport.neverDrawn)\r\n this.setNeverDrawnSet(viewport.neverDrawn);\r\n\r\n if (undefined !== viewport.alwaysDrawn)\r\n this.setAlwaysDrawnSet(viewport.alwaysDrawn, viewport.isAlwaysDrawnExclusive);\r\n\r\n viewport.addFeatureOverrides(this);\r\n viewport.addModelSubCategoryVisibilityOverrides(this, this._modelSubCategoryOverrides);\r\n\r\n // This will include any per-model subcategory visibility overrides added above.\r\n this._initSubCategoryOverrides(view);\r\n }\r\n\r\n private _initFromView(view: ViewState): void {\r\n const { viewFlags } = view;\r\n const { constructions, dimensions, patterns } = viewFlags;\r\n\r\n this.neverDrawnAnimationNodes.clear();\r\n this.animationNodeOverrides.clear();\r\n\r\n for (const excluded of view.displayStyle.settings.excludedElementIds)\r\n this.setNeverDrawn(excluded);\r\n\r\n this._constructions = constructions;\r\n this._dimensions = dimensions;\r\n this._patterns = patterns;\r\n this._lineWeights = viewFlags.weights;\r\n\r\n for (const categoryId of view.categorySelector.categories) {\r\n const subCategoryIds = view.iModel.subcategories.getSubCategories(categoryId);\r\n if (undefined === subCategoryIds)\r\n continue;\r\n\r\n for (const subCategoryId of subCategoryIds) {\r\n if (view.isSubCategoryVisible(subCategoryId)) {\r\n const idLo = Id64.getLowerUint32(subCategoryId);\r\n const idHi = Id64.getUpperUint32(subCategoryId);\r\n this._visibleSubCategories.add(idLo, idHi);\r\n\r\n const app = view.iModel.subcategories.getSubCategoryAppearance(subCategoryId);\r\n if (undefined !== app)\r\n this._subCategoryPriorities.set(idLo, idHi, app.priority);\r\n }\r\n }\r\n }\r\n const style = view.displayStyle;\r\n style.settings.modelAppearanceOverrides.forEach((appearance, modelId) => this.override({ modelId, appearance, onConflict: \"skip\" }));\r\n\r\n style.forEachRealityModel((realityModel) => {\r\n if (realityModel.appearanceOverrides && realityModel.modelId)\r\n this.override({ modelId: realityModel.modelId, appearance: realityModel.appearanceOverrides });\r\n });\r\n\r\n const script = style.scheduleState;\r\n if (script)\r\n script.getSymbologyOverrides(this, style.settings.timePoint ?? 0);\r\n\r\n if (!view.is3d())\r\n return;\r\n\r\n const planProjectionSettings = view.getDisplayStyle3d().settings.planProjectionSettings;\r\n if (undefined === planProjectionSettings)\r\n return;\r\n\r\n for (const [modelId, projSettings] of planProjectionSettings) {\r\n if (undefined !== projSettings.transparency)\r\n this.override({ modelId, appearance: FeatureAppearance.fromJSON({ transparency: projSettings.transparency }) });\r\n }\r\n }\r\n\r\n private _initSubCategoryOverrides(view: ViewState): void {\r\n const addOverride = (idLo: number, idHi: number) => {\r\n const subCategoryId = Id64.fromUint32Pair(idLo, idHi);\r\n const ovr = view.getSubCategoryOverride(subCategoryId);\r\n if (undefined !== ovr) {\r\n const app = FeatureAppearance.fromSubCategoryOverride(ovr);\r\n if (app.overridesSymbology)\r\n this._subCategoryOverrides.set(idLo, idHi, app);\r\n\r\n if (undefined !== ovr.priority)\r\n this._subCategoryPriorities.set(idLo, idHi, ovr.priority);\r\n }\r\n };\r\n\r\n // Add overrides for all subcategories visible in the view\r\n this._visibleSubCategories.forEach((idLo: number, idHi: number) => {\r\n addOverride(idLo, idHi);\r\n });\r\n\r\n // Add overrides for all subcategories overridden to be visible in specific models\r\n this._modelSubCategoryOverrides.forEach((_modelIdLo: number, _modelIdHi: number, subcats: Id64.Uint32Set) => {\r\n subcats.forEach((idLo: number, idHi: number) => {\r\n if (!this.isSubCategoryVisible(idLo, idHi)) {\r\n // Overridden to be visible in one or more models - will need the appearance overrides\r\n addOverride(idLo, idHi);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"FeatureSymbology.js","sourceRoot":"","sources":["../../../src/render/FeatureSymbology.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 { BeEvent, Id64 } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearance, FeatureOverrides } from \"@itwin/core-common\";\r\nimport { Viewport } from \"../Viewport\";\r\nimport { ViewState } from \"../ViewState\";\r\n\r\n// cspell:ignore subcat subcats\r\n\r\n/** Contains types that enable an application to customize how [Feature]($common)s are drawn within a [[Viewport]].\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace FeatureSymbology {\r\n /** An object that serves as the source of a [[FeatureSymbology.Overrides]].\r\n * Use this if you are drawing the same tiles into a single Viewport and overriding the FeatureSymbology.Overrides applied to them\r\n * by settings [[GraphicBranch.symbologyOverrides]].\r\n * Each tile will have a separate set of feature overrides per combination of Source and Viewport. This prevents the display system\r\n * from constantly recomputing the feature overrides for a tile.\r\n * You must call `onSourceDisposed.raiseEvent()` when the source is no longer being used by the Viewport to allow the feature overrides\r\n * and their WebGL resources to be freed - failure to do so will result in memory leaks, which may eventually produce WebGL context loss.\r\n * @alpha\r\n */\r\n export interface Source {\r\n /** An event raised when this source becomes disassociated with the viewport, indicating any WebGL resources allocated for it\r\n * can be freed.\r\n * Failure to invoke this event appropriately will result in memory leaks, which may eventually produce WebGL context loss.\r\n */\r\n readonly onSourceDisposed: BeEvent<() => void>;\r\n }\r\n\r\n /** Allows a [[Viewport]] to customize the appearance of individual [Feature]($common)s within it.\r\n *\r\n * The Viewport computes its base Overrides based on the following:\r\n * - The set of categories enabled for display in its [[CategorySelectorState]]. Every [[SubCategory]] belonging to an enabled [[Category]] is added to the set of visible subcategories - all other subcategories are assumed to be invisible.\r\n * - For the set of visible subcategories, any [[SubCategoryOverride]]s defined by the view's [[DisplayStyleState]] are applied. This may render some subcategories invisible, and change the symbology of others.\r\n * - The visibility of each [GeometryClass]($common) is set based on the view's [ViewFlags]($common).\r\n * - The line weight is overridden to 1 pixel for all Features if line weight has been disabled by the view's [ViewFlags]($common).\r\n * - The sets of elements which are always drawn and never drawn are initialized from the [[Viewport]]'s sets.\r\n * An application can further customize the symbology of any Features by registering a [[FeatureOverrideProvider]] with a [[Viewport]]. That provider's addFeatureOverrides function will be invoked\r\n * whenever the Overrides need to be regenerated.\r\n *\r\n * To override the symbology of *most* Features within a view, specify a `defaultOverrides` to be applied to any Feature not explicitly overridden.\r\n * If default overrides are defined and some Features should draw normally without being affected by the default overrides, override that Feature with\r\n * an Appearance which defines no overrides.\r\n *\r\n * It is possible to override multiple aspects of a Feature. For example, you might specify that all elements belonging to subcategory \"A\" should be drawn in red, and\r\n * that the element with Id \"0x123\" should be drawn with 0.25 transparency. In this case, when drawing a Feature with subcategory \"A\" and element Id \"0x123\", the two overrides will\r\n * be merged, causing the Feature's geometry to draw 25% transparent red. On the other hand, if subcategory \"A\" is specified to draw in red and element \"0x123\" to draw in green,\r\n * the color specified by the element override will take precedence over that specified for the subcategory, resulting in a green Feature.\r\n *\r\n * @see [[Viewport.alwaysDrawn]]\r\n * @see [[Viewport.neverDrawn]]\r\n */\r\n export class Overrides extends FeatureOverrides {\r\n private _source?: Source;\r\n\r\n /** @alpha */\r\n public get source(): Source | undefined {\r\n return this._source;\r\n }\r\n\r\n /** Construct a new Overrides. The result is an empty set of overrides if no view or viewport is supplied.\r\n * @param view If supplied, the overrides will be initialized based on the current state of the view or viewport.\r\n */\r\n public constructor(view?: ViewState | Viewport) {\r\n super();\r\n if (undefined !== view) {\r\n if (view instanceof Viewport)\r\n this.initFromViewport(view);\r\n else\r\n this.initFromView(view);\r\n }\r\n }\r\n\r\n /** Create symbology overrides associated with a [[FeatureSymbology.Source]].\r\n * @alpha\r\n */\r\n public static withSource(source: Source, view?: ViewState | Viewport): Overrides {\r\n const ovrs = new Overrides(view);\r\n ovrs._source = source;\r\n return ovrs;\r\n }\r\n\r\n /** Initialize these Overrides based on a specific view.\r\n * @internal\r\n */\r\n public initFromView(view: ViewState): void {\r\n this._initFromView(view);\r\n this._initSubCategoryOverrides(view);\r\n }\r\n\r\n /** Initialize these Overrides based on a specific viewport.\r\n * @internal\r\n */\r\n public initFromViewport(viewport: Viewport): void {\r\n const view = viewport.view;\r\n this._initFromView(view);\r\n\r\n if (undefined !== viewport.neverDrawn)\r\n this.setNeverDrawnSet(viewport.neverDrawn);\r\n\r\n if (undefined !== viewport.alwaysDrawn)\r\n this.setAlwaysDrawnSet(viewport.alwaysDrawn, viewport.isAlwaysDrawnExclusive);\r\n\r\n viewport.addFeatureOverrides(this);\r\n viewport.addModelSubCategoryVisibilityOverrides(this, this._modelSubCategoryOverrides);\r\n\r\n // This will include any per-model subcategory visibility overrides added above.\r\n this._initSubCategoryOverrides(view);\r\n }\r\n\r\n private _initFromView(view: ViewState): void {\r\n const { viewFlags } = view;\r\n const { constructions, dimensions, patterns } = viewFlags;\r\n\r\n this.neverDrawnAnimationNodes.clear();\r\n this.animationNodeOverrides.clear();\r\n\r\n for (const excluded of view.displayStyle.settings.excludedElementIds)\r\n this.setNeverDrawn(excluded);\r\n\r\n this._constructions = constructions;\r\n this._dimensions = dimensions;\r\n this._patterns = patterns;\r\n this._lineWeights = viewFlags.weights;\r\n\r\n for (const categoryId of view.categorySelector.categories) {\r\n const subCategoryIds = view.iModel.subcategories.getSubCategories(categoryId);\r\n if (undefined === subCategoryIds)\r\n continue;\r\n\r\n for (const subCategoryId of subCategoryIds) {\r\n if (view.isSubCategoryVisible(subCategoryId)) {\r\n const idLo = Id64.getLowerUint32(subCategoryId);\r\n const idHi = Id64.getUpperUint32(subCategoryId);\r\n this._visibleSubCategories.add(idLo, idHi);\r\n\r\n const app = view.iModel.subcategories.getSubCategoryAppearance(subCategoryId);\r\n if (undefined !== app)\r\n this._subCategoryPriorities.set(idLo, idHi, app.priority);\r\n }\r\n }\r\n }\r\n const style = view.displayStyle;\r\n style.settings.modelAppearanceOverrides.forEach((appearance, modelId) => this.override({ modelId, appearance, onConflict: \"skip\" }));\r\n\r\n style.forEachRealityModel((realityModel) => {\r\n if (realityModel.appearanceOverrides && realityModel.modelId)\r\n this.override({ modelId: realityModel.modelId, appearance: realityModel.appearanceOverrides });\r\n });\r\n\r\n const script = style.scheduleScript;\r\n if (script)\r\n script.addSymbologyOverrides(this, style.settings.timePoint ?? 0);\r\n\r\n if (!view.is3d())\r\n return;\r\n\r\n const planProjectionSettings = view.getDisplayStyle3d().settings.planProjectionSettings;\r\n if (undefined === planProjectionSettings)\r\n return;\r\n\r\n for (const [modelId, projSettings] of planProjectionSettings) {\r\n if (undefined !== projSettings.transparency)\r\n this.override({ modelId, appearance: FeatureAppearance.fromJSON({ transparency: projSettings.transparency }) });\r\n }\r\n }\r\n\r\n private _initSubCategoryOverrides(view: ViewState): void {\r\n const addOverride = (idLo: number, idHi: number) => {\r\n const subCategoryId = Id64.fromUint32Pair(idLo, idHi);\r\n const ovr = view.getSubCategoryOverride(subCategoryId);\r\n if (undefined !== ovr) {\r\n const app = FeatureAppearance.fromSubCategoryOverride(ovr);\r\n if (app.overridesSymbology)\r\n this._subCategoryOverrides.set(idLo, idHi, app);\r\n\r\n if (undefined !== ovr.priority)\r\n this._subCategoryPriorities.set(idLo, idHi, ovr.priority);\r\n }\r\n };\r\n\r\n // Add overrides for all subcategories visible in the view\r\n this._visibleSubCategories.forEach((idLo: number, idHi: number) => {\r\n addOverride(idLo, idHi);\r\n });\r\n\r\n // Add overrides for all subcategories overridden to be visible in specific models\r\n this._modelSubCategoryOverrides.forEach((_modelIdLo: number, _modelIdHi: number, subcats: Id64.Uint32Set) => {\r\n subcats.forEach((idLo: number, idHi: number) => {\r\n if (!this.isSubCategoryVisible(idLo, idHi)) {\r\n // Overridden to be visible in one or more models - will need the appearance overrides\r\n addOverride(idLo, idHi);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}\r\n"]}
@@ -1,6 +1,15 @@
1
1
  /** @packageDocumentation
2
2
  * @module Rendering
3
3
  */
4
+ import { Id64String, IDisposable } from "@itwin/core-bentley";
5
+ import { FeatureAppearanceProvider, HiddenLine, RenderSchedule, ViewFlagOverrides, ViewFlags } from "@itwin/core-common";
6
+ import { IModelConnection } from "../IModelConnection";
7
+ import { FeatureSymbology } from "./FeatureSymbology";
8
+ import { RenderClipVolume } from "./RenderClipVolume";
9
+ import { RenderGraphic } from "./RenderGraphic";
10
+ import { RenderMemory } from "./RenderMemory";
11
+ import { RenderPlanarClassifier } from "./RenderPlanarClassifier";
12
+ import { RenderTextureDrape } from "./RenderSystem";
4
13
  /** Carries information in a GraphicBranchOptions about a GraphicBranch produced by drawing one view into the context of another.
5
14
  * @internal
6
15
  */
@@ -11,15 +20,6 @@ export interface GraphicBranchFrustum {
11
20
  y: number;
12
21
  };
13
22
  }
14
- import { IDisposable } from "@itwin/core-bentley";
15
- import { FeatureAppearanceProvider, HiddenLine, ViewFlagOverrides, ViewFlags } from "@itwin/core-common";
16
- import { IModelConnection } from "../IModelConnection";
17
- import { FeatureSymbology } from "./FeatureSymbology";
18
- import { RenderClipVolume } from "./RenderClipVolume";
19
- import { RenderGraphic } from "./RenderGraphic";
20
- import { RenderMemory } from "./RenderMemory";
21
- import { RenderPlanarClassifier } from "./RenderPlanarClassifier";
22
- import { RenderTextureDrape } from "./RenderSystem";
23
23
  /** Special values of [[GraphicBranch.animationNodeId]].
24
24
  * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.
25
25
  * @internal
@@ -105,6 +105,8 @@ export interface AnimationBranchState {
105
105
  readonly clip?: RenderClipVolume;
106
106
  readonly omit?: boolean;
107
107
  }
108
+ /** @internal */
109
+ export declare function formatAnimationBranchId(modelId: Id64String, branchId: number): string;
108
110
  /** Mapping from node/branch IDs to animation branch state
109
111
  * @internal
110
112
  */
@@ -114,4 +116,8 @@ export interface AnimationBranchStates {
114
116
  /** Ids of nodes that apply a transform. */
115
117
  readonly transformNodeIds: ReadonlySet<number>;
116
118
  }
119
+ /** @internal */
120
+ export declare namespace AnimationBranchStates {
121
+ function fromScript(script: RenderSchedule.Script, time: number): AnimationBranchStates | undefined;
122
+ }
117
123
  //# sourceMappingURL=GraphicBranch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicBranch.d.ts","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphicBranch.d.ts","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAgB,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,yBAAyB,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EACpF,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH;AAED;;;GAGG;AACH,oBAAY,eAAe;IACzB,aAAa,aAAa;CAC3B;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC/C,qCAAqC;IACrC,SAAgB,OAAO,EAAE,aAAa,EAAE,CAAM;IAC9C,6GAA6G;IAC7G,SAAgB,WAAW,EAAE,OAAO,CAAC;IACrC;;OAEG;IACI,iBAAiB,EAAE,iBAAiB,CAAM;IACjD,gFAAgF;IACzE,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACvD;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACI,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAElD;;OAEG;gBACgB,WAAW,GAAE,OAAe;IAI/C,oCAAoC;IAC7B,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIxC;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAIhD,uFAAuF;IAChF,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI3C,oCAAoC;IAC7B,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;IAIzD,uFAAuF;IAChF,OAAO;IAId,wDAAwD;IACxD,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,sIAAsI;IAC/H,KAAK,IAAI,IAAI;IAOpB,gBAAgB;IACT,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,gBAAgB;IAChB,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,kBAAkB,CAAC;IAChE,mFAAmF;IACnF,KAAK,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC5B,qGAAqG;IACrG,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,gBAAgB;IAChB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,gBAAgB;AAChB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKrF;AASD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzD,2CAA2C;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,gBAAgB;AAChB,yBAAiB,qBAAqB,CAAC;IACrC,SAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAmBzG;CACF"}
@@ -6,6 +6,7 @@
6
6
  * @module Rendering
7
7
  */
8
8
  import { disposeArray } from "@itwin/core-bentley";
9
+ import { IModelApp } from "../IModelApp";
9
10
  /** Special values of [[GraphicBranch.animationNodeId]].
10
11
  * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.
11
12
  * @internal
@@ -75,4 +76,39 @@ export class GraphicBranch {
75
76
  entry.collectStatistics(stats);
76
77
  }
77
78
  }
79
+ /** @internal */
80
+ export function formatAnimationBranchId(modelId, branchId) {
81
+ if (branchId < 0)
82
+ return modelId;
83
+ return `${modelId}_Node_${branchId.toString()}`;
84
+ }
85
+ function addAnimationBranch(modelId, timeline, branchId, branches, time) {
86
+ const clipVector = timeline.getClipVector(time);
87
+ const clip = clipVector ? IModelApp.renderSystem.createClipVolume(clipVector) : undefined;
88
+ if (clip)
89
+ branches.set(formatAnimationBranchId(modelId, branchId), { clip });
90
+ }
91
+ /** @internal */
92
+ export var AnimationBranchStates;
93
+ (function (AnimationBranchStates) {
94
+ function fromScript(script, time) {
95
+ if (!script.containsModelClipping && !script.requiresBatching)
96
+ return undefined;
97
+ const branches = new Map();
98
+ for (const model of script.modelTimelines) {
99
+ addAnimationBranch(model.modelId, model, -1, branches, time);
100
+ for (const elem of model.elementTimelines) {
101
+ if (elem.getVisibility(time) <= 0)
102
+ branches.set(formatAnimationBranchId(model.modelId, elem.batchId), { omit: true });
103
+ else
104
+ addAnimationBranch(model.modelId, elem, elem.batchId, branches, time);
105
+ }
106
+ }
107
+ return {
108
+ branchStates: branches,
109
+ transformNodeIds: script.transformBatchIds,
110
+ };
111
+ }
112
+ AnimationBranchStates.fromScript = fromScript;
113
+ })(AnimationBranchStates || (AnimationBranchStates = {}));
78
114
  //# sourceMappingURL=GraphicBranch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicBranch.js","sourceRoot":"","sources":["../../../src/render/GraphicBranch.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAaH,OAAO,EAAE,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAUhE;;;GAGG;AACH,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,gFAA0B,CAAA;AAC5B,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IAoBxB;;OAEG;IACH,YAAmB,cAAuB,KAAK;QAtB/C,qCAAqC;QACrB,YAAO,GAAoB,EAAE,CAAC;QAG9C;;WAEG;QACI,sBAAiB,GAAsB,EAAE,CAAC;QAgB/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,oCAAoC;IAC7B,GAAG,CAAC,OAAsB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,KAAgB;QAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChD,CAAC;IAED,uFAAuF;IAChF,YAAY,CAAC,KAAgB;QAClC,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,oCAAoC;IAC7B,oBAAoB,CAAC,GAAsB;QAChD,IAAI,CAAC,iBAAiB,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,uFAAuF;IAChF,OAAO;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,wDAAwD;IACxD,IAAW,OAAO;QAChB,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,sIAAsI;IAC/H,KAAK;QACV,IAAI,IAAI,CAAC,WAAW;YAClB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YAE3B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;IACT,iBAAiB,CAAC,KAA8B;QACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;YAC9B,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF","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/** Carries information in a GraphicBranchOptions about a GraphicBranch produced by drawing one view into the context of another.\r\n * @internal\r\n */\r\nexport interface GraphicBranchFrustum {\r\n is3d: boolean;\r\n scale: {\r\n x: number;\r\n y: number;\r\n };\r\n}\r\n\r\nimport { disposeArray, IDisposable } from \"@itwin/core-bentley\";\r\nimport { FeatureAppearanceProvider, HiddenLine, ViewFlagOverrides, ViewFlags } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { FeatureSymbology } from \"./FeatureSymbology\";\r\nimport { RenderClipVolume } from \"./RenderClipVolume\";\r\nimport { RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"./RenderPlanarClassifier\";\r\nimport { RenderTextureDrape } from \"./RenderSystem\";\r\n\r\n/** Special values of [[GraphicBranch.animationNodeId]].\r\n * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.\r\n * @internal\r\n */\r\nexport enum AnimationNodeId {\r\n Untransformed = 0xffffffff,\r\n}\r\n\r\n/**\r\n * A node in a scene graph. The branch itself is not renderable. Instead it contains a list of RenderGraphics,\r\n * and a transform, symbology overrides, and clip volume which are to be applied when rendering them.\r\n * Branches can be nested to build an arbitrarily-complex scene graph.\r\n * @see [[RenderSystem.createBranch]]\r\n * @public\r\n * @extensions\r\n */\r\nexport class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ {\r\n /** The child nodes of this branch */\r\n public readonly entries: RenderGraphic[] = [];\r\n /** If true, when the branch is disposed of, the RenderGraphics in its entries array will also be disposed */\r\n public readonly ownsEntries: boolean;\r\n /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing.\r\n * @see [[setViewFlagOverrides]].\r\n */\r\n public viewFlagOverrides: ViewFlagOverrides = {};\r\n /** Optional symbology overrides to be applied to all graphics in this branch */\r\n public symbologyOverrides?: FeatureSymbology.Overrides;\r\n /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.\r\n * @internal\r\n */\r\n public animationId?: string;\r\n /** Identifies the node in the [RenderSchedule.Script]($backend) with which this branch is associated.\r\n * @internal\r\n */\r\n public animationNodeId?: AnimationNodeId | number;\r\n\r\n /** Constructor\r\n * @param ownsEntries If true, when this branch is [[dispose]]d, all of the [[RenderGraphic]]s it contains will also be disposed.\r\n */\r\n public constructor(ownsEntries: boolean = false) {\r\n this.ownsEntries = ownsEntries;\r\n }\r\n\r\n /** Add a graphic to this branch. */\r\n public add(graphic: RenderGraphic): void {\r\n this.entries.push(graphic);\r\n }\r\n\r\n /** Compute the view flags that result from applying this branch's [[viewFlagOverrides]] to the input flags.\r\n * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]].\r\n * @returns The result of applying [[viewFlagOverrides]] to `flags`.\r\n */\r\n public getViewFlags(flags: ViewFlags): ViewFlags {\r\n return flags.override(this.viewFlagOverrides);\r\n }\r\n\r\n /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */\r\n public setViewFlags(flags: ViewFlags): void {\r\n this.viewFlagOverrides = { ...flags };\r\n }\r\n\r\n /** Change [[viewFlagOverrides]]. */\r\n public setViewFlagOverrides(ovr: ViewFlagOverrides): void {\r\n this.viewFlagOverrides = { ...ovr };\r\n }\r\n\r\n /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */\r\n public dispose() {\r\n this.clear();\r\n }\r\n\r\n /** Returns true if this branch contains no graphics. */\r\n public get isEmpty(): boolean {\r\n return 0 === this.entries.length;\r\n }\r\n\r\n /** Empties the list of [[RenderGraphic]]s contained in this branch, and if the [[ownsEntries]] flag is set, also disposes of them. */\r\n public clear(): void {\r\n if (this.ownsEntries)\r\n disposeArray(this.entries);\r\n else\r\n this.entries.length = 0;\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const entry of this.entries)\r\n entry.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** Options passed to [[RenderSystem.createGraphicBranch]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface GraphicBranchOptions {\r\n /** Clip applied to the graphics in the branch. */\r\n clipVolume?: RenderClipVolume;\r\n /** @internal */\r\n classifierOrDrape?: RenderPlanarClassifier | RenderTextureDrape;\r\n /** Optionally replaces the view's hidden line settings when drawing the branch. */\r\n hline?: HiddenLine.Settings;\r\n /** The iModel from which the graphics originate, if different than that associated with the view. */\r\n iModel?: IModelConnection;\r\n /** @internal */\r\n frustum?: GraphicBranchFrustum;\r\n /** Supplements the view's [[FeatureSymbology.Overrides]] for graphics in the branch. */\r\n appearanceProvider?: FeatureAppearanceProvider;\r\n /** @internal Secondary planar classifiers (map layers) */\r\n secondaryClassifiers?: Map<number, RenderPlanarClassifier>;\r\n}\r\n\r\n/** Clip/Transform for a branch that are varied over time.\r\n * @internal\r\n */\r\nexport interface AnimationBranchState {\r\n readonly clip?: RenderClipVolume;\r\n readonly omit?: boolean;\r\n}\r\n\r\n/** Mapping from node/branch IDs to animation branch state\r\n * @internal\r\n */\r\nexport interface AnimationBranchStates {\r\n /** Maps node Id to branch state. */\r\n readonly branchStates: Map<string, AnimationBranchState>;\r\n /** Ids of nodes that apply a transform. */\r\n readonly transformNodeIds: ReadonlySet<number>;\r\n}\r\n"]}
1
+ {"version":3,"file":"GraphicBranch.js","sourceRoot":"","sources":["../../../src/render/GraphicBranch.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 { disposeArray, Id64String, IDisposable } from \"@itwin/core-bentley\";\r\nimport {\r\n FeatureAppearanceProvider, HiddenLine, RenderSchedule, ViewFlagOverrides, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { FeatureSymbology } from \"./FeatureSymbology\";\r\nimport { RenderClipVolume } from \"./RenderClipVolume\";\r\nimport { RenderGraphic } from \"./RenderGraphic\";\r\nimport { RenderMemory } from \"./RenderMemory\";\r\nimport { RenderPlanarClassifier } from \"./RenderPlanarClassifier\";\r\nimport { RenderTextureDrape } from \"./RenderSystem\";\r\n\r\n/** Carries information in a GraphicBranchOptions about a GraphicBranch produced by drawing one view into the context of another.\r\n * @internal\r\n */\r\nexport interface GraphicBranchFrustum {\r\n is3d: boolean;\r\n scale: {\r\n x: number;\r\n y: number;\r\n };\r\n}\r\n\r\n/** Special values of [[GraphicBranch.animationNodeId]].\r\n * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.\r\n * @internal\r\n */\r\nexport enum AnimationNodeId {\r\n Untransformed = 0xffffffff,\r\n}\r\n\r\n/**\r\n * A node in a scene graph. The branch itself is not renderable. Instead it contains a list of RenderGraphics,\r\n * and a transform, symbology overrides, and clip volume which are to be applied when rendering them.\r\n * Branches can be nested to build an arbitrarily-complex scene graph.\r\n * @see [[RenderSystem.createBranch]]\r\n * @public\r\n * @extensions\r\n */\r\nexport class GraphicBranch implements IDisposable /* , RenderMemory.Consumer */ {\r\n /** The child nodes of this branch */\r\n public readonly entries: RenderGraphic[] = [];\r\n /** If true, when the branch is disposed of, the RenderGraphics in its entries array will also be disposed */\r\n public readonly ownsEntries: boolean;\r\n /** Selectively overrides the view's [ViewFlags]($common) while drawing graphics within this branch. The default overrides nothing.\r\n * @see [[setViewFlagOverrides]].\r\n */\r\n public viewFlagOverrides: ViewFlagOverrides = {};\r\n /** Optional symbology overrides to be applied to all graphics in this branch */\r\n public symbologyOverrides?: FeatureSymbology.Overrides;\r\n /** Optional animation branch Id that incorporates the model Id and, for element timelines, the batch Id.\r\n * @internal\r\n */\r\n public animationId?: string;\r\n /** Identifies the node in the [RenderSchedule.Script]($backend) with which this branch is associated.\r\n * @internal\r\n */\r\n public animationNodeId?: AnimationNodeId | number;\r\n\r\n /** Constructor\r\n * @param ownsEntries If true, when this branch is [[dispose]]d, all of the [[RenderGraphic]]s it contains will also be disposed.\r\n */\r\n public constructor(ownsEntries: boolean = false) {\r\n this.ownsEntries = ownsEntries;\r\n }\r\n\r\n /** Add a graphic to this branch. */\r\n public add(graphic: RenderGraphic): void {\r\n this.entries.push(graphic);\r\n }\r\n\r\n /** Compute the view flags that result from applying this branch's [[viewFlagOverrides]] to the input flags.\r\n * @param flags The input view flags, e.g., from the view's [[DisplayStyleState]].\r\n * @returns The result of applying [[viewFlagOverrides]] to `flags`.\r\n */\r\n public getViewFlags(flags: ViewFlags): ViewFlags {\r\n return flags.override(this.viewFlagOverrides);\r\n }\r\n\r\n /** Set [[viewFlagOverrides]] to override **all** ViewFlags as specified by `flags`. */\r\n public setViewFlags(flags: ViewFlags): void {\r\n this.viewFlagOverrides = { ...flags };\r\n }\r\n\r\n /** Change [[viewFlagOverrides]]. */\r\n public setViewFlagOverrides(ovr: ViewFlagOverrides): void {\r\n this.viewFlagOverrides = { ...ovr };\r\n }\r\n\r\n /** Disposes of all graphics in this branch, if and only if [[ownsEntries]] is true. */\r\n public dispose() {\r\n this.clear();\r\n }\r\n\r\n /** Returns true if this branch contains no graphics. */\r\n public get isEmpty(): boolean {\r\n return 0 === this.entries.length;\r\n }\r\n\r\n /** Empties the list of [[RenderGraphic]]s contained in this branch, and if the [[ownsEntries]] flag is set, also disposes of them. */\r\n public clear(): void {\r\n if (this.ownsEntries)\r\n disposeArray(this.entries);\r\n else\r\n this.entries.length = 0;\r\n }\r\n\r\n /** @internal */\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n for (const entry of this.entries)\r\n entry.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** Options passed to [[RenderSystem.createGraphicBranch]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface GraphicBranchOptions {\r\n /** Clip applied to the graphics in the branch. */\r\n clipVolume?: RenderClipVolume;\r\n /** @internal */\r\n classifierOrDrape?: RenderPlanarClassifier | RenderTextureDrape;\r\n /** Optionally replaces the view's hidden line settings when drawing the branch. */\r\n hline?: HiddenLine.Settings;\r\n /** The iModel from which the graphics originate, if different than that associated with the view. */\r\n iModel?: IModelConnection;\r\n /** @internal */\r\n frustum?: GraphicBranchFrustum;\r\n /** Supplements the view's [[FeatureSymbology.Overrides]] for graphics in the branch. */\r\n appearanceProvider?: FeatureAppearanceProvider;\r\n /** @internal Secondary planar classifiers (map layers) */\r\n secondaryClassifiers?: Map<number, RenderPlanarClassifier>;\r\n}\r\n\r\n/** Clip/Transform for a branch that are varied over time.\r\n * @internal\r\n */\r\nexport interface AnimationBranchState {\r\n readonly clip?: RenderClipVolume;\r\n readonly omit?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport function formatAnimationBranchId(modelId: Id64String, branchId: number): string {\r\n if (branchId < 0)\r\n return modelId;\r\n\r\n return `${modelId}_Node_${branchId.toString()}`;\r\n}\r\n\r\nfunction addAnimationBranch(modelId: Id64String, timeline: RenderSchedule.Timeline, branchId: number, branches: Map<string, AnimationBranchState>, time: number): void {\r\n const clipVector = timeline.getClipVector(time);\r\n const clip = clipVector ? IModelApp.renderSystem.createClipVolume(clipVector) : undefined;\r\n if (clip)\r\n branches.set(formatAnimationBranchId(modelId, branchId), { clip });\r\n}\r\n\r\n/** Mapping from node/branch IDs to animation branch state\r\n * @internal\r\n */\r\nexport interface AnimationBranchStates {\r\n /** Maps node Id to branch state. */\r\n readonly branchStates: Map<string, AnimationBranchState>;\r\n /** Ids of nodes that apply a transform. */\r\n readonly transformNodeIds: ReadonlySet<number>;\r\n}\r\n\r\n/** @internal */\r\nexport namespace AnimationBranchStates {\r\n export function fromScript(script: RenderSchedule.Script, time: number): AnimationBranchStates | undefined {\r\n if (!script.containsModelClipping && !script.requiresBatching)\r\n return undefined;\r\n\r\n const branches = new Map<string, AnimationBranchState>();\r\n for (const model of script.modelTimelines) {\r\n addAnimationBranch(model.modelId, model, -1, branches, time);\r\n for (const elem of model.elementTimelines) {\r\n if (elem.getVisibility(time) <= 0)\r\n branches.set(formatAnimationBranchId(model.modelId, elem.batchId), { omit: true });\r\n else\r\n addAnimationBranch(model.modelId, elem, elem.batchId, branches, time);\r\n }\r\n }\r\n\r\n return {\r\n branchStates: branches,\r\n transformNodeIds: script.transformBatchIds,\r\n };\r\n }\r\n}\r\n"]}
@@ -548,6 +548,11 @@ export declare namespace RenderSystem {
548
548
  * @internal
549
549
  */
550
550
  contextAttributes?: WebGLContextAttributes;
551
+ /** If true, will cause exception when a shader uniform is missing (usually optimized out), otherwise will only log these.
552
+ * Default value: false
553
+ * @public
554
+ */
555
+ errorOnMissingUniform?: boolean;
551
556
  /** If true, and the `WEBGL_debug_shaders` extension is available, accumulate debug information during shader compilation.
552
557
  * This information can be accessed via `RenderSystemDebugControl.debugShaderFiles`.
553
558
  * Default value: false