@itwin/core-frontend 4.1.0-dev.6 → 4.1.0-dev.62

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 (1172) hide show
  1. package/CHANGELOG.md +78 -1
  2. package/lib/cjs/AccuDraw.d.ts +3 -4
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +6 -7
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.d.ts +7 -1
  7. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  8. package/lib/cjs/AccuSnap.js +24 -6
  9. package/lib/cjs/AccuSnap.js.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.d.ts +3 -2
  11. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  12. package/lib/cjs/BackgroundMapGeometry.js +47 -7
  13. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  14. package/lib/cjs/BriefcaseConnection.d.ts +3 -3
  15. package/lib/cjs/BriefcaseConnection.js +3 -3
  16. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  17. package/lib/cjs/BriefcaseTxns.d.ts +2 -2
  18. package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
  19. package/lib/cjs/BriefcaseTxns.js +3 -3
  20. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  21. package/lib/cjs/ChangeFlags.d.ts +25 -12
  22. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  23. package/lib/cjs/ChangeFlags.js +24 -11
  24. package/lib/cjs/ChangeFlags.js.map +1 -1
  25. package/lib/cjs/CheckpointConnection.js +1 -1
  26. package/lib/cjs/CheckpointConnection.js.map +1 -1
  27. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  28. package/lib/cjs/DisplayStyleState.js +2 -1
  29. package/lib/cjs/DisplayStyleState.js.map +1 -1
  30. package/lib/cjs/DrawingViewState.d.ts +2 -2
  31. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  32. package/lib/cjs/DrawingViewState.js +3 -3
  33. package/lib/cjs/DrawingViewState.js.map +1 -1
  34. package/lib/cjs/ElementLocateManager.d.ts +0 -1
  35. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  36. package/lib/cjs/ElementLocateManager.js +11 -19
  37. package/lib/cjs/ElementLocateManager.js.map +1 -1
  38. package/lib/cjs/EnvironmentDecorations.js +1 -1
  39. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  40. package/lib/cjs/GeoServices.d.ts +37 -7
  41. package/lib/cjs/GeoServices.d.ts.map +1 -1
  42. package/lib/cjs/GeoServices.js +75 -25
  43. package/lib/cjs/GeoServices.js.map +1 -1
  44. package/lib/cjs/GraphicalEditingScope.d.ts +2 -2
  45. package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
  46. package/lib/cjs/GraphicalEditingScope.js +1 -1
  47. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  48. package/lib/cjs/HitDetail.d.ts +100 -29
  49. package/lib/cjs/HitDetail.d.ts.map +1 -1
  50. package/lib/cjs/HitDetail.js +89 -36
  51. package/lib/cjs/HitDetail.js.map +1 -1
  52. package/lib/cjs/IModelApp.d.ts +18 -14
  53. package/lib/cjs/IModelApp.d.ts.map +1 -1
  54. package/lib/cjs/IModelApp.js +17 -13
  55. package/lib/cjs/IModelApp.js.map +1 -1
  56. package/lib/cjs/IModelConnection.d.ts +64 -19
  57. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  58. package/lib/cjs/IModelConnection.js +131 -20
  59. package/lib/cjs/IModelConnection.js.map +1 -1
  60. package/lib/cjs/IpcApp.d.ts +1 -1
  61. package/lib/cjs/IpcApp.d.ts.map +1 -1
  62. package/lib/cjs/IpcApp.js +4 -4
  63. package/lib/cjs/IpcApp.js.map +1 -1
  64. package/lib/cjs/LocalhostIpcApp.js +1 -1
  65. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  66. package/lib/cjs/Marker.d.ts +1 -1
  67. package/lib/cjs/Marker.d.ts.map +1 -1
  68. package/lib/cjs/Marker.js +3 -3
  69. package/lib/cjs/Marker.js.map +1 -1
  70. package/lib/cjs/NativeApp.d.ts.map +1 -1
  71. package/lib/cjs/NativeApp.js +4 -4
  72. package/lib/cjs/NativeApp.js.map +1 -1
  73. package/lib/cjs/NoRenderApp.d.ts +1 -1
  74. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  75. package/lib/cjs/NoRenderApp.js +1 -1
  76. package/lib/cjs/NoRenderApp.js.map +1 -1
  77. package/lib/cjs/RealityDataSource.js +1 -1
  78. package/lib/cjs/RealityDataSource.js.map +1 -1
  79. package/lib/cjs/RealityDataSourceContextShareImpl.js +1 -1
  80. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  81. package/lib/cjs/SheetViewState.d.ts +9 -7
  82. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  83. package/lib/cjs/SheetViewState.js +22 -7
  84. package/lib/cjs/SheetViewState.js.map +1 -1
  85. package/lib/cjs/SpatialViewState.d.ts +20 -5
  86. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  87. package/lib/cjs/SpatialViewState.js +13 -5
  88. package/lib/cjs/SpatialViewState.js.map +1 -1
  89. package/lib/cjs/Sprites.js +2 -2
  90. package/lib/cjs/Sprites.js.map +1 -1
  91. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  92. package/lib/cjs/TentativePoint.js +10 -1
  93. package/lib/cjs/TentativePoint.js.map +1 -1
  94. package/lib/cjs/ViewContext.d.ts +19 -0
  95. package/lib/cjs/ViewContext.d.ts.map +1 -1
  96. package/lib/cjs/ViewContext.js +9 -0
  97. package/lib/cjs/ViewContext.js.map +1 -1
  98. package/lib/cjs/ViewCreator3d.d.ts +3 -6
  99. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  100. package/lib/cjs/ViewCreator3d.js +12 -33
  101. package/lib/cjs/ViewCreator3d.js.map +1 -1
  102. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  103. package/lib/cjs/ViewGlobalLocation.js +4 -3
  104. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  105. package/lib/cjs/ViewManager.d.ts +4 -2
  106. package/lib/cjs/ViewManager.d.ts.map +1 -1
  107. package/lib/cjs/ViewManager.js +4 -2
  108. package/lib/cjs/ViewManager.js.map +1 -1
  109. package/lib/cjs/ViewPose.d.ts +11 -11
  110. package/lib/cjs/ViewPose.d.ts.map +1 -1
  111. package/lib/cjs/ViewPose.js +17 -11
  112. package/lib/cjs/ViewPose.js.map +1 -1
  113. package/lib/cjs/ViewState.d.ts +44 -26
  114. package/lib/cjs/ViewState.d.ts.map +1 -1
  115. package/lib/cjs/ViewState.js +52 -25
  116. package/lib/cjs/ViewState.js.map +1 -1
  117. package/lib/cjs/ViewingSpace.js +1 -1
  118. package/lib/cjs/ViewingSpace.js.map +1 -1
  119. package/lib/cjs/Viewport.d.ts +59 -21
  120. package/lib/cjs/Viewport.d.ts.map +1 -1
  121. package/lib/cjs/Viewport.js +67 -24
  122. package/lib/cjs/Viewport.js.map +1 -1
  123. package/lib/cjs/ViewportSync.d.ts +2 -2
  124. package/lib/cjs/ViewportSync.d.ts.map +1 -1
  125. package/lib/cjs/ViewportSync.js +2 -2
  126. package/lib/cjs/ViewportSync.js.map +1 -1
  127. package/lib/cjs/common/FrontendLoggerCategory.d.ts.map +1 -0
  128. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -0
  129. package/lib/cjs/common/ImageUtil.d.ts.map +1 -0
  130. package/lib/cjs/{ImageUtil.js → common/ImageUtil.js} +2 -0
  131. package/lib/cjs/common/ImageUtil.js.map +1 -0
  132. package/lib/cjs/common/ViewRect.d.ts.map +1 -0
  133. package/lib/cjs/common/ViewRect.js.map +1 -0
  134. package/lib/cjs/common/WorkerProxy.d.ts +73 -0
  135. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -0
  136. package/lib/cjs/common/WorkerProxy.js +54 -0
  137. package/lib/cjs/common/WorkerProxy.js.map +1 -0
  138. package/lib/{esm → cjs/common}/gltf/GltfModel.d.ts +1 -1
  139. package/lib/cjs/common/gltf/GltfModel.d.ts.map +1 -0
  140. package/lib/cjs/common/gltf/GltfModel.js.map +1 -0
  141. package/lib/cjs/common/gltf/GltfParser.d.ts.map +1 -0
  142. package/lib/cjs/common/gltf/GltfParser.js.map +1 -0
  143. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -0
  144. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -0
  145. package/lib/cjs/common/imdl/CompactEdges.d.ts +27 -0
  146. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -0
  147. package/lib/cjs/common/imdl/CompactEdges.js +96 -0
  148. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -0
  149. package/lib/cjs/common/imdl/ImdlModel.d.ts +186 -0
  150. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -0
  151. package/lib/cjs/common/imdl/ImdlModel.js +71 -0
  152. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -0
  153. package/lib/cjs/common/imdl/ImdlSchema.d.ts +412 -0
  154. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -0
  155. package/lib/cjs/common/imdl/ImdlSchema.js +23 -0
  156. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -0
  157. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +45 -0
  158. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  159. package/lib/cjs/common/imdl/ParseImdlDocument.js +1011 -0
  160. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -0
  161. package/lib/cjs/common/render/AnimationNodeId.d.ts +11 -0
  162. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +1 -0
  163. package/lib/cjs/common/render/AnimationNodeId.js +19 -0
  164. package/lib/cjs/common/render/AnimationNodeId.js.map +1 -0
  165. package/lib/{esm/render/RenderMaterial.d.ts → cjs/common/render/MaterialParams.d.ts} +7 -20
  166. package/lib/cjs/common/render/MaterialParams.d.ts.map +1 -0
  167. package/lib/cjs/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  168. package/lib/cjs/common/render/MaterialParams.js.map +1 -0
  169. package/lib/cjs/common/render/TextureParams.d.ts +30 -0
  170. package/lib/cjs/common/render/TextureParams.d.ts.map +1 -0
  171. package/lib/cjs/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  172. package/lib/cjs/common/render/TextureParams.js.map +1 -0
  173. package/lib/{esm → cjs/common}/render/primitives/AuxChannelTable.d.ts +12 -8
  174. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  175. package/lib/cjs/{render → common/render}/primitives/AuxChannelTable.js +42 -9
  176. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -0
  177. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +1 -0
  178. package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -0
  179. package/lib/cjs/common/render/primitives/EdgeParams.d.ts +94 -0
  180. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +1 -0
  181. package/lib/cjs/common/render/primitives/EdgeParams.js +46 -0
  182. package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -0
  183. package/lib/cjs/common/render/primitives/MeshParams.d.ts +20 -0
  184. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +1 -0
  185. package/lib/cjs/common/render/primitives/MeshParams.js +10 -0
  186. package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -0
  187. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts +29 -0
  188. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  189. package/lib/cjs/common/render/primitives/MeshPrimitive.js +18 -0
  190. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -0
  191. package/lib/cjs/common/render/primitives/PointStringParams.d.ts +14 -0
  192. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +1 -0
  193. package/lib/cjs/common/render/primitives/PointStringParams.js +10 -0
  194. package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -0
  195. package/lib/cjs/common/render/primitives/PolylineParams.d.ts +29 -0
  196. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +1 -0
  197. package/lib/cjs/common/render/primitives/PolylineParams.js +10 -0
  198. package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -0
  199. package/lib/{esm → cjs/common}/render/primitives/SurfaceParams.d.ts +1 -1
  200. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  201. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -0
  202. package/lib/cjs/common/render/primitives/VertexIndices.d.ts +26 -0
  203. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +1 -0
  204. package/lib/cjs/common/render/primitives/VertexIndices.js +64 -0
  205. package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -0
  206. package/lib/cjs/common/render/primitives/VertexTable.d.ts +45 -0
  207. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +1 -0
  208. package/lib/cjs/common/render/primitives/VertexTable.js +38 -0
  209. package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -0
  210. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.d.ts +23 -2
  211. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  212. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.js +46 -35
  213. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -0
  214. package/lib/cjs/core-frontend.d.ts +45 -8
  215. package/lib/cjs/core-frontend.d.ts.map +1 -1
  216. package/lib/cjs/core-frontend.js +45 -8
  217. package/lib/cjs/core-frontend.js.map +1 -1
  218. package/lib/cjs/extension/ExtensionAdmin.js +1 -1
  219. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  220. package/lib/cjs/quantity-formatting/QuantityFormatter.js +1 -1
  221. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  222. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +24 -0
  223. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  224. package/lib/cjs/render/CreateRenderMaterialArgs.js +10 -0
  225. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -0
  226. package/lib/{esm/render/RenderTexture.d.ts → cjs/render/CreateTextureArgs.d.ts} +4 -28
  227. package/lib/cjs/render/CreateTextureArgs.d.ts.map +1 -0
  228. package/lib/cjs/render/CreateTextureArgs.js +10 -0
  229. package/lib/cjs/render/CreateTextureArgs.js.map +1 -0
  230. package/lib/cjs/render/GraphicBranch.d.ts +5 -7
  231. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  232. package/lib/cjs/render/GraphicBranch.js +1 -9
  233. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  234. package/lib/cjs/render/InstancedGraphicParams.d.ts +3 -4
  235. package/lib/cjs/render/InstancedGraphicParams.d.ts.map +1 -1
  236. package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
  237. package/lib/cjs/render/MockRender.d.ts +4 -4
  238. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  239. package/lib/cjs/render/MockRender.js +1 -1
  240. package/lib/cjs/render/MockRender.js.map +1 -1
  241. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  242. package/lib/cjs/render/ParticleCollectionBuilder.js +5 -5
  243. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  244. package/lib/cjs/render/Pixel.d.ts +57 -0
  245. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  246. package/lib/cjs/render/Pixel.js +41 -0
  247. package/lib/cjs/render/Pixel.js.map +1 -1
  248. package/lib/cjs/render/RealityMeshParams.js +2 -2
  249. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  250. package/lib/cjs/render/RenderSystem.d.ts +24 -10
  251. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  252. package/lib/cjs/render/RenderSystem.js +7 -8
  253. package/lib/cjs/render/RenderSystem.js.map +1 -1
  254. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  255. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  256. package/lib/cjs/render/RenderTarget.js.map +1 -1
  257. package/lib/cjs/render/VisibleFeature.d.ts +1 -1
  258. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  259. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  260. package/lib/cjs/render/primitives/EdgeParams.d.ts +2 -89
  261. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  262. package/lib/cjs/render/primitives/EdgeParams.js +44 -80
  263. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  264. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts +1 -0
  265. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  266. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  267. package/lib/cjs/render/primitives/PointStringParams.d.ts +3 -11
  268. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -1
  269. package/lib/cjs/render/primitives/PointStringParams.js +27 -30
  270. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  271. package/lib/cjs/render/primitives/Polyface.d.ts +1 -1
  272. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  273. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  274. package/lib/cjs/render/primitives/PolylineParams.d.ts +8 -37
  275. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
  276. package/lib/cjs/render/primitives/PolylineParams.js +40 -48
  277. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  278. package/lib/cjs/render/primitives/Strokes.d.ts +1 -1
  279. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  280. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  281. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts +31 -0
  282. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  283. package/lib/cjs/render/primitives/{VertexTable.js → VertexTableBuilder.js} +62 -173
  284. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -0
  285. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  286. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  287. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  288. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  289. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  290. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -1
  291. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  292. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  293. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  294. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +1 -1
  295. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  296. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +2 -1
  297. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  298. package/lib/cjs/render/primitives/mesh/MeshBuilder.js +5 -2
  299. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  300. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  301. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  302. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +7 -4
  303. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  304. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +58 -31
  305. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  306. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +25 -29
  307. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  308. package/lib/cjs/render/webgl/BatchState.js +1 -1
  309. package/lib/cjs/render/webgl/BatchState.js.map +1 -1
  310. package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
  311. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/BranchState.js +2 -0
  313. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  314. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  315. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  316. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  317. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  318. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  320. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  321. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  323. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  324. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  325. package/lib/cjs/render/webgl/Graphic.d.ts +7 -1
  326. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  327. package/lib/cjs/render/webgl/Graphic.js +7 -2
  328. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  329. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  330. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  331. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  332. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  333. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  334. package/lib/cjs/render/webgl/Material.js.map +1 -1
  335. package/lib/cjs/render/webgl/Mesh.d.ts +2 -2
  336. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  337. package/lib/cjs/render/webgl/Mesh.js +1 -1
  338. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  339. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  340. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  341. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  342. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  343. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  345. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  346. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  347. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  348. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  349. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  350. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  351. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  352. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  353. package/lib/cjs/render/webgl/SceneCompositor.d.ts +2 -1
  354. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  355. package/lib/cjs/render/webgl/SceneCompositor.js +5 -2
  356. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  357. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  358. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  359. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  360. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  361. package/lib/cjs/render/webgl/System.d.ts +7 -6
  362. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  363. package/lib/cjs/render/webgl/System.js +1 -1
  364. package/lib/cjs/render/webgl/System.js.map +1 -1
  365. package/lib/cjs/render/webgl/Target.d.ts +1 -1
  366. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  367. package/lib/cjs/render/webgl/Target.js +14 -12
  368. package/lib/cjs/render/webgl/Target.js.map +1 -1
  369. package/lib/cjs/render/webgl/Texture.d.ts +1 -1
  370. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/Texture.js +1 -1
  372. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  373. package/lib/cjs/render/webgl/UniformHandle.js +1 -1
  374. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  375. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  376. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  377. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  378. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  380. package/lib/cjs/render/webgl/glsl/RealityMesh.js +32 -19
  381. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  382. package/lib/cjs/tile/B3dmReader.d.ts +1 -1
  383. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  384. package/lib/cjs/tile/B3dmReader.js +1 -1
  385. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  386. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  387. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  388. package/lib/cjs/tile/FetchCloudStorage.d.ts +15 -0
  389. package/lib/cjs/tile/FetchCloudStorage.d.ts.map +1 -0
  390. package/lib/cjs/tile/FetchCloudStorage.js +35 -0
  391. package/lib/cjs/tile/FetchCloudStorage.js.map +1 -0
  392. package/lib/cjs/tile/GltfReader.d.ts +3 -3
  393. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  394. package/lib/cjs/tile/GltfReader.js +15 -22
  395. package/lib/cjs/tile/GltfReader.js.map +1 -1
  396. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  397. package/lib/cjs/tile/IModelTile.js +11 -17
  398. package/lib/cjs/tile/IModelTile.js.map +1 -1
  399. package/lib/cjs/tile/IModelTileTree.d.ts +4 -1
  400. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  401. package/lib/cjs/tile/IModelTileTree.js +15 -0
  402. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  403. package/lib/cjs/tile/ImdlDecoder.d.ts +52 -0
  404. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -0
  405. package/lib/cjs/tile/ImdlDecoder.js +35 -0
  406. package/lib/cjs/tile/ImdlDecoder.js.map +1 -0
  407. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +19 -0
  408. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  409. package/lib/cjs/tile/ImdlGraphicsCreator.js +328 -0
  410. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -0
  411. package/lib/cjs/tile/ImdlParser.d.ts +26 -0
  412. package/lib/cjs/tile/ImdlParser.d.ts.map +1 -0
  413. package/lib/cjs/tile/ImdlParser.js +72 -0
  414. package/lib/cjs/tile/ImdlParser.js.map +1 -0
  415. package/lib/cjs/tile/ImdlReader.d.ts +16 -420
  416. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  417. package/lib/cjs/tile/ImdlReader.js +69 -902
  418. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  419. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -1
  420. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  421. package/lib/cjs/tile/PntsReader.js +1 -1
  422. package/lib/cjs/tile/PntsReader.js.map +1 -1
  423. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  424. package/lib/cjs/tile/PrimaryTileTree.js +2 -1
  425. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  426. package/lib/cjs/tile/RealityTile.d.ts +8 -3
  427. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  428. package/lib/cjs/tile/RealityTile.js +4 -1
  429. package/lib/cjs/tile/RealityTile.js.map +1 -1
  430. package/lib/cjs/tile/RealityTileLoader.js +1 -1
  431. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  432. package/lib/cjs/tile/RealityTileTree.js +1 -1
  433. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  434. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
  435. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  436. package/lib/cjs/tile/TileAdmin.d.ts +14 -11
  437. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  438. package/lib/cjs/tile/TileAdmin.js +9 -52
  439. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  440. package/lib/cjs/tile/internal.d.ts +8 -0
  441. package/lib/cjs/tile/internal.d.ts.map +1 -1
  442. package/lib/cjs/tile/internal.js +8 -0
  443. package/lib/cjs/tile/internal.js.map +1 -1
  444. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +8 -1
  445. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  446. package/lib/cjs/tile/map/ArcGisUtilities.js +21 -0
  447. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  448. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +6 -4
  449. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  450. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +6 -4
  451. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  452. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +2 -0
  453. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  454. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -2
  455. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  456. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +55 -2
  457. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  458. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +96 -23
  459. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  460. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +15 -0
  461. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
  462. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +59 -0
  463. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
  464. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +44 -0
  465. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -0
  466. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js +126 -0
  467. package/lib/cjs/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -0
  468. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +26 -0
  469. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -0
  470. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +134 -0
  471. package/lib/cjs/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -0
  472. package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts +6 -0
  473. package/lib/cjs/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
  474. package/lib/cjs/tile/map/ImageryProviders/WebMercator.js +22 -0
  475. package/lib/cjs/tile/map/ImageryProviders/WebMercator.js.map +1 -0
  476. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -1
  477. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  478. package/lib/cjs/tile/map/ImageryTileTree.js +16 -9
  479. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  480. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +67 -7
  481. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  482. package/lib/cjs/tile/map/MapFeatureInfo.js +16 -2
  483. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  484. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  485. package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -0
  486. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  487. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +4 -1
  488. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  489. package/lib/cjs/tile/map/MapLayerImageryProvider.js +3 -1
  490. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  491. package/lib/cjs/tile/map/MapLayerSources.d.ts +4 -1
  492. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  493. package/lib/cjs/tile/map/MapLayerSources.js +3 -0
  494. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  495. package/lib/cjs/tile/map/MapTile.d.ts +6 -1
  496. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  497. package/lib/cjs/tile/map/MapTile.js +17 -8
  498. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  499. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  500. package/lib/cjs/tile/map/MapTileLoader.js +1 -15
  501. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  502. package/lib/cjs/tile/map/MapTileTree.d.ts +12 -3
  503. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  504. package/lib/cjs/tile/map/MapTileTree.js +41 -22
  505. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  506. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +2 -3
  507. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  508. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +3 -4
  509. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  510. package/lib/cjs/tile/map/MapTilingScheme.d.ts +4 -4
  511. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  512. package/lib/cjs/tile/map/MapTilingScheme.js +4 -4
  513. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  514. package/lib/cjs/tools/ElementSetTool.js +1 -1
  515. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  516. package/lib/cjs/tools/SelectTool.js +1 -1
  517. package/lib/cjs/tools/SelectTool.js.map +1 -1
  518. package/lib/cjs/tools/ToolAdmin.d.ts +8 -6
  519. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  520. package/lib/cjs/tools/ToolAdmin.js +9 -7
  521. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  522. package/lib/cjs/tools/ToolAssistance.d.ts +18 -0
  523. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  524. package/lib/cjs/tools/ToolAssistance.js +8 -0
  525. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  526. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  527. package/lib/cjs/tools/ViewTool.js +3 -2
  528. package/lib/cjs/tools/ViewTool.js.map +1 -1
  529. package/lib/cjs/workers/ImdlParser/Worker.d.ts +20 -0
  530. package/lib/cjs/workers/ImdlParser/Worker.d.ts.map +1 -0
  531. package/lib/cjs/workers/ImdlParser/Worker.js +32 -0
  532. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -0
  533. package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -0
  534. package/lib/cjs/workers/RegisterWorker.d.ts +9 -0
  535. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -0
  536. package/lib/cjs/workers/RegisterWorker.js +36 -0
  537. package/lib/cjs/workers/RegisterWorker.js.map +1 -0
  538. package/lib/esm/AccuDraw.d.ts +3 -4
  539. package/lib/esm/AccuDraw.d.ts.map +1 -1
  540. package/lib/esm/AccuDraw.js +6 -7
  541. package/lib/esm/AccuDraw.js.map +1 -1
  542. package/lib/esm/AccuSnap.d.ts +7 -1
  543. package/lib/esm/AccuSnap.d.ts.map +1 -1
  544. package/lib/esm/AccuSnap.js +24 -6
  545. package/lib/esm/AccuSnap.js.map +1 -1
  546. package/lib/esm/BackgroundMapGeometry.d.ts +3 -2
  547. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  548. package/lib/esm/BackgroundMapGeometry.js +47 -7
  549. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  550. package/lib/esm/BriefcaseConnection.d.ts +3 -3
  551. package/lib/esm/BriefcaseConnection.js +3 -3
  552. package/lib/esm/BriefcaseConnection.js.map +1 -1
  553. package/lib/esm/BriefcaseTxns.d.ts +2 -2
  554. package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
  555. package/lib/esm/BriefcaseTxns.js +3 -3
  556. package/lib/esm/BriefcaseTxns.js.map +1 -1
  557. package/lib/esm/ChangeFlags.d.ts +25 -12
  558. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  559. package/lib/esm/ChangeFlags.js +24 -11
  560. package/lib/esm/ChangeFlags.js.map +1 -1
  561. package/lib/esm/CheckpointConnection.js +1 -1
  562. package/lib/esm/CheckpointConnection.js.map +1 -1
  563. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  564. package/lib/esm/DisplayStyleState.js +2 -1
  565. package/lib/esm/DisplayStyleState.js.map +1 -1
  566. package/lib/esm/DrawingViewState.d.ts +2 -2
  567. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  568. package/lib/esm/DrawingViewState.js +3 -3
  569. package/lib/esm/DrawingViewState.js.map +1 -1
  570. package/lib/esm/ElementLocateManager.d.ts +0 -1
  571. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  572. package/lib/esm/ElementLocateManager.js +12 -20
  573. package/lib/esm/ElementLocateManager.js.map +1 -1
  574. package/lib/esm/EnvironmentDecorations.js +1 -1
  575. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  576. package/lib/esm/GeoServices.d.ts +37 -7
  577. package/lib/esm/GeoServices.d.ts.map +1 -1
  578. package/lib/esm/GeoServices.js +75 -25
  579. package/lib/esm/GeoServices.js.map +1 -1
  580. package/lib/esm/GraphicalEditingScope.d.ts +2 -2
  581. package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
  582. package/lib/esm/GraphicalEditingScope.js +2 -2
  583. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  584. package/lib/esm/HitDetail.d.ts +100 -29
  585. package/lib/esm/HitDetail.d.ts.map +1 -1
  586. package/lib/esm/HitDetail.js +90 -37
  587. package/lib/esm/HitDetail.js.map +1 -1
  588. package/lib/esm/IModelApp.d.ts +18 -14
  589. package/lib/esm/IModelApp.d.ts.map +1 -1
  590. package/lib/esm/IModelApp.js +17 -13
  591. package/lib/esm/IModelApp.js.map +1 -1
  592. package/lib/esm/IModelConnection.d.ts +64 -19
  593. package/lib/esm/IModelConnection.d.ts.map +1 -1
  594. package/lib/esm/IModelConnection.js +132 -21
  595. package/lib/esm/IModelConnection.js.map +1 -1
  596. package/lib/esm/IpcApp.d.ts +1 -1
  597. package/lib/esm/IpcApp.d.ts.map +1 -1
  598. package/lib/esm/IpcApp.js +5 -5
  599. package/lib/esm/IpcApp.js.map +1 -1
  600. package/lib/esm/LocalhostIpcApp.js +2 -2
  601. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  602. package/lib/esm/Marker.d.ts +1 -1
  603. package/lib/esm/Marker.d.ts.map +1 -1
  604. package/lib/esm/Marker.js +3 -3
  605. package/lib/esm/Marker.js.map +1 -1
  606. package/lib/esm/NativeApp.d.ts.map +1 -1
  607. package/lib/esm/NativeApp.js +5 -5
  608. package/lib/esm/NativeApp.js.map +1 -1
  609. package/lib/esm/NoRenderApp.d.ts +1 -1
  610. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  611. package/lib/esm/NoRenderApp.js +1 -1
  612. package/lib/esm/NoRenderApp.js.map +1 -1
  613. package/lib/esm/RealityDataSource.js +1 -1
  614. package/lib/esm/RealityDataSource.js.map +1 -1
  615. package/lib/esm/RealityDataSourceContextShareImpl.js +1 -1
  616. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  617. package/lib/esm/SheetViewState.d.ts +9 -7
  618. package/lib/esm/SheetViewState.d.ts.map +1 -1
  619. package/lib/esm/SheetViewState.js +22 -7
  620. package/lib/esm/SheetViewState.js.map +1 -1
  621. package/lib/esm/SpatialViewState.d.ts +20 -5
  622. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  623. package/lib/esm/SpatialViewState.js +13 -5
  624. package/lib/esm/SpatialViewState.js.map +1 -1
  625. package/lib/esm/Sprites.js +2 -2
  626. package/lib/esm/Sprites.js.map +1 -1
  627. package/lib/esm/TentativePoint.d.ts.map +1 -1
  628. package/lib/esm/TentativePoint.js +10 -1
  629. package/lib/esm/TentativePoint.js.map +1 -1
  630. package/lib/esm/ViewContext.d.ts +19 -0
  631. package/lib/esm/ViewContext.d.ts.map +1 -1
  632. package/lib/esm/ViewContext.js +9 -0
  633. package/lib/esm/ViewContext.js.map +1 -1
  634. package/lib/esm/ViewCreator3d.d.ts +3 -6
  635. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  636. package/lib/esm/ViewCreator3d.js +14 -35
  637. package/lib/esm/ViewCreator3d.js.map +1 -1
  638. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  639. package/lib/esm/ViewGlobalLocation.js +4 -3
  640. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  641. package/lib/esm/ViewManager.d.ts +4 -2
  642. package/lib/esm/ViewManager.d.ts.map +1 -1
  643. package/lib/esm/ViewManager.js +4 -2
  644. package/lib/esm/ViewManager.js.map +1 -1
  645. package/lib/esm/ViewPose.d.ts +11 -11
  646. package/lib/esm/ViewPose.d.ts.map +1 -1
  647. package/lib/esm/ViewPose.js +17 -11
  648. package/lib/esm/ViewPose.js.map +1 -1
  649. package/lib/esm/ViewState.d.ts +44 -26
  650. package/lib/esm/ViewState.d.ts.map +1 -1
  651. package/lib/esm/ViewState.js +52 -25
  652. package/lib/esm/ViewState.js.map +1 -1
  653. package/lib/esm/ViewingSpace.js +1 -1
  654. package/lib/esm/ViewingSpace.js.map +1 -1
  655. package/lib/esm/Viewport.d.ts +59 -21
  656. package/lib/esm/Viewport.d.ts.map +1 -1
  657. package/lib/esm/Viewport.js +67 -24
  658. package/lib/esm/Viewport.js.map +1 -1
  659. package/lib/esm/ViewportSync.d.ts +2 -2
  660. package/lib/esm/ViewportSync.d.ts.map +1 -1
  661. package/lib/esm/ViewportSync.js +2 -2
  662. package/lib/esm/ViewportSync.js.map +1 -1
  663. package/lib/esm/common/FrontendLoggerCategory.d.ts.map +1 -0
  664. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -0
  665. package/lib/esm/common/ImageUtil.d.ts.map +1 -0
  666. package/lib/esm/{ImageUtil.js → common/ImageUtil.js} +2 -0
  667. package/lib/esm/common/ImageUtil.js.map +1 -0
  668. package/lib/esm/common/ViewRect.d.ts.map +1 -0
  669. package/lib/esm/common/ViewRect.js.map +1 -0
  670. package/lib/esm/common/WorkerProxy.d.ts +73 -0
  671. package/lib/esm/common/WorkerProxy.d.ts.map +1 -0
  672. package/lib/esm/common/WorkerProxy.js +50 -0
  673. package/lib/esm/common/WorkerProxy.js.map +1 -0
  674. package/lib/{cjs → esm/common}/gltf/GltfModel.d.ts +1 -1
  675. package/lib/esm/common/gltf/GltfModel.d.ts.map +1 -0
  676. package/lib/esm/common/gltf/GltfModel.js.map +1 -0
  677. package/lib/esm/common/gltf/GltfParser.d.ts.map +1 -0
  678. package/lib/esm/common/gltf/GltfParser.js.map +1 -0
  679. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -0
  680. package/lib/esm/common/gltf/GltfSchema.js.map +1 -0
  681. package/lib/esm/common/imdl/CompactEdges.d.ts +27 -0
  682. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -0
  683. package/lib/esm/common/imdl/CompactEdges.js +92 -0
  684. package/lib/esm/common/imdl/CompactEdges.js.map +1 -0
  685. package/lib/esm/common/imdl/ImdlModel.d.ts +186 -0
  686. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -0
  687. package/lib/esm/common/imdl/ImdlModel.js +67 -0
  688. package/lib/esm/common/imdl/ImdlModel.js.map +1 -0
  689. package/lib/esm/common/imdl/ImdlSchema.d.ts +412 -0
  690. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -0
  691. package/lib/esm/common/imdl/ImdlSchema.js +20 -0
  692. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -0
  693. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +45 -0
  694. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  695. package/lib/esm/common/imdl/ParseImdlDocument.js +1003 -0
  696. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -0
  697. package/lib/esm/common/render/AnimationNodeId.d.ts +11 -0
  698. package/lib/esm/common/render/AnimationNodeId.d.ts.map +1 -0
  699. package/lib/esm/common/render/AnimationNodeId.js +16 -0
  700. package/lib/esm/common/render/AnimationNodeId.js.map +1 -0
  701. package/lib/{cjs/render/RenderMaterial.d.ts → esm/common/render/MaterialParams.d.ts} +7 -20
  702. package/lib/esm/common/render/MaterialParams.d.ts.map +1 -0
  703. package/lib/esm/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  704. package/lib/esm/common/render/MaterialParams.js.map +1 -0
  705. package/lib/esm/common/render/TextureParams.d.ts +30 -0
  706. package/lib/esm/common/render/TextureParams.d.ts.map +1 -0
  707. package/lib/esm/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  708. package/lib/esm/common/render/TextureParams.js.map +1 -0
  709. package/lib/{cjs → esm/common}/render/primitives/AuxChannelTable.d.ts +12 -8
  710. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  711. package/lib/esm/{render → common/render}/primitives/AuxChannelTable.js +42 -9
  712. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -0
  713. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +1 -0
  714. package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -0
  715. package/lib/esm/common/render/primitives/EdgeParams.d.ts +94 -0
  716. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +1 -0
  717. package/lib/esm/common/render/primitives/EdgeParams.js +42 -0
  718. package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -0
  719. package/lib/esm/common/render/primitives/MeshParams.d.ts +20 -0
  720. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +1 -0
  721. package/lib/esm/common/render/primitives/MeshParams.js +9 -0
  722. package/lib/esm/common/render/primitives/MeshParams.js.map +1 -0
  723. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts +29 -0
  724. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  725. package/lib/esm/common/render/primitives/MeshPrimitive.js +15 -0
  726. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -0
  727. package/lib/esm/common/render/primitives/PointStringParams.d.ts +14 -0
  728. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +1 -0
  729. package/lib/esm/common/render/primitives/PointStringParams.js +9 -0
  730. package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -0
  731. package/lib/esm/common/render/primitives/PolylineParams.d.ts +29 -0
  732. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +1 -0
  733. package/lib/esm/common/render/primitives/PolylineParams.js +9 -0
  734. package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -0
  735. package/lib/{cjs → esm/common}/render/primitives/SurfaceParams.d.ts +1 -1
  736. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  737. package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -0
  738. package/lib/esm/common/render/primitives/VertexIndices.d.ts +26 -0
  739. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +1 -0
  740. package/lib/esm/common/render/primitives/VertexIndices.js +60 -0
  741. package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -0
  742. package/lib/esm/common/render/primitives/VertexTable.d.ts +45 -0
  743. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +1 -0
  744. package/lib/esm/common/render/primitives/VertexTable.js +34 -0
  745. package/lib/esm/common/render/primitives/VertexTable.js.map +1 -0
  746. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.d.ts +23 -2
  747. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  748. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.js +44 -33
  749. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -0
  750. package/lib/esm/core-frontend.d.ts +45 -8
  751. package/lib/esm/core-frontend.d.ts.map +1 -1
  752. package/lib/esm/core-frontend.js +45 -8
  753. package/lib/esm/core-frontend.js.map +1 -1
  754. package/lib/esm/extension/ExtensionAdmin.js +1 -1
  755. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  756. package/lib/esm/quantity-formatting/QuantityFormatter.js +1 -1
  757. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  758. package/lib/esm/render/CreateRenderMaterialArgs.d.ts +24 -0
  759. package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  760. package/lib/esm/render/CreateRenderMaterialArgs.js +9 -0
  761. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -0
  762. package/lib/{cjs/render/RenderTexture.d.ts → esm/render/CreateTextureArgs.d.ts} +4 -28
  763. package/lib/esm/render/CreateTextureArgs.d.ts.map +1 -0
  764. package/lib/esm/render/CreateTextureArgs.js +9 -0
  765. package/lib/esm/render/CreateTextureArgs.js.map +1 -0
  766. package/lib/esm/render/GraphicBranch.d.ts +5 -7
  767. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  768. package/lib/esm/render/GraphicBranch.js +0 -8
  769. package/lib/esm/render/GraphicBranch.js.map +1 -1
  770. package/lib/esm/render/InstancedGraphicParams.d.ts +3 -4
  771. package/lib/esm/render/InstancedGraphicParams.d.ts.map +1 -1
  772. package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
  773. package/lib/esm/render/MockRender.d.ts +4 -4
  774. package/lib/esm/render/MockRender.d.ts.map +1 -1
  775. package/lib/esm/render/MockRender.js +1 -1
  776. package/lib/esm/render/MockRender.js.map +1 -1
  777. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  778. package/lib/esm/render/ParticleCollectionBuilder.js +5 -5
  779. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  780. package/lib/esm/render/Pixel.d.ts +57 -0
  781. package/lib/esm/render/Pixel.d.ts.map +1 -1
  782. package/lib/esm/render/Pixel.js +41 -0
  783. package/lib/esm/render/Pixel.js.map +1 -1
  784. package/lib/esm/render/RealityMeshParams.js +2 -2
  785. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  786. package/lib/esm/render/RenderSystem.d.ts +24 -10
  787. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  788. package/lib/esm/render/RenderSystem.js +8 -9
  789. package/lib/esm/render/RenderSystem.js.map +1 -1
  790. package/lib/esm/render/RenderTarget.d.ts +1 -1
  791. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  792. package/lib/esm/render/RenderTarget.js.map +1 -1
  793. package/lib/esm/render/VisibleFeature.d.ts +1 -1
  794. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  795. package/lib/esm/render/VisibleFeature.js.map +1 -1
  796. package/lib/esm/render/primitives/EdgeParams.d.ts +2 -89
  797. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  798. package/lib/esm/render/primitives/EdgeParams.js +38 -74
  799. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  800. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts +1 -0
  801. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +1 -1
  802. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  803. package/lib/esm/render/primitives/PointStringParams.d.ts +3 -11
  804. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -1
  805. package/lib/esm/render/primitives/PointStringParams.js +25 -28
  806. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  807. package/lib/esm/render/primitives/Polyface.d.ts +1 -1
  808. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  809. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  810. package/lib/esm/render/primitives/PolylineParams.d.ts +8 -37
  811. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
  812. package/lib/esm/render/primitives/PolylineParams.js +34 -43
  813. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  814. package/lib/esm/render/primitives/Strokes.d.ts +1 -1
  815. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  816. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  817. package/lib/esm/render/primitives/VertexTableBuilder.d.ts +31 -0
  818. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  819. package/lib/esm/render/primitives/{VertexTable.js → VertexTableBuilder.js} +62 -170
  820. package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -0
  821. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  822. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  823. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  824. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  825. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  826. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -1
  827. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  828. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  829. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  830. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +1 -1
  831. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  832. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +2 -1
  833. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  834. package/lib/esm/render/primitives/mesh/MeshBuilder.js +5 -2
  835. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  836. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  837. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  838. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +8 -5
  839. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  840. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +58 -31
  841. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  842. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +26 -30
  843. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  844. package/lib/esm/render/webgl/BatchState.js +1 -1
  845. package/lib/esm/render/webgl/BatchState.js.map +1 -1
  846. package/lib/esm/render/webgl/BranchState.d.ts +3 -0
  847. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  848. package/lib/esm/render/webgl/BranchState.js +2 -0
  849. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  850. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  851. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  852. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  853. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  854. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  855. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  856. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  857. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  858. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  859. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  860. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  861. package/lib/esm/render/webgl/Graphic.d.ts +7 -1
  862. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  863. package/lib/esm/render/webgl/Graphic.js +7 -2
  864. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  865. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  866. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  867. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  868. package/lib/esm/render/webgl/Material.d.ts +1 -1
  869. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  870. package/lib/esm/render/webgl/Material.js.map +1 -1
  871. package/lib/esm/render/webgl/Mesh.d.ts +2 -2
  872. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  873. package/lib/esm/render/webgl/Mesh.js +1 -1
  874. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  875. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  876. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  877. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  878. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  879. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  880. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  881. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  882. package/lib/esm/render/webgl/PointString.js.map +1 -1
  883. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  884. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  885. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  886. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  887. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  888. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  889. package/lib/esm/render/webgl/SceneCompositor.d.ts +2 -1
  890. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  891. package/lib/esm/render/webgl/SceneCompositor.js +5 -2
  892. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  893. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  894. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  895. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  896. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  897. package/lib/esm/render/webgl/System.d.ts +7 -6
  898. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  899. package/lib/esm/render/webgl/System.js +1 -1
  900. package/lib/esm/render/webgl/System.js.map +1 -1
  901. package/lib/esm/render/webgl/Target.d.ts +1 -1
  902. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  903. package/lib/esm/render/webgl/Target.js +13 -11
  904. package/lib/esm/render/webgl/Target.js.map +1 -1
  905. package/lib/esm/render/webgl/Texture.d.ts +1 -1
  906. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  907. package/lib/esm/render/webgl/Texture.js +1 -1
  908. package/lib/esm/render/webgl/Texture.js.map +1 -1
  909. package/lib/esm/render/webgl/UniformHandle.js +1 -1
  910. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  911. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  912. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  913. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  914. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  915. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  916. package/lib/esm/render/webgl/glsl/RealityMesh.js +32 -19
  917. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  918. package/lib/esm/tile/B3dmReader.d.ts +1 -1
  919. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  920. package/lib/esm/tile/B3dmReader.js +1 -1
  921. package/lib/esm/tile/B3dmReader.js.map +1 -1
  922. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  923. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  924. package/lib/esm/tile/FetchCloudStorage.d.ts +15 -0
  925. package/lib/esm/tile/FetchCloudStorage.d.ts.map +1 -0
  926. package/lib/esm/tile/FetchCloudStorage.js +31 -0
  927. package/lib/esm/tile/FetchCloudStorage.js.map +1 -0
  928. package/lib/esm/tile/GltfReader.d.ts +3 -3
  929. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  930. package/lib/esm/tile/GltfReader.js +15 -22
  931. package/lib/esm/tile/GltfReader.js.map +1 -1
  932. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  933. package/lib/esm/tile/IModelTile.js +12 -18
  934. package/lib/esm/tile/IModelTile.js.map +1 -1
  935. package/lib/esm/tile/IModelTileTree.d.ts +4 -1
  936. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  937. package/lib/esm/tile/IModelTileTree.js +16 -1
  938. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  939. package/lib/esm/tile/ImdlDecoder.d.ts +52 -0
  940. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -0
  941. package/lib/esm/tile/ImdlDecoder.js +31 -0
  942. package/lib/esm/tile/ImdlDecoder.js.map +1 -0
  943. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +19 -0
  944. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  945. package/lib/esm/tile/ImdlGraphicsCreator.js +324 -0
  946. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -0
  947. package/lib/esm/tile/ImdlParser.d.ts +26 -0
  948. package/lib/esm/tile/ImdlParser.d.ts.map +1 -0
  949. package/lib/esm/tile/ImdlParser.js +68 -0
  950. package/lib/esm/tile/ImdlParser.js.map +1 -0
  951. package/lib/esm/tile/ImdlReader.d.ts +16 -420
  952. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  953. package/lib/esm/tile/ImdlReader.js +71 -903
  954. package/lib/esm/tile/ImdlReader.js.map +1 -1
  955. package/lib/esm/tile/OPCFormatInterpreter.js +1 -1
  956. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  957. package/lib/esm/tile/PntsReader.js +1 -1
  958. package/lib/esm/tile/PntsReader.js.map +1 -1
  959. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  960. package/lib/esm/tile/PrimaryTileTree.js +2 -1
  961. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  962. package/lib/esm/tile/RealityTile.d.ts +8 -3
  963. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  964. package/lib/esm/tile/RealityTile.js +4 -1
  965. package/lib/esm/tile/RealityTile.js.map +1 -1
  966. package/lib/esm/tile/RealityTileLoader.js +1 -1
  967. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  968. package/lib/esm/tile/RealityTileTree.js +1 -1
  969. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  970. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
  971. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  972. package/lib/esm/tile/TileAdmin.d.ts +14 -11
  973. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  974. package/lib/esm/tile/TileAdmin.js +10 -30
  975. package/lib/esm/tile/TileAdmin.js.map +1 -1
  976. package/lib/esm/tile/internal.d.ts +8 -0
  977. package/lib/esm/tile/internal.d.ts.map +1 -1
  978. package/lib/esm/tile/internal.js +8 -0
  979. package/lib/esm/tile/internal.js.map +1 -1
  980. package/lib/esm/tile/map/ArcGisUtilities.d.ts +8 -1
  981. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  982. package/lib/esm/tile/map/ArcGisUtilities.js +21 -0
  983. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  984. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +6 -4
  985. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  986. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +6 -4
  987. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  988. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +2 -0
  989. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  990. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -2
  991. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  992. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +55 -2
  993. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  994. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +96 -24
  995. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  996. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts +15 -0
  997. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.d.ts.map +1 -0
  998. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js +55 -0
  999. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -0
  1000. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts +44 -0
  1001. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.d.ts.map +1 -0
  1002. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js +122 -0
  1003. package/lib/esm/tile/map/ImageryProviders/ArcGisGeometryRenderer.js.map +1 -0
  1004. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts +26 -0
  1005. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.d.ts.map +1 -0
  1006. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js +130 -0
  1007. package/lib/esm/tile/map/ImageryProviders/ArcGisGraphicsRenderer.js.map +1 -0
  1008. package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts +6 -0
  1009. package/lib/esm/tile/map/ImageryProviders/WebMercator.d.ts.map +1 -0
  1010. package/lib/esm/tile/map/ImageryProviders/WebMercator.js +18 -0
  1011. package/lib/esm/tile/map/ImageryProviders/WebMercator.js.map +1 -0
  1012. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -1
  1013. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1014. package/lib/esm/tile/map/ImageryTileTree.js +16 -9
  1015. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1016. package/lib/esm/tile/map/MapFeatureInfo.d.ts +67 -7
  1017. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  1018. package/lib/esm/tile/map/MapFeatureInfo.js +14 -1
  1019. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  1020. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1021. package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -0
  1022. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1023. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +4 -1
  1024. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1025. package/lib/esm/tile/map/MapLayerImageryProvider.js +3 -1
  1026. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1027. package/lib/esm/tile/map/MapLayerSources.d.ts +4 -1
  1028. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1029. package/lib/esm/tile/map/MapLayerSources.js +3 -0
  1030. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1031. package/lib/esm/tile/map/MapTile.d.ts +6 -1
  1032. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1033. package/lib/esm/tile/map/MapTile.js +17 -8
  1034. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1035. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  1036. package/lib/esm/tile/map/MapTileLoader.js +1 -15
  1037. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1038. package/lib/esm/tile/map/MapTileTree.d.ts +12 -3
  1039. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1040. package/lib/esm/tile/map/MapTileTree.js +42 -23
  1041. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1042. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +2 -3
  1043. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1044. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +3 -4
  1045. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1046. package/lib/esm/tile/map/MapTilingScheme.d.ts +4 -4
  1047. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1048. package/lib/esm/tile/map/MapTilingScheme.js +4 -4
  1049. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1050. package/lib/esm/tools/ElementSetTool.js +1 -1
  1051. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1052. package/lib/esm/tools/SelectTool.js +1 -1
  1053. package/lib/esm/tools/SelectTool.js.map +1 -1
  1054. package/lib/esm/tools/ToolAdmin.d.ts +8 -6
  1055. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1056. package/lib/esm/tools/ToolAdmin.js +9 -7
  1057. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1058. package/lib/esm/tools/ToolAssistance.d.ts +18 -0
  1059. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  1060. package/lib/esm/tools/ToolAssistance.js +8 -0
  1061. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  1062. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1063. package/lib/esm/tools/ViewTool.js +3 -2
  1064. package/lib/esm/tools/ViewTool.js.map +1 -1
  1065. package/lib/esm/workers/ImdlParser/Worker.d.ts +20 -0
  1066. package/lib/esm/workers/ImdlParser/Worker.d.ts.map +1 -0
  1067. package/lib/esm/workers/ImdlParser/Worker.js +30 -0
  1068. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -0
  1069. package/lib/esm/workers/ImdlParser/webpack.config.js +40 -0
  1070. package/lib/esm/workers/RegisterWorker.d.ts +9 -0
  1071. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -0
  1072. package/lib/esm/workers/RegisterWorker.js +32 -0
  1073. package/lib/esm/workers/RegisterWorker.js.map +1 -0
  1074. package/lib/public/scripts/parse-imdl-worker.js +1 -0
  1075. package/lib/workers/webpack/parse-imdl-worker.js +1 -0
  1076. package/package.json +30 -29
  1077. package/lib/cjs/FrontendLoggerCategory.d.ts.map +0 -1
  1078. package/lib/cjs/FrontendLoggerCategory.js.map +0 -1
  1079. package/lib/cjs/ImageUtil.d.ts.map +0 -1
  1080. package/lib/cjs/ImageUtil.js.map +0 -1
  1081. package/lib/cjs/ViewRect.d.ts.map +0 -1
  1082. package/lib/cjs/ViewRect.js.map +0 -1
  1083. package/lib/cjs/WebWorkerManager.d.ts +0 -49
  1084. package/lib/cjs/WebWorkerManager.d.ts.map +0 -1
  1085. package/lib/cjs/WebWorkerManager.js +0 -155
  1086. package/lib/cjs/WebWorkerManager.js.map +0 -1
  1087. package/lib/cjs/gltf/GltfModel.d.ts.map +0 -1
  1088. package/lib/cjs/gltf/GltfModel.js.map +0 -1
  1089. package/lib/cjs/gltf/GltfParser.d.ts.map +0 -1
  1090. package/lib/cjs/gltf/GltfParser.js.map +0 -1
  1091. package/lib/cjs/gltf/GltfSchema.d.ts.map +0 -1
  1092. package/lib/cjs/gltf/GltfSchema.js.map +0 -1
  1093. package/lib/cjs/render/RenderMaterial.d.ts.map +0 -1
  1094. package/lib/cjs/render/RenderMaterial.js.map +0 -1
  1095. package/lib/cjs/render/RenderTexture.d.ts.map +0 -1
  1096. package/lib/cjs/render/RenderTexture.js.map +0 -1
  1097. package/lib/cjs/render/primitives/AuxChannelTable.d.ts.map +0 -1
  1098. package/lib/cjs/render/primitives/AuxChannelTable.js.map +0 -1
  1099. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +0 -1
  1100. package/lib/cjs/render/primitives/DisplayParams.js.map +0 -1
  1101. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +0 -1
  1102. package/lib/cjs/render/primitives/SurfaceParams.js.map +0 -1
  1103. package/lib/cjs/render/primitives/VertexTable.d.ts +0 -152
  1104. package/lib/cjs/render/primitives/VertexTable.d.ts.map +0 -1
  1105. package/lib/cjs/render/primitives/VertexTable.js.map +0 -1
  1106. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  1107. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +0 -1
  1108. package/lib/cjs/render-primitives.d.ts +0 -21
  1109. package/lib/cjs/render-primitives.d.ts.map +0 -1
  1110. package/lib/cjs/render-primitives.js +0 -41
  1111. package/lib/cjs/render-primitives.js.map +0 -1
  1112. package/lib/esm/FrontendLoggerCategory.d.ts.map +0 -1
  1113. package/lib/esm/FrontendLoggerCategory.js.map +0 -1
  1114. package/lib/esm/ImageUtil.d.ts.map +0 -1
  1115. package/lib/esm/ImageUtil.js.map +0 -1
  1116. package/lib/esm/ViewRect.d.ts.map +0 -1
  1117. package/lib/esm/ViewRect.js.map +0 -1
  1118. package/lib/esm/WebWorkerManager.d.ts +0 -49
  1119. package/lib/esm/WebWorkerManager.d.ts.map +0 -1
  1120. package/lib/esm/WebWorkerManager.js +0 -150
  1121. package/lib/esm/WebWorkerManager.js.map +0 -1
  1122. package/lib/esm/gltf/GltfModel.d.ts.map +0 -1
  1123. package/lib/esm/gltf/GltfModel.js.map +0 -1
  1124. package/lib/esm/gltf/GltfParser.d.ts.map +0 -1
  1125. package/lib/esm/gltf/GltfParser.js.map +0 -1
  1126. package/lib/esm/gltf/GltfSchema.d.ts.map +0 -1
  1127. package/lib/esm/gltf/GltfSchema.js.map +0 -1
  1128. package/lib/esm/render/RenderMaterial.d.ts.map +0 -1
  1129. package/lib/esm/render/RenderMaterial.js.map +0 -1
  1130. package/lib/esm/render/RenderTexture.d.ts.map +0 -1
  1131. package/lib/esm/render/RenderTexture.js.map +0 -1
  1132. package/lib/esm/render/primitives/AuxChannelTable.d.ts.map +0 -1
  1133. package/lib/esm/render/primitives/AuxChannelTable.js.map +0 -1
  1134. package/lib/esm/render/primitives/DisplayParams.d.ts.map +0 -1
  1135. package/lib/esm/render/primitives/DisplayParams.js.map +0 -1
  1136. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +0 -1
  1137. package/lib/esm/render/primitives/SurfaceParams.js.map +0 -1
  1138. package/lib/esm/render/primitives/VertexTable.d.ts +0 -152
  1139. package/lib/esm/render/primitives/VertexTable.d.ts.map +0 -1
  1140. package/lib/esm/render/primitives/VertexTable.js.map +0 -1
  1141. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  1142. package/lib/esm/render/primitives/VertexTableSplitter.js.map +0 -1
  1143. package/lib/esm/render-primitives.d.ts +0 -21
  1144. package/lib/esm/render-primitives.d.ts.map +0 -1
  1145. package/lib/esm/render-primitives.js +0 -25
  1146. package/lib/esm/render-primitives.js.map +0 -1
  1147. /package/lib/cjs/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  1148. /package/lib/cjs/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  1149. /package/lib/cjs/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  1150. /package/lib/cjs/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  1151. /package/lib/cjs/{ViewRect.js → common/ViewRect.js} +0 -0
  1152. /package/lib/cjs/{gltf → common/gltf}/GltfModel.js +0 -0
  1153. /package/lib/cjs/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  1154. /package/lib/cjs/{gltf → common/gltf}/GltfParser.js +0 -0
  1155. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  1156. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.js +0 -0
  1157. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  1158. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.js +0 -0
  1159. /package/lib/cjs/{render → common/render}/primitives/SurfaceParams.js +0 -0
  1160. /package/lib/esm/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  1161. /package/lib/esm/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  1162. /package/lib/esm/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  1163. /package/lib/esm/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  1164. /package/lib/esm/{ViewRect.js → common/ViewRect.js} +0 -0
  1165. /package/lib/esm/{gltf → common/gltf}/GltfModel.js +0 -0
  1166. /package/lib/esm/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  1167. /package/lib/esm/{gltf → common/gltf}/GltfParser.js +0 -0
  1168. /package/lib/esm/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  1169. /package/lib/esm/{gltf → common/gltf}/GltfSchema.js +0 -0
  1170. /package/lib/esm/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  1171. /package/lib/esm/{render → common/render}/primitives/DisplayParams.js +0 -0
  1172. /package/lib/esm/{render → common/render}/primitives/SurfaceParams.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParseImdlDocument.js","sourceRoot":"","sources":["../../../../src/common/imdl/ParseImdlDocument.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 Tiles\r\n */\r\n\r\nimport { assert, ByteStream, Id64String, JsonUtils, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range2d, Range3d } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, ColorDef, FeatureTableHeader, FillFlags, GltfV2ChunkTypes, GltfVersions, Gradient, ImdlFlags, ImdlHeader, LinePixels, MultiModelPackedFeatureTable,\r\n PackedFeatureTable, PolylineTypeFlags, QParams2d, QParams3d, RenderFeatureTable, RenderMaterial, RenderSchedule, RenderTexture, RgbColor, TextureMapping, TileFormat,\r\n TileHeader, TileReadStatus,\r\n} from \"@itwin/core-common\";\r\nimport { ImdlModel as Imdl } from \"./ImdlModel\";\r\nimport {\r\n AnyImdlPrimitive, ImdlAreaPattern, ImdlColorDef, ImdlCompactEdges, ImdlDisplayParams, ImdlDocument, ImdlIndexedEdges, ImdlMesh, ImdlMeshEdges,\r\n ImdlMeshPrimitive, ImdlNamedTexture, ImdlPolyline, ImdlSegmentEdges, ImdlSilhouetteEdges, ImdlTextureMapping,\r\n} from \"./ImdlSchema\";\r\nimport { MeshPrimitiveType } from \"../render/primitives/MeshPrimitive\";\r\nimport { isValidSurfaceType, SurfaceMaterial } from \"../render/primitives/SurfaceParams\";\r\nimport { DisplayParams } from \"../render/primitives/DisplayParams\";\r\nimport { AuxChannelTable, AuxChannelTableProps } from \"../render/primitives/AuxChannelTable\";\r\nimport { ComputeAnimationNodeId, splitMeshParams, splitPointStringParams, splitPolylineParams } from \"../render/primitives/VertexTableSplitter\";\r\nimport { AnimationNodeId } from \"../render/AnimationNodeId\";\r\nimport { EdgeParams } from \"../render/primitives/EdgeParams\";\r\nimport { MeshParams } from \"../render/primitives/MeshParams\";\r\nimport { VertexTable } from \"../render/primitives/VertexTable\";\r\nimport { MaterialParams } from \"../render/MaterialParams\";\r\nimport { VertexIndices } from \"../render/primitives/VertexIndices\";\r\nimport { indexedEdgeParamsFromCompactEdges } from \"./CompactEdges\";\r\n\r\n/** Timeline used to reassemble iMdl content into animatable nodes.\r\n * @internal\r\n */\r\nexport type ImdlTimeline = RenderSchedule.ModelTimeline | RenderSchedule.Script;\r\n\r\n/** Options provided to [[ImdlParser.parse]].\r\n * @internal\r\n */\r\nexport interface ImdlParserOptions {\r\n data: Uint8Array;\r\n batchModelId: Id64String;\r\n is3d: boolean;\r\n maxVertexTableSize: number;\r\n omitEdges?: boolean;\r\n createUntransformedRootNode?: boolean;\r\n}\r\n\r\n/** Arguments provided to [[parseImdlDocument]].\r\n * @internal\r\n */\r\nexport interface ParseImdlDocumentArgs extends ImdlParserOptions {\r\n timeline: ImdlTimeline | undefined;\r\n}\r\n\r\n/** Header preceding \"glTF\" data in iMdl tile. */\r\nclass GltfHeader extends TileHeader {\r\n public readonly gltfLength: number;\r\n public readonly scenePosition: number = 0;\r\n public readonly sceneStrLength: number = 0;\r\n public readonly binaryPosition: number = 0;\r\n public get isValid(): boolean { return TileFormat.Gltf === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.gltfLength = stream.readUint32();\r\n\r\n this.sceneStrLength = stream.readUint32();\r\n const value5 = stream.readUint32();\r\n\r\n // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles\r\n // validating the chunk type.\r\n if (this.version === GltfVersions.Version2 && value5 === GltfVersions.Gltf1SceneFormat)\r\n this.version = GltfVersions.Version1;\r\n\r\n if (this.version === GltfVersions.Version1) {\r\n const gltfSceneFormat = value5;\r\n if (GltfVersions.Gltf1SceneFormat !== gltfSceneFormat) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n this.scenePosition = stream.curPos;\r\n this.binaryPosition = stream.curPos + this.sceneStrLength;\r\n } else if (this.version === GltfVersions.Version2) {\r\n const sceneChunkType = value5;\r\n this.scenePosition = stream.curPos;\r\n stream.curPos = stream.curPos + this.sceneStrLength;\r\n const binaryLength = stream.readUint32();\r\n const binaryChunkType = stream.readUint32();\r\n if (GltfV2ChunkTypes.JSON !== sceneChunkType || GltfV2ChunkTypes.Binary !== binaryChunkType || 0 === binaryLength) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n this.binaryPosition = stream.curPos;\r\n } else {\r\n this.invalidate();\r\n }\r\n }\r\n}\r\n\r\ntype OptionalDocumentProperties = \"rtcCenter\" | \"animationNodes\";\r\ntype Document = Required<Omit<ImdlDocument, OptionalDocumentProperties>> & Pick<ImdlDocument, OptionalDocumentProperties>;\r\n\r\n/** Error codes resulting from [[parseImdlDocument]].\r\n * @internal\r\n */\r\nexport type ImdlParseError = Exclude<TileReadStatus, TileReadStatus.Success>;\r\n\r\ninterface FeatureTableInfo {\r\n startPos: number;\r\n multiModel: boolean;\r\n}\r\n\r\nconst nodeIdRegex = /Node_(.*)/;\r\nfunction extractNodeId(nodeName: string): number {\r\n const match = nodeName.match(nodeIdRegex);\r\n assert(!!match && match.length === 2);\r\n if (!match || match.length !== 2)\r\n return 0;\r\n\r\n const nodeId = Number.parseInt(match[1], 10);\r\n assert(!Number.isNaN(nodeId));\r\n return Number.isNaN(nodeId) ? 0 : nodeId;\r\n}\r\n\r\nabstract class Texture extends RenderTexture {\r\n protected constructor(type: RenderTexture.Type) {\r\n super(type);\r\n }\r\n\r\n public abstract toImdl(): string | Gradient.SymbProps;\r\n\r\n public override dispose() { }\r\n public override get bytesUsed() { return 0; }\r\n}\r\n\r\nclass NamedTexture extends Texture {\r\n public constructor(private readonly _name: string, type: RenderTexture.Type) {\r\n super(type);\r\n }\r\n\r\n public override toImdl(): string {\r\n return this._name;\r\n }\r\n}\r\n\r\nclass GradientTexture extends Texture {\r\n public constructor(private readonly _gradient: Gradient.SymbProps) {\r\n super(RenderTexture.Type.Normal);\r\n }\r\n\r\n public override toImdl(): Gradient.SymbProps {\r\n return this._gradient;\r\n }\r\n}\r\n\r\nclass Material extends RenderMaterial {\r\n public readonly materialParams: Imdl.SurfaceMaterialParams;\r\n\r\n public toImdl(): Imdl.SurfaceMaterial {\r\n const material = this.key ?? this.materialParams;\r\n return { isAtlas: false, material };\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n public constructor(params: RenderMaterial.Params, imdl?: Imdl.SurfaceMaterialParams) {\r\n super(params);\r\n\r\n this.materialParams = imdl ?? {\r\n alpha: params.alpha,\r\n diffuse: {\r\n color: params.diffuseColor?.toJSON(),\r\n weight: params.diffuse,\r\n },\r\n specular: {\r\n color: params.specularColor?.toJSON(),\r\n weight: params.specular,\r\n exponent: params.specularExponent,\r\n },\r\n };\r\n }\r\n\r\n public static create(args: MaterialParams): Material {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderMaterial.Params();\r\n params.alpha = args.alpha;\r\n if (args.diffuse) {\r\n if (undefined !== args.diffuse.weight)\r\n params.diffuse = args.diffuse?.weight;\r\n\r\n if (args.diffuse?.color)\r\n params.diffuseColor = args.diffuse.color instanceof ColorDef ? args.diffuse.color : RgbColor.fromJSON(args.diffuse.color).toColorDef();\r\n }\r\n\r\n if (args.specular) {\r\n if (undefined !== args.specular.weight)\r\n params.specular = args.specular.weight;\r\n\r\n if (undefined !== args.specular.exponent)\r\n params.specularExponent = args.specular.exponent;\r\n\r\n if (args.specular.color)\r\n params.specularColor = args.specular.color instanceof ColorDef ? args.specular.color : RgbColor.fromJSON(args.specular.color).toColorDef();\r\n }\r\n\r\n return new Material(params);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toVertexTable(imdl: Imdl.VertexTable): VertexTable {\r\n return {\r\n ...imdl,\r\n uniformColor: undefined !== imdl.uniformColor ? ColorDef.fromJSON(imdl.uniformColor) : undefined,\r\n qparams: QParams3d.fromJSON(imdl.qparams),\r\n uvParams: imdl.uvParams ? QParams2d.fromJSON(imdl.uvParams) : undefined,\r\n };\r\n}\r\n\r\nfunction fromVertexTable(table: VertexTable): Imdl.VertexTable {\r\n return {\r\n ...table,\r\n uniformColor: table.uniformColor?.toJSON(),\r\n qparams: table.qparams.toJSON(),\r\n uvParams: table.uvParams?.toJSON(),\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport function edgeParamsFromImdl(imdl: Imdl.EdgeParams): EdgeParams {\r\n return {\r\n ...imdl,\r\n segments: imdl.segments ? {\r\n ...imdl.segments,\r\n indices: new VertexIndices(imdl.segments.indices),\r\n } : undefined,\r\n silhouettes: imdl.silhouettes ? {\r\n ...imdl.silhouettes,\r\n indices: new VertexIndices(imdl.silhouettes.indices),\r\n } : undefined,\r\n polylines: imdl.polylines ? {\r\n ...imdl.polylines,\r\n indices: new VertexIndices(imdl.polylines.indices),\r\n prevIndices: new VertexIndices(imdl.polylines.prevIndices),\r\n } : undefined,\r\n indexed: imdl.indexed ? {\r\n indices: new VertexIndices(imdl.indexed.indices),\r\n edges: imdl.indexed.edges,\r\n } : undefined,\r\n };\r\n}\r\n\r\nfunction edgeParamsToImdl(params: EdgeParams): Imdl.EdgeParams {\r\n return {\r\n ...params,\r\n segments: params.segments ? {\r\n ...params.segments,\r\n indices: params.segments.indices.data,\r\n } : undefined,\r\n silhouettes: params.silhouettes ? {\r\n ...params.silhouettes,\r\n indices: params.silhouettes.indices.data,\r\n } : undefined,\r\n polylines: params.polylines ? {\r\n ...params.polylines,\r\n indices: params.polylines.indices.data,\r\n prevIndices: params.polylines.prevIndices.data,\r\n } : undefined,\r\n indexed: params.indexed ? {\r\n indices: params.indexed.indices.data,\r\n edges: params.indexed.edges,\r\n } : undefined,\r\n };\r\n}\r\n\r\nclass Parser {\r\n private readonly _document: Document;\r\n private readonly _binaryData: Uint8Array;\r\n private readonly _options: ImdlParserOptions;\r\n private readonly _featureTableInfo: FeatureTableInfo;\r\n private readonly _patterns = new Map<string, Imdl.Primitive[]>();\r\n private readonly _stream: ByteStream;\r\n private readonly _timeline?: ImdlTimeline;\r\n\r\n public constructor(doc: Document, binaryData: Uint8Array, options: ParseImdlDocumentArgs, featureTableInfo: FeatureTableInfo, stream: ByteStream) {\r\n this._document = doc;\r\n this._binaryData = binaryData;\r\n this._options = options;\r\n this._featureTableInfo = featureTableInfo;\r\n this._stream = stream;\r\n this._timeline = options.timeline;\r\n }\r\n\r\n public parse(): Imdl.Document | ImdlParseError {\r\n const featureTable = this.parseFeatureTable();\r\n if (!featureTable)\r\n return TileReadStatus.InvalidFeatureTable;\r\n\r\n const rtcCenter = this._document.rtcCenter ? {\r\n x: this._document.rtcCenter[0] ?? 0,\r\n y: this._document.rtcCenter[1] ?? 0,\r\n z: this._document.rtcCenter[2] ?? 0,\r\n } : undefined;\r\n\r\n const nodes = this.parseNodes(featureTable);\r\n return {\r\n featureTable,\r\n nodes,\r\n rtcCenter,\r\n binaryData: this._binaryData,\r\n json: this._document,\r\n patterns: this._patterns,\r\n };\r\n }\r\n\r\n private parseFeatureTable(): Imdl.FeatureTable | undefined {\r\n this._stream.curPos = this._featureTableInfo.startPos;\r\n const header = FeatureTableHeader.readFrom(this._stream);\r\n if (!header || 0 !== header.length % 4)\r\n return undefined;\r\n\r\n // NB: We make a copy of the sub-array because we don't want to pin the entire data array in memory.\r\n const numUint32s = (header.length - FeatureTableHeader.sizeInBytes) / 4;\r\n const packedFeatureArray = new Uint32Array(this._stream.nextUint32s(numUint32s));\r\n if (this._stream.isPastTheEnd)\r\n return undefined;\r\n\r\n let featureTable: Imdl.FeatureTable;\r\n if (this._featureTableInfo.multiModel) {\r\n featureTable = {\r\n multiModel: true,\r\n data: packedFeatureArray,\r\n numFeatures: header.count,\r\n numSubCategories: header.numSubCategories,\r\n };\r\n } else {\r\n let animNodesArray: Uint8Array | Uint16Array | Uint32Array | undefined;\r\n const animationNodes = this._document.animationNodes;\r\n if (undefined !== animationNodes) {\r\n const bytesPerId = JsonUtils.asInt(animationNodes.bytesPerId);\r\n const bufferViewId = JsonUtils.asString(animationNodes.bufferView);\r\n const bufferViewJson = this._document.bufferViews[bufferViewId];\r\n if (undefined !== bufferViewJson) {\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n const bytes = this._binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n switch (bytesPerId) {\r\n case 1:\r\n animNodesArray = new Uint8Array(bytes);\r\n break;\r\n case 2:\r\n // NB: A *copy* of the subarray.\r\n animNodesArray = Uint16Array.from(new Uint16Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 2));\r\n break;\r\n case 4:\r\n // NB: A *copy* of the subarray.\r\n animNodesArray = Uint32Array.from(new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n featureTable = {\r\n multiModel: false,\r\n data: packedFeatureArray,\r\n numFeatures: header.count,\r\n animationNodeIds: animNodesArray,\r\n };\r\n }\r\n\r\n this._stream.curPos = this._featureTableInfo.startPos + header.length;\r\n return featureTable;\r\n }\r\n\r\n private parseNodes(featureTable: Imdl.FeatureTable): Imdl.Node[] {\r\n const nodes: Imdl.Node[] = [];\r\n const docNodes = this._document.nodes;\r\n const docMeshes = this._document.meshes;\r\n if (undefined === docNodes.Node_Root) {\r\n // A veeeery early version of the tile format (prior to introduction of schedule animation support) just supplied a flat list of meshes.\r\n // We shall never encounter such tiles again.\r\n return nodes;\r\n }\r\n\r\n for (const nodeKey of Object.keys(docNodes)) {\r\n const docNode = this._document.nodes[nodeKey];\r\n assert(undefined !== docNode); // we're iterating the keys...\r\n const docMesh = docMeshes[docNode];\r\n const docPrimitives = docMesh?.primitives;\r\n if (!docPrimitives)\r\n continue;\r\n\r\n const layerId = docMesh.layer;\r\n if (\"Node_Root\" === nodeKey) {\r\n if (this._timeline) {\r\n // Split up the root node into transform nodes.\r\n this.parseAnimationBranches(nodes, docMesh, featureTable, this._timeline);\r\n } else if (this._options.createUntransformedRootNode) {\r\n // If transform nodes exist in the tile tree, then we need to create a branch for the root node so that elements not associated with\r\n // any node in the schedule script can be grouped together.\r\n nodes.push({\r\n animationNodeId: AnimationNodeId.Untransformed,\r\n primitives: this.parseNodePrimitives(docPrimitives),\r\n });\r\n } else {\r\n nodes.push({ primitives: this.parseNodePrimitives(docPrimitives) });\r\n }\r\n } else if (undefined === layerId) {\r\n nodes.push({\r\n animationNodeId: extractNodeId(nodeKey),\r\n animationId: `${this._options.batchModelId}_${nodeKey}`,\r\n primitives: this.parseNodePrimitives(docPrimitives),\r\n });\r\n } else {\r\n nodes.push({\r\n layerId,\r\n primitives: this.parseNodePrimitives(docPrimitives),\r\n });\r\n }\r\n }\r\n\r\n return nodes;\r\n }\r\n\r\n private parseAnimationBranches(output: Imdl.Node[], docMesh: ImdlMesh, imdlFeatureTable: Imdl.FeatureTable, timeline: ImdlTimeline): void {\r\n const docPrimitives = docMesh.primitives;\r\n if (!docPrimitives)\r\n return;\r\n\r\n const nodesById = new Map<number, Imdl.AnimationNode>();\r\n const getNode = (nodeId: number): Imdl.AnimationNode => {\r\n let node = nodesById.get(nodeId);\r\n if (!node) {\r\n node = {\r\n animationNodeId: nodeId,\r\n animationId: `${this._options.batchModelId}_Node_${nodeId}`,\r\n primitives: [],\r\n };\r\n\r\n nodesById.set(nodeId, node);\r\n output.push(node);\r\n }\r\n\r\n return node;\r\n };\r\n\r\n // NB: The BatchType is irrelevant - just use Primary.\r\n assert(undefined === imdlFeatureTable.animationNodeIds);\r\n const featureTable = convertFeatureTable(imdlFeatureTable, this._options.batchModelId);\r\n featureTable.populateAnimationNodeIds((feature) => timeline.getBatchIdForFeature(feature), timeline.maxBatchId);\r\n imdlFeatureTable.animationNodeIds = featureTable.animationNodeIds;\r\n\r\n const discreteNodeIds = timeline.discreteBatchIds;\r\n const computeNodeId: ComputeAnimationNodeId = (featureIndex) => {\r\n const nodeId = featureTable.getAnimationNodeId(featureIndex);\r\n return 0 !== nodeId && discreteNodeIds.has(nodeId) ? nodeId : 0;\r\n };\r\n\r\n const splitArgs = {\r\n maxDimension: this._options.maxVertexTableSize,\r\n computeNodeId,\r\n featureTable,\r\n };\r\n\r\n const convertMaterial = (imdl: Imdl.SurfaceMaterial | undefined): SurfaceMaterial | undefined => {\r\n if (!imdl)\r\n return undefined;\r\n else if (imdl.isAtlas)\r\n return imdl;\r\n\r\n const material = (typeof imdl.material === \"string\") ? this.materialFromJson(imdl.material) : Material.create(toMaterialParams(imdl.material));\r\n return material ? { isAtlas: false, material } : undefined;\r\n };\r\n\r\n for (const docPrimitive of docPrimitives) {\r\n const primitive = this.parseNodePrimitive(docPrimitive);\r\n if (!primitive)\r\n continue;\r\n\r\n switch (primitive.type) {\r\n case \"pattern\":\r\n // ###TODO animated area patterns\r\n getNode(AnimationNodeId.Untransformed).primitives.push(primitive);\r\n break;\r\n case \"mesh\": {\r\n const mesh = primitive.params;\r\n const texMap = mesh.surface.textureMapping;\r\n const params: MeshParams = {\r\n vertices: toVertexTable(primitive.params.vertices),\r\n surface: {\r\n ...primitive.params.surface,\r\n indices: new VertexIndices(primitive.params.surface.indices),\r\n material: convertMaterial(mesh.surface.material),\r\n textureMapping: texMap ? {\r\n alwaysDisplayed: texMap.alwaysDisplayed,\r\n // The texture type doesn't actually matter here.\r\n texture: typeof texMap.texture === \"string\" ? new NamedTexture(texMap.texture, RenderTexture.Type.Normal) : new GradientTexture(texMap.texture),\r\n } : undefined,\r\n },\r\n edges: primitive.params.edges ? edgeParamsFromImdl(primitive.params.edges) : undefined,\r\n isPlanar: primitive.params.isPlanar,\r\n auxChannels: primitive.params.auxChannels ? AuxChannelTable.fromJSON(primitive.params.auxChannels) : undefined,\r\n };\r\n\r\n const split = splitMeshParams({\r\n ...splitArgs,\r\n params,\r\n createMaterial: (args) => Material.create(args),\r\n });\r\n for (const [nodeId, p] of split) {\r\n let material: Imdl.SurfaceMaterial | undefined;\r\n if (p.surface.material) {\r\n if (p.surface.material.isAtlas) {\r\n material = p.surface.material;\r\n } else {\r\n assert(p.surface.material.material instanceof Material);\r\n material = p.surface.material.material.toImdl();\r\n }\r\n }\r\n\r\n assert(p.surface.textureMapping === undefined || p.surface.textureMapping.texture instanceof Texture);\r\n getNode(nodeId).primitives.push({\r\n type: \"mesh\",\r\n params: {\r\n vertices: fromVertexTable(p.vertices),\r\n surface: {\r\n ...p.surface,\r\n indices: p.surface.indices.data,\r\n material,\r\n textureMapping: p.surface.textureMapping?.texture instanceof Texture ? {\r\n texture: p.surface.textureMapping.texture.toImdl(),\r\n alwaysDisplayed: p.surface.textureMapping.alwaysDisplayed,\r\n } : undefined,\r\n },\r\n edges: p.edges ? edgeParamsToImdl(p.edges) : undefined,\r\n isPlanar: p.isPlanar,\r\n auxChannels: p.auxChannels?.toJSON(),\r\n },\r\n });\r\n }\r\n\r\n break;\r\n }\r\n case \"point\": {\r\n const params = {\r\n vertices: toVertexTable(primitive.params.vertices),\r\n indices: new VertexIndices(primitive.params.indices),\r\n weight: primitive.params.weight,\r\n };\r\n\r\n const split = splitPointStringParams({ ...splitArgs, params });\r\n for (const [nodeId, p] of split) {\r\n getNode(nodeId).primitives.push({\r\n type: \"point\",\r\n params: {\r\n vertices: fromVertexTable(p.vertices),\r\n indices: p.indices.data,\r\n weight: p.weight,\r\n },\r\n });\r\n }\r\n\r\n break;\r\n }\r\n case \"polyline\": {\r\n const params = {\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n polyline: {\r\n indices: new VertexIndices(primitive.params.polyline.indices),\r\n prevIndices: new VertexIndices(primitive.params.polyline.prevIndices),\r\n nextIndicesAndParams: primitive.params.polyline.nextIndicesAndParams,\r\n },\r\n };\r\n\r\n const split = splitPolylineParams({ ...splitArgs, params });\r\n for (const [nodeId, p] of split) {\r\n getNode(nodeId).primitives.push({\r\n type: \"polyline\",\r\n params: {\r\n ...p,\r\n vertices: fromVertexTable(p.vertices),\r\n polyline: {\r\n indices: p.polyline.indices.data,\r\n prevIndices: p.polyline.prevIndices.data,\r\n nextIndicesAndParams: p.polyline.nextIndicesAndParams,\r\n },\r\n },\r\n });\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private parseTesselatedPolyline(json: ImdlPolyline): Imdl.TesselatedPolyline | undefined {\r\n const indices = this.findBuffer(json.indices);\r\n const prevIndices = this.findBuffer(json.prevIndices);\r\n const nextIndicesAndParams = this.findBuffer(json.nextIndicesAndParams);\r\n\r\n return indices && prevIndices && nextIndicesAndParams ? { indices, prevIndices, nextIndicesAndParams } : undefined;\r\n }\r\n\r\n private parseSegmentEdges(imdl: ImdlSegmentEdges): Imdl.SegmentEdgeParams | undefined {\r\n const indices = this.findBuffer(imdl.indices);\r\n const endPointAndQuadIndices = this.findBuffer(imdl.endPointAndQuadIndices);\r\n return indices && endPointAndQuadIndices ? { indices, endPointAndQuadIndices } : undefined;\r\n }\r\n\r\n private parseSilhouetteEdges(imdl: ImdlSilhouetteEdges): Imdl.SilhouetteParams | undefined {\r\n const segments = this.parseSegmentEdges(imdl);\r\n const normalPairs = this.findBuffer(imdl.normalPairs);\r\n return segments && normalPairs ? { ...segments, normalPairs } : undefined;\r\n }\r\n\r\n private parseIndexedEdges(imdl: ImdlIndexedEdges): Imdl.IndexedEdgeParams | undefined {\r\n const indices = this.findBuffer(imdl.indices);\r\n const edgeTable = this.findBuffer(imdl.edges);\r\n if (!indices || !edgeTable)\r\n return undefined;\r\n\r\n return {\r\n indices,\r\n edges: {\r\n data: edgeTable,\r\n width: imdl.width,\r\n height: imdl.height,\r\n silhouettePadding: imdl.silhouettePadding,\r\n numSegments: imdl.numSegments,\r\n },\r\n };\r\n }\r\n\r\n private parseCompactEdges(imdl: ImdlCompactEdges, vertexIndices: VertexIndices): Imdl.IndexedEdgeParams | undefined {\r\n const visibility = this.findBuffer(imdl.visibility);\r\n if (!visibility)\r\n return undefined;\r\n\r\n const normals = undefined !== imdl.normalPairs ? this.findBuffer(imdl.normalPairs) : undefined;\r\n return indexedEdgeParamsFromCompactEdges({\r\n numVisibleEdges: imdl.numVisible,\r\n visibility,\r\n vertexIndices,\r\n normalPairs: normals ? new Uint32Array(normals.buffer, normals.byteOffset, normals.byteLength / 4) : undefined,\r\n maxEdgeTableDimension: this._options.maxVertexTableSize,\r\n });\r\n }\r\n\r\n private parseEdges(imdl: ImdlMeshEdges | undefined, displayParams: DisplayParams, indices: Uint8Array): Imdl.EdgeParams | undefined {\r\n if (!imdl)\r\n return undefined;\r\n\r\n const segments = imdl.segments ? this.parseSegmentEdges(imdl.segments) : undefined;\r\n const silhouettes = imdl.silhouettes ? this.parseSilhouetteEdges(imdl.silhouettes) : undefined;\r\n const polylines = imdl.polylines ? this.parseTesselatedPolyline(imdl.polylines) : undefined;\r\n\r\n let indexed = imdl.indexed ? this.parseIndexedEdges(imdl.indexed) : undefined;\r\n if (!indexed && imdl.compact)\r\n indexed = this.parseCompactEdges(imdl.compact, new VertexIndices(indices));\r\n\r\n if (!segments && !silhouettes && !indexed &&!polylines)\r\n return undefined;\r\n\r\n return {\r\n segments,\r\n silhouettes,\r\n polylines,\r\n indexed,\r\n weight: displayParams.width,\r\n linePixels: displayParams.linePixels,\r\n };\r\n }\r\n\r\n private getPattern(name: string): Imdl.Primitive[] | undefined {\r\n let primitives = this._patterns.get(name);\r\n if (!primitives) {\r\n const symbol = this._document.patternSymbols[name];\r\n primitives = symbol ? this.parsePrimitives(symbol.primitives) : [];\r\n this._patterns.set(name, primitives);\r\n }\r\n\r\n return primitives.length > 0 ? primitives : undefined;\r\n }\r\n\r\n private parseAreaPattern(json: ImdlAreaPattern): Imdl.NodePrimitive | undefined {\r\n const primitives = this.getPattern(json.symbolName);\r\n if (!primitives || primitives.length === 0)\r\n return undefined;\r\n\r\n const xyOffsets = this.findBuffer(json.xyOffsets);\r\n if (!xyOffsets)\r\n return undefined;\r\n\r\n return {\r\n type: \"pattern\",\r\n params: {\r\n ...json,\r\n xyOffsets: new Float32Array(xyOffsets.buffer, xyOffsets.byteOffset, xyOffsets.byteLength / 4),\r\n },\r\n };\r\n }\r\n\r\n private parseNodePrimitives(docPrimitives: Array<AnyImdlPrimitive | ImdlAreaPattern>): Imdl.NodePrimitive[] {\r\n const primitives = [];\r\n for (const docPrimitive of docPrimitives) {\r\n const primitive = this.parseNodePrimitive(docPrimitive);\r\n if (primitive)\r\n primitives.push(primitive);\r\n }\r\n\r\n return primitives;\r\n }\r\n\r\n private parseNodePrimitive(docPrimitive: AnyImdlPrimitive | ImdlAreaPattern): Imdl.NodePrimitive | undefined {\r\n return docPrimitive.type === \"areaPattern\" ? this.parseAreaPattern(docPrimitive) : this.parsePrimitive(docPrimitive);\r\n }\r\n\r\n private parsePrimitives(docPrimitives: Array<AnyImdlPrimitive>): Imdl.Primitive[] {\r\n const primitives = [];\r\n for (const docPrimitive of docPrimitives) {\r\n const primitive = this.parsePrimitive(docPrimitive);\r\n if (primitive)\r\n primitives.push(primitive);\r\n }\r\n\r\n return primitives;\r\n }\r\n\r\n private parsePrimitive(docPrimitive: AnyImdlPrimitive): Imdl.Primitive | undefined {\r\n let modifier: Imdl.PrimitiveModifier | undefined = this.parseInstances(docPrimitive);\r\n if (!modifier && docPrimitive.viewIndependentOrigin) {\r\n const origin = Point3d.fromJSON(docPrimitive.viewIndependentOrigin);\r\n modifier = {\r\n type: \"viewIndependentOrigin\",\r\n origin: { x: origin.x, y: origin.y, z: origin.z },\r\n };\r\n }\r\n\r\n const materialName = docPrimitive.material ?? \"\";\r\n const dpMaterial = materialName.length ? JsonUtils.asObject(this._document.materials[materialName]) : undefined;\r\n const displayParams = dpMaterial ? this.parseDisplayParams(dpMaterial) : undefined;\r\n if (!displayParams)\r\n return undefined;\r\n\r\n const vertices = this.parseVertexTable(docPrimitive);\r\n if (!vertices)\r\n return undefined;\r\n\r\n let primitive: Imdl.Primitive | undefined;\r\n const isPlanar = !this._options.is3d || JsonUtils.asBool(docPrimitive.isPlanar);\r\n switch (docPrimitive.type) {\r\n case MeshPrimitiveType.Mesh: {\r\n const surface = this.parseSurface(docPrimitive, displayParams);\r\n if (surface) {\r\n primitive = {\r\n type: \"mesh\",\r\n params: {\r\n vertices,\r\n surface,\r\n isPlanar,\r\n auxChannels: this.parseAuxChannelTable(docPrimitive),\r\n edges: this.parseEdges(docPrimitive.edges, displayParams, surface.indices),\r\n },\r\n };\r\n }\r\n\r\n break;\r\n }\r\n case MeshPrimitiveType.Polyline: {\r\n const polyline = this.parseTesselatedPolyline(docPrimitive);\r\n if (polyline) {\r\n let type = PolylineTypeFlags.Normal;\r\n if (DisplayParams.RegionEdgeType.Outline === displayParams.regionEdgeType)\r\n type = (!displayParams.gradient || displayParams.gradient.isOutlined) ? PolylineTypeFlags.Edge : PolylineTypeFlags.Outline;\r\n\r\n primitive = {\r\n type: \"polyline\",\r\n params: {\r\n vertices,\r\n polyline,\r\n isPlanar,\r\n type,\r\n weight: displayParams.width,\r\n linePixels: displayParams.linePixels,\r\n },\r\n };\r\n }\r\n\r\n break;\r\n }\r\n case MeshPrimitiveType.Point: {\r\n const indices = this.findBuffer(docPrimitive.indices);\r\n const weight = displayParams.width;\r\n if (indices) {\r\n primitive = {\r\n type: \"point\",\r\n params: { vertices, indices, weight },\r\n };\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (primitive)\r\n primitive.modifier = modifier;\r\n\r\n return primitive;\r\n }\r\n\r\n private parseSurface(mesh: ImdlMeshPrimitive, displayParams: DisplayParams): Imdl.SurfaceParams | undefined {\r\n const surf = mesh.surface;\r\n if (!surf)\r\n return undefined;\r\n\r\n const indices = this.findBuffer(surf.indices);\r\n if (!indices)\r\n return undefined;\r\n\r\n const type = surf.type;\r\n if (!isValidSurfaceType(type))\r\n return undefined;\r\n\r\n const texture = displayParams.textureMapping?.texture;\r\n let material: Imdl.SurfaceMaterial | undefined;\r\n const atlas = mesh.vertices.materialAtlas;\r\n const numColors = mesh.vertices.numColors;\r\n if (atlas && undefined !== numColors) {\r\n material = {\r\n isAtlas: true,\r\n hasTranslucency: JsonUtils.asBool(atlas.hasTranslucency),\r\n overridesAlpha: JsonUtils.asBool(atlas.overridesAlpha, false),\r\n vertexTableOffset: JsonUtils.asInt(numColors),\r\n numMaterials: JsonUtils.asInt(atlas.numMaterials),\r\n };\r\n } else if (displayParams.material) {\r\n assert(displayParams.material instanceof Material);\r\n material = displayParams.material.toImdl();\r\n }\r\n\r\n let textureMapping;\r\n if (texture) {\r\n assert(texture instanceof Texture);\r\n textureMapping = {\r\n texture: texture.toImdl(),\r\n alwaysDisplayed: JsonUtils.asBool(surf.alwaysDisplayTexture),\r\n };\r\n }\r\n\r\n return {\r\n type,\r\n indices,\r\n fillFlags: displayParams.fillFlags,\r\n hasBakedLighting: false,\r\n material,\r\n textureMapping,\r\n };\r\n }\r\n\r\n private parseAuxChannelTable(primitive: ImdlMeshPrimitive): AuxChannelTableProps | undefined {\r\n const json = primitive.auxChannels;\r\n if (undefined === json)\r\n return undefined;\r\n\r\n const bytes = this.findBuffer(JsonUtils.asString(json.bufferView));\r\n if (undefined === bytes)\r\n return undefined;\r\n\r\n return {\r\n data: bytes,\r\n width: json.width,\r\n height: json.height,\r\n count: json.count,\r\n numBytesPerVertex: json.numBytesPerVertex,\r\n displacements: json.displacements,\r\n normals: json.normals,\r\n params: json.params,\r\n };\r\n }\r\n\r\n private parseVertexTable(primitive: AnyImdlPrimitive): Imdl.VertexTable | undefined {\r\n const json = primitive.vertices;\r\n if (!json)\r\n return undefined;\r\n\r\n const bytes = this.findBuffer(JsonUtils.asString(json.bufferView));\r\n if (!bytes)\r\n return undefined;\r\n\r\n const uniformFeatureID = undefined !== json.featureID ? JsonUtils.asInt(json.featureID) : undefined;\r\n\r\n const rangeMin = JsonUtils.asArray(json.params.decodedMin);\r\n const rangeMax = JsonUtils.asArray(json.params.decodedMax);\r\n if (undefined === rangeMin || undefined === rangeMax)\r\n return undefined;\r\n\r\n const qparams = QParams3d.fromRange(Range3d.create(Point3d.create(rangeMin[0], rangeMin[1], rangeMin[2]), Point3d.create(rangeMax[0], rangeMax[1], rangeMax[2])));\r\n\r\n const uniformColor = undefined !== json.uniformColor ? ColorDef.fromJSON(json.uniformColor) : undefined;\r\n let uvParams: QParams2d | undefined;\r\n if (MeshPrimitiveType.Mesh === primitive.type && primitive.surface && primitive.surface.uvParams) {\r\n const uvMin = primitive.surface.uvParams.decodedMin;\r\n const uvMax = primitive.surface.uvParams.decodedMax;\r\n const uvRange = new Range2d(uvMin[0], uvMin[1], uvMax[0], uvMax[1]);\r\n uvParams = QParams2d.fromRange(uvRange);\r\n }\r\n\r\n return {\r\n data: bytes,\r\n usesUnquantizedPositions: true === json.usesUnquantizedPositions,\r\n qparams: qparams.toJSON(),\r\n width: json.width,\r\n height: json.height,\r\n hasTranslucency: json.hasTranslucency,\r\n uniformColor: uniformColor?.toJSON(),\r\n featureIndexType: json.featureIndexType,\r\n uniformFeatureID,\r\n numVertices: json.count,\r\n numRgbaPerVertex: json.numRgbaPerVertex,\r\n uvParams: uvParams?.toJSON(),\r\n };\r\n }\r\n\r\n private parseInstances(primitive: AnyImdlPrimitive): Imdl.Instances | undefined {\r\n const json = primitive.instances;\r\n if (!json)\r\n return undefined;\r\n\r\n const count = JsonUtils.asInt(json.count, 0);\r\n if (count <= 0)\r\n return undefined;\r\n\r\n const centerComponents = JsonUtils.asArray(json.transformCenter);\r\n if (undefined === centerComponents || 3 !== centerComponents.length)\r\n return undefined;\r\n\r\n const transformCenter = Point3d.create(centerComponents[0], centerComponents[1], centerComponents[2]);\r\n\r\n const featureIds = this.findBuffer(JsonUtils.asString(json.featureIds));\r\n if (undefined === featureIds)\r\n return undefined;\r\n\r\n const transformBytes = this.findBuffer(JsonUtils.asString(json.transforms));\r\n if (undefined === transformBytes)\r\n return undefined;\r\n\r\n // 1 transform = 3 rows of 4 floats = 12 floats per instance\r\n const numFloats = transformBytes.byteLength / 4;\r\n assert(Math.floor(numFloats) === numFloats);\r\n assert(0 === numFloats % 12);\r\n\r\n const transforms = new Float32Array(transformBytes.buffer, transformBytes.byteOffset, numFloats);\r\n\r\n let symbologyOverrides: Uint8Array | undefined;\r\n if (undefined !== json.symbologyOverrides)\r\n symbologyOverrides = this.findBuffer(JsonUtils.asString(json.symbologyOverrides));\r\n\r\n return {\r\n type: \"instances\",\r\n count,\r\n transforms,\r\n transformCenter,\r\n featureIds,\r\n symbologyOverrides,\r\n };\r\n }\r\n\r\n private findBuffer(bufferViewId: string): Uint8Array | undefined {\r\n if (typeof bufferViewId !== \"string\" || 0 === bufferViewId.length)\r\n return undefined;\r\n\r\n const bufferViewJson = this._document.bufferViews[bufferViewId];\r\n if (undefined === bufferViewJson)\r\n return undefined;\r\n\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n if (0 === byteLength)\r\n return undefined;\r\n\r\n return this._binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n }\r\n\r\n private colorDefFromMaterialJson(json: ImdlColorDef | undefined): ColorDef | undefined {\r\n return undefined !== json ? ColorDef.from(json[0] * 255 + 0.5, json[1] * 255 + 0.5, json[2] * 255 + 0.5) : undefined;\r\n }\r\n\r\n private materialFromJson(key: string): RenderMaterial | undefined {\r\n const materialJson = this._document.renderMaterials[key];\r\n if (!materialJson)\r\n return undefined;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n const materialParams = new RenderMaterial.Params(key);\r\n materialParams.diffuseColor = this.colorDefFromMaterialJson(materialJson.diffuseColor);\r\n if (materialJson.diffuse !== undefined)\r\n materialParams.diffuse = JsonUtils.asDouble(materialJson.diffuse);\r\n\r\n materialParams.specularColor = this.colorDefFromMaterialJson(materialJson.specularColor);\r\n if (materialJson.specular !== undefined)\r\n materialParams.specular = JsonUtils.asDouble(materialJson.specular);\r\n\r\n materialParams.reflectColor = this.colorDefFromMaterialJson(materialJson.reflectColor);\r\n if (materialJson.reflect !== undefined)\r\n materialParams.reflect = JsonUtils.asDouble(materialJson.reflect);\r\n\r\n if (materialJson.specularExponent !== undefined)\r\n materialParams.specularExponent = materialJson.specularExponent;\r\n\r\n if (undefined !== materialJson.transparency)\r\n materialParams.alpha = 1.0 - materialJson.transparency;\r\n\r\n materialParams.refract = JsonUtils.asDouble(materialJson.refract);\r\n materialParams.shadows = JsonUtils.asBool(materialJson.shadows);\r\n materialParams.ambient = JsonUtils.asDouble(materialJson.ambient);\r\n\r\n if (undefined !== materialJson.textureMapping)\r\n materialParams.textureMapping = this.textureMappingFromJson(materialJson.textureMapping.texture);\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n return new Material(materialParams);\r\n }\r\n\r\n private parseNamedTexture(namedTex: ImdlNamedTexture, name: string): RenderTexture | undefined {\r\n const textureType = JsonUtils.asBool(namedTex.isGlyph) ? RenderTexture.Type.Glyph :\r\n (JsonUtils.asBool(namedTex.isTileSection) ? RenderTexture.Type.TileSection : RenderTexture.Type.Normal);\r\n\r\n return new NamedTexture(name, textureType);\r\n }\r\n\r\n private parseConstantLodProps(propsJson: { repetitions?: number, offset?: number[], minDistClamp?: number, maxDistClamp?: number } | undefined): TextureMapping.ConstantLodParamProps | undefined {\r\n if (undefined === propsJson)\r\n return undefined;\r\n\r\n return {\r\n repetitions: JsonUtils.asDouble(propsJson.repetitions, 1.0),\r\n offset: { x: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[0]) : 0.0, y: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[1]) : 0.0 },\r\n minDistClamp: JsonUtils.asDouble(propsJson.minDistClamp, 1.0),\r\n maxDistClamp: JsonUtils.asDouble(propsJson.maxDistClamp, 4096.0 * 1024.0 * 1024.0),\r\n };\r\n }\r\n\r\n private textureMappingFromJson(json: ImdlTextureMapping | undefined): TextureMapping | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const name = JsonUtils.asString(json.name);\r\n const namedTex = 0 !== name.length ? this._document.namedTextures[name] : undefined;\r\n const texture = namedTex ? this.parseNamedTexture(namedTex, name) : undefined;\r\n if (!texture)\r\n return undefined;\r\n\r\n const paramsJson = json.params;\r\n const tf = paramsJson.transform;\r\n const paramProps: TextureMapping.ParamProps = {\r\n textureMat2x3: new TextureMapping.Trans2x3(tf[0][0], tf[0][1], tf[0][2], tf[1][0], tf[1][1], tf[1][2]),\r\n textureWeight: JsonUtils.asDouble(paramsJson.weight, 1.0),\r\n mapMode: JsonUtils.asInt(paramsJson.mode),\r\n worldMapping: JsonUtils.asBool(paramsJson.worldMapping),\r\n useConstantLod: JsonUtils.asBool(paramsJson.useConstantLod),\r\n constantLodProps: this.parseConstantLodProps(paramsJson.constantLodParams),\r\n };\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params(paramProps));\r\n\r\n const normalMapJson = json.normalMapParams;\r\n if (normalMapJson) {\r\n const normalTexName = JsonUtils.asString(normalMapJson.textureName);\r\n const namedNormalTex = normalTexName.length > 0 ? this._document.namedTextures[normalTexName] : undefined;\r\n const normalMap = namedNormalTex ? this.parseNamedTexture(namedNormalTex, normalTexName) : undefined;\r\n if (normalMap) {\r\n textureMapping.normalMapParams = {\r\n normalMap,\r\n greenUp: JsonUtils.asBool(normalMapJson.greenUp),\r\n scale: JsonUtils.asDouble(normalMapJson.scale, 1),\r\n useConstantLod: JsonUtils.asBool(normalMapJson.useConstantLod),\r\n };\r\n }\r\n }\r\n\r\n return textureMapping;\r\n }\r\n\r\n private parseDisplayParams(json: ImdlDisplayParams): DisplayParams | undefined {\r\n const type = JsonUtils.asInt(json.type, DisplayParams.Type.Mesh);\r\n const lineColor = ColorDef.create(JsonUtils.asInt(json.lineColor));\r\n const fillColor = ColorDef.create(JsonUtils.asInt(json.fillColor));\r\n const width = JsonUtils.asInt(json.lineWidth);\r\n const linePixels = JsonUtils.asInt(json.linePixels, LinePixels.Solid);\r\n const fillFlags = JsonUtils.asInt(json.fillFlags, FillFlags.None);\r\n const ignoreLighting = JsonUtils.asBool(json.ignoreLighting);\r\n\r\n // Material will always contain its own texture if it has one\r\n const materialKey = json.materialId;\r\n const material = undefined !== materialKey ? this.materialFromJson(materialKey) : undefined;\r\n\r\n // We will only attempt to include the texture if material is undefined\r\n let textureMapping;\r\n let gradient: Gradient.Symb | undefined;\r\n if (!material) {\r\n const textureJson = json.texture;\r\n textureMapping = undefined !== textureJson ? this.textureMappingFromJson(textureJson) : undefined;\r\n\r\n if (undefined === textureMapping) {\r\n const gradientProps = json.gradient;\r\n gradient = undefined !== gradientProps ? Gradient.Symb.fromJSON(gradientProps) : undefined;\r\n if (gradient) {\r\n assert(undefined !== gradientProps);\r\n const texture = new GradientTexture(gradientProps);\r\n textureMapping = new TextureMapping(texture, new TextureMapping.Params({ textureMat2x3: new TextureMapping.Trans2x3(0, 1, 0, 1, 0, 0) }));\r\n }\r\n }\r\n }\r\n\r\n return new DisplayParams(type, lineColor, fillColor, width, linePixels, fillFlags, material, gradient, ignoreLighting, textureMapping);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function toMaterialParams(mat: Imdl.SurfaceMaterialParams): MaterialParams {\r\n const args: MaterialParams = { alpha: mat.alpha };\r\n if (mat.diffuse) {\r\n args.diffuse = {\r\n weight: mat.diffuse.weight,\r\n color: undefined !== mat.diffuse.color ? ColorDef.fromJSON(mat.diffuse.color) : undefined,\r\n };\r\n }\r\n\r\n if (mat.specular) {\r\n args.specular = {\r\n weight: mat.specular.weight,\r\n exponent: mat.specular.exponent,\r\n color: undefined !== mat.specular.color ? ColorDef.fromJSON(mat.specular.color) : undefined,\r\n };\r\n }\r\n\r\n return args;\r\n}\r\n\r\n/** @internal */\r\nexport function convertFeatureTable(imdlFeatureTable: Imdl.FeatureTable, batchModelId: Id64String): RenderFeatureTable {\r\n const table = imdlFeatureTable.multiModel\r\n ? MultiModelPackedFeatureTable.create(imdlFeatureTable.data, batchModelId, imdlFeatureTable.numFeatures, BatchType.Primary, imdlFeatureTable.numSubCategories)\r\n : new PackedFeatureTable(imdlFeatureTable.data, batchModelId, imdlFeatureTable.numFeatures, BatchType.Primary);\r\n\r\n table.animationNodeIds = imdlFeatureTable.animationNodeIds;\r\n return table;\r\n}\r\n\r\n/** @internal */\r\nexport function parseImdlDocument(options: ParseImdlDocumentArgs): Imdl.Document | ImdlParseError {\r\n const stream = ByteStream.fromUint8Array(options.data);\r\n const imdlHeader = new ImdlHeader(stream);\r\n if (!imdlHeader.isValid)\r\n return TileReadStatus.InvalidHeader;\r\n else if (!imdlHeader.isReadableVersion)\r\n return TileReadStatus.NewerMajorVersion;\r\n\r\n // Skip the feature table - we need to parse the JSON segment first to access its animationNodeIds.\r\n const ftStartPos = stream.curPos;\r\n const ftHeader = FeatureTableHeader.readFrom(stream);\r\n if (!ftHeader)\r\n return TileReadStatus.InvalidFeatureTable;\r\n\r\n stream.curPos = ftStartPos + ftHeader.length;\r\n\r\n // A glTF header follows the feature table\r\n const gltfHeader = new GltfHeader(stream);\r\n if (!gltfHeader.isValid)\r\n return TileReadStatus.InvalidTileData;\r\n\r\n stream.curPos = gltfHeader.scenePosition;\r\n const sceneStrData = stream.nextBytes(gltfHeader.sceneStrLength);\r\n const sceneStr = utf8ToString(sceneStrData);\r\n if (!sceneStr)\r\n return TileReadStatus.InvalidScene;\r\n\r\n try {\r\n const sceneValue = JSON.parse(sceneStr);\r\n const imdlDoc: Document = {\r\n scene: JsonUtils.asString(sceneValue.scene),\r\n scenes: JsonUtils.asArray(sceneValue.scenes),\r\n animationNodes: JsonUtils.asObject(sceneValue.animationNodes),\r\n bufferViews: JsonUtils.asObject(sceneValue.bufferViews) ?? { },\r\n meshes: JsonUtils.asObject(sceneValue.meshes),\r\n nodes: JsonUtils.asObject(sceneValue.nodes) ?? { },\r\n materials: JsonUtils.asObject(sceneValue.materials) ?? { },\r\n renderMaterials: JsonUtils.asObject(sceneValue.renderMaterials) ?? { },\r\n namedTextures: JsonUtils.asObject(sceneValue.namedTextures) ?? { },\r\n patternSymbols: JsonUtils.asObject(sceneValue.patternSymbols) ?? { },\r\n rtcCenter: JsonUtils.asArray(sceneValue.rtcCenter),\r\n };\r\n\r\n if (!imdlDoc.meshes)\r\n return TileReadStatus.InvalidTileData;\r\n\r\n const binaryData = new Uint8Array(stream.arrayBuffer, gltfHeader.binaryPosition);\r\n const featureTable = {\r\n startPos: ftStartPos,\r\n multiModel: 0 !== (imdlHeader.flags & ImdlFlags.MultiModelFeatureTable),\r\n };\r\n\r\n const parser = new Parser(imdlDoc, binaryData, options, featureTable, stream);\r\n return parser.parse();\r\n } catch (_) {\r\n return TileReadStatus.InvalidTileData;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,11 @@
