@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 @@
1
+ {"version":3,"file":"ImdlGraphicsCreator.js","sourceRoot":"","sources":["../../../src/tile/ImdlGraphicsCreator.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 { JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Point2d, Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, Gradient, ImageSource, RenderMaterial, RenderTexture, TextureMapping,\r\n} from \"@itwin/core-common\";\r\nimport { AuxChannelTable } from \"../common/render/primitives/AuxChannelTable\";\r\nimport { createSurfaceMaterial } from \"../common//render/primitives/SurfaceParams\";\r\nimport { ImdlModel as Imdl } from \"../common/imdl/ImdlModel\";\r\nimport { ImdlColorDef, ImdlNamedTexture, ImdlTextureMapping } from \"../common/imdl/ImdlSchema\";\r\nimport { edgeParamsFromImdl, toMaterialParams, toVertexTable } from \"../common/imdl/ParseImdlDocument\";\r\nimport { VertexIndices } from \"../common/render/primitives/VertexIndices\";\r\nimport type { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { GraphicBranch } from \"../render/GraphicBranch\";\r\nimport type { RenderGeometry, RenderSystem } from \"../render/RenderSystem\";\r\nimport type { InstancedGraphicParams } from \"../render/InstancedGraphicParams\";\r\nimport type { IModelConnection } from \"../IModelConnection\";\r\n\r\n/** Options provided to [[decodeImdlContent]].\r\n * @internal\r\n */\r\nexport interface ImdlDecodeOptions {\r\n document: Imdl.Document;\r\n system: RenderSystem;\r\n iModel: IModelConnection;\r\n isCanceled?: () => boolean;\r\n}\r\n\r\nasync function loadNamedTexture(name: string, namedTex: ImdlNamedTexture, options: ImdlDecodeOptions): Promise<RenderTexture | undefined> {\r\n // Reasons a texture could be embedded in the tile content instead of requested separately from the backend:\r\n // - external textures are disabled\r\n // - the texture name is not a valid Id64 string\r\n // - the texture is below a certain backend-hardcoded size threshold\r\n // The bufferViewJson being defined signifies any of the above conditions. In that case, the image content\r\n // has been embedded in the tile contents. Otherwise, we will attempt to request the image content separately\r\n // from the backend.\r\n\r\n try {\r\n let textureType = RenderTexture.Type.Normal;\r\n const isGlyph = JsonUtils.asBool(namedTex.isGlyph);\r\n const isTileSection = !isGlyph && JsonUtils.asBool(namedTex.isTileSection);\r\n if (isGlyph)\r\n textureType = RenderTexture.Type.Glyph;\r\n else if (isTileSection)\r\n textureType = RenderTexture.Type.TileSection;\r\n\r\n // We produce unique tile sections for very large (> 8 megapixel) textures, and unique glyph atlases for raster text.\r\n // Neither should be cached.\r\n const cacheable = !isGlyph && !isTileSection;\r\n const ownership = cacheable ? { iModel: options.iModel, key: name } : undefined;\r\n\r\n const bufferViewId = JsonUtils.asString(namedTex.bufferView);\r\n const bufferViewJson = 0 !== bufferViewId.length ? options.document.json.bufferViews[bufferViewId] : undefined;\r\n\r\n if (undefined !== bufferViewJson) { // presence of bufferViewJson signifies we should read the texture from the tile content\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n if (0 === byteLength)\r\n return undefined;\r\n\r\n const texBytes = options.document.binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n const format = namedTex.format;\r\n const source = new ImageSource(texBytes, format);\r\n return await options.system.createTextureFromSource({ source, ownership, type: textureType, transparency: namedTex.transparency });\r\n }\r\n\r\n // bufferViewJson was undefined, so attempt to request the texture directly from the backend\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderTexture.Params(cacheable ? name : undefined, textureType);\r\n return options.system.createTextureFromElement(name, options.iModel, params, namedTex.format);\r\n } catch (_) {\r\n return undefined;\r\n }\r\n}\r\n\r\nasync function loadNamedTextures(options: ImdlDecodeOptions): Promise<Map<string, RenderTexture>> {\r\n const result = new Map<string, RenderTexture>();\r\n const namedTextures = options.document.json.namedTextures;\r\n if (!namedTextures)\r\n return result;\r\n\r\n const promises = new Array<Promise<void>>();\r\n for (const [name, namedTexture] of Object.entries(namedTextures)) {\r\n const texture = options.system.findTexture(name, options.iModel);\r\n if (texture) {\r\n result.set(name, texture);\r\n continue;\r\n } else if (namedTexture) {\r\n promises.push(loadNamedTexture(name, namedTexture, options).then((tx) => {\r\n if (tx)\r\n result.set(name, tx);\r\n }));\r\n }\r\n }\r\n\r\n if (promises.length > 0)\r\n await Promise.all(promises);\r\n\r\n return result;\r\n}\r\n\r\ninterface GraphicsOptions extends ImdlDecodeOptions {\r\n textures: Map<string, RenderTexture>;\r\n patterns: Map<string, RenderGeometry[]>;\r\n}\r\n\r\nfunction constantLodParamPropsFromJson(propsJson: { repetitions?: number, offset?: number[], minDistClamp?: number, maxDistClamp?: number } | undefined): TextureMapping.ConstantLodParamProps | undefined {\r\n if (undefined === propsJson)\r\n return undefined;\r\n\r\n const constantLodPops: TextureMapping.ConstantLodParamProps = {\r\n repetitions: JsonUtils.asDouble(propsJson.repetitions, 1.0),\r\n offset: { x: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[0]) : 0.0, y: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[1]) : 0.0 },\r\n minDistClamp: JsonUtils.asDouble(propsJson.minDistClamp, 1.0),\r\n maxDistClamp: JsonUtils.asDouble(propsJson.maxDistClamp, 4096.0 * 1024.0 * 1024.0),\r\n };\r\n return constantLodPops;\r\n}\r\n\r\nfunction textureMappingFromJson(json: ImdlTextureMapping | undefined, options: GraphicsOptions): TextureMapping | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const texture = options.textures.get(JsonUtils.asString(json.name));\r\n if (!texture)\r\n return undefined;\r\n\r\n const paramsJson = json.params;\r\n const tf = paramsJson.transform;\r\n\r\n const paramProps: TextureMapping.ParamProps = {\r\n textureMat2x3: new TextureMapping.Trans2x3(tf[0][0], tf[0][1], tf[0][2], tf[1][0], tf[1][1], tf[1][2]),\r\n textureWeight: JsonUtils.asDouble(paramsJson.weight, 1.0),\r\n mapMode: JsonUtils.asInt(paramsJson.mode),\r\n worldMapping: JsonUtils.asBool(paramsJson.worldMapping),\r\n useConstantLod: JsonUtils.asBool(paramsJson.useConstantLod),\r\n constantLodProps: constantLodParamPropsFromJson(paramsJson.constantLodParams),\r\n };\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params(paramProps));\r\n\r\n const normalMapJson = json.normalMapParams;\r\n if (normalMapJson) {\r\n let normalMap;\r\n const normalTexName = JsonUtils.asString(normalMapJson.textureName);\r\n if (normalTexName.length === 0 || undefined !== (normalMap = options.textures.get(normalTexName))) {\r\n textureMapping.normalMapParams = {\r\n normalMap,\r\n greenUp: JsonUtils.asBool(normalMapJson.greenUp),\r\n scale: JsonUtils.asDouble(normalMapJson.scale, 1),\r\n useConstantLod: JsonUtils.asBool(normalMapJson.useConstantLod),\r\n };\r\n }\r\n }\r\n\r\n return textureMapping;\r\n}\r\n\r\nfunction getMaterial(mat: string | Imdl.SurfaceMaterialParams, options: GraphicsOptions): RenderMaterial | undefined {\r\n if (typeof mat !== \"string\") {\r\n const args = toMaterialParams(mat);\r\n return options.system.createRenderMaterial(args);\r\n }\r\n\r\n const material = options.system.findMaterial(mat, options.iModel);\r\n if (material || !options.document.json.renderMaterials)\r\n return material;\r\n\r\n const json = options.document.json.renderMaterials[mat];\r\n if (!json)\r\n return undefined;\r\n\r\n function colorDefFromJson(col: ImdlColorDef | undefined): ColorDef | undefined {\r\n return col ? ColorDef.from(col[0] * 255 + 0.5, col[1] * 255 + 0.5, col[2] * 255 + 0.5) : undefined;\r\n }\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n const params = new RenderMaterial.Params(mat);\r\n params.diffuseColor = colorDefFromJson(json.diffuseColor);\r\n if (json.diffuse !== undefined)\r\n params.diffuse = JsonUtils.asDouble(json.diffuse);\r\n\r\n params.specularColor = colorDefFromJson(json.specularColor);\r\n if (json.specular !== undefined)\r\n params.specular = JsonUtils.asDouble(json.specular);\r\n\r\n params.reflectColor = colorDefFromJson(json.reflectColor);\r\n if (json.reflect !== undefined)\r\n params.reflect = JsonUtils.asDouble(json.reflect);\r\n\r\n if (json.specularExponent !== undefined)\r\n params.specularExponent = json.specularExponent;\r\n\r\n if (undefined !== json.transparency)\r\n params.alpha = 1.0 - json.transparency;\r\n\r\n params.refract = JsonUtils.asDouble(json.refract);\r\n params.shadows = JsonUtils.asBool(json.shadows);\r\n params.ambient = JsonUtils.asDouble(json.ambient);\r\n\r\n if (undefined !== json.textureMapping)\r\n params.textureMapping = textureMappingFromJson(json.textureMapping.texture, options);\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n return options.system.createMaterial(params, options.iModel);\r\n}\r\n\r\nfunction getModifiers(primitive: Imdl.Primitive): { viOrigin?: Point3d, instances?: InstancedGraphicParams } {\r\n const mod = primitive.modifier;\r\n switch (mod?.type) {\r\n case \"instances\":\r\n return {\r\n instances: {\r\n ...mod,\r\n transformCenter: Point3d.fromJSON(mod.transformCenter),\r\n range: mod.range ? Range3d.fromJSON(mod.range) : undefined,\r\n },\r\n };\r\n case \"viewIndependentOrigin\":\r\n return {\r\n viOrigin: Point3d.fromJSON(mod.origin),\r\n };\r\n default:\r\n return { };\r\n }\r\n}\r\n\r\nfunction createPrimitiveGeometry(primitive: Imdl.Primitive, options: GraphicsOptions, viOrigin: Point3d | undefined): RenderGeometry | undefined {\r\n switch (primitive.type) {\r\n case \"point\":\r\n return options.system.createPointStringGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n indices: new VertexIndices(primitive.params.indices),\r\n }, viOrigin);\r\n case \"polyline\":\r\n return options.system.createPolylineGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n polyline: {\r\n ...primitive.params.polyline,\r\n indices: new VertexIndices(primitive.params.polyline.indices),\r\n prevIndices: new VertexIndices(primitive.params.polyline.prevIndices),\r\n },\r\n }, viOrigin);\r\n case \"mesh\": {\r\n const surf = primitive.params.surface;\r\n let material;\r\n if (surf.material) {\r\n if (!surf.material.isAtlas)\r\n material = createSurfaceMaterial(getMaterial(surf.material.material, options));\r\n else\r\n material = surf.material;\r\n }\r\n\r\n let textureMapping;\r\n if (surf.textureMapping) {\r\n let texture;\r\n if (typeof surf.textureMapping.texture === \"string\") {\r\n texture = options.textures.get(surf.textureMapping.texture);\r\n } else {\r\n const gradient = Gradient.Symb.fromJSON(surf.textureMapping.texture);\r\n texture = options.system.getGradientTexture(gradient, options.iModel);\r\n }\r\n\r\n if (texture)\r\n textureMapping = { texture, alwaysDisplayed: surf.textureMapping.alwaysDisplayed };\r\n }\r\n\r\n return options.system.createMeshGeometry({\r\n ...primitive.params,\r\n edges: primitive.params.edges ? edgeParamsFromImdl(primitive.params.edges) : undefined,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n auxChannels: primitive.params.auxChannels ? AuxChannelTable.fromJSON(primitive.params.auxChannels) : undefined,\r\n surface: {\r\n ...primitive.params.surface,\r\n material,\r\n textureMapping,\r\n indices: new VertexIndices(primitive.params.surface.indices),\r\n },\r\n }, viOrigin);\r\n }\r\n }\r\n}\r\n\r\nfunction createPrimitiveGraphic(primitive: Imdl.Primitive, options: GraphicsOptions): RenderGraphic | undefined {\r\n const mods = getModifiers(primitive);\r\n const geometry = createPrimitiveGeometry(primitive, options, mods.viOrigin);\r\n return geometry ? options.system.createRenderGraphic(geometry, mods.instances) : undefined;\r\n}\r\n\r\nfunction createPatternGeometries(primitives: Imdl.Primitive[], options: GraphicsOptions): RenderGeometry[] {\r\n const geometries = [];\r\n for (const primitive of primitives) {\r\n const geometry = createPrimitiveGeometry(primitive, options, undefined);\r\n if (geometry)\r\n geometries.push(geometry);\r\n }\r\n\r\n return geometries;\r\n}\r\n\r\nfunction createPatternGraphic(params: Imdl.AreaPatternParams, options: GraphicsOptions): RenderGraphic | undefined {\r\n const geometries = options.patterns.get(params.symbolName);\r\n if (!geometries || geometries.length === 0)\r\n return undefined;\r\n\r\n const clip = ClipVector.fromJSON(params.clip);\r\n const clipVolume = clip?.isValid ? options.system.createClipVolume(clip) : undefined;\r\n if (!clipVolume)\r\n return undefined;\r\n\r\n const viewIndependentOrigin = params.viewIndependentOrigin ? Point3d.fromJSON(params.viewIndependentOrigin) : undefined;\r\n const pattern = options.system.createAreaPattern({\r\n xyOffsets: params.xyOffsets,\r\n featureId: params.featureId,\r\n orgTransform: Transform.fromJSON(params.orgTransform),\r\n origin: Point2d.fromJSON(params.origin),\r\n scale: params.scale,\r\n spacing: Point2d.fromJSON(params.spacing),\r\n patternToModel: Transform.fromJSON(params.modelTransform),\r\n range: Range3d.fromJSON(params.range),\r\n symbolTranslation: Point3d.fromJSON(params.symbolTranslation),\r\n viewIndependentOrigin,\r\n });\r\n\r\n if (!pattern)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const geometry of geometries) {\r\n const graphic = options.system.createRenderGraphic(geometry, pattern);\r\n if (graphic)\r\n branch.add(graphic);\r\n }\r\n\r\n return branch.isEmpty ? undefined : options.system.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume });\r\n}\r\n\r\nfunction createNodeGraphics(node: Imdl.Node, options: GraphicsOptions): RenderGraphic[] {\r\n const graphics = [];\r\n for (const primitive of node.primitives) {\r\n const graphic = primitive.type === \"pattern\" ? createPatternGraphic(primitive.params, options) : createPrimitiveGraphic(primitive, options);\r\n if (graphic)\r\n graphics.push(graphic);\r\n }\r\n\r\n return graphics;\r\n}\r\n\r\n/** @internal */\r\nexport async function decodeImdlGraphics(options: ImdlDecodeOptions): Promise<RenderGraphic | undefined> {\r\n const textures = await loadNamedTextures(options);\r\n if (options.isCanceled && options.isCanceled())\r\n return undefined;\r\n\r\n const patterns = new Map<string, RenderGeometry[]>();\r\n const graphicsOptions = { ...options, textures, patterns };\r\n\r\n for (const [name, primitives] of options.document.patterns)\r\n patterns.set(name, createPatternGeometries(primitives, graphicsOptions));\r\n\r\n const system = options.system;\r\n const graphics: RenderGraphic[] = [];\r\n for (const node of options.document.nodes) {\r\n const nodeGraphics = createNodeGraphics(node, graphicsOptions);\r\n if (nodeGraphics.length === 0)\r\n continue;\r\n\r\n if (undefined !== node.layerId) {\r\n const layerGraphic = 1 === nodeGraphics.length ? nodeGraphics[0] : system.createGraphicList(nodeGraphics);\r\n graphics.push(system.createGraphicLayer(layerGraphic, node.layerId));\r\n } else if (undefined !== node.animationNodeId) {\r\n const branch = new GraphicBranch(true);\r\n branch.animationId = node.animationId;\r\n branch.animationNodeId = node.animationNodeId;\r\n branch.entries.push(...nodeGraphics);\r\n graphics.push(system.createBranch(branch, Transform.createIdentity()));\r\n } else {\r\n graphics.push(...nodeGraphics);\r\n }\r\n }\r\n\r\n switch (graphics.length) {\r\n case 0: return undefined;\r\n case 1: return graphics[0];\r\n default: return system.createGraphicList(graphics);\r\n }\r\n}\r\n"]}
@@ -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,72 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Tiles
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.acquireImdlParser = void 0;
11
+ const core_bentley_1 = require("@itwin/core-bentley");
12
+ const core_common_1 = require("@itwin/core-common");
13
+ const WorkerProxy_1 = require("../common/WorkerProxy");
14
+ const ParseImdlDocument_1 = require("../common/imdl/ParseImdlDocument");
15
+ const IModelApp_1 = require("../IModelApp");
16
+ /** @internal */
17
+ function acquireImdlParser(args) {
18
+ const timeline = args.timeline;
19
+ if (args.noWorker) {
20
+ return {
21
+ parse: async (options) => Promise.resolve((0, ParseImdlDocument_1.parseImdlDocument)({
22
+ ...options,
23
+ timeline,
24
+ })),
25
+ release: () => undefined,
26
+ };
27
+ }
28
+ if (!args.timeline) {
29
+ if (!defaultParser) {
30
+ const worker = (0, WorkerProxy_1.createWorkerProxy)(`${IModelApp_1.IModelApp.publicPath}scripts/parse-imdl-worker.js`);
31
+ defaultParser = {
32
+ parse: async (options) => worker.parse(options, [options.data.buffer]),
33
+ release: () => undefined,
34
+ };
35
+ }
36
+ return defaultParser;
37
+ }
38
+ let parser = parsersWithTimelines.get(args.timeline);
39
+ if (!parser)
40
+ parsersWithTimelines.set(args.timeline, parser = new ParserWithTimeline(args.timeline));
41
+ (0, core_bentley_1.assert)(parser.refCount >= 0);
42
+ ++parser.refCount;
43
+ return parser;
44
+ }
45
+ exports.acquireImdlParser = acquireImdlParser;
46
+ let defaultParser;
47
+ class ParserWithTimeline {
48
+ constructor(timeline) {
49
+ this.refCount = 0;
50
+ this._timeline = timeline;
51
+ this._worker = (0, WorkerProxy_1.createWorkerProxy)(`${IModelApp_1.IModelApp.publicPath}scripts/parse-imdl-worker.js`);
52
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
53
+ this._worker.setTimeline(timeline.toJSON());
54
+ }
55
+ async parse(options) {
56
+ return this._worker.parse(options, [options.data.buffer]);
57
+ }
58
+ release() {
59
+ (0, core_bentley_1.assert)(this.refCount > 0);
60
+ --this.refCount;
61
+ if (this.refCount === 0) {
62
+ parsersWithTimelines.delete(this._timeline);
63
+ this._worker.terminate();
64
+ }
65
+ }
66
+ }
67
+ const parsersWithTimelines = new core_bentley_1.Dictionary((lhs, rhs) => {
68
+ if (lhs instanceof core_common_1.RenderSchedule.ModelTimeline)
69
+ return rhs instanceof core_common_1.RenderSchedule.ModelTimeline ? lhs.compareTo(rhs) : -1;
70
+ return rhs instanceof core_common_1.RenderSchedule.Script ? lhs.compareTo(rhs) : 1;
71
+ });
72
+ //# sourceMappingURL=ImdlParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImdlParser.js","sourceRoot":"","sources":["../../../src/tile/ImdlParser.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, 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"}
@@ -7,14 +7,14 @@
7
7
  * @module Tiles
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ImdlReader = exports.readElementGraphics = void 0;
10
+ exports.ImdlReader = exports.readImdlContent = exports.readElementGraphics = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const core_common_1 = require("@itwin/core-common");
14
14
  const IModelApp_1 = require("../IModelApp");
