@itwin/core-frontend 4.1.0-dev.11 → 4.1.0-dev.12

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 (779) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/lib/cjs/CheckpointConnection.js +1 -1
  3. package/lib/cjs/CheckpointConnection.js.map +1 -1
  4. package/lib/cjs/DrawingViewState.js +1 -1
  5. package/lib/cjs/DrawingViewState.js.map +1 -1
  6. package/lib/cjs/ElementLocateManager.js +1 -1
  7. package/lib/cjs/ElementLocateManager.js.map +1 -1
  8. package/lib/cjs/EnvironmentDecorations.js +1 -1
  9. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  10. package/lib/cjs/GeoServices.js +1 -1
  11. package/lib/cjs/GeoServices.js.map +1 -1
  12. package/lib/cjs/IModelApp.js +1 -1
  13. package/lib/cjs/IModelApp.js.map +1 -1
  14. package/lib/cjs/IModelConnection.js +1 -1
  15. package/lib/cjs/IModelConnection.js.map +1 -1
  16. package/lib/cjs/Marker.d.ts +1 -1
  17. package/lib/cjs/Marker.d.ts.map +1 -1
  18. package/lib/cjs/Marker.js +3 -3
  19. package/lib/cjs/Marker.js.map +1 -1
  20. package/lib/cjs/NativeApp.js +1 -1
  21. package/lib/cjs/NativeApp.js.map +1 -1
  22. package/lib/cjs/NoRenderApp.d.ts +1 -1
  23. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  24. package/lib/cjs/NoRenderApp.js +1 -1
  25. package/lib/cjs/NoRenderApp.js.map +1 -1
  26. package/lib/cjs/RealityDataSource.js +1 -1
  27. package/lib/cjs/RealityDataSource.js.map +1 -1
  28. package/lib/cjs/RealityDataSourceContextShareImpl.js +1 -1
  29. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  30. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  31. package/lib/cjs/SheetViewState.js +2 -2
  32. package/lib/cjs/SheetViewState.js.map +1 -1
  33. package/lib/cjs/Sprites.js +2 -2
  34. package/lib/cjs/Sprites.js.map +1 -1
  35. package/lib/cjs/ViewingSpace.js +1 -1
  36. package/lib/cjs/ViewingSpace.js.map +1 -1
  37. package/lib/cjs/Viewport.d.ts +1 -1
  38. package/lib/cjs/Viewport.d.ts.map +1 -1
  39. package/lib/cjs/Viewport.js +1 -1
  40. package/lib/cjs/Viewport.js.map +1 -1
  41. package/lib/cjs/common/FrontendLoggerCategory.d.ts.map +1 -0
  42. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -0
  43. package/lib/cjs/common/ImageUtil.d.ts.map +1 -0
  44. package/lib/cjs/common/ImageUtil.js.map +1 -0
  45. package/lib/cjs/common/ViewRect.d.ts.map +1 -0
  46. package/lib/cjs/common/ViewRect.js.map +1 -0
  47. package/lib/cjs/common/WorkerProxy.d.ts +73 -0
  48. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -0
  49. package/lib/cjs/common/WorkerProxy.js +54 -0
  50. package/lib/cjs/common/WorkerProxy.js.map +1 -0
  51. package/lib/{esm → cjs/common}/gltf/GltfModel.d.ts +1 -1
  52. package/lib/cjs/common/gltf/GltfModel.d.ts.map +1 -0
  53. package/lib/cjs/common/gltf/GltfModel.js.map +1 -0
  54. package/lib/cjs/common/gltf/GltfParser.d.ts.map +1 -0
  55. package/lib/cjs/common/gltf/GltfParser.js.map +1 -0
  56. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -0
  57. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -0
  58. package/lib/cjs/{imdl → common/imdl}/ImdlModel.d.ts +5 -0
  59. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -0
  60. package/lib/cjs/common/imdl/ImdlModel.js +71 -0
  61. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -0
  62. package/lib/{esm → cjs/common}/imdl/ImdlSchema.d.ts +32 -32
  63. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -0
  64. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -0
  65. package/lib/cjs/{imdl/ImdlParser.d.ts → common/imdl/ParseImdlDocument.d.ts} +13 -8
  66. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  67. package/lib/cjs/{imdl/ImdlParser.js → common/imdl/ParseImdlDocument.js} +33 -34
  68. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -0
  69. package/lib/cjs/common/render/AnimationNodeId.d.ts +11 -0
  70. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +1 -0
  71. package/lib/cjs/common/render/AnimationNodeId.js +19 -0
  72. package/lib/cjs/common/render/AnimationNodeId.js.map +1 -0
  73. package/lib/{esm/render/RenderMaterial.d.ts → cjs/common/render/MaterialParams.d.ts} +7 -20
  74. package/lib/cjs/common/render/MaterialParams.d.ts.map +1 -0
  75. package/lib/cjs/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  76. package/lib/cjs/common/render/MaterialParams.js.map +1 -0
  77. package/lib/cjs/common/render/TextureParams.d.ts +30 -0
  78. package/lib/cjs/common/render/TextureParams.d.ts.map +1 -0
  79. package/lib/cjs/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  80. package/lib/cjs/common/render/TextureParams.js.map +1 -0
  81. package/lib/{esm → cjs/common}/render/primitives/AuxChannelTable.d.ts +8 -8
  82. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  83. package/lib/cjs/{render → common/render}/primitives/AuxChannelTable.js +9 -9
  84. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -0
  85. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +1 -0
  86. package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -0
  87. package/lib/cjs/common/render/primitives/EdgeParams.d.ts +94 -0
  88. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +1 -0
  89. package/lib/cjs/common/render/primitives/EdgeParams.js +46 -0
  90. package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -0
  91. package/lib/cjs/common/render/primitives/MeshParams.d.ts +20 -0
  92. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +1 -0
  93. package/lib/cjs/{imdl/ImdlModel.js → common/render/primitives/MeshParams.js} +2 -2
  94. package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -0
  95. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts +29 -0
  96. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  97. package/lib/cjs/common/render/primitives/MeshPrimitive.js +18 -0
  98. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -0
  99. package/lib/cjs/common/render/primitives/PointStringParams.d.ts +14 -0
  100. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +1 -0
  101. package/lib/cjs/common/render/primitives/PointStringParams.js +10 -0
  102. package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -0
  103. package/lib/cjs/common/render/primitives/PolylineParams.d.ts +29 -0
  104. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +1 -0
  105. package/lib/cjs/common/render/primitives/PolylineParams.js +10 -0
  106. package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -0
  107. package/lib/{esm → cjs/common}/render/primitives/SurfaceParams.d.ts +1 -1
  108. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  109. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -0
  110. package/lib/cjs/common/render/primitives/VertexIndices.d.ts +26 -0
  111. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +1 -0
  112. package/lib/cjs/common/render/primitives/VertexIndices.js +64 -0
  113. package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -0
  114. package/lib/cjs/common/render/primitives/VertexTable.d.ts +45 -0
  115. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +1 -0
  116. package/lib/cjs/common/render/primitives/VertexTable.js +38 -0
  117. package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -0
  118. package/lib/{esm → cjs/common}/render/primitives/VertexTableSplitter.d.ts +20 -3
  119. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  120. package/lib/cjs/{render → common/render}/primitives/VertexTableSplitter.js +33 -23
  121. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -0
  122. package/lib/cjs/core-frontend.d.ts +26 -9
  123. package/lib/cjs/core-frontend.d.ts.map +1 -1
  124. package/lib/cjs/core-frontend.js +26 -9
  125. package/lib/cjs/core-frontend.js.map +1 -1
  126. package/lib/cjs/extension/ExtensionAdmin.js +1 -1
  127. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  128. package/lib/cjs/quantity-formatting/QuantityFormatter.js +1 -1
  129. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  130. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts +24 -0
  131. package/lib/cjs/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  132. package/lib/cjs/render/CreateRenderMaterialArgs.js +10 -0
  133. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -0
  134. package/lib/{esm/render/RenderTexture.d.ts → cjs/render/CreateTextureArgs.d.ts} +4 -28
  135. package/lib/cjs/render/CreateTextureArgs.d.ts.map +1 -0
  136. package/lib/cjs/render/CreateTextureArgs.js +10 -0
  137. package/lib/cjs/render/CreateTextureArgs.js.map +1 -0
  138. package/lib/cjs/render/GraphicBranch.d.ts +1 -7
  139. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  140. package/lib/cjs/render/GraphicBranch.js +1 -9
  141. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  142. package/lib/cjs/render/MockRender.d.ts +4 -4
  143. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  144. package/lib/cjs/render/MockRender.js +1 -1
  145. package/lib/cjs/render/MockRender.js.map +1 -1
  146. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  147. package/lib/cjs/render/ParticleCollectionBuilder.js +5 -5
  148. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  149. package/lib/cjs/render/RealityMeshParams.js +2 -2
  150. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  151. package/lib/cjs/render/RenderSystem.d.ts +7 -6
  152. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  153. package/lib/cjs/render/RenderSystem.js +6 -6
  154. package/lib/cjs/render/RenderSystem.js.map +1 -1
  155. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  156. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  157. package/lib/cjs/render/RenderTarget.js.map +1 -1
  158. package/lib/cjs/render/VisibleFeature.d.ts +1 -1
  159. package/lib/cjs/render/VisibleFeature.d.ts.map +1 -1
  160. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  161. package/lib/cjs/render/primitives/EdgeParams.d.ts +2 -89
  162. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  163. package/lib/cjs/render/primitives/EdgeParams.js +35 -71
  164. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  165. package/lib/cjs/render/primitives/PointStringParams.d.ts +2 -11
  166. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -1
  167. package/lib/cjs/render/primitives/PointStringParams.js +26 -30
  168. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  169. package/lib/cjs/render/primitives/Polyface.d.ts +1 -1
  170. package/lib/cjs/render/primitives/Polyface.d.ts.map +1 -1
  171. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  172. package/lib/cjs/render/primitives/PolylineParams.d.ts +4 -36
  173. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -1
  174. package/lib/cjs/render/primitives/PolylineParams.js +29 -40
  175. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  176. package/lib/cjs/render/primitives/Strokes.d.ts +1 -1
  177. package/lib/cjs/render/primitives/Strokes.d.ts.map +1 -1
  178. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  179. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts +28 -0
  180. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  181. package/lib/cjs/render/primitives/{VertexTable.js → VertexTableBuilder.js} +61 -175
  182. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -0
  183. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  184. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  185. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  186. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  187. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  188. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -1
  189. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  190. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  191. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  192. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +1 -1
  193. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  194. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +1 -1
  195. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  196. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  197. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  198. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  199. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +3 -2
  200. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  201. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +4 -25
  202. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  203. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +9 -14
  204. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  205. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  206. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  207. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  208. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  209. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  210. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  211. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  212. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  213. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  214. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  215. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  216. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  217. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  218. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  219. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  220. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  221. package/lib/cjs/render/webgl/Material.js.map +1 -1
  222. package/lib/cjs/render/webgl/Mesh.d.ts +2 -2
  223. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  224. package/lib/cjs/render/webgl/Mesh.js +1 -1
  225. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  226. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  227. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  228. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  229. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  230. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  231. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  232. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  233. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  234. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  235. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  236. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  237. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  238. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  239. package/lib/cjs/render/webgl/SceneCompositor.d.ts +1 -1
  240. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  241. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  242. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  243. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  244. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  245. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  246. package/lib/cjs/render/webgl/System.d.ts +7 -6
  247. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  248. package/lib/cjs/render/webgl/System.js +1 -1
  249. package/lib/cjs/render/webgl/System.js.map +1 -1
  250. package/lib/cjs/render/webgl/Target.d.ts +1 -1
  251. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  252. package/lib/cjs/render/webgl/Target.js +4 -4
  253. package/lib/cjs/render/webgl/Target.js.map +1 -1
  254. package/lib/cjs/render/webgl/Texture.d.ts +1 -1
  255. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  256. package/lib/cjs/render/webgl/Texture.js +1 -1
  257. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  258. package/lib/cjs/render/webgl/UniformHandle.js +1 -1
  259. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  260. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  261. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  262. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  263. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  264. package/lib/cjs/render-primitives.d.ts +1 -4
  265. package/lib/cjs/render-primitives.d.ts.map +1 -1
  266. package/lib/cjs/render-primitives.js +1 -4
  267. package/lib/cjs/render-primitives.js.map +1 -1
  268. package/lib/cjs/tile/B3dmReader.d.ts +1 -1
  269. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  270. package/lib/cjs/tile/B3dmReader.js +1 -1
  271. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  272. package/lib/cjs/tile/GltfReader.d.ts +3 -3
  273. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  274. package/lib/cjs/tile/GltfReader.js +12 -21
  275. package/lib/cjs/tile/GltfReader.js.map +1 -1
  276. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  277. package/lib/cjs/tile/IModelTile.js +4 -9
  278. package/lib/cjs/tile/IModelTile.js.map +1 -1
  279. package/lib/cjs/tile/IModelTileTree.d.ts +3 -1
  280. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  281. package/lib/cjs/tile/IModelTileTree.js +14 -0
  282. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  283. package/lib/cjs/tile/ImdlDecoder.d.ts +52 -0
  284. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -0
  285. package/lib/cjs/tile/ImdlDecoder.js +35 -0
  286. package/lib/cjs/tile/ImdlDecoder.js.map +1 -0
  287. package/lib/{esm/imdl → cjs/tile}/ImdlGraphicsCreator.d.ts +1 -1
  288. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  289. package/lib/cjs/{imdl → tile}/ImdlGraphicsCreator.js +13 -13
  290. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -0
  291. package/lib/cjs/tile/ImdlParser.d.ts +26 -0
  292. package/lib/cjs/tile/ImdlParser.d.ts.map +1 -0
  293. package/lib/cjs/tile/ImdlParser.js +72 -0
  294. package/lib/cjs/tile/ImdlParser.js.map +1 -0
  295. package/lib/cjs/tile/ImdlReader.d.ts +6 -1
  296. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  297. package/lib/cjs/tile/ImdlReader.js +16 -11
  298. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  299. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -1
  300. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  301. package/lib/cjs/tile/PntsReader.js +1 -1
  302. package/lib/cjs/tile/PntsReader.js.map +1 -1
  303. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  304. package/lib/cjs/tile/PrimaryTileTree.js +2 -1
  305. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  306. package/lib/cjs/tile/RealityTileLoader.js +1 -1
  307. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  308. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +1 -1
  309. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  310. package/lib/cjs/tile/TileAdmin.d.ts +7 -0
  311. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  312. package/lib/cjs/tile/TileAdmin.js +1 -0
  313. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  314. package/lib/cjs/tile/internal.d.ts +3 -0
  315. package/lib/cjs/tile/internal.d.ts.map +1 -1
  316. package/lib/cjs/tile/internal.js +3 -0
  317. package/lib/cjs/tile/internal.js.map +1 -1
  318. package/lib/cjs/tools/ElementSetTool.js +1 -1
  319. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  320. package/lib/cjs/tools/SelectTool.js +1 -1
  321. package/lib/cjs/tools/SelectTool.js.map +1 -1
  322. package/lib/cjs/tools/ToolAdmin.js +1 -1
  323. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  324. package/lib/cjs/tools/ViewTool.js +1 -1
  325. package/lib/cjs/tools/ViewTool.js.map +1 -1
  326. package/lib/cjs/workers/ImdlParser/Worker.d.ts +20 -0
  327. package/lib/cjs/workers/ImdlParser/Worker.d.ts.map +1 -0
  328. package/lib/cjs/workers/ImdlParser/Worker.js +32 -0
  329. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -0
  330. package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -0
  331. package/lib/cjs/workers/RegisterWorker.d.ts +9 -0
  332. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -0
  333. package/lib/cjs/workers/RegisterWorker.js +36 -0
  334. package/lib/cjs/workers/RegisterWorker.js.map +1 -0
  335. package/lib/esm/CheckpointConnection.js +1 -1
  336. package/lib/esm/CheckpointConnection.js.map +1 -1
  337. package/lib/esm/DrawingViewState.js +1 -1
  338. package/lib/esm/DrawingViewState.js.map +1 -1
  339. package/lib/esm/ElementLocateManager.js +1 -1
  340. package/lib/esm/ElementLocateManager.js.map +1 -1
  341. package/lib/esm/EnvironmentDecorations.js +1 -1
  342. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  343. package/lib/esm/GeoServices.js +1 -1
  344. package/lib/esm/GeoServices.js.map +1 -1
  345. package/lib/esm/IModelApp.js +1 -1
  346. package/lib/esm/IModelApp.js.map +1 -1
  347. package/lib/esm/IModelConnection.js +1 -1
  348. package/lib/esm/IModelConnection.js.map +1 -1
  349. package/lib/esm/Marker.d.ts +1 -1
  350. package/lib/esm/Marker.d.ts.map +1 -1
  351. package/lib/esm/Marker.js +3 -3
  352. package/lib/esm/Marker.js.map +1 -1
  353. package/lib/esm/NativeApp.js +1 -1
  354. package/lib/esm/NativeApp.js.map +1 -1
  355. package/lib/esm/NoRenderApp.d.ts +1 -1
  356. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  357. package/lib/esm/NoRenderApp.js +1 -1
  358. package/lib/esm/NoRenderApp.js.map +1 -1
  359. package/lib/esm/RealityDataSource.js +1 -1
  360. package/lib/esm/RealityDataSource.js.map +1 -1
  361. package/lib/esm/RealityDataSourceContextShareImpl.js +1 -1
  362. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  363. package/lib/esm/SheetViewState.d.ts.map +1 -1
  364. package/lib/esm/SheetViewState.js +2 -2
  365. package/lib/esm/SheetViewState.js.map +1 -1
  366. package/lib/esm/Sprites.js +2 -2
  367. package/lib/esm/Sprites.js.map +1 -1
  368. package/lib/esm/ViewingSpace.js +1 -1
  369. package/lib/esm/ViewingSpace.js.map +1 -1
  370. package/lib/esm/Viewport.d.ts +1 -1
  371. package/lib/esm/Viewport.d.ts.map +1 -1
  372. package/lib/esm/Viewport.js +1 -1
  373. package/lib/esm/Viewport.js.map +1 -1
  374. package/lib/esm/common/FrontendLoggerCategory.d.ts.map +1 -0
  375. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -0
  376. package/lib/esm/common/ImageUtil.d.ts.map +1 -0
  377. package/lib/esm/common/ImageUtil.js.map +1 -0
  378. package/lib/esm/common/ViewRect.d.ts.map +1 -0
  379. package/lib/esm/common/ViewRect.js.map +1 -0
  380. package/lib/esm/common/WorkerProxy.d.ts +73 -0
  381. package/lib/esm/common/WorkerProxy.d.ts.map +1 -0
  382. package/lib/esm/common/WorkerProxy.js +50 -0
  383. package/lib/esm/common/WorkerProxy.js.map +1 -0
  384. package/lib/{cjs → esm/common}/gltf/GltfModel.d.ts +1 -1
  385. package/lib/esm/common/gltf/GltfModel.d.ts.map +1 -0
  386. package/lib/esm/common/gltf/GltfModel.js.map +1 -0
  387. package/lib/esm/common/gltf/GltfParser.d.ts.map +1 -0
  388. package/lib/esm/common/gltf/GltfParser.js.map +1 -0
  389. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -0
  390. package/lib/esm/common/gltf/GltfSchema.js.map +1 -0
  391. package/lib/esm/{imdl → common/imdl}/ImdlModel.d.ts +5 -0
  392. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -0
  393. package/lib/esm/common/imdl/ImdlModel.js +67 -0
  394. package/lib/esm/common/imdl/ImdlModel.js.map +1 -0
  395. package/lib/{cjs → esm/common}/imdl/ImdlSchema.d.ts +32 -32
  396. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -0
  397. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -0
  398. package/lib/esm/{imdl/ImdlParser.d.ts → common/imdl/ParseImdlDocument.d.ts} +13 -8
  399. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -0
  400. package/lib/esm/{imdl/ImdlParser.js → common/imdl/ParseImdlDocument.js} +21 -22
  401. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -0
  402. package/lib/esm/common/render/AnimationNodeId.d.ts +11 -0
  403. package/lib/esm/common/render/AnimationNodeId.d.ts.map +1 -0
  404. package/lib/esm/common/render/AnimationNodeId.js +16 -0
  405. package/lib/esm/common/render/AnimationNodeId.js.map +1 -0
  406. package/lib/{cjs/render/RenderMaterial.d.ts → esm/common/render/MaterialParams.d.ts} +7 -20
  407. package/lib/esm/common/render/MaterialParams.d.ts.map +1 -0
  408. package/lib/esm/{render/RenderMaterial.js → common/render/MaterialParams.js} +1 -1
  409. package/lib/esm/common/render/MaterialParams.js.map +1 -0
  410. package/lib/esm/common/render/TextureParams.d.ts +30 -0
  411. package/lib/esm/common/render/TextureParams.d.ts.map +1 -0
  412. package/lib/esm/{render/RenderTexture.js → common/render/TextureParams.js} +1 -1
  413. package/lib/esm/common/render/TextureParams.js.map +1 -0
  414. package/lib/{cjs → esm/common}/render/primitives/AuxChannelTable.d.ts +8 -8
  415. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +1 -0
  416. package/lib/esm/{render → common/render}/primitives/AuxChannelTable.js +9 -9
  417. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -0
  418. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +1 -0
  419. package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -0
  420. package/lib/esm/common/render/primitives/EdgeParams.d.ts +94 -0
  421. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +1 -0
  422. package/lib/esm/common/render/primitives/EdgeParams.js +42 -0
  423. package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -0
  424. package/lib/esm/common/render/primitives/MeshParams.d.ts +20 -0
  425. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +1 -0
  426. package/lib/esm/common/render/primitives/MeshParams.js +9 -0
  427. package/lib/esm/common/render/primitives/MeshParams.js.map +1 -0
  428. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts +29 -0
  429. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +1 -0
  430. package/lib/esm/common/render/primitives/MeshPrimitive.js +15 -0
  431. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -0
  432. package/lib/esm/common/render/primitives/PointStringParams.d.ts +14 -0
  433. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +1 -0
  434. package/lib/esm/common/render/primitives/PointStringParams.js +9 -0
  435. package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -0
  436. package/lib/esm/common/render/primitives/PolylineParams.d.ts +29 -0
  437. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +1 -0
  438. package/lib/esm/common/render/primitives/PolylineParams.js +9 -0
  439. package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -0
  440. package/lib/{cjs → esm/common}/render/primitives/SurfaceParams.d.ts +1 -1
  441. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +1 -0
  442. package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -0
  443. package/lib/esm/common/render/primitives/VertexIndices.d.ts +26 -0
  444. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +1 -0
  445. package/lib/esm/common/render/primitives/VertexIndices.js +60 -0
  446. package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -0
  447. package/lib/esm/common/render/primitives/VertexTable.d.ts +45 -0
  448. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +1 -0
  449. package/lib/esm/common/render/primitives/VertexTable.js +34 -0
  450. package/lib/esm/common/render/primitives/VertexTable.js.map +1 -0
  451. package/lib/{cjs → esm/common}/render/primitives/VertexTableSplitter.d.ts +20 -3
  452. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +1 -0
  453. package/lib/esm/{render → common/render}/primitives/VertexTableSplitter.js +31 -21
  454. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -0
  455. package/lib/esm/core-frontend.d.ts +26 -9
  456. package/lib/esm/core-frontend.d.ts.map +1 -1
  457. package/lib/esm/core-frontend.js +26 -9
  458. package/lib/esm/core-frontend.js.map +1 -1
  459. package/lib/esm/extension/ExtensionAdmin.js +1 -1
  460. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  461. package/lib/esm/quantity-formatting/QuantityFormatter.js +1 -1
  462. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  463. package/lib/esm/render/CreateRenderMaterialArgs.d.ts +24 -0
  464. package/lib/esm/render/CreateRenderMaterialArgs.d.ts.map +1 -0
  465. package/lib/esm/render/CreateRenderMaterialArgs.js +9 -0
  466. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -0
  467. package/lib/{cjs/render/RenderTexture.d.ts → esm/render/CreateTextureArgs.d.ts} +4 -28
  468. package/lib/esm/render/CreateTextureArgs.d.ts.map +1 -0
  469. package/lib/esm/render/CreateTextureArgs.js +9 -0
  470. package/lib/esm/render/CreateTextureArgs.js.map +1 -0
  471. package/lib/esm/render/GraphicBranch.d.ts +1 -7
  472. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  473. package/lib/esm/render/GraphicBranch.js +0 -8
  474. package/lib/esm/render/GraphicBranch.js.map +1 -1
  475. package/lib/esm/render/MockRender.d.ts +4 -4
  476. package/lib/esm/render/MockRender.d.ts.map +1 -1
  477. package/lib/esm/render/MockRender.js +1 -1
  478. package/lib/esm/render/MockRender.js.map +1 -1
  479. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  480. package/lib/esm/render/ParticleCollectionBuilder.js +5 -5
  481. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  482. package/lib/esm/render/RealityMeshParams.js +2 -2
  483. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  484. package/lib/esm/render/RenderSystem.d.ts +7 -6
  485. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  486. package/lib/esm/render/RenderSystem.js +7 -7
  487. package/lib/esm/render/RenderSystem.js.map +1 -1
  488. package/lib/esm/render/RenderTarget.d.ts +1 -1
  489. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  490. package/lib/esm/render/RenderTarget.js.map +1 -1
  491. package/lib/esm/render/VisibleFeature.d.ts +1 -1
  492. package/lib/esm/render/VisibleFeature.d.ts.map +1 -1
  493. package/lib/esm/render/VisibleFeature.js.map +1 -1
  494. package/lib/esm/render/primitives/EdgeParams.d.ts +2 -89
  495. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  496. package/lib/esm/render/primitives/EdgeParams.js +29 -65
  497. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  498. package/lib/esm/render/primitives/PointStringParams.d.ts +2 -11
  499. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -1
  500. package/lib/esm/render/primitives/PointStringParams.js +24 -28
  501. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  502. package/lib/esm/render/primitives/Polyface.d.ts +1 -1
  503. package/lib/esm/render/primitives/Polyface.d.ts.map +1 -1
  504. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  505. package/lib/esm/render/primitives/PolylineParams.d.ts +4 -36
  506. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -1
  507. package/lib/esm/render/primitives/PolylineParams.js +24 -36
  508. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  509. package/lib/esm/render/primitives/Strokes.d.ts +1 -1
  510. package/lib/esm/render/primitives/Strokes.d.ts.map +1 -1
  511. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  512. package/lib/esm/render/primitives/VertexTableBuilder.d.ts +28 -0
  513. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +1 -0
  514. package/lib/esm/render/primitives/{VertexTable.js → VertexTableBuilder.js} +60 -171
  515. package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -0
  516. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +1 -1
  517. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  518. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  519. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +1 -1
  520. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  521. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -1
  522. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  523. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +1 -1
  524. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  525. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +1 -1
  526. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  527. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +1 -1
  528. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  529. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  530. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +6 -5
  531. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  532. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +4 -3
  533. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  534. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +4 -25
  535. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  536. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +9 -14
  537. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  538. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  539. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  540. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  541. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  542. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  543. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  544. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  545. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  546. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  547. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  548. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  549. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  550. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  551. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  552. package/lib/esm/render/webgl/Material.d.ts +1 -1
  553. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  554. package/lib/esm/render/webgl/Material.js.map +1 -1
  555. package/lib/esm/render/webgl/Mesh.d.ts +2 -2
  556. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  557. package/lib/esm/render/webgl/Mesh.js +1 -1
  558. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  559. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  560. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  561. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  562. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  563. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  564. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  565. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  566. package/lib/esm/render/webgl/PointString.js.map +1 -1
  567. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  568. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  569. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  570. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  571. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  572. package/lib/esm/render/webgl/SceneCompositor.d.ts +1 -1
  573. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  574. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  575. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  576. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  577. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  578. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  579. package/lib/esm/render/webgl/System.d.ts +7 -6
  580. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  581. package/lib/esm/render/webgl/System.js +1 -1
  582. package/lib/esm/render/webgl/System.js.map +1 -1
  583. package/lib/esm/render/webgl/Target.d.ts +1 -1
  584. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  585. package/lib/esm/render/webgl/Target.js +3 -3
  586. package/lib/esm/render/webgl/Target.js.map +1 -1
  587. package/lib/esm/render/webgl/Texture.d.ts +1 -1
  588. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  589. package/lib/esm/render/webgl/Texture.js +1 -1
  590. package/lib/esm/render/webgl/Texture.js.map +1 -1
  591. package/lib/esm/render/webgl/UniformHandle.js +1 -1
  592. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  593. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  594. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  595. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  596. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  597. package/lib/esm/render-primitives.d.ts +1 -4
  598. package/lib/esm/render-primitives.d.ts.map +1 -1
  599. package/lib/esm/render-primitives.js +1 -4
  600. package/lib/esm/render-primitives.js.map +1 -1
  601. package/lib/esm/tile/B3dmReader.d.ts +1 -1
  602. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  603. package/lib/esm/tile/B3dmReader.js +1 -1
  604. package/lib/esm/tile/B3dmReader.js.map +1 -1
  605. package/lib/esm/tile/GltfReader.d.ts +3 -3
  606. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  607. package/lib/esm/tile/GltfReader.js +12 -21
  608. package/lib/esm/tile/GltfReader.js.map +1 -1
  609. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  610. package/lib/esm/tile/IModelTile.js +5 -10
  611. package/lib/esm/tile/IModelTile.js.map +1 -1
  612. package/lib/esm/tile/IModelTileTree.d.ts +3 -1
  613. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  614. package/lib/esm/tile/IModelTileTree.js +15 -1
  615. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  616. package/lib/esm/tile/ImdlDecoder.d.ts +52 -0
  617. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -0
  618. package/lib/esm/tile/ImdlDecoder.js +31 -0
  619. package/lib/esm/tile/ImdlDecoder.js.map +1 -0
  620. package/lib/{cjs/imdl → esm/tile}/ImdlGraphicsCreator.d.ts +1 -1
  621. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -0
  622. package/lib/esm/{imdl → tile}/ImdlGraphicsCreator.js +5 -5
  623. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -0
  624. package/lib/esm/tile/ImdlParser.d.ts +26 -0
  625. package/lib/esm/tile/ImdlParser.d.ts.map +1 -0
  626. package/lib/esm/tile/ImdlParser.js +68 -0
  627. package/lib/esm/tile/ImdlParser.js.map +1 -0
  628. package/lib/esm/tile/ImdlReader.d.ts +6 -1
  629. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  630. package/lib/esm/tile/ImdlReader.js +13 -9
  631. package/lib/esm/tile/ImdlReader.js.map +1 -1
  632. package/lib/esm/tile/OPCFormatInterpreter.js +1 -1
  633. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  634. package/lib/esm/tile/PntsReader.js +1 -1
  635. package/lib/esm/tile/PntsReader.js.map +1 -1
  636. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  637. package/lib/esm/tile/PrimaryTileTree.js +2 -1
  638. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  639. package/lib/esm/tile/RealityTileLoader.js +1 -1
  640. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  641. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +1 -1
  642. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  643. package/lib/esm/tile/TileAdmin.d.ts +7 -0
  644. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  645. package/lib/esm/tile/TileAdmin.js +1 -0
  646. package/lib/esm/tile/TileAdmin.js.map +1 -1
  647. package/lib/esm/tile/internal.d.ts +3 -0
  648. package/lib/esm/tile/internal.d.ts.map +1 -1
  649. package/lib/esm/tile/internal.js +3 -0
  650. package/lib/esm/tile/internal.js.map +1 -1
  651. package/lib/esm/tools/ElementSetTool.js +1 -1
  652. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  653. package/lib/esm/tools/SelectTool.js +1 -1
  654. package/lib/esm/tools/SelectTool.js.map +1 -1
  655. package/lib/esm/tools/ToolAdmin.js +1 -1
  656. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  657. package/lib/esm/tools/ViewTool.js +1 -1
  658. package/lib/esm/tools/ViewTool.js.map +1 -1
  659. package/lib/esm/workers/ImdlParser/Worker.d.ts +20 -0
  660. package/lib/esm/workers/ImdlParser/Worker.d.ts.map +1 -0
  661. package/lib/esm/workers/ImdlParser/Worker.js +30 -0
  662. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -0
  663. package/lib/esm/workers/ImdlParser/webpack.config.js +40 -0
  664. package/lib/esm/workers/RegisterWorker.d.ts +9 -0
  665. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -0
  666. package/lib/esm/workers/RegisterWorker.js +32 -0
  667. package/lib/esm/workers/RegisterWorker.js.map +1 -0
  668. package/lib/public/scripts/parse-imdl-worker.js +1 -0
  669. package/lib/workers/webpack/parse-imdl-worker.js +1 -0
  670. package/package.json +23 -20
  671. package/lib/cjs/FrontendLoggerCategory.d.ts.map +0 -1
  672. package/lib/cjs/FrontendLoggerCategory.js.map +0 -1
  673. package/lib/cjs/ImageUtil.d.ts.map +0 -1
  674. package/lib/cjs/ImageUtil.js.map +0 -1
  675. package/lib/cjs/ViewRect.d.ts.map +0 -1
  676. package/lib/cjs/ViewRect.js.map +0 -1
  677. package/lib/cjs/WebWorkerManager.d.ts +0 -49
  678. package/lib/cjs/WebWorkerManager.d.ts.map +0 -1
  679. package/lib/cjs/WebWorkerManager.js +0 -155
  680. package/lib/cjs/WebWorkerManager.js.map +0 -1
  681. package/lib/cjs/gltf/GltfModel.d.ts.map +0 -1
  682. package/lib/cjs/gltf/GltfModel.js.map +0 -1
  683. package/lib/cjs/gltf/GltfParser.d.ts.map +0 -1
  684. package/lib/cjs/gltf/GltfParser.js.map +0 -1
  685. package/lib/cjs/gltf/GltfSchema.d.ts.map +0 -1
  686. package/lib/cjs/gltf/GltfSchema.js.map +0 -1
  687. package/lib/cjs/imdl/ImdlGraphicsCreator.d.ts.map +0 -1
  688. package/lib/cjs/imdl/ImdlGraphicsCreator.js.map +0 -1
  689. package/lib/cjs/imdl/ImdlModel.d.ts.map +0 -1
  690. package/lib/cjs/imdl/ImdlModel.js.map +0 -1
  691. package/lib/cjs/imdl/ImdlParser.d.ts.map +0 -1
  692. package/lib/cjs/imdl/ImdlParser.js.map +0 -1
  693. package/lib/cjs/imdl/ImdlSchema.d.ts.map +0 -1
  694. package/lib/cjs/imdl/ImdlSchema.js.map +0 -1
  695. package/lib/cjs/render/RenderMaterial.d.ts.map +0 -1
  696. package/lib/cjs/render/RenderMaterial.js.map +0 -1
  697. package/lib/cjs/render/RenderTexture.d.ts.map +0 -1
  698. package/lib/cjs/render/RenderTexture.js.map +0 -1
  699. package/lib/cjs/render/primitives/AuxChannelTable.d.ts.map +0 -1
  700. package/lib/cjs/render/primitives/AuxChannelTable.js.map +0 -1
  701. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +0 -1
  702. package/lib/cjs/render/primitives/DisplayParams.js.map +0 -1
  703. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +0 -1
  704. package/lib/cjs/render/primitives/SurfaceParams.js.map +0 -1
  705. package/lib/cjs/render/primitives/VertexTable.d.ts +0 -152
  706. package/lib/cjs/render/primitives/VertexTable.d.ts.map +0 -1
  707. package/lib/cjs/render/primitives/VertexTable.js.map +0 -1
  708. package/lib/cjs/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  709. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +0 -1
  710. package/lib/esm/FrontendLoggerCategory.d.ts.map +0 -1
  711. package/lib/esm/FrontendLoggerCategory.js.map +0 -1
  712. package/lib/esm/ImageUtil.d.ts.map +0 -1
  713. package/lib/esm/ImageUtil.js.map +0 -1
  714. package/lib/esm/ViewRect.d.ts.map +0 -1
  715. package/lib/esm/ViewRect.js.map +0 -1
  716. package/lib/esm/WebWorkerManager.d.ts +0 -49
  717. package/lib/esm/WebWorkerManager.d.ts.map +0 -1
  718. package/lib/esm/WebWorkerManager.js +0 -150
  719. package/lib/esm/WebWorkerManager.js.map +0 -1
  720. package/lib/esm/gltf/GltfModel.d.ts.map +0 -1
  721. package/lib/esm/gltf/GltfModel.js.map +0 -1
  722. package/lib/esm/gltf/GltfParser.d.ts.map +0 -1
  723. package/lib/esm/gltf/GltfParser.js.map +0 -1
  724. package/lib/esm/gltf/GltfSchema.d.ts.map +0 -1
  725. package/lib/esm/gltf/GltfSchema.js.map +0 -1
  726. package/lib/esm/imdl/ImdlGraphicsCreator.d.ts.map +0 -1
  727. package/lib/esm/imdl/ImdlGraphicsCreator.js.map +0 -1
  728. package/lib/esm/imdl/ImdlModel.d.ts.map +0 -1
  729. package/lib/esm/imdl/ImdlModel.js +0 -9
  730. package/lib/esm/imdl/ImdlModel.js.map +0 -1
  731. package/lib/esm/imdl/ImdlParser.d.ts.map +0 -1
  732. package/lib/esm/imdl/ImdlParser.js.map +0 -1
  733. package/lib/esm/imdl/ImdlSchema.d.ts.map +0 -1
  734. package/lib/esm/imdl/ImdlSchema.js.map +0 -1
  735. package/lib/esm/render/RenderMaterial.d.ts.map +0 -1
  736. package/lib/esm/render/RenderMaterial.js.map +0 -1
  737. package/lib/esm/render/RenderTexture.d.ts.map +0 -1
  738. package/lib/esm/render/RenderTexture.js.map +0 -1
  739. package/lib/esm/render/primitives/AuxChannelTable.d.ts.map +0 -1
  740. package/lib/esm/render/primitives/AuxChannelTable.js.map +0 -1
  741. package/lib/esm/render/primitives/DisplayParams.d.ts.map +0 -1
  742. package/lib/esm/render/primitives/DisplayParams.js.map +0 -1
  743. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +0 -1
  744. package/lib/esm/render/primitives/SurfaceParams.js.map +0 -1
  745. package/lib/esm/render/primitives/VertexTable.d.ts +0 -152
  746. package/lib/esm/render/primitives/VertexTable.d.ts.map +0 -1
  747. package/lib/esm/render/primitives/VertexTable.js.map +0 -1
  748. package/lib/esm/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  749. package/lib/esm/render/primitives/VertexTableSplitter.js.map +0 -1
  750. /package/lib/cjs/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  751. /package/lib/cjs/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  752. /package/lib/cjs/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  753. /package/lib/cjs/{ImageUtil.js → common/ImageUtil.js} +0 -0
  754. /package/lib/cjs/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  755. /package/lib/cjs/{ViewRect.js → common/ViewRect.js} +0 -0
  756. /package/lib/cjs/{gltf → common/gltf}/GltfModel.js +0 -0
  757. /package/lib/cjs/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  758. /package/lib/cjs/{gltf → common/gltf}/GltfParser.js +0 -0
  759. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  760. /package/lib/cjs/{gltf → common/gltf}/GltfSchema.js +0 -0
  761. /package/lib/cjs/{imdl → common/imdl}/ImdlSchema.js +0 -0
  762. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  763. /package/lib/cjs/{render → common/render}/primitives/DisplayParams.js +0 -0
  764. /package/lib/cjs/{render → common/render}/primitives/SurfaceParams.js +0 -0
  765. /package/lib/esm/{FrontendLoggerCategory.d.ts → common/FrontendLoggerCategory.d.ts} +0 -0
  766. /package/lib/esm/{FrontendLoggerCategory.js → common/FrontendLoggerCategory.js} +0 -0
  767. /package/lib/esm/{ImageUtil.d.ts → common/ImageUtil.d.ts} +0 -0
  768. /package/lib/esm/{ImageUtil.js → common/ImageUtil.js} +0 -0
  769. /package/lib/esm/{ViewRect.d.ts → common/ViewRect.d.ts} +0 -0
  770. /package/lib/esm/{ViewRect.js → common/ViewRect.js} +0 -0
  771. /package/lib/esm/{gltf → common/gltf}/GltfModel.js +0 -0
  772. /package/lib/esm/{gltf → common/gltf}/GltfParser.d.ts +0 -0
  773. /package/lib/esm/{gltf → common/gltf}/GltfParser.js +0 -0
  774. /package/lib/esm/{gltf → common/gltf}/GltfSchema.d.ts +0 -0
  775. /package/lib/esm/{gltf → common/gltf}/GltfSchema.js +0 -0
  776. /package/lib/esm/{imdl → common/imdl}/ImdlSchema.js +0 -0
  777. /package/lib/esm/{render → common/render}/primitives/DisplayParams.d.ts +0 -0
  778. /package/lib/esm/{render → common/render}/primitives/DisplayParams.js +0 -0
  779. /package/lib/esm/{render → common/render}/primitives/SurfaceParams.js +0 -0