1
+ /** @packageDocumentation
2
+ * @module Rendering
3
+ */
4
+ /** Special values of [[GraphicBranch.animationNodeId]].
5
+ * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.
6
+ * @internal
7
+ */
8
+ export declare enum AnimationNodeId {
9
+ Untransformed = 4294967295
10
+ }
11
+ //# sourceMappingURL=AnimationNodeId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationNodeId.d.ts","sourceRoot":"","sources":["../../../../src/common/render/AnimationNodeId.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,oBAAY,eAAe;IACzB,aAAa,aAAa;CAC3B"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Rendering
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.AnimationNodeId = void 0;
11
+ /** Special values of [[GraphicBranch.animationNodeId]].
12
+ * All other values refer to an [ElementTimeline.batchId]($common) that applies a transform to the graphics in the branch.
13
+ * @internal
14
+ */
15
+ var AnimationNodeId;
16
+ (function (AnimationNodeId) {
17
+ AnimationNodeId[AnimationNodeId["Untransformed"] = 4294967295] = "Untransformed";
18
+ })(AnimationNodeId = exports.AnimationNodeId || (exports.AnimationNodeId = {}));
19
+ //# sourceMappingURL=AnimationNodeId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationNodeId.js","sourceRoot":"","sources":["../../../../src/common/render/AnimationNodeId.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;;GAGG;AACH,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,gFAA0B,CAAA;AAC5B,CAAC,EAFW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAE1B","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/** 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"]}
@@ -1,19 +1,9 @@
1
1
  /** @packageDocumentation
2
2
  * @module Rendering
3
3
  */