15
15
  const GraphicBranch_1 = require("../render/GraphicBranch");
16
- const ImdlParser_1 = require("../imdl/ImdlParser");
17
- const ImdlGraphicsCreator_1 = require("../imdl/ImdlGraphicsCreator");
16
+ const ParseImdlDocument_1 = require("../common/imdl/ParseImdlDocument");
17
+ const internal_1 = require("./internal");
18
18
  /** Convert the byte array returned by [[TileAdmin.requestElementGraphics]] into a [[RenderGraphic]].
19
19
  * @param bytes The binary graphics data obtained from `requestElementGraphics`.
20
20
  * @param iModel The iModel with which the graphics are associated.
@@ -34,7 +34,9 @@ async function readElementGraphics(bytes, iModel, modelId, is3d, options) {
34
34
  return result.graphic;
35
35
  }
36
36
  exports.readElementGraphics = readElementGraphics;
37
+ /** @internal */
37
38
  async function readImdlContent(args) {
39
+ const isCanceled = args.isCanceled ?? (() => false);
38
40
  let content;
39
41
  try {
40
42
  content = (0, core_common_1.decodeTileContentDescription)({
@@ -53,27 +55,29 @@ async function readImdlContent(args) {
53
55
  throw e;
54
56
  }
55
57
  args.stream.reset();
56
- const document = (0, ImdlParser_1.parseImdlDocument)({
57
- stream: args.stream,
58
+ const parseOpts = {
59
+ data: args.stream.readBytes(0, args.stream.length),
58
60
  batchModelId: args.modelId,
59
61
  is3d: args.is3d,
60
62
  maxVertexTableSize: IModelApp_1.IModelApp.renderSystem.maxTextureSize,
61
63
  omitEdges: false === args.loadEdges,
62
- timeline: args.timeline,
63
64
  createUntransformedRootNode: args.containsTransformNodes,
64
- });
65
- if (typeof document === "number")
65
+ };
66
+ const document = args.parseDocument ? (await args.parseDocument(parseOpts)) : (0, ParseImdlDocument_1.parseImdlDocument)({ ...parseOpts, timeline: args.timeline });
67
+ if (isCanceled())
68
+ return { isLeaf: true, readStatus: core_common_1.TileReadStatus.Canceled };
69
+ else if (typeof document === "number")
66
70
  return { isLeaf: true, readStatus: document };
67
- let graphic = await (0, ImdlGraphicsCreator_1.decodeImdlGraphics)({
71
+ let graphic = await (0, internal_1.decodeImdlGraphics)({
68
72
  system: args.system,
69
73
  iModel: args.iModel,
70
74
  document,
71
75
  isCanceled: args.isCanceled,
72
76
  });
73
- if (args.isCanceled && args.isCanceled())
77
+ if (isCanceled())
74
78
  return { isLeaf: true, readStatus: core_common_1.TileReadStatus.Canceled };
75
79
  if (graphic && false !== args.options) {
76
- const featureTable = (0, ImdlParser_1.convertFeatureTable)(document.featureTable, args.modelId);
80
+ const featureTable = (0, ParseImdlDocument_1.convertFeatureTable)(document.featureTable, args.modelId);
77
81
  graphic = args.system.createBatch(graphic, featureTable, content.contentRange, args.options);
78
82
  }
79
83
  if (graphic && document.rtcCenter) {
@@ -90,6 +94,7 @@ async function readImdlContent(args) {
90
94
  emptySubRangeMask: content.emptySubRangeMask,
91
95
  };
92
96
  }
97
+ exports.readImdlContent = readImdlContent;
93
98
  /** @internal */
94
99
  var ImdlReader;
95
100
  (function (ImdlReader) {
@@ -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"]}
@@ -8,7 +8,7 @@ exports.OPCFormatInterpreter = void 0;
8
8
  const core_common_1 = require("@itwin/core-common");
9
9
  const core_geometry_1 = require("@itwin/core-geometry");
10
10
  const core_orbitgt_1 = require("@itwin/core-orbitgt");
11
- const FrontendLoggerCategory_1 = require("../FrontendLoggerCategory");
11
+ const FrontendLoggerCategory_1 = require("../common/FrontendLoggerCategory");
12
12
  const core_bentley_1 = require("@itwin/core-bentley");
13
13
  const RealityDataSource_1 = require("../RealityDataSource");
14
14
  const loggerCategory = FrontendLoggerCategory_1.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"]}
@@ -34,7 +34,7 @@ exports.readPointCloudTileContent = void 0;
34
34
  const core_bentley_1 = require("@itwin/core-bentley");
35
35
  const core_geometry_1 = require("@itwin/core-geometry");
36
36
  const core_common_1 = require("@itwin/core-common");
37
- const FrontendLoggerCategory_1 = require("../FrontendLoggerCategory");
37
+ const FrontendLoggerCategory_1 = require("../common/FrontendLoggerCategory");
38
38
  const MeshPrimitives_1 = require("../render/primitives/mesh/MeshPrimitives");
39
39
  function readPntsColors(stream, dataOffset, pnts) {
40
40
  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":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sDAAmF;AACnF,wDAAwD;AACxD,oDAAyI;AACzI,6EAA0E;AAE1E,6EAAgE;AAuEhE,SAAS,cAAc,CAAC,MAAkB,EAAE,UAAkB,EAAE,IAAe;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;IAChC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,IAAI,CAAC,GAAG;QACV,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE3F,IAAI,IAAI,CAAC,IAAI,EAAE;QACb,4CAA4C;QAC5C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAChG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;YACvC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1B;QAED,OAAO,GAAG,CAAC;KACZ;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE;QACtB,iDAAiD;QACjD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YAC7B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACvB;QAED,OAAO,GAAG,CAAC;KACZ;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAkB,EAAE,UAAkB,EAAE,IAAe;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;IAChC,IAAI,MAAiB,CAAC;IACtB,IAAI,MAAkC,CAAC;IAEvC,IAAI,IAAI,CAAC,kBAAkB,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAE1C,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,uBAAO,CAAC,0BAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,0BAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,0BAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1I,MAAM,GAAG,uBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;KACtF;SAAM;QACL,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,uBAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,GAAG,uBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;KAChG;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,GAAe;IAClD,IAAI;QACF,MAAM,WAAW,GAAG,CAAC,wDAAa,mBAAmB,GAAC,CAAC,CAAC,WAAW,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY;YAChC,OAAO,SAAS,CAAC;QAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;YAChC,OAAO,SAAS,CAAC;QAEnB,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;QAC1E,IAAI,CAAC,MAAM,EAAE;YACX,4CAA4C;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;YACzC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;gBACnC,wEAAwE;gBACxE,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBACvC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1B,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC3B;aACF;SACF;QAED,IAAI,QAAiB,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,QAAQ,GAAG,uBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzG;aAAM;YACL,QAAQ,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;gBACpC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACtD;QAED,MAAM,MAAM,GAAG,uBAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,EAAE,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,sBAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACtC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACrB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACvB;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;KACtF;IAAC,OAAO,GAAG,EAAE;QACZ,qBAAM,CAAC,UAAU,CAAC,+CAAsB,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;QAC/F,qBAAM,CAAC,YAAY,CAAC,+CAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,yBAAyB,CAAC,MAAkB,EAAE,MAAwB,EAAE,OAAmB,EAAE,KAAc,EAAE,IAAiB,EAAE,MAAoB;IACxK,IAAI,OAAO,CAAC;IACZ,IAAI,SAAS,CAAC;IACd,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAA,2BAAY,EAAC,cAAc,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAoB,CAAc,CAAC;IAEnE,IAAI,SAAS,KAAK,YAAY;QAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAEhC,IAAI,KAAkC,CAAC;IACvC,MAAM,UAAU,GAAG,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/G,IAAI,KAAK,EAAE;QACT,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAChG,KAAK,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACV,EAAE;SACH;KACF;SAAM;QACL,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;KACpD;IAED,IAAI,CAAC,KAAK;QACR,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAEhC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,YAAY,CAAC,UAAU,EAAE;QAC3B,SAAS,GAAG,uBAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACtD,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;KACnD;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,iGAAiG;QACjG,KAAK,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC;QACxC,IAAI,IAAI,EAAE;YACR,4CAA4C;YAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBAC1D,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC1B,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aAC/B;SACF;aAAM;YACL,oBAAoB;YACpB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACjD;KACF;IAED,MAAM,YAAY,GAAG,IAAI,0BAAY,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAS,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,qBAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,GAAG,CAAC,IAAI,qBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,IAAI,KAAK,CAAC,MAAM,YAAY,YAAY,EAAE;QACxC,oFAAoF;QACpF,MAAM,GAAG,GAAG,uBAAO,CAAC,UAAU,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;YAC7C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,GAAG,uBAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACnC;IACD,kEAAkE;IAClE,oHAAoH;IACpH,iFAAiF;IACjF,+GAA+G;IAC/G,mCAAmC;IACnC,6GAA6G;IAC7G,uEAAuE;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;IAEpF,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAChC,SAAS,EAAE,KAAK,CAAC,MAAM;QACvB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,QAAQ,CAAC,cAAc,EAAE;QACnC,SAAS;QACT,WAAW,EAAE,KAAK;KACnB,EAAE,MAAM,CAAC,CAAC;IAEX,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,OAAQ,EAAE,gCAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1F,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAzFD,8DAyFC","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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"}
@@ -13,6 +13,7 @@ const core_common_1 = require("@itwin/core-common");
13
13
  const core_geometry_1 = require("@itwin/core-geometry");
14
14
  const IModelApp_1 = require("../IModelApp");
15
15
  const GraphicBranch_1 = require("../render/GraphicBranch");
16
+ const AnimationNodeId_1 = require("../common/render/AnimationNodeId");
16
17
  const internal_1 = require("./internal");
17
18
  class PlanProjectionTileTree extends internal_1.IModelTileTree {
18
19
  constructor(params, treeId, baseElevation) {
@@ -121,7 +122,7 @@ class PrimaryTreeReference extends internal_1.TileTreeReference {
121
122
  this._owner = primaryTreeSupplier.getOwner(this._id, model.iModel);
122
123
  }
123
124
  getAnimationTransformNodeId() {
124
- return this._animationTransformNodeId ?? GraphicBranch_1.AnimationNodeId.Untransformed;
125
+ return this._animationTransformNodeId ?? AnimationNodeId_1.AnimationNodeId.Untransformed;
125
126
  }
126
127
  getViewFlagOverrides(_tree) {
127
128
  return this._viewFlagOverrides;