@@ -0,0 +1,26 @@
1
+ /** @packageDocumentation
2
+ * @module Tiles
3
+ */
4
+ import { ImdlModel } from "../common/imdl/ImdlModel";
5
+ import { ImdlParseError, ImdlParserOptions, ImdlTimeline } from "../common/imdl/ParseImdlDocument";
6
+ /** An object that can parse binary iMdl content into an iMdl document on a worker thread.
7
+ * Parsers are reference-counted. Their lifetimes are typically managed by an [[ImdlDecoder]].
8
+ * The caller is responsible for invoking [[release]] to decrement the reference count when they are finished using the parsing.
9
+ * @see [[acquireImdlDecoder]] to acquire a decoder that uses a parser internally.
10
+ * @see [[acquireImdlParser]] to obtain a parser directly (but you probably don't need to do that).
11
+ * @internal
12
+ */
13
+ export interface ImdlParser {
14
+ parse(options: ImdlParserOptions): Promise<ImdlModel.Document | ImdlParseError>;
15
+ release(): void;
16
+ }
17
+ /** Arguments supplied to [[acquireImdlParser]].
18
+ * @internal
19
+ */
20
+ export interface AcquireImdlParserArgs {
21
+ timeline?: ImdlTimeline;
22
+ noWorker?: boolean;
23
+ }
24
+ /** @internal */
25
+ export declare function acquireImdlParser(args: AcquireImdlParserArgs): ImdlParser;
26
+ //# sourceMappingURL=ImdlParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImdlParser.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlParser.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAqB,MAAM,kCAAkC,CAAC;AAItH;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;IAChF,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,UAAU,CA+BzE"}
@@ -0,0 +1,68 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** @packageDocumentation
6
+ * @module Tiles
7
+ */
8
+ import { assert, Dictionary } from "@itwin/core-bentley";
9
+ import { RenderSchedule } from "@itwin/core-common";
10
+ import { createWorkerProxy } from "../common/WorkerProxy";
11
+ import { parseImdlDocument } from "../common/imdl/ParseImdlDocument";
12
+ import { IModelApp } from "../IModelApp";
13
+ /** @internal */
14
+ export function acquireImdlParser(args) {
15
+ const timeline = args.timeline;
16
+ if (args.noWorker) {
17
+ return {
18
+ parse: async (options) => Promise.resolve(parseImdlDocument({
19
+ ...options,
20
+ timeline,
21
+ })),
22
+ release: () => undefined,
23
+ };
24
+ }
25
+ if (!args.timeline) {
26
+ if (!defaultParser) {
27
+ const worker = createWorkerProxy(`${IModelApp.publicPath}scripts/parse-imdl-worker.js`);
28
+ defaultParser = {
29
+ parse: async (options) => worker.parse(options, [options.data.buffer]),
30
+ release: () => undefined,
31
+ };
32
+ }
33
+ return defaultParser;
34
+ }
35
+ let parser = parsersWithTimelines.get(args.timeline);
36
+ if (!parser)
37
+ parsersWithTimelines.set(args.timeline, parser = new ParserWithTimeline(args.timeline));
38
+ assert(parser.refCount >= 0);
39
+ ++parser.refCount;
40
+ return parser;
41
+ }
42
+ let defaultParser;
43
+ class ParserWithTimeline {
44
+ constructor(timeline) {
45
+ this.refCount = 0;
46
+ this._timeline = timeline;
47
+ this._worker = createWorkerProxy(`${IModelApp.publicPath}scripts/parse-imdl-worker.js`);
48
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
49
+ this._worker.setTimeline(timeline.toJSON());
50
+ }
51
+ async parse(options) {
52
+ return this._worker.parse(options, [options.data.buffer]);
53
+ }
54
+ release() {
55
+ assert(this.refCount > 0);
56
+ --this.refCount;
57
+ if (this.refCount === 0) {
58
+ parsersWithTimelines.delete(this._timeline);
59
+ this._worker.terminate();
60
+ }
61
+ }
62
+ }
63
+ const parsersWithTimelines = new Dictionary((lhs, rhs) => {
64
+ if (lhs instanceof RenderSchedule.ModelTimeline)
65
+ return rhs instanceof RenderSchedule.ModelTimeline ? lhs.compareTo(rhs) : -1;
66
+ return rhs instanceof RenderSchedule.Script ? lhs.compareTo(rhs) : 1;
67
+ });
68
+ //# sourceMappingURL=ImdlParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImdlParser.js","sourceRoot":"","sources":["../../../src/tile/ImdlParser.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAmD,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAEtH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzC,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,IAA2B;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,OAAO;YACL,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBAC1D,GAAG,OAAO;gBACV,QAAQ;aACT,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;SACzB,CAAC;KACH;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,aAAa,EAAE;YAClB,MAAM,MAAM,GAAG,iBAAiB,CAAkB,GAAG,SAAS,CAAC,UAAU,8BAA8B,CAAC,CAAC;YACzG,aAAa,GAAG;gBACd,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;aACzB,CAAC;SACH;QAED,OAAO,aAAa,CAAC;KACtB;IAED,IAAI,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM;QACT,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1F,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC7B,EAAE,MAAM,CAAC,QAAQ,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,IAAI,aAAqC,CAAC;AAE1C,MAAM,kBAAkB;IAKtB,YAAmB,QAAsB;QAJlC,aAAQ,GAAG,CAAC,CAAC;QAKlB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAkB,GAAG,SAAS,CAAC,UAAU,8BAA8B,CAAC,CAAC;QAEzG,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,OAA0B;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,OAAO;QACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC1B,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;YACvB,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;SAC1B;IACH,CAAC;CACF;AAED,MAAM,oBAAoB,GAAG,IAAI,UAAU,CAAmC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACzF,IAAI,GAAG,YAAY,cAAc,CAAC,aAAa;QAC7C,OAAO,GAAG,YAAY,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,GAAG,YAAY,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, Dictionary } from \"@itwin/core-bentley\";\r\nimport { RenderSchedule } from \"@itwin/core-common\";\r\nimport { createWorkerProxy, WorkerProxy } from \"../common/WorkerProxy\";\r\nimport { ImdlModel } from \"../common/imdl/ImdlModel\";\r\nimport { ImdlParseError, ImdlParserOptions, ImdlTimeline, parseImdlDocument } from \"../common/imdl/ParseImdlDocument\";\r\nimport { ParseImdlWorker } from \"../workers/ImdlParser/Worker\";\r\nimport { IModelApp } from \"../IModelApp\";\r\n\r\n/** An object that can parse binary iMdl content into an iMdl document on a worker thread.\r\n * Parsers are reference-counted. Their lifetimes are typically managed by an [[ImdlDecoder]].\r\n * The caller is responsible for invoking [[release]] to decrement the reference count when they are finished using the parsing.\r\n * @see [[acquireImdlDecoder]] to acquire a decoder that uses a parser internally.\r\n * @see [[acquireImdlParser]] to obtain a parser directly (but you probably don't need to do that).\r\n * @internal\r\n */\r\nexport interface ImdlParser {\r\n parse(options: ImdlParserOptions): Promise<ImdlModel.Document | ImdlParseError>;\r\n release(): void;\r\n}\r\n\r\n/** Arguments supplied to [[acquireImdlParser]].\r\n * @internal\r\n */\r\nexport interface AcquireImdlParserArgs {\r\n timeline?: ImdlTimeline;\r\n noWorker?: boolean;\r\n}\r\n\r\ntype ParserProxy = WorkerProxy<ParseImdlWorker>;\r\n\r\n/** @internal */\r\nexport function acquireImdlParser(args: AcquireImdlParserArgs): ImdlParser {\r\n const timeline = args.timeline;\r\n if (args.noWorker) {\r\n return {\r\n parse: async (options) => Promise.resolve(parseImdlDocument({\r\n ...options,\r\n timeline,\r\n })),\r\n release: () => undefined,\r\n };\r\n }\r\n\r\n if (!args.timeline) {\r\n if (!defaultParser) {\r\n const worker = createWorkerProxy<ParseImdlWorker>(`${IModelApp.publicPath}scripts/parse-imdl-worker.js`);\r\n defaultParser = {\r\n parse: async (options) => worker.parse(options, [options.data.buffer]),\r\n release: () => undefined,\r\n };\r\n }\r\n\r\n return defaultParser;\r\n }\r\n\r\n let parser = parsersWithTimelines.get(args.timeline);\r\n if (!parser)\r\n parsersWithTimelines.set(args.timeline, parser = new ParserWithTimeline(args.timeline));\r\n\r\n assert(parser.refCount >= 0);\r\n ++parser.refCount;\r\n return parser;\r\n}\r\n\r\nlet defaultParser: ImdlParser | undefined;\r\n\r\nclass ParserWithTimeline implements ImdlParser {\r\n public refCount = 0;\r\n private readonly _timeline: ImdlTimeline;\r\n private readonly _worker: ParserProxy;\r\n\r\n public constructor(timeline: ImdlTimeline) {\r\n this._timeline = timeline;\r\n this._worker = createWorkerProxy<ParseImdlWorker>(`${IModelApp.publicPath}scripts/parse-imdl-worker.js`);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._worker.setTimeline(timeline.toJSON());\r\n }\r\n\r\n public async parse(options: ImdlParserOptions) {\r\n return this._worker.parse(options, [options.data.buffer]);\r\n }\r\n\r\n public release(): void {\r\n assert(this.refCount > 0);\r\n --this.refCount;\r\n if (this.refCount === 0) {\r\n parsersWithTimelines.delete(this._timeline);\r\n this._worker.terminate();\r\n }\r\n }\r\n}\r\n\r\nconst parsersWithTimelines = new Dictionary<ImdlTimeline, ParserWithTimeline>((lhs, rhs) => {\r\n if (lhs instanceof RenderSchedule.ModelTimeline)\r\n return rhs instanceof RenderSchedule.ModelTimeline ? lhs.compareTo(rhs) : -1;\r\n\r\n return rhs instanceof RenderSchedule.Script ? lhs.compareTo(rhs) : 1;\r\n});\r\n"]}
@@ -7,7 +7,8 @@ import { IModelConnection } from "../IModelConnection";
7
7
  import { RenderGraphic } from "../render/RenderGraphic";