4
- import { Id64String } from "@itwin/core-bentley";
5
4
  import { ColorDef, NormalMapParams, RenderTexture, RgbColorProps, TextureMapping } from "@itwin/core-common";
6
- import { IModelConnection } from "../IModelConnection";
7
- /** Specifies the provenance of a [RenderMaterial]($common) created for a persistent material element.
8
- * @see [[CreateRenderMaterialArgs.source]].
9
- * @internal
10
- */
11
- export interface RenderMaterialSource {
12
- iModel: IModelConnection;
13
- id: Id64String;
14
- }
15
5
  /** Describes the [diffuse](https://en.wikipedia.org/wiki/Diffuse_reflection) properties of a [RenderMaterial]($common).
16
- * @see [[CreateRenderMaterialArgs.diffuse]].
6
+ * @see [[MaterialParams.diffuse]].
17
7
  * @public
18
8
  */
19
9
  export interface MaterialDiffuseProps {
@@ -25,7 +15,7 @@ export interface MaterialDiffuseProps {
25
15
  weight?: number;
26
16
  }
27
17
  /** Describes the [specular](https://en.wikipedia.org/wiki/Specular_highlight) properties of a material.
28
- * @see [[CreateRenderMaterialArgs.specular]].
18
+ * @see [[MaterialParams.specular]].
29
19
  * @public
30
20
  */
31
21
  export interface MaterialSpecularProps {
@@ -43,7 +33,7 @@ export interface MaterialSpecularProps {
43
33
  exponent?: number;
44
34
  }
45
35
  /** Describes how to map a [RenderTexture]($common)'s image to the surfaces to which a [RenderMaterial]($common) is applied.
46
- * @see [[CreateRenderMaterialArgs.textureMapping]].
36
+ * @see [[MaterialParams.textureMapping]].
47
37
  * @public
48
38
  */
49
39
  export interface MaterialTextureMappingProps {
@@ -75,14 +65,11 @@ export interface MaterialTextureMappingProps {
75
65
  */
76
66
  constantLodProps?: TextureMapping.ConstantLodParamProps;
77
67
  }
78
- /** Arguments supplied to [[RenderSystem.createRenderMaterial]].
68
+ /** Describes a [RenderMaterial]($common).
69
+ * @see [[RenderSystem.createRenderMaterial]] to create a material.
79
70
  * @public
80
71
  */
81
- export interface CreateRenderMaterialArgs {
82
- /** If supplied, the material will be cached on the iModel by its element Id for subsequent reuse.
83
- * @internal
84
- */
85
- source?: RenderMaterialSource;
72
+ export interface MaterialParams {
86
73
  /** Specifies the transparency of the material from 0.0 (fully transparent) to 1.0 (fully opaque).
87
74
  * If defined, this overrides the transparency of any surface to which the material is applied, and is multiplied with the
88
75
  * transparency of the material's [[textureMapping]] when sampling the texture.
@@ -95,4 +82,4 @@ export interface CreateRenderMaterialArgs {
95
82
  /** Maps [RenderTexture]($common) images to the surfaces to which the material is applied to customize their appearance. */
96
83
  textureMapping?: MaterialTextureMappingProps;
97
84
  }
98
- //# sourceMappingURL=RenderMaterial.d.ts.map
85
+ //# sourceMappingURL=MaterialParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialParams.d.ts","sourceRoot":"","sources":["../../../../src/common/render/MaterialParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE7G;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,+GAA+G;IAC/G,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,oDAAoD;IACpD,OAAO,EAAE,aAAa,CAAC;IAEvB,sGAAsG;IACtG,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC;IAEpC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gBAAgB;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,cAAc,CAAC,qBAAqB,CAAC;CACzD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kGAAkG;IAClG,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B,mGAAmG;IACnG,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC,2HAA2H;IAC3H,cAAc,CAAC,EAAE,2BAA2B,CAAC;CAC9C"}
@@ -7,4 +7,4 @@
7
7
  * @module Rendering
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=RenderMaterial.js.map
10
+ //# sourceMappingURL=MaterialParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialParams.js","sourceRoot":"","sources":["../../../../src/common/render/MaterialParams.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { ColorDef, NormalMapParams, RenderTexture, RgbColorProps, TextureMapping } from \"@itwin/core-common\";\r\n\r\n/** Describes the [diffuse](https://en.wikipedia.org/wiki/Diffuse_reflection) properties of a [RenderMaterial]($common).\r\n * @see [[MaterialParams.diffuse]].\r\n * @public\r\n */\r\nexport interface MaterialDiffuseProps {\r\n /** The diffuse color. If defined, this overrides the color of any surface to which the material is applied. */\r\n color?: ColorDef | RgbColorProps;\r\n\r\n /** A multiplier in [0..1] specifying how strongly the diffuse color reflects light.\r\n * Default: 0.6\r\n */\r\n weight?: number;\r\n}\r\n\r\n/** Describes the [specular](https://en.wikipedia.org/wiki/Specular_highlight) properties of a material.\r\n * @see [[MaterialParams.specular]].\r\n * @public\r\n */\r\nexport interface MaterialSpecularProps {\r\n /** The color of the specular reflections.\r\n * Default: white.\r\n */\r\n color?: ColorDef | RgbColorProps;\r\n\r\n /** A multiplier in [0..1] specifying the strength of the specular reflections.\r\n * Default: 0.4\r\n */\r\n weight?: number;\r\n\r\n /** An exponent in [0..infinity] describing the shininess of the surface.\r\n * Default: 13.5\r\n */\r\n exponent?: number;\r\n}\r\n\r\n/** Describes how to map a [RenderTexture]($common)'s image to the surfaces to which a [RenderMaterial]($common) is applied.\r\n * @see [[MaterialParams.textureMapping]].\r\n * @public\r\n */\r\nexport interface MaterialTextureMappingProps {\r\n /** The texture from which the image is obtained. */\r\n texture: RenderTexture;\r\n\r\n /** The parameters describing a normal map to use either in place of or in addition to the texture. */\r\n normalMapParams?: NormalMapParams;\r\n\r\n /** The mode controlling how the image is mapped onto the surface.\r\n * Default: [TextureMapping.Mode.Parametric]($common).\r\n */\r\n mode?: TextureMapping.Mode;\r\n\r\n /** A 2x3 matrix for computing the UV coordinates.\r\n * Default: [TextureMapping.Trans2x3.identity]($common).\r\n */\r\n transform?: TextureMapping.Trans2x3;\r\n\r\n /** The ratio by which the color sampled from the texture image is mixed with the surface's or material's diffuse color.\r\n * A ratio of 1 selects only the texture sample; a ratio of 0 selects only the diffuse color; a ratio of 0.5 mixes them evenly.\r\n * Default: 1.\r\n */\r\n weight?: number;\r\n\r\n /** @internal */\r\n worldMapping?: boolean;\r\n\r\n /** True if want to use constant LOD texture mapping for the surface texture.\r\n * Default: false.\r\n */\r\n useConstantLod?: boolean;\r\n\r\n /** Parameters for constant LOD mapping mode.\r\n * See [[TextureMapping.ConstantLodParamProps]] for defaults.\r\n */\r\n constantLodProps?: TextureMapping.ConstantLodParamProps;\r\n}\r\n\r\n/** Describes a [RenderMaterial]($common).\r\n * @see [[RenderSystem.createRenderMaterial]] to create a material.\r\n * @public\r\n */\r\nexport interface MaterialParams {\r\n /** Specifies the transparency of the material from 0.0 (fully transparent) to 1.0 (fully opaque).\r\n * If defined, this overrides the transparency of any surface to which the material is applied, and is multiplied with the\r\n * transparency of the material's [[textureMapping]] when sampling the texture.\r\n */\r\n alpha?: number;\r\n\r\n /** The [diffuse](https://en.wikipedia.org/wiki/Diffuse_reflection) properties of the material. */\r\n diffuse?: MaterialDiffuseProps;\r\n\r\n /** The [specular](https://en.wikipedia.org/wiki/Specular_highlight) properties of the material. */\r\n specular?: MaterialSpecularProps;\r\n\r\n /** Maps [RenderTexture]($common) images to the surfaces to which the material is applied to customize their appearance. */\r\n textureMapping?: MaterialTextureMappingProps;\r\n}\r\n\r\n"]}
@@ -0,0 +1,30 @@
1
+ /** @packageDocumentation
2
+ * @module Rendering
3
+ */
4
+ import { Gradient, ImageBuffer, TextureTransparency } from "@itwin/core-common";
5
+ /** An object from which a [RenderTexture]($common) can be created.
6
+ * @see [[TextureImage.source]]
7
+ * @public
8
+ * @extensions
9
+ */
10
+ export type TextureImageSource = HTMLImageElement | ImageBuffer | ImageBitmap;
11
+ /** Describes the image from which to create a [RenderTexture]($common).
12
+ * @see [[CreateTextureArgs.image]]
13
+ * @public
14
+ * @extensions
15
+ */
16
+ export interface TextureImage {
17
+ /** The object that supplies the texture image. */
18
+ source: TextureImageSource;
19
+ /** Describes the transparency of the image. If this information can be supplied, it can improve performance.
20
+ * If this information is not available at the call site, omit it - it defaults to "mixed" if it cannot be inferred from the source.
21
+ */
22
+ transparency?: TextureTransparency;
23
+ }
24
+ /** A key that uniquely identifies a [RenderTexture]($common) in the context of an [[IModelConnection]], used for caching.
25
+ * @see [[TextureCacheOwnership]].
26
+ * @public
27
+ * @extensions
28
+ */
29
+ export type TextureCacheKey = string | Gradient.Symb;
30
+ //# sourceMappingURL=TextureParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureParams.d.ts","sourceRoot":"","sources":["../../../../src/common/render/TextureParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;OAEG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC"}
@@ -7,4 +7,4 @@
7
7
  * @module Rendering
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=RenderTexture.js.map
10
+ //# sourceMappingURL=TextureParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureParams.js","sourceRoot":"","sources":["../../../../src/common/render/TextureParams.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Rendering\r\n */\r\n\r\nimport { Gradient, ImageBuffer, TextureTransparency } from \"@itwin/core-common\";\r\n\r\n/** An object from which a [RenderTexture]($common) can be created.\r\n * @see [[TextureImage.source]]\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureImageSource = HTMLImageElement | ImageBuffer | ImageBitmap; // ###TODO | HTMLCanvasElement etc\r\n\r\n/** Describes the image from which to create a [RenderTexture]($common).\r\n * @see [[CreateTextureArgs.image]]\r\n * @public\r\n * @extensions\r\n */\r\nexport interface TextureImage {\r\n /** The object that supplies the texture image. */\r\n source: TextureImageSource;\r\n /** Describes the transparency of the image. If this information can be supplied, it can improve performance.\r\n * If this information is not available at the call site, omit it - it defaults to \"mixed\" if it cannot be inferred from the source.\r\n */\r\n transparency?: TextureTransparency;\r\n}\r\n\r\n/** A key that uniquely identifies a [RenderTexture]($common) in the context of an [[IModelConnection]], used for caching.\r\n * @see [[TextureCacheOwnership]].\r\n * @public\r\n * @extensions\r\n */\r\nexport type TextureCacheKey = string | Gradient.Symb;\r\n"]}
@@ -2,37 +2,40 @@
2
2
  * @module Rendering
3
3
  */
4
4
  import { AuxChannel as PolyfaceAuxChannel } from "@itwin/core-geometry";
5
- /** @internal */
5
+ /** @alpha */
6
6
  export interface AuxChannelProps {
7
7
  readonly name: string;
8
8
  readonly inputs: number[];
9
9
  readonly indices: number[];
10
10
  }
11
- /** @internal */
11
+ /** @alpha */
12
12
  export interface QuantizedAuxChannelProps extends AuxChannelProps {
13
13
  readonly qOrigin: number[];
14
14
  readonly qScale: number[];
15
15
  }
16
- /** @internal */
16
+ /** @alpha */
17
17
  export declare class AuxChannel implements AuxChannelProps {
18
18
  readonly name: string;
19
19
  readonly inputs: number[];
20
20
  readonly indices: number[];
21
21
  constructor(props: AuxChannelProps);
22
+ toJSON(): AuxChannelProps;
22
23
  }
23
- /** @internal */
24
+ /** @alpha */
24
25
  export declare class AuxDisplacementChannel extends AuxChannel {
25
26
  readonly qOrigin: Float32Array;
26
27
  readonly qScale: Float32Array;
27
28
  constructor(props: QuantizedAuxChannelProps);
29
+ toJSON(): QuantizedAuxChannelProps;
28
30
  }
29
- /** @internal */
31
+ /** @alpha */
30
32
  export declare class AuxParamChannel extends AuxChannel {
31
33
  readonly qOrigin: number;
32
34
  readonly qScale: number;
33
35
  constructor(props: QuantizedAuxChannelProps);
36
+ toJSON(): QuantizedAuxChannelProps;
34
37
  }
35
- /** @internal */
38
+ /** @alpha */
36
39
  export interface AuxChannelTableProps {
37
40
  /** Rectangular array of per-vertex data, of size width * height * numBytesPerVertex bytes. */
38
41
  readonly data: Uint8Array;
@@ -57,7 +60,7 @@ export interface AuxChannelTableProps {
57
60
  * The channels are interleaved in a rectangular array such that the data for each vertex is stored contiguously; that is, if a displacement and
58
61
  * a normal channel exist, then the first vertex's displacement is followed by the first vertex's normal, which is followed by the second
59
62
  * vertex's displacement and normal; and so on.
60
- * @internal
63
+ * @alpha
61
64
  */
62
65
  export declare class AuxChannelTable {
63
66
  /** Rectangular array of per-vertex data, of size width * height * numBytesPerVertex bytes. */
@@ -78,6 +81,7 @@ export declare class AuxChannelTable {
78
81
  readonly params?: AuxParamChannel[];
79
82
  private constructor();
80
83
  static fromJSON(props: AuxChannelTableProps): AuxChannelTable | undefined;
81
- static fromChannels(channels: ReadonlyArray<PolyfaceAuxChannel>, numVertices: number): AuxChannelTable | undefined;
84
+ toJSON(): AuxChannelTableProps;
85
+ static fromChannels(channels: ReadonlyArray<PolyfaceAuxChannel>, numVertices: number, maxDimension: number): AuxChannelTable | undefined;
82
86
  }
83
87
  //# sourceMappingURL=AuxChannelTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuxChannelTable.d.ts","sourceRoot":"","sources":["../../../../../src/common/render/primitives/AuxChannelTable.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EACwB,UAAU,IAAI,kBAAkB,EAC9D,MAAM,sBAAsB,CAAC;AAI9B,aAAa;AACb,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,aAAa;AACb,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,aAAa;AACb,qBAAa,UAAW,YAAW,eAAe;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjC,SAAgB,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEf,KAAK,EAAE,eAAe;IAMlC,MAAM,IAAI,eAAe;CAOjC;AAED,aAAa;AACb,qBAAa,sBAAuB,SAAQ,UAAU;IACpD,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,MAAM,EAAE,YAAY,CAAC;gBAElB,KAAK,EAAE,wBAAwB;IAMlC,MAAM,IAAI,wBAAwB;CAOnD;AAED,aAAa;AACb,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEZ,KAAK,EAAE,wBAAwB;IAMlC,MAAM,IAAI,wBAAwB;CAOnD;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sGAAsG;IACtG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,yCAAyC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACpD,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,8FAA8F;IAC9F,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,kEAAkE;IAClE,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,uCAAuC;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,sGAAsG;IACtG,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,gFAAgF;IAChF,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,yCAAyC;IACzC,SAAgB,aAAa,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACzD,mCAAmC;IACnC,SAAgB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvC,yCAAyC;IACzC,SAAgB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3C,OAAO;WAWO,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,GAAG,SAAS;IA0BzE,MAAM,IAAI,oBAAoB;WAavB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;CAGhJ"}
@@ -12,31 +12,52 @@ const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const core_common_1 = require("@itwin/core-common");
14
14
  const VertexTable_1 = require("./VertexTable");
15
- /** @internal */
15
+ /** @alpha */
16
16
  class AuxChannel {
17
17
  constructor(props) {
18
18
  this.name = props.name;
19
19
  this.inputs = props.inputs;
20
20
  this.indices = props.indices;
21
21
  }
22
+ toJSON() {
23
+ return {
24
+ name: this.name,
25
+ inputs: this.inputs,
26
+ indices: this.indices,
27
+ };
28
+ }
22
29
  }
23
30
  exports.AuxChannel = AuxChannel;
24
- /** @internal */
31
+ /** @alpha */
25
32
  class AuxDisplacementChannel extends AuxChannel {
26
33
  constructor(props) {
27
34
  super(props);
28
35
  this.qOrigin = Float32Array.from(props.qOrigin);
29
36
  this.qScale = Float32Array.from(props.qScale);
30
37
  }
38
+ toJSON() {
39
+ return {
40
+ ...super.toJSON(),
41
+ qOrigin: Array.from(this.qOrigin),
42
+ qScale: Array.from(this.qScale),
43
+ };
44
+ }
31
45
  }
32
46
  exports.AuxDisplacementChannel = AuxDisplacementChannel;
33
- /** @internal */
47
+ /** @alpha */
34
48
  class AuxParamChannel extends AuxChannel {
35
49
  constructor(props) {
36
50
  super(props);
37
51
  this.qOrigin = props.qOrigin[0];
38
52
  this.qScale = props.qScale[0];
39
53
  }
54
+ toJSON() {
55
+ return {
56
+ ...super.toJSON(),
57
+ qOrigin: [this.qOrigin],
58
+ qScale: [this.qScale],
59
+ };
60
+ }
40
61
  }
41
62
  exports.AuxParamChannel = AuxParamChannel;
42
63
  /**
@@ -45,7 +66,7 @@ exports.AuxParamChannel = AuxParamChannel;
45
66
  * The channels are interleaved in a rectangular array such that the data for each vertex is stored contiguously; that is, if a displacement and
46
67
  * a normal channel exist, then the first vertex's displacement is followed by the first vertex's normal, which is followed by the second
47
68
  * vertex's displacement and normal; and so on.
48
- * @internal
69
+ * @alpha
49
70
  */
50
71
  class AuxChannelTable {
51
72
  constructor(props, displacements, normals, params) {
@@ -79,8 +100,20 @@ class AuxChannelTable {
79
100
  }
80
101
  return undefined !== displacements || undefined !== normals || undefined !== params ? new AuxChannelTable(props, displacements, normals, params) : undefined;
81
102
  }
82
- static fromChannels(channels, numVertices) {
83
- return AuxChannelTableBuilder.buildAuxChannelTable(channels, numVertices);
103
+ toJSON() {
104
+ return {
105
+ data: this.data,
106
+ width: this.width,
107
+ height: this.height,
108
+ count: this.numVertices,
109
+ numBytesPerVertex: this.numBytesPerVertex,
110
+ displacements: this.displacements?.map((x) => x.toJSON()),
111
+ normals: this.normals?.map((x) => x.toJSON()),
112
+ params: this.params?.map((x) => x.toJSON()),
113
+ };
114
+ }
115
+ static fromChannels(channels, numVertices, maxDimension) {
116
+ return AuxChannelTableBuilder.buildAuxChannelTable(channels, numVertices, maxDimension);
84
117
  }
85
118
  }
86
119
  exports.AuxChannelTable = AuxChannelTable;
@@ -95,7 +128,7 @@ class AuxChannelTableBuilder {
95
128
  this._numBytesPerVertex = numBytesPerVertex;
96
129
  this._view = new DataView(props.data.buffer);
97
130
  }
98
- static buildAuxChannelTable(channels, numVertices) {
131
+ static buildAuxChannelTable(channels, numVertices, maxDimension) {
99
132
  const numBytesPerVertex = channels.reduce((accum, channel) => accum + computeNumBytesPerVertex(channel), 0);
100
133
  if (!numBytesPerVertex)
101
134
  return undefined;
@@ -105,9 +138,9 @@ class AuxChannelTableBuilder {
105
138
  // We don't want any unused bytes. If we've got 2 extra, make every other vertex's channel start in the middle of the first texel.
106
139
  let dimensions;
107
140
  if (0 !== nUnusedBytesPerVertex)
108
- dimensions = (0, VertexTable_1.computeDimensions)(Math.floor((numVertices + 1) / 2), numBytesPerVertex / 2, 0); // twice as many RGBA for half as many vertices.
141
+ dimensions = (0, VertexTable_1.computeDimensions)(Math.floor((numVertices + 1) / 2), numBytesPerVertex / 2, 0, maxDimension); // twice as many RGBA for half as many vertices.
109
142
  else
110
- dimensions = (0, VertexTable_1.computeDimensions)(numVertices, nRgbaPerVertex, 0);
143
+ dimensions = (0, VertexTable_1.computeDimensions)(numVertices, nRgbaPerVertex, 0, maxDimension);
111
144
  const data = new Uint8Array(dimensions.width * dimensions.height * 4);
112
145
  const props = {
113
146
  data,