8
8
  import { BatchOptions } from "../render/GraphicBuilder";
9
9
  import { RenderSystem } from "../render/RenderSystem";
10
- import { ImdlTimeline } from "../imdl/ImdlParser";
10
+ import { ImdlModel } from "../common/imdl/ImdlModel";
11
+ import { ImdlParseError, ImdlParserOptions, ImdlTimeline } from "../common/imdl/ParseImdlDocument";
11
12
  import { IModelTileContent } from "./internal";
12
13
  /** @internal */
13
14
  export interface ImdlReaderResult extends IModelTileContent {
@@ -44,6 +45,10 @@ export interface ImdlReaderCreateArgs {
44
45
  timeline?: ImdlTimeline;
45
46
  }
46
47
  /** @internal */
48
+ export declare function readImdlContent(args: ImdlReaderCreateArgs & {
49
+ parseDocument?: (parseOpts: ImdlParserOptions) => Promise<ImdlModel.Document | ImdlParseError>;
50
+ }): Promise<ImdlReaderResult>;
51
+ /** @internal */
47
52
  export interface ImdlReader {
48
53
  read: () => Promise<ImdlReaderResult>;
49
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,SAAS,EAA+C,cAAc,EACvE,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAuB,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAI/C,gBAAgB;AAChB,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAS7L;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kGAAkG;IAClG,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAiED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACvC;AAED,gBAAgB;AAChB,yBAAiB,UAAU,CAAC;IAC1B,SAAgB,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAI7D;CACF"}
1
+ {"version":3,"file":"ImdlReader.d.ts","sourceRoot":"","sources":["../../../src/tile/ImdlReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACL,SAAS,EAA+C,cAAc,EACvE,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAuB,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAqB,MAAM,kCAAkC,CAAC;AAC3I,OAAO,EAAsB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAInE,gBAAgB;AAChB,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAS7L;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,kGAAkG;IAClG,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,gBAAgB;AAChB,wBAAsB,eAAe,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAAE,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAA;CAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgEhM;AAED,gBAAgB;AAChB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACvC;AAED,gBAAgB;AAChB,yBAAiB,UAAU,CAAC;IAC1B,SAAgB,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CAI7D;CACF"}
@@ -10,8 +10,8 @@ import { Point3d, Transform } from "@itwin/core-geometry";
10
10
  import { BatchType, decodeTileContentDescription, TileReadError, TileReadStatus, } from "@itwin/core-common";
11
11
  import { IModelApp } from "../IModelApp";
12
12
  import { GraphicBranch } from "../render/GraphicBranch";
13
- import { convertFeatureTable, parseImdlDocument } from "../imdl/ImdlParser";
14
- import { decodeImdlGraphics } from "../imdl/ImdlGraphicsCreator";
13
+ import { convertFeatureTable, parseImdlDocument } from "../common/imdl/ParseImdlDocument";
14
+ import { decodeImdlGraphics } from "./internal";
15
15
  /** Convert the byte array returned by [[TileAdmin.requestElementGraphics]] into a [[RenderGraphic]].
16
16
  * @param bytes The binary graphics data obtained from `requestElementGraphics`.
17
17
  * @param iModel The iModel with which the graphics are associated.
@@ -30,7 +30,9 @@ export async function readElementGraphics(bytes, iModel, modelId, is3d, options)
30
30
  const result = await reader.read();
31
31
  return result.graphic;
32
32
  }
33
- async function readImdlContent(args) {
33
+ /** @internal */
34
+ export async function readImdlContent(args) {
35
+ const isCanceled = args.isCanceled ?? (() => false);
34
36
  let content;
35
37
  try {
36
38
  content = decodeTileContentDescription({
@@ -49,16 +51,18 @@ async function readImdlContent(args) {
49
51
  throw e;
50
52
  }
51
53
  args.stream.reset();
52
- const document = parseImdlDocument({
53
- stream: args.stream,
54
+ const parseOpts = {
55
+ data: args.stream.readBytes(0, args.stream.length),
54
56
  batchModelId: args.modelId,
55
57
  is3d: args.is3d,
56
58
  maxVertexTableSize: IModelApp.renderSystem.maxTextureSize,
57
59
  omitEdges: false === args.loadEdges,
58
- timeline: args.timeline,
59
60
  createUntransformedRootNode: args.containsTransformNodes,
60
- });
61
- if (typeof document === "number")
61
+ };
62
+ const document = args.parseDocument ? (await args.parseDocument(parseOpts)) : parseImdlDocument({ ...parseOpts, timeline: args.timeline });
63
+ if (isCanceled())
64
+ return { isLeaf: true, readStatus: TileReadStatus.Canceled };
65
+ else if (typeof document === "number")
62
66
  return { isLeaf: true, readStatus: document };
63
67
  let graphic = await decodeImdlGraphics({
64
68
  system: args.system,
@@ -66,7 +70,7 @@ async function readImdlContent(args) {
66
70
  document,
67
71
  isCanceled: args.isCanceled,
68
72
  });
69
- if (args.isCanceled && args.isCanceled())
73
+ if (isCanceled())
70
74
  return { isLeaf: true, readStatus: TileReadStatus.Canceled };
71
75
  if (graphic && false !== args.options) {
72
76
  const featureTable = convertFeatureTable(document.featureTable, args.modelId);
@@ -1 +1 @@
1
- {"version":3,"file":"ImdlReader.js","sourceRoot":"","sources":["../../../src/tile/ImdlReader.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 { ByteStream, Id64String } from \"@itwin/core-bentley\";\r\nimport { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, decodeTileContentDescription, TileReadError, TileReadStatus,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { BatchOptions } from \"../render/GraphicBuilder\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { convertFeatureTable, ImdlTimeline, parseImdlDocument } from \"../imdl/ImdlParser\";\r\nimport { decodeImdlGraphics } from \"../imdl/ImdlGraphicsCreator\";\r\nimport { IModelTileContent } from \"./internal\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** @internal */\r\nexport interface ImdlReaderResult extends IModelTileContent {\r\n readStatus: TileReadStatus;\r\n}\r\n\r\n/** Convert the byte array returned by [[TileAdmin.requestElementGraphics]] into a [[RenderGraphic]].\r\n * @param bytes The binary graphics data obtained from `requestElementGraphics`.\r\n * @param iModel The iModel with which the graphics are associated.\r\n * @param modelId The Id of the [[GeometricModelState]] with which the graphics are associated. Can be an invalid Id.\r\n * @param is3d True if the graphics are 3d.\r\n * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch.\r\n * @public\r\n * @extensions\r\n */\r\nexport async function readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: Id64String, is3d: boolean, options?: BatchOptions | false): Promise<RenderGraphic | undefined> {\r\n const stream = ByteStream.fromUint8Array(bytes);\r\n const reader = ImdlReader.create({\r\n stream, iModel, modelId, is3d, options,\r\n system: IModelApp.renderSystem,\r\n });\r\n\r\n const result = await reader.read();\r\n return result.graphic;\r\n}\r\n\r\n/** Arguments supplied to [[ImdlReader.create]]\r\n * @internal\r\n */\r\nexport interface ImdlReaderCreateArgs {\r\n stream: ByteStream;\r\n iModel: IModelConnection;\r\n modelId: Id64String;\r\n is3d: boolean;\r\n /** If undefined, the tile's leafness will be deduced by decodeTileContentDescription. */\r\n isLeaf?: boolean;\r\n system: RenderSystem;\r\n type?: BatchType; // default Primary\r\n loadEdges?: boolean; // default true\r\n isCanceled?: () => boolean;\r\n sizeMultiplier?: number;\r\n options?: BatchOptions | false;\r\n containsTransformNodes?: boolean; // default false\r\n /** Supplied if the graphics in the tile are to be split up based on the nodes in the timeline. */\r\n timeline?: ImdlTimeline;\r\n}\r\n\r\nasync function readImdlContent(args: ImdlReaderCreateArgs): Promise<ImdlReaderResult> {\r\n let content;\r\n try {\r\n content = decodeTileContentDescription({\r\n stream: args.stream,\r\n sizeMultiplier: args.sizeMultiplier,\r\n is2d: !args.is3d,\r\n options: IModelApp.tileAdmin,\r\n isVolumeClassifier: BatchType.VolumeClassifier === args.type,\r\n isLeaf: args.isLeaf,\r\n });\r\n } catch (e) {\r\n if (e instanceof TileReadError)\r\n return { isLeaf: true, readStatus: e.errorNumber };\r\n else\r\n throw e;\r\n }\r\n\r\n args.stream.reset();\r\n const document = parseImdlDocument({\r\n stream: args.stream,\r\n batchModelId: args.modelId,\r\n is3d: args.is3d,\r\n maxVertexTableSize: IModelApp.renderSystem.maxTextureSize,\r\n omitEdges: false === args.loadEdges,\r\n timeline: args.timeline,\r\n createUntransformedRootNode: args.containsTransformNodes,\r\n });\r\n\r\n if (typeof document === \"number\")\r\n return { isLeaf: true, readStatus: document };\r\n\r\n let graphic = await decodeImdlGraphics({\r\n system: args.system,\r\n iModel: args.iModel,\r\n document,\r\n isCanceled: args.isCanceled,\r\n });\r\n\r\n if (args.isCanceled && args.isCanceled())\r\n return { isLeaf: true, readStatus: TileReadStatus.Canceled };\r\n\r\n if (graphic && false !== args.options) {\r\n const featureTable = convertFeatureTable(document.featureTable, args.modelId);\r\n graphic = args.system.createBatch(graphic, featureTable, content.contentRange, args.options);\r\n }\r\n\r\n if (graphic && document.rtcCenter) {\r\n const rtcBranch = new GraphicBranch(true);\r\n rtcBranch.add(graphic);\r\n graphic = args.system.createBranch(rtcBranch, Transform.createTranslation(Point3d.fromJSON(document.rtcCenter)));\r\n }\r\n\r\n return {\r\n readStatus: TileReadStatus.Success,\r\n isLeaf: content.isLeaf,\r\n sizeMultiplier: content.sizeMultiplier,\r\n contentRange: content.contentRange.isNull ? undefined : content.contentRange,\r\n graphic,\r\n emptySubRangeMask: content.emptySubRangeMask,\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface ImdlReader {\r\n read: () => Promise<ImdlReaderResult>;\r\n}\r\n\r\n/** @internal */\r\nexport namespace ImdlReader {\r\n export function create(args: ImdlReaderCreateArgs): ImdlReader {\r\n return {\r\n read: async () => readImdlContent(args),\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ImdlReader.js","sourceRoot":"","sources":["../../../src/tile/ImdlReader.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 { ByteStream, Id64String } from \"@itwin/core-bentley\";\r\nimport { Point3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n BatchType, decodeTileContentDescription, TileReadError, TileReadStatus,\r\n} from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { BatchOptions } from \"../render/GraphicBuilder\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { ImdlModel } from \"../common/imdl/ImdlModel\";\r\nimport { convertFeatureTable, ImdlParseError, ImdlParserOptions, ImdlTimeline, parseImdlDocument } from \"../common/imdl/ParseImdlDocument\";\r\nimport { decodeImdlGraphics, IModelTileContent } from \"./internal\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** @internal */\r\nexport interface ImdlReaderResult extends IModelTileContent {\r\n readStatus: TileReadStatus;\r\n}\r\n\r\n/** Convert the byte array returned by [[TileAdmin.requestElementGraphics]] into a [[RenderGraphic]].\r\n * @param bytes The binary graphics data obtained from `requestElementGraphics`.\r\n * @param iModel The iModel with which the graphics are associated.\r\n * @param modelId The Id of the [[GeometricModelState]] with which the graphics are associated. Can be an invalid Id.\r\n * @param is3d True if the graphics are 3d.\r\n * @param options Options customizing how [Feature]($common)s within the graphic can be resymbolized; or false if you don't want to produce a batch.\r\n * @public\r\n * @extensions\r\n */\r\nexport async function readElementGraphics(bytes: Uint8Array, iModel: IModelConnection, modelId: Id64String, is3d: boolean, options?: BatchOptions | false): Promise<RenderGraphic | undefined> {\r\n const stream = ByteStream.fromUint8Array(bytes);\r\n const reader = ImdlReader.create({\r\n stream, iModel, modelId, is3d, options,\r\n system: IModelApp.renderSystem,\r\n });\r\n\r\n const result = await reader.read();\r\n return result.graphic;\r\n}\r\n\r\n/** Arguments supplied to [[ImdlReader.create]]\r\n * @internal\r\n */\r\nexport interface ImdlReaderCreateArgs {\r\n stream: ByteStream;\r\n iModel: IModelConnection;\r\n modelId: Id64String;\r\n is3d: boolean;\r\n /** If undefined, the tile's leafness will be deduced by decodeTileContentDescription. */\r\n isLeaf?: boolean;\r\n system: RenderSystem;\r\n type?: BatchType; // default Primary\r\n loadEdges?: boolean; // default true\r\n isCanceled?: () => boolean;\r\n sizeMultiplier?: number;\r\n options?: BatchOptions | false;\r\n containsTransformNodes?: boolean; // default false\r\n /** Supplied if the graphics in the tile are to be split up based on the nodes in the timeline. */\r\n timeline?: ImdlTimeline;\r\n}\r\n\r\n/** @internal */\r\nexport async function readImdlContent(args: ImdlReaderCreateArgs & { parseDocument?: (parseOpts: ImdlParserOptions) => Promise<ImdlModel.Document | ImdlParseError> }): Promise<ImdlReaderResult> {\r\n const isCanceled = args.isCanceled ?? (() => false);\r\n let content;\r\n try {\r\n content = decodeTileContentDescription({\r\n stream: args.stream,\r\n sizeMultiplier: args.sizeMultiplier,\r\n is2d: !args.is3d,\r\n options: IModelApp.tileAdmin,\r\n isVolumeClassifier: BatchType.VolumeClassifier === args.type,\r\n isLeaf: args.isLeaf,\r\n });\r\n } catch (e) {\r\n if (e instanceof TileReadError)\r\n return { isLeaf: true, readStatus: e.errorNumber };\r\n else\r\n throw e;\r\n }\r\n\r\n args.stream.reset();\r\n const parseOpts: ImdlParserOptions = {\r\n data: args.stream.readBytes(0, args.stream.length),\r\n batchModelId: args.modelId,\r\n is3d: args.is3d,\r\n maxVertexTableSize: IModelApp.renderSystem.maxTextureSize,\r\n omitEdges: false === args.loadEdges,\r\n createUntransformedRootNode: args.containsTransformNodes,\r\n };\r\n\r\n const document = args.parseDocument ? (await args.parseDocument(parseOpts)) : parseImdlDocument({ ...parseOpts, timeline: args.timeline });\r\n if (isCanceled())\r\n return { isLeaf: true, readStatus: TileReadStatus.Canceled };\r\n else if (typeof document === \"number\")\r\n return { isLeaf: true, readStatus: document };\r\n\r\n let graphic = await decodeImdlGraphics({\r\n system: args.system,\r\n iModel: args.iModel,\r\n document,\r\n isCanceled: args.isCanceled,\r\n });\r\n\r\n if (isCanceled())\r\n return { isLeaf: true, readStatus: TileReadStatus.Canceled };\r\n\r\n if (graphic && false !== args.options) {\r\n const featureTable = convertFeatureTable(document.featureTable, args.modelId);\r\n graphic = args.system.createBatch(graphic, featureTable, content.contentRange, args.options);\r\n }\r\n\r\n if (graphic && document.rtcCenter) {\r\n const rtcBranch = new GraphicBranch(true);\r\n rtcBranch.add(graphic);\r\n graphic = args.system.createBranch(rtcBranch, Transform.createTranslation(Point3d.fromJSON(document.rtcCenter)));\r\n }\r\n\r\n return {\r\n readStatus: TileReadStatus.Success,\r\n isLeaf: content.isLeaf,\r\n sizeMultiplier: content.sizeMultiplier,\r\n contentRange: content.contentRange.isNull ? undefined : content.contentRange,\r\n graphic,\r\n emptySubRangeMask: content.emptySubRangeMask,\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface ImdlReader {\r\n read: () => Promise<ImdlReaderResult>;\r\n}\r\n\r\n/** @internal */\r\nexport namespace ImdlReader {\r\n export function create(args: ImdlReaderCreateArgs): ImdlReader {\r\n return {\r\n read: async () => readImdlContent(args),\r\n };\r\n }\r\n}\r\n"]}
@@ -5,7 +5,7 @@
5
5
  import { Cartographic, EcefLocation } from "@itwin/core-common";
6
6
  import { Range3d } from "@itwin/core-geometry";
7
7
  import { CRSManager, Downloader, DownloaderXhr, OnlineEngine, OPCReader, OrbitGtBounds, PageCachedFile, UrlFS } from "@itwin/core-orbitgt";
8
- import { FrontendLoggerCategory } from "../FrontendLoggerCategory";
8
+ import { FrontendLoggerCategory } from "../common/FrontendLoggerCategory";
9
9
  import { BentleyError, Logger, RealityDataStatus } from "@itwin/core-bentley";
10
10
  import { RealityDataError } from "../RealityDataSource";
11
11
  const loggerCategory = FrontendLoggerCategory.RealityData;
@@ -1 +1 @@
1
- {"version":3,"file":"OPCFormatInterpreter.js","sourceRoot":"","sources":["../../../src/tile/OPCFormatInterpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Cartographic, EcefLocation } from \"@itwin/core-common\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { ALong, CRSManager, Downloader, DownloaderXhr, OnlineEngine, OPCReader, OrbitGtBounds, PageCachedFile, PointCloudReader, UrlFS } from \"@itwin/core-orbitgt\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport { BentleyError, Logger, LoggingMetaData, RealityDataStatus } from \"@itwin/core-bentley\";\r\nimport { RealityDataError, SpatialLocationAndExtents } from \"../RealityDataSource\";\r\n\r\nconst loggerCategory: string = FrontendLoggerCategory.RealityData;\r\n\r\n/**\r\n * This class provide methods used to interpret Orbit Point Cloud (OPC) format\r\n * @internal\r\n */\r\nexport class OPCFormatInterpreter {\r\n /** Gets an OPC file reader from a blobFileUrl\r\n * @param blobFileURL the name of the file.\r\n * @returns return a file reader open to read provided blob file\r\n * @internal\r\n */\r\n public static async getFileReaderFromBlobFileURL(blobFileURL: string): Promise<PointCloudReader> {\r\n if (Downloader.INSTANCE == null)\r\n Downloader.INSTANCE = new DownloaderXhr();\r\n if (CRSManager.ENGINE == null)\r\n CRSManager.ENGINE = await OnlineEngine.create();\r\n\r\n // let blobFileURL: string = rdUrl;\r\n // if (accountName.length > 0) blobFileURL = UrlFS.getAzureBlobSasUrl(opcConfig.accountName, opcConfig.containerName, opcConfig.blobFileName, opcConfig.sasToken);\r\n const urlFS: UrlFS = new UrlFS();\r\n // wrap a caching layer (16 MB) around the blob file\r\n const blobFileSize: ALong = await urlFS.getFileLength(blobFileURL);\r\n Logger.logTrace(loggerCategory, `OPC File Size is ${blobFileSize}`);\r\n const blobFile: PageCachedFile = new PageCachedFile(urlFS, blobFileURL, blobFileSize, 128 * 1024 /* pageSize */, 128 /* maxPageCount */);\r\n const fileReader: PointCloudReader = await OPCReader.openFile(blobFile, blobFileURL, true/* lazyLoading */);\r\n return fileReader;\r\n }\r\n\r\n /** Gets reality data spatial location and extents\r\n * @param fileReader a file reader instance obtains from call to getFileReaderFromBlobFileURL\r\n * @returns spatial location and volume of interest, in meters, centered around `spatial location`\r\n * @throws [[RealityDataError]] if source is invalid or cannot be read\r\n * @internal\r\n */\r\n public static async getSpatialLocationAndExtents(fileReader: PointCloudReader): Promise<SpatialLocationAndExtents> {\r\n let worldRange = new Range3d();\r\n let location: Cartographic | EcefLocation;\r\n let isGeolocated = true;\r\n\r\n const bounds = fileReader.getFileBounds();\r\n worldRange = Range3d.createXYZXYZ(bounds.getMinX(), bounds.getMinY(), bounds.getMinZ(), bounds.getMaxX(), bounds.getMaxY(), bounds.getMaxZ());\r\n isGeolocated = false;\r\n const fileCrs = fileReader.getFileCRS();\r\n if (fileCrs) {\r\n try {\r\n await CRSManager.ENGINE.prepareForArea(fileCrs, bounds);\r\n const wgs84ECEFCrs = \"4978\";\r\n await CRSManager.ENGINE.prepareForArea(wgs84ECEFCrs, new OrbitGtBounds());\r\n\r\n const ecefBounds = CRSManager.transformBounds(bounds, fileCrs, wgs84ECEFCrs);\r\n const ecefRange = Range3d.createXYZXYZ(ecefBounds.getMinX(), ecefBounds.getMinY(), ecefBounds.getMinZ(), ecefBounds.getMaxX(), ecefBounds.getMaxY(), ecefBounds.getMaxZ());\r\n const ecefCenter = ecefRange.localXYZToWorld(.5, .5, .5)!;\r\n const cartoCenter = Cartographic.fromEcef(ecefCenter)!;\r\n cartoCenter.height = 0;\r\n const ecefLocation = EcefLocation.createFromCartographicOrigin(cartoCenter);\r\n location = ecefLocation;\r\n // this.iModelDb.setEcefLocation(ecefLocation);\r\n const ecefToWorld = ecefLocation.getTransform().inverse()!;\r\n worldRange = ecefToWorld.multiplyRange(ecefRange);\r\n isGeolocated = true;\r\n } catch (e) {\r\n Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - cannot interpret point cloud`);\r\n const errorProps = BentleyError.getErrorProps(e);\r\n const getMetaData: LoggingMetaData = () => {\r\n return { errorProps };\r\n };\r\n const error = new RealityDataError(RealityDataStatus.InvalidData, \"Invalid or unknown data\", getMetaData);\r\n throw error;\r\n }\r\n } else {\r\n // NoGCS case\r\n isGeolocated = false;\r\n const centerOfEarth = new EcefLocation({ origin: { x: 0.0, y: 0.0, z: 0.0 }, orientation: { yaw: 0.0, pitch: 0.0, roll: 0.0 } });\r\n location = centerOfEarth;\r\n Logger.logTrace(loggerCategory, \"OPC RealityData NOT Geolocated\", () => ({ ...location }));\r\n }\r\n const spatialLocation: SpatialLocationAndExtents = { location, worldRange, isGeolocated };\r\n return spatialLocation;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"OPCFormatInterpreter.js","sourceRoot":"","sources":["../../../src/tile/OPCFormatInterpreter.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { Cartographic, EcefLocation } from \"@itwin/core-common\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { ALong, CRSManager, Downloader, DownloaderXhr, OnlineEngine, OPCReader, OrbitGtBounds, PageCachedFile, PointCloudReader, UrlFS } from \"@itwin/core-orbitgt\";\r\nimport { FrontendLoggerCategory } from \"../common/FrontendLoggerCategory\";\r\nimport { BentleyError, Logger, LoggingMetaData, RealityDataStatus } from \"@itwin/core-bentley\";\r\nimport { RealityDataError, SpatialLocationAndExtents } from \"../RealityDataSource\";\r\n\r\nconst loggerCategory: string = FrontendLoggerCategory.RealityData;\r\n\r\n/**\r\n * This class provide methods used to interpret Orbit Point Cloud (OPC) format\r\n * @internal\r\n */\r\nexport class OPCFormatInterpreter {\r\n /** Gets an OPC file reader from a blobFileUrl\r\n * @param blobFileURL the name of the file.\r\n * @returns return a file reader open to read provided blob file\r\n * @internal\r\n */\r\n public static async getFileReaderFromBlobFileURL(blobFileURL: string): Promise<PointCloudReader> {\r\n if (Downloader.INSTANCE == null)\r\n Downloader.INSTANCE = new DownloaderXhr();\r\n if (CRSManager.ENGINE == null)\r\n CRSManager.ENGINE = await OnlineEngine.create();\r\n\r\n // let blobFileURL: string = rdUrl;\r\n // if (accountName.length > 0) blobFileURL = UrlFS.getAzureBlobSasUrl(opcConfig.accountName, opcConfig.containerName, opcConfig.blobFileName, opcConfig.sasToken);\r\n const urlFS: UrlFS = new UrlFS();\r\n // wrap a caching layer (16 MB) around the blob file\r\n const blobFileSize: ALong = await urlFS.getFileLength(blobFileURL);\r\n Logger.logTrace(loggerCategory, `OPC File Size is ${blobFileSize}`);\r\n const blobFile: PageCachedFile = new PageCachedFile(urlFS, blobFileURL, blobFileSize, 128 * 1024 /* pageSize */, 128 /* maxPageCount */);\r\n const fileReader: PointCloudReader = await OPCReader.openFile(blobFile, blobFileURL, true/* lazyLoading */);\r\n return fileReader;\r\n }\r\n\r\n /** Gets reality data spatial location and extents\r\n * @param fileReader a file reader instance obtains from call to getFileReaderFromBlobFileURL\r\n * @returns spatial location and volume of interest, in meters, centered around `spatial location`\r\n * @throws [[RealityDataError]] if source is invalid or cannot be read\r\n * @internal\r\n */\r\n public static async getSpatialLocationAndExtents(fileReader: PointCloudReader): Promise<SpatialLocationAndExtents> {\r\n let worldRange = new Range3d();\r\n let location: Cartographic | EcefLocation;\r\n let isGeolocated = true;\r\n\r\n const bounds = fileReader.getFileBounds();\r\n worldRange = Range3d.createXYZXYZ(bounds.getMinX(), bounds.getMinY(), bounds.getMinZ(), bounds.getMaxX(), bounds.getMaxY(), bounds.getMaxZ());\r\n isGeolocated = false;\r\n const fileCrs = fileReader.getFileCRS();\r\n if (fileCrs) {\r\n try {\r\n await CRSManager.ENGINE.prepareForArea(fileCrs, bounds);\r\n const wgs84ECEFCrs = \"4978\";\r\n await CRSManager.ENGINE.prepareForArea(wgs84ECEFCrs, new OrbitGtBounds());\r\n\r\n const ecefBounds = CRSManager.transformBounds(bounds, fileCrs, wgs84ECEFCrs);\r\n const ecefRange = Range3d.createXYZXYZ(ecefBounds.getMinX(), ecefBounds.getMinY(), ecefBounds.getMinZ(), ecefBounds.getMaxX(), ecefBounds.getMaxY(), ecefBounds.getMaxZ());\r\n const ecefCenter = ecefRange.localXYZToWorld(.5, .5, .5)!;\r\n const cartoCenter = Cartographic.fromEcef(ecefCenter)!;\r\n cartoCenter.height = 0;\r\n const ecefLocation = EcefLocation.createFromCartographicOrigin(cartoCenter);\r\n location = ecefLocation;\r\n // this.iModelDb.setEcefLocation(ecefLocation);\r\n const ecefToWorld = ecefLocation.getTransform().inverse()!;\r\n worldRange = ecefToWorld.multiplyRange(ecefRange);\r\n isGeolocated = true;\r\n } catch (e) {\r\n Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - cannot interpret point cloud`);\r\n const errorProps = BentleyError.getErrorProps(e);\r\n const getMetaData: LoggingMetaData = () => {\r\n return { errorProps };\r\n };\r\n const error = new RealityDataError(RealityDataStatus.InvalidData, \"Invalid or unknown data\", getMetaData);\r\n throw error;\r\n }\r\n } else {\r\n // NoGCS case\r\n isGeolocated = false;\r\n const centerOfEarth = new EcefLocation({ origin: { x: 0.0, y: 0.0, z: 0.0 }, orientation: { yaw: 0.0, pitch: 0.0, roll: 0.0 } });\r\n location = centerOfEarth;\r\n Logger.logTrace(loggerCategory, \"OPC RealityData NOT Geolocated\", () => ({ ...location }));\r\n }\r\n const spatialLocation: SpatialLocationAndExtents = { location, worldRange, isGeolocated };\r\n return spatialLocation;\r\n }\r\n}\r\n\r\n"]}
@@ -8,7 +8,7 @@
8
8
  import { Logger, utf8ToString } from "@itwin/core-bentley";
9
9
  import { Point3d, Range3d } from "@itwin/core-geometry";
10
10
  import { BatchType, Feature, FeatureTable, PackedFeatureTable, PntsHeader, QParams3d, QPoint3d, Quantization } from "@itwin/core-common";
11
- import { FrontendLoggerCategory } from "../FrontendLoggerCategory";
11
+ import { FrontendLoggerCategory } from "../common/FrontendLoggerCategory";
12
12
  import { Mesh } from "../render/primitives/mesh/MeshPrimitives";
13
13
  function readPntsColors(stream, dataOffset, pnts) {
14
14
  const nPts = pnts.POINTS_LENGTH;
@@ -1 +1 @@
1
- {"version":3,"file":"PntsReader.js","sourceRoot":"","sources":["../../../src/tile/PntsReader.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 { ByteStream, Id64String, Logger, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, Feature, FeatureTable, PackedFeatureTable, PntsHeader, QParams3d, QPoint3d, Quantization } from \"@itwin/core-common\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { RealityTile } from \"./internal\";\r\n\r\n/** Schema for the [3DTILES_draco_point_compression](https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_draco_point_compression) extension. */\r\ninterface DracoPointCloud {\r\n byteLength: number;\r\n byteOffset: number;\r\n /** Each specifies the Id of a compressed attribute. */\r\n properties: {\r\n POSITION?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGBA?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n NORMAL?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_ID?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n /** This is not in the spec but is present in sample data in Cesium's git repository. */\r\n COLOR_0?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n };\r\n}\r\n\r\ninterface PointCloudProps {\r\n params: QParams3d;\r\n points: Uint16Array | Float32Array;\r\n colors?: Uint8Array;\r\n}\r\n\r\ninterface BinaryBodyReference {\r\n byteOffset: number;\r\n}\r\n\r\n/** [3D tiles specification section 10.3](https://docs.opengeospatial.org/cs/18-053r2/18-053r2.html#199).\r\n * [JSON schema](https://github.com/CesiumGS/3d-tiles/blob/main/specification/schema/pnts.featureTable.schema.json).\r\n */\r\ninterface CommonPntsProps {\r\n POINTS_LENGTH: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RTC_CENTER?: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n CONSTANT_RGBA?: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGBA?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB565?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n extensions?: {\r\n \"3DTILES_draco_point_compression\"?: DracoPointCloud; // eslint-disable-line @typescript-eslint/naming-convention\r\n };\r\n\r\n // The following are currently ignored.\r\n NORMAL?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n NORMAL_OCT16P?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_ID?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_LENGTH?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n}\r\n\r\ntype QuantizedPntsProps = CommonPntsProps & {\r\n POSITION_QUANTIZED: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_OFFSET: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_SCALE: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n POSITION?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n};\r\n\r\ntype UnquantizedPntsProps = CommonPntsProps & {\r\n POSITION: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n POSITION_QUANTIZED?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_OFFSET?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_SCALE?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n};\r\n\r\ntype PntsProps = QuantizedPntsProps | UnquantizedPntsProps;\r\n\r\nfunction readPntsColors(stream: ByteStream, dataOffset: number, pnts: PntsProps): Uint8Array | undefined {\r\n const nPts = pnts.POINTS_LENGTH;\r\n const nComponents = 3 * nPts;\r\n if (pnts.RGB)\r\n return new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGB.byteOffset, nComponents);\r\n\r\n if (pnts.RGBA) {\r\n // ###TODO support point cloud transparency.\r\n const rgb = new Uint8Array(nComponents);\r\n const rgba = new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGBA.byteOffset, nComponents);\r\n for (let i = 0; i < nComponents; i += 4) {\r\n rgb[i + 0] = rgba[i + 0];\r\n rgb[i + 1] = rgba[i + 1];\r\n rgb[i + 2] = rgba[i + 2];\r\n }\r\n\r\n return rgb;\r\n } else if (pnts.RGB565) {\r\n // Each color is 16 bits: 5 red, 6 green, 5 blue.\r\n const crgb = new Uint16Array(stream.arrayBuffer, dataOffset + pnts.RGB565.byteOffset, nPts);\r\n const rgb = new Uint8Array(nComponents);\r\n for (let i = 0; i < nPts; i++) {\r\n const c = crgb[i];\r\n rgb[i + 0] = (c >> 11) & 0x1f;\r\n rgb[i + 1] = (c >> 5) & 0x3f;\r\n rgb[i + 2] = c & 0x1f;\r\n }\r\n\r\n return rgb;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction readPnts(stream: ByteStream, dataOffset: number, pnts: PntsProps): PointCloudProps | undefined {\r\n const nPts = pnts.POINTS_LENGTH;\r\n let params: QParams3d;\r\n let points: Uint16Array | Float32Array;\r\n\r\n if (pnts.POSITION_QUANTIZED) {\r\n const qpos = pnts.POSITION_QUANTIZED;\r\n const offset = pnts.QUANTIZED_VOLUME_OFFSET;\r\n const scale = pnts.QUANTIZED_VOLUME_SCALE;\r\n\r\n const qOrigin = new Point3d(offset[0], offset[1], offset[2]);\r\n const qScale = new Point3d(Quantization.computeScale(scale[0]), Quantization.computeScale(scale[1]), Quantization.computeScale(scale[2]));\r\n\r\n params = QParams3d.fromOriginAndScale(qOrigin, qScale);\r\n points = new Uint16Array(stream.arrayBuffer, dataOffset + qpos.byteOffset, 3 * nPts);\r\n } else {\r\n const qOrigin = new Point3d(0, 0, 0);\r\n const qScale = new Point3d(1, 1, 1);\r\n params = QParams3d.fromOriginAndScale(qOrigin, qScale);\r\n points = new Float32Array(stream.arrayBuffer, dataOffset + pnts.POSITION.byteOffset, 3 * nPts);\r\n }\r\n\r\n const colors = readPntsColors(stream, dataOffset, pnts);\r\n return { params, points, colors };\r\n}\r\n\r\nasync function decodeDracoPointCloud(buf: Uint8Array): Promise<PointCloudProps | undefined> {\r\n try {\r\n const dracoLoader = (await import(\"@loaders.gl/draco\")).DracoLoader;\r\n const mesh = await dracoLoader.parse(buf, {});\r\n if (mesh.topology !== \"point-list\")\r\n return undefined;\r\n\r\n const pos = mesh.attributes.POSITION?.value;\r\n if (!pos || (pos.length % 3) !== 0)\r\n return undefined;\r\n\r\n let colors = mesh.attributes.RGB?.value ?? mesh.attributes.COLOR_0?.value;\r\n if (!colors) {\r\n // ###TODO support point cloud transparency.\r\n const rgba = mesh.attributes.RGBA?.value;\r\n if (rgba && (rgba.length % 4) === 0) {\r\n // We currently don't support alpha channel for point clouds - strip it.\r\n colors = new Uint8Array(3 * rgba.length / 4);\r\n let j = 0;\r\n for (let i = 0; i < rgba.length; i += 4) {\r\n colors[j++] = rgba[i];\r\n colors[j++] = rgba[i + 1];\r\n colors[j++] = rgba[i + 2];\r\n }\r\n }\r\n }\r\n\r\n let posRange: Range3d;\r\n const bbox = mesh.header?.boundingBox;\r\n if (bbox) {\r\n posRange = Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);\r\n } else {\r\n posRange = Range3d.createNull();\r\n for (let i = 0; i < pos.length; i += 3)\r\n posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);\r\n }\r\n\r\n const params = QParams3d.fromRange(posRange);\r\n const pt = Point3d.createZero();\r\n const qpt = QPoint3d.create(pt, params);\r\n const points = new Uint16Array(pos.length);\r\n for (let i = 0; i < pos.length; i += 3) {\r\n pt.set(pos[i], pos[i + 1], pos[i + 2]);\r\n qpt.init(pt, params);\r\n points[i] = qpt.x;\r\n points[i + 1] = qpt.y;\r\n points[i + 2] = qpt.z;\r\n }\r\n\r\n return { points, params, colors: colors instanceof Uint8Array ? colors : undefined };\r\n } catch (err) {\r\n Logger.logWarning(FrontendLoggerCategory.Render, \"Failed to decode draco-encoded point cloud\");\r\n Logger.logException(FrontendLoggerCategory.Render, err);\r\n return undefined;\r\n }\r\n}\r\n\r\n/** Deserialize a point cloud tile and return it as a RenderGraphic.\r\n * @internal\r\n */\r\nexport async function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, tile: RealityTile, system: RenderSystem): Promise<{ graphic: RenderGraphic | undefined, rtcCenter: Point3d | undefined }> {\r\n let graphic;\r\n let rtcCenter;\r\n const header = new PntsHeader(stream);\r\n if (!header.isValid)\r\n return { graphic, rtcCenter };\r\n\r\n const range = tile.contentRange;\r\n const featureTableJsonOffset = stream.curPos;\r\n const featureStrData = stream.nextBytes(header.featureTableJsonLength);\r\n const featureStr = utf8ToString(featureStrData);\r\n const featureValue = JSON.parse(featureStr as string) as PntsProps;\r\n\r\n if (undefined === featureValue)\r\n return { graphic, rtcCenter };\r\n\r\n let props: PointCloudProps | undefined;\r\n const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;\r\n const draco = featureValue.extensions ? featureValue.extensions[\"3DTILES_draco_point_compression\"] : undefined;\r\n if (draco) {\r\n try {\r\n const buf = new Uint8Array(stream.arrayBuffer, dataOffset + draco.byteOffset, draco.byteLength);\r\n props = await decodeDracoPointCloud(buf);\r\n } catch (_) {\r\n //\r\n }\r\n } else {\r\n props = readPnts(stream, dataOffset, featureValue);\r\n }\r\n\r\n if (!props)\r\n return { graphic, rtcCenter };\r\n\r\n let batchRange = range;\r\n if (featureValue.RTC_CENTER) {\r\n rtcCenter = Point3d.fromJSON(featureValue.RTC_CENTER);\r\n batchRange = range.clone();\r\n batchRange.low.minus(rtcCenter, batchRange.low);\r\n batchRange.high.minus(rtcCenter, batchRange.high);\r\n }\r\n\r\n if (!props.colors) {\r\n // ###TODO we really should support uniform color instead of allocating an RGB value per point...\r\n props.colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);\r\n const rgba = featureValue.CONSTANT_RGBA;\r\n if (rgba) {\r\n // ###TODO support point cloud transparency.\r\n for (let i = 0; i < featureValue.POINTS_LENGTH * 3; i += 3) {\r\n props.colors[i] = rgba[0];\r\n props.colors[i + 1] = rgba[1];\r\n props.colors[i + 2] = rgba[2];\r\n }\r\n } else {\r\n // Default to white.\r\n props.colors.fill(0xff, 0, props.colors.length);\r\n }\r\n }\r\n\r\n const featureTable = new FeatureTable(1, modelId, BatchType.Primary);\r\n const features = new Mesh.Features(featureTable);\r\n features.add(new Feature(modelId), 1);\r\n let params = props.params;\r\n if (props.points instanceof Float32Array) {\r\n // we don't have a true range for unquantized points, so calc one here for voxelSize\r\n const rng = Range3d.createNull();\r\n for (let i = 0; i < props.points.length; i += 3)\r\n rng.extendXYZ(props.points[i], props.points[i + 1], props.points[i + 2]);\r\n params = QParams3d.fromRange(rng);\r\n }\r\n // 256 here is tile.maximumSize (on non-additive refinement tiles)\r\n // If additiveRefinement, set voxelSize to 0 which will cause it draw to with minPixelsPerVoxel, which defaults to 2\r\n // That way, it will draw as if in pixel mode, and voxelScale will still function\r\n // Checking across a variety of 10 point clouds, 2 to 4 seems to work well for pixel settings (depending on the\r\n // cloud), so 2 is a decent default\r\n // (If voxelSize is used normally in this case, it draws different size pixels for different tiles, and since\r\n // they can overlap ranges, no good way found to calculate a voxelSize)\r\n const voxelSize = tile.additiveRefinement ? 0 : params.rangeDiagonal.maxAbs() / 256;\r\n\r\n graphic = system.createPointCloud({\r\n positions: props.points,\r\n qparams: props.params,\r\n colors: props.colors,\r\n features: features.toFeatureIndex(),\r\n voxelSize,\r\n colorFormat: \"rgb\",\r\n }, iModel);\r\n\r\n graphic = system.createBatch(graphic!, PackedFeatureTable.pack(featureTable), batchRange);\r\n return { graphic, rtcCenter };\r\n}\r\n"]}
1
+ {"version":3,"file":"PntsReader.js","sourceRoot":"","sources":["../../../src/tile/PntsReader.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 { ByteStream, Id64String, Logger, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, Feature, FeatureTable, PackedFeatureTable, PntsHeader, QParams3d, QPoint3d, Quantization } from \"@itwin/core-common\";\r\nimport { FrontendLoggerCategory } from \"../common/FrontendLoggerCategory\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\nimport { RealityTile } from \"./internal\";\r\n\r\n/** Schema for the [3DTILES_draco_point_compression](https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_draco_point_compression) extension. */\r\ninterface DracoPointCloud {\r\n byteLength: number;\r\n byteOffset: number;\r\n /** Each specifies the Id of a compressed attribute. */\r\n properties: {\r\n POSITION?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGBA?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n NORMAL?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_ID?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n /** This is not in the spec but is present in sample data in Cesium's git repository. */\r\n COLOR_0?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n };\r\n}\r\n\r\ninterface PointCloudProps {\r\n params: QParams3d;\r\n points: Uint16Array | Float32Array;\r\n colors?: Uint8Array;\r\n}\r\n\r\ninterface BinaryBodyReference {\r\n byteOffset: number;\r\n}\r\n\r\n/** [3D tiles specification section 10.3](https://docs.opengeospatial.org/cs/18-053r2/18-053r2.html#199).\r\n * [JSON schema](https://github.com/CesiumGS/3d-tiles/blob/main/specification/schema/pnts.featureTable.schema.json).\r\n */\r\ninterface CommonPntsProps {\r\n POINTS_LENGTH: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n RTC_CENTER?: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n CONSTANT_RGBA?: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGBA?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n RGB565?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n extensions?: {\r\n \"3DTILES_draco_point_compression\"?: DracoPointCloud; // eslint-disable-line @typescript-eslint/naming-convention\r\n };\r\n\r\n // The following are currently ignored.\r\n NORMAL?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n NORMAL_OCT16P?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_ID?: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n BATCH_LENGTH?: number; // eslint-disable-line @typescript-eslint/naming-convention\r\n}\r\n\r\ntype QuantizedPntsProps = CommonPntsProps & {\r\n POSITION_QUANTIZED: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_OFFSET: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_SCALE: number[]; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n POSITION?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n};\r\n\r\ntype UnquantizedPntsProps = CommonPntsProps & {\r\n POSITION: BinaryBodyReference; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n POSITION_QUANTIZED?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_OFFSET?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n QUANTIZED_VOLUME_SCALE?: never; // eslint-disable-line @typescript-eslint/naming-convention\r\n};\r\n\r\ntype PntsProps = QuantizedPntsProps | UnquantizedPntsProps;\r\n\r\nfunction readPntsColors(stream: ByteStream, dataOffset: number, pnts: PntsProps): Uint8Array | undefined {\r\n const nPts = pnts.POINTS_LENGTH;\r\n const nComponents = 3 * nPts;\r\n if (pnts.RGB)\r\n return new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGB.byteOffset, nComponents);\r\n\r\n if (pnts.RGBA) {\r\n // ###TODO support point cloud transparency.\r\n const rgb = new Uint8Array(nComponents);\r\n const rgba = new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGBA.byteOffset, nComponents);\r\n for (let i = 0; i < nComponents; i += 4) {\r\n rgb[i + 0] = rgba[i + 0];\r\n rgb[i + 1] = rgba[i + 1];\r\n rgb[i + 2] = rgba[i + 2];\r\n }\r\n\r\n return rgb;\r\n } else if (pnts.RGB565) {\r\n // Each color is 16 bits: 5 red, 6 green, 5 blue.\r\n const crgb = new Uint16Array(stream.arrayBuffer, dataOffset + pnts.RGB565.byteOffset, nPts);\r\n const rgb = new Uint8Array(nComponents);\r\n for (let i = 0; i < nPts; i++) {\r\n const c = crgb[i];\r\n rgb[i + 0] = (c >> 11) & 0x1f;\r\n rgb[i + 1] = (c >> 5) & 0x3f;\r\n rgb[i + 2] = c & 0x1f;\r\n }\r\n\r\n return rgb;\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nfunction readPnts(stream: ByteStream, dataOffset: number, pnts: PntsProps): PointCloudProps | undefined {\r\n const nPts = pnts.POINTS_LENGTH;\r\n let params: QParams3d;\r\n let points: Uint16Array | Float32Array;\r\n\r\n if (pnts.POSITION_QUANTIZED) {\r\n const qpos = pnts.POSITION_QUANTIZED;\r\n const offset = pnts.QUANTIZED_VOLUME_OFFSET;\r\n const scale = pnts.QUANTIZED_VOLUME_SCALE;\r\n\r\n const qOrigin = new Point3d(offset[0], offset[1], offset[2]);\r\n const qScale = new Point3d(Quantization.computeScale(scale[0]), Quantization.computeScale(scale[1]), Quantization.computeScale(scale[2]));\r\n\r\n params = QParams3d.fromOriginAndScale(qOrigin, qScale);\r\n points = new Uint16Array(stream.arrayBuffer, dataOffset + qpos.byteOffset, 3 * nPts);\r\n } else {\r\n const qOrigin = new Point3d(0, 0, 0);\r\n const qScale = new Point3d(1, 1, 1);\r\n params = QParams3d.fromOriginAndScale(qOrigin, qScale);\r\n points = new Float32Array(stream.arrayBuffer, dataOffset + pnts.POSITION.byteOffset, 3 * nPts);\r\n }\r\n\r\n const colors = readPntsColors(stream, dataOffset, pnts);\r\n return { params, points, colors };\r\n}\r\n\r\nasync function decodeDracoPointCloud(buf: Uint8Array): Promise<PointCloudProps | undefined> {\r\n try {\r\n const dracoLoader = (await import(\"@loaders.gl/draco\")).DracoLoader;\r\n const mesh = await dracoLoader.parse(buf, {});\r\n if (mesh.topology !== \"point-list\")\r\n return undefined;\r\n\r\n const pos = mesh.attributes.POSITION?.value;\r\n if (!pos || (pos.length % 3) !== 0)\r\n return undefined;\r\n\r\n let colors = mesh.attributes.RGB?.value ?? mesh.attributes.COLOR_0?.value;\r\n if (!colors) {\r\n // ###TODO support point cloud transparency.\r\n const rgba = mesh.attributes.RGBA?.value;\r\n if (rgba && (rgba.length % 4) === 0) {\r\n // We currently don't support alpha channel for point clouds - strip it.\r\n colors = new Uint8Array(3 * rgba.length / 4);\r\n let j = 0;\r\n for (let i = 0; i < rgba.length; i += 4) {\r\n colors[j++] = rgba[i];\r\n colors[j++] = rgba[i + 1];\r\n colors[j++] = rgba[i + 2];\r\n }\r\n }\r\n }\r\n\r\n let posRange: Range3d;\r\n const bbox = mesh.header?.boundingBox;\r\n if (bbox) {\r\n posRange = Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);\r\n } else {\r\n posRange = Range3d.createNull();\r\n for (let i = 0; i < pos.length; i += 3)\r\n posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);\r\n }\r\n\r\n const params = QParams3d.fromRange(posRange);\r\n const pt = Point3d.createZero();\r\n const qpt = QPoint3d.create(pt, params);\r\n const points = new Uint16Array(pos.length);\r\n for (let i = 0; i < pos.length; i += 3) {\r\n pt.set(pos[i], pos[i + 1], pos[i + 2]);\r\n qpt.init(pt, params);\r\n points[i] = qpt.x;\r\n points[i + 1] = qpt.y;\r\n points[i + 2] = qpt.z;\r\n }\r\n\r\n return { points, params, colors: colors instanceof Uint8Array ? colors : undefined };\r\n } catch (err) {\r\n Logger.logWarning(FrontendLoggerCategory.Render, \"Failed to decode draco-encoded point cloud\");\r\n Logger.logException(FrontendLoggerCategory.Render, err);\r\n return undefined;\r\n }\r\n}\r\n\r\n/** Deserialize a point cloud tile and return it as a RenderGraphic.\r\n * @internal\r\n */\r\nexport async function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, tile: RealityTile, system: RenderSystem): Promise<{ graphic: RenderGraphic | undefined, rtcCenter: Point3d | undefined }> {\r\n let graphic;\r\n let rtcCenter;\r\n const header = new PntsHeader(stream);\r\n if (!header.isValid)\r\n return { graphic, rtcCenter };\r\n\r\n const range = tile.contentRange;\r\n const featureTableJsonOffset = stream.curPos;\r\n const featureStrData = stream.nextBytes(header.featureTableJsonLength);\r\n const featureStr = utf8ToString(featureStrData);\r\n const featureValue = JSON.parse(featureStr as string) as PntsProps;\r\n\r\n if (undefined === featureValue)\r\n return { graphic, rtcCenter };\r\n\r\n let props: PointCloudProps | undefined;\r\n const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;\r\n const draco = featureValue.extensions ? featureValue.extensions[\"3DTILES_draco_point_compression\"] : undefined;\r\n if (draco) {\r\n try {\r\n const buf = new Uint8Array(stream.arrayBuffer, dataOffset + draco.byteOffset, draco.byteLength);\r\n props = await decodeDracoPointCloud(buf);\r\n } catch (_) {\r\n //\r\n }\r\n } else {\r\n props = readPnts(stream, dataOffset, featureValue);\r\n }\r\n\r\n if (!props)\r\n return { graphic, rtcCenter };\r\n\r\n let batchRange = range;\r\n if (featureValue.RTC_CENTER) {\r\n rtcCenter = Point3d.fromJSON(featureValue.RTC_CENTER);\r\n batchRange = range.clone();\r\n batchRange.low.minus(rtcCenter, batchRange.low);\r\n batchRange.high.minus(rtcCenter, batchRange.high);\r\n }\r\n\r\n if (!props.colors) {\r\n // ###TODO we really should support uniform color instead of allocating an RGB value per point...\r\n props.colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);\r\n const rgba = featureValue.CONSTANT_RGBA;\r\n if (rgba) {\r\n // ###TODO support point cloud transparency.\r\n for (let i = 0; i < featureValue.POINTS_LENGTH * 3; i += 3) {\r\n props.colors[i] = rgba[0];\r\n props.colors[i + 1] = rgba[1];\r\n props.colors[i + 2] = rgba[2];\r\n }\r\n } else {\r\n // Default to white.\r\n props.colors.fill(0xff, 0, props.colors.length);\r\n }\r\n }\r\n\r\n const featureTable = new FeatureTable(1, modelId, BatchType.Primary);\r\n const features = new Mesh.Features(featureTable);\r\n features.add(new Feature(modelId), 1);\r\n let params = props.params;\r\n if (props.points instanceof Float32Array) {\r\n // we don't have a true range for unquantized points, so calc one here for voxelSize\r\n const rng = Range3d.createNull();\r\n for (let i = 0; i < props.points.length; i += 3)\r\n rng.extendXYZ(props.points[i], props.points[i + 1], props.points[i + 2]);\r\n params = QParams3d.fromRange(rng);\r\n }\r\n // 256 here is tile.maximumSize (on non-additive refinement tiles)\r\n // If additiveRefinement, set voxelSize to 0 which will cause it draw to with minPixelsPerVoxel, which defaults to 2\r\n // That way, it will draw as if in pixel mode, and voxelScale will still function\r\n // Checking across a variety of 10 point clouds, 2 to 4 seems to work well for pixel settings (depending on the\r\n // cloud), so 2 is a decent default\r\n // (If voxelSize is used normally in this case, it draws different size pixels for different tiles, and since\r\n // they can overlap ranges, no good way found to calculate a voxelSize)\r\n const voxelSize = tile.additiveRefinement ? 0 : params.rangeDiagonal.maxAbs() / 256;\r\n\r\n graphic = system.createPointCloud({\r\n positions: props.points,\r\n qparams: props.params,\r\n colors: props.colors,\r\n features: features.toFeatureIndex(),\r\n voxelSize,\r\n colorFormat: \"rgb\",\r\n }, iModel);\r\n\r\n graphic = system.createBatch(graphic!, PackedFeatureTable.pack(featureTable), batchRange);\r\n return { graphic, rtcCenter };\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PrimaryTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/PrimaryTileTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrimaryTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/PrimaryTileTree.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@ import { assert, comparePossiblyUndefined, compareStrings, } from "@itwin/core-b
9
9
  import { BatchType, compareIModelTileTreeIds, FeatureAppearanceProvider, iModelTileTreeIdToString, RenderMode, SpatialClassifier, } from "@itwin/core-common";
10
10
  import { Range3d, StringifiedClipVector, Transform } from "@itwin/core-geometry";
11
11
  import { IModelApp } from "../IModelApp";
12
- import { AnimationNodeId, formatAnimationBranchId } from "../render/GraphicBranch";
12
+ import { formatAnimationBranchId } from "../render/GraphicBranch";
13
+ import { AnimationNodeId } from "../common/render/AnimationNodeId";
13
14
  import { IModelTileTree, iModelTileTreeParamsFromJSON, MapLayerTileTreeReference, TileGraphicType, TileTreeReference, } from "./internal";
14
15
  class PlanProjectionTileTree extends IModelTileTree {
15
16
  constructor(params, treeId, baseElevation) {