@itwin/core-frontend 3.1.0-dev.8 → 3.2.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (643) hide show
  1. package/CHANGELOG.md +163 -35
  2. package/lib/cjs/AccuSnap.js +2 -2
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.d.ts +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +21 -9
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +12 -0
  9. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  10. package/lib/cjs/ApproximateTerrainHeightsProps.js +13 -0
  11. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -0
  12. package/lib/cjs/CategorySelectorState.js +1 -1
  13. package/lib/cjs/CategorySelectorState.js.map +1 -1
  14. package/lib/cjs/DisplayStyleState.d.ts +4 -3
  15. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  16. package/lib/cjs/DisplayStyleState.js +32 -8
  17. package/lib/cjs/DisplayStyleState.js.map +1 -1
  18. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  19. package/lib/cjs/DrawingViewState.js +6 -5
  20. package/lib/cjs/DrawingViewState.js.map +1 -1
  21. package/lib/cjs/FrontendLoggerCategory.d.ts +3 -1
  22. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  23. package/lib/cjs/FrontendLoggerCategory.js +2 -0
  24. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  25. package/lib/cjs/IModelApp.d.ts +8 -4
  26. package/lib/cjs/IModelApp.d.ts.map +1 -1
  27. package/lib/cjs/IModelApp.js +20 -10
  28. package/lib/cjs/IModelApp.js.map +1 -1
  29. package/lib/cjs/IModelConnection.d.ts +3 -5
  30. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  31. package/lib/cjs/IModelConnection.js +4 -10
  32. package/lib/cjs/IModelConnection.js.map +1 -1
  33. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  34. package/lib/cjs/ImageUtil.js +8 -14
  35. package/lib/cjs/ImageUtil.js.map +1 -1
  36. package/lib/cjs/LocalhostIpcApp.d.ts +2 -0
  37. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  38. package/lib/cjs/LocalhostIpcApp.js +10 -4
  39. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  40. package/lib/cjs/RealityDataSource.d.ts +60 -14
  41. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  42. package/lib/cjs/RealityDataSource.js +36 -235
  43. package/lib/cjs/RealityDataSource.js.map +1 -1
  44. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  45. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  46. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js +166 -0
  47. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  48. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts +83 -0
  49. package/lib/cjs/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  50. package/lib/cjs/RealityDataSourceContextShareImpl.js +234 -0
  51. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -0
  52. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  53. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  54. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +135 -0
  55. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  56. package/lib/cjs/SheetViewState.js +4 -0
  57. package/lib/cjs/SheetViewState.js.map +1 -1
  58. package/lib/cjs/ViewState.d.ts +8 -0
  59. package/lib/cjs/ViewState.d.ts.map +1 -1
  60. package/lib/cjs/ViewState.js +1 -1
  61. package/lib/cjs/ViewState.js.map +1 -1
  62. package/lib/cjs/Viewport.d.ts +30 -12
  63. package/lib/cjs/Viewport.d.ts.map +1 -1
  64. package/lib/cjs/Viewport.js +43 -1
  65. package/lib/cjs/Viewport.js.map +1 -1
  66. package/lib/cjs/core-frontend.d.ts +6 -4
  67. package/lib/cjs/core-frontend.d.ts.map +1 -1
  68. package/lib/cjs/core-frontend.js +6 -4
  69. package/lib/cjs/core-frontend.js.map +1 -1
  70. package/lib/cjs/extension/Extension.d.ts +48 -0
  71. package/lib/cjs/extension/Extension.d.ts.map +1 -0
  72. package/lib/cjs/extension/Extension.js +18 -0
  73. package/lib/cjs/extension/Extension.js.map +1 -0
  74. package/lib/cjs/extension/ExtensionAdmin.d.ts +64 -0
  75. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -0
  76. package/lib/cjs/extension/ExtensionAdmin.js +106 -0
  77. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -0
  78. package/lib/cjs/extension/ExtensionHost.d.ts +23 -0
  79. package/lib/cjs/extension/ExtensionHost.d.ts.map +1 -0
  80. package/lib/cjs/extension/ExtensionHost.js +26 -0
  81. package/lib/cjs/extension/ExtensionHost.js.map +1 -0
  82. package/lib/cjs/extension/ExtensionImpl.d.ts +21 -0
  83. package/lib/cjs/extension/ExtensionImpl.d.ts.map +1 -0
  84. package/lib/cjs/extension/ExtensionImpl.js +45 -0
  85. package/lib/cjs/extension/ExtensionImpl.js.map +1 -0
  86. package/lib/cjs/extension/ExtensionLoader.d.ts +26 -0
  87. package/lib/cjs/extension/ExtensionLoader.d.ts.map +1 -0
  88. package/lib/cjs/extension/ExtensionLoader.js +10 -0
  89. package/lib/cjs/extension/ExtensionLoader.js.map +1 -0
  90. package/lib/cjs/extension/ExtensionRuntime.d.ts +5 -0
  91. package/lib/cjs/extension/ExtensionRuntime.d.ts.map +1 -0
  92. package/lib/cjs/extension/ExtensionRuntime.js +86 -0
  93. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -0
  94. package/lib/cjs/extension/extensions.d.ts +19 -0
  95. package/lib/cjs/extension/extensions.d.ts.map +1 -0
  96. package/lib/cjs/extension/extensions.js +36 -0
  97. package/lib/cjs/extension/extensions.js.map +1 -0
  98. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  99. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  100. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +48 -44
  101. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  102. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +90 -80
  103. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  104. package/lib/cjs/quantity-formatting/QuantityFormatter.js +85 -45
  105. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  106. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  107. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  108. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js +32 -0
  109. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  110. package/lib/cjs/quantity-formatting/UnitsData.d.ts +11 -0
  111. package/lib/cjs/quantity-formatting/UnitsData.d.ts.map +1 -0
  112. package/lib/cjs/quantity-formatting/UnitsData.js +59 -0
  113. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -0
  114. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  115. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  116. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  117. package/lib/cjs/render/RenderPlanarClassifier.d.ts +1 -1
  118. package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
  119. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  120. package/lib/cjs/render/RenderSystem.d.ts +12 -7
  121. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  122. package/lib/cjs/render/RenderSystem.js +8 -5
  123. package/lib/cjs/render/RenderSystem.js.map +1 -1
  124. package/lib/cjs/render/RenderTarget.d.ts +4 -4
  125. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  126. package/lib/cjs/render/RenderTarget.js.map +1 -1
  127. package/lib/cjs/render/Scene.d.ts.map +1 -1
  128. package/lib/cjs/render/Scene.js.map +1 -1
  129. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  130. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  131. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  132. package/lib/cjs/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  133. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  134. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  135. package/lib/cjs/render/webgl/BranchState.d.ts +2 -0
  136. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  137. package/lib/cjs/render/webgl/BranchState.js +5 -3
  138. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  139. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  140. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  141. package/lib/cjs/render/webgl/Graphic.d.ts +5 -3
  142. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/Graphic.js +7 -2
  144. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  145. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +4 -1
  146. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  147. package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
  148. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  149. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +2 -2
  150. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  151. package/lib/cjs/render/webgl/PlanarTextureProjection.js +5 -3
  152. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  153. package/lib/cjs/render/webgl/RealityMesh.d.ts +31 -11
  154. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  155. package/lib/cjs/render/webgl/RealityMesh.js +155 -52
  156. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  157. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  158. package/lib/cjs/render/webgl/RenderCommands.js +4 -0
  159. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  160. package/lib/cjs/render/webgl/SceneCompositor.d.ts +3 -0
  161. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  162. package/lib/cjs/render/webgl/SceneCompositor.js +45 -19
  163. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  164. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -0
  165. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  166. package/lib/cjs/render/webgl/ShaderProgram.js +1 -0
  167. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  168. package/lib/cjs/render/webgl/System.d.ts +9 -9
  169. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  170. package/lib/cjs/render/webgl/System.js +5 -5
  171. package/lib/cjs/render/webgl/System.js.map +1 -1
  172. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  173. package/lib/cjs/render/webgl/Target.js.map +1 -1
  174. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +1 -1
  175. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  176. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  177. package/lib/cjs/render/webgl/glsl/RealityMesh.js +102 -27
  178. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  179. package/lib/cjs/tile/ClassifierTileTree.d.ts +4 -2
  180. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  181. package/lib/cjs/tile/ClassifierTileTree.js +31 -16
  182. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  183. package/lib/cjs/tile/GltfReader.d.ts +22 -3
  184. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  185. package/lib/cjs/tile/GltfReader.js +224 -40
  186. package/lib/cjs/tile/GltfReader.js.map +1 -1
  187. package/lib/cjs/tile/OPCFormatInterpreter.d.ts +22 -0
  188. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -0
  189. package/lib/cjs/tile/OPCFormatInterpreter.js +92 -0
  190. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -0
  191. package/lib/cjs/tile/PntsReader.d.ts +1 -1
  192. package/lib/cjs/tile/PntsReader.d.ts.map +1 -1
  193. package/lib/cjs/tile/PntsReader.js +170 -36
  194. package/lib/cjs/tile/PntsReader.js.map +1 -1
  195. package/lib/cjs/tile/PrimaryTileTree.d.ts +18 -2
  196. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  197. package/lib/cjs/tile/PrimaryTileTree.js +53 -2
  198. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  199. package/lib/cjs/tile/RealityModelTileTree.d.ts +24 -3
  200. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  201. package/lib/cjs/tile/RealityModelTileTree.js +36 -11
  202. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  203. package/lib/cjs/tile/RealityTile.d.ts +16 -2
  204. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  205. package/lib/cjs/tile/RealityTile.js +32 -0
  206. package/lib/cjs/tile/RealityTile.js.map +1 -1
  207. package/lib/cjs/tile/RealityTileDrawArgs.d.ts +4 -1
  208. package/lib/cjs/tile/RealityTileDrawArgs.d.ts.map +1 -1
  209. package/lib/cjs/tile/RealityTileDrawArgs.js +3 -1
  210. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  211. package/lib/cjs/tile/RealityTileLoader.d.ts +7 -4
  212. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  213. package/lib/cjs/tile/RealityTileLoader.js +19 -5
  214. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  215. package/lib/cjs/tile/RealityTileTree.d.ts +4 -1
  216. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  217. package/lib/cjs/tile/RealityTileTree.js +11 -3
  218. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  219. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  220. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  221. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +179 -0
  222. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  223. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  224. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  225. package/lib/cjs/tile/TileDrawArgs.js +5 -0
  226. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  227. package/lib/cjs/tile/TileGeometryCollector.d.ts +80 -0
  228. package/lib/cjs/tile/TileGeometryCollector.d.ts.map +1 -0
  229. package/lib/cjs/tile/TileGeometryCollector.js +71 -0
  230. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -0
  231. package/lib/cjs/tile/TileTree.d.ts +7 -1
  232. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  233. package/lib/cjs/tile/TileTree.js +7 -0
  234. package/lib/cjs/tile/TileTree.js.map +1 -1
  235. package/lib/cjs/tile/TileTreeReference.d.ts +26 -1
  236. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  237. package/lib/cjs/tile/TileTreeReference.js +40 -0
  238. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  239. package/lib/cjs/tile/internal.d.ts +4 -0
  240. package/lib/cjs/tile/internal.d.ts.map +1 -1
  241. package/lib/cjs/tile/internal.js +4 -0
  242. package/lib/cjs/tile/internal.js.map +1 -1
  243. package/lib/cjs/tile/map/CesiumTerrainProvider.js +2 -2
  244. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  245. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
  246. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  247. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +45 -12
  248. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  249. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
  250. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  251. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  252. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  253. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  254. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  255. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
  256. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  257. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
  258. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  259. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  260. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  261. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  262. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  263. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  264. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  265. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  266. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  267. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  268. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  269. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -3
  270. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  271. package/lib/cjs/tile/map/ImageryTileTree.js +4 -3
  272. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  273. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +26 -0
  274. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -0
  275. package/lib/cjs/tile/map/MapFeatureInfo.js +19 -0
  276. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -0
  277. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  278. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  279. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  280. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +3 -3
  281. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  282. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  283. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +5 -4
  284. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  285. package/lib/cjs/tile/map/MapLayerImageryProvider.js +5 -1
  286. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  287. package/lib/cjs/tile/map/MapLayerSources.d.ts +2 -2
  288. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  289. package/lib/cjs/tile/map/MapLayerSources.js +6 -4
  290. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  291. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  292. package/lib/cjs/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  293. package/lib/cjs/tile/map/MapLayerTileTreeReference.js +26 -3
  294. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  295. package/lib/cjs/tile/map/MapTile.d.ts +12 -10
  296. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  297. package/lib/cjs/tile/map/MapTile.js +60 -39
  298. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  299. package/lib/cjs/tile/map/MapTileLoader.d.ts +2 -1
  300. package/lib/cjs/tile/map/MapTileLoader.d.ts.map +1 -1
  301. package/lib/cjs/tile/map/MapTileLoader.js +4 -1
  302. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  303. package/lib/cjs/tile/map/MapTileTree.d.ts +18 -8
  304. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  305. package/lib/cjs/tile/map/MapTileTree.js +148 -61
  306. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  307. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  308. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +1 -1
  309. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  310. package/lib/cjs/tools/ToolAdmin.d.ts +2 -3
  311. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  312. package/lib/cjs/tools/ToolAdmin.js +7 -2
  313. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  314. package/lib/cjs/tools/ViewTool.d.ts +4 -4
  315. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  316. package/lib/cjs/tools/ViewTool.js +1 -1
  317. package/lib/cjs/tools/ViewTool.js.map +1 -1
  318. package/lib/esm/AccuSnap.js +2 -2
  319. package/lib/esm/AccuSnap.js.map +1 -1
  320. package/lib/esm/ApproximateTerrainHeights.d.ts +1 -1
  321. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  322. package/lib/esm/ApproximateTerrainHeights.js +2 -9
  323. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  324. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +12 -0
  325. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -0
  326. package/lib/esm/ApproximateTerrainHeightsProps.js +10 -0
  327. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -0
  328. package/lib/esm/CategorySelectorState.js +1 -1
  329. package/lib/esm/CategorySelectorState.js.map +1 -1
  330. package/lib/esm/DisplayStyleState.d.ts +4 -3
  331. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  332. package/lib/esm/DisplayStyleState.js +34 -10
  333. package/lib/esm/DisplayStyleState.js.map +1 -1
  334. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  335. package/lib/esm/DrawingViewState.js +6 -5
  336. package/lib/esm/DrawingViewState.js.map +1 -1
  337. package/lib/esm/FrontendLoggerCategory.d.ts +3 -1
  338. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  339. package/lib/esm/FrontendLoggerCategory.js +2 -0
  340. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  341. package/lib/esm/IModelApp.d.ts +8 -4
  342. package/lib/esm/IModelApp.d.ts.map +1 -1
  343. package/lib/esm/IModelApp.js +20 -10
  344. package/lib/esm/IModelApp.js.map +1 -1
  345. package/lib/esm/IModelConnection.d.ts +3 -5
  346. package/lib/esm/IModelConnection.d.ts.map +1 -1
  347. package/lib/esm/IModelConnection.js +5 -11
  348. package/lib/esm/IModelConnection.js.map +1 -1
  349. package/lib/esm/ImageUtil.d.ts.map +1 -1
  350. package/lib/esm/ImageUtil.js +8 -14
  351. package/lib/esm/ImageUtil.js.map +1 -1
  352. package/lib/esm/LocalhostIpcApp.d.ts +2 -0
  353. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  354. package/lib/esm/LocalhostIpcApp.js +10 -4
  355. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  356. package/lib/esm/RealityDataSource.d.ts +60 -14
  357. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  358. package/lib/esm/RealityDataSource.js +37 -237
  359. package/lib/esm/RealityDataSource.js.map +1 -1
  360. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts +67 -0
  361. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.d.ts.map +1 -0
  362. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js +162 -0
  363. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -0
  364. package/lib/esm/RealityDataSourceContextShareImpl.d.ts +83 -0
  365. package/lib/esm/RealityDataSourceContextShareImpl.d.ts.map +1 -0
  366. package/lib/esm/RealityDataSourceContextShareImpl.js +230 -0
  367. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -0
  368. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +65 -0
  369. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -0
  370. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +131 -0
  371. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -0
  372. package/lib/esm/SheetViewState.js +4 -0
  373. package/lib/esm/SheetViewState.js.map +1 -1
  374. package/lib/esm/ViewState.d.ts +8 -0
  375. package/lib/esm/ViewState.d.ts.map +1 -1
  376. package/lib/esm/ViewState.js +1 -1
  377. package/lib/esm/ViewState.js.map +1 -1
  378. package/lib/esm/Viewport.d.ts +30 -12
  379. package/lib/esm/Viewport.d.ts.map +1 -1
  380. package/lib/esm/Viewport.js +43 -1
  381. package/lib/esm/Viewport.js.map +1 -1
  382. package/lib/esm/core-frontend.d.ts +6 -4
  383. package/lib/esm/core-frontend.d.ts.map +1 -1
  384. package/lib/esm/core-frontend.js +6 -4
  385. package/lib/esm/core-frontend.js.map +1 -1
  386. package/lib/esm/extension/Extension.d.ts +48 -0
  387. package/lib/esm/extension/Extension.d.ts.map +1 -0
  388. package/lib/esm/extension/Extension.js +15 -0
  389. package/lib/esm/extension/Extension.js.map +1 -0
  390. package/lib/esm/extension/ExtensionAdmin.d.ts +64 -0
  391. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -0
  392. package/lib/esm/extension/ExtensionAdmin.js +102 -0
  393. package/lib/esm/extension/ExtensionAdmin.js.map +1 -0
  394. package/lib/esm/extension/ExtensionHost.d.ts +23 -0
  395. package/lib/esm/extension/ExtensionHost.d.ts.map +1 -0
  396. package/lib/esm/extension/ExtensionHost.js +22 -0
  397. package/lib/esm/extension/ExtensionHost.js.map +1 -0
  398. package/lib/esm/extension/ExtensionImpl.d.ts +21 -0
  399. package/lib/esm/extension/ExtensionImpl.d.ts.map +1 -0
  400. package/lib/esm/extension/ExtensionImpl.js +40 -0
  401. package/lib/esm/extension/ExtensionImpl.js.map +1 -0
  402. package/lib/esm/extension/ExtensionLoader.d.ts +26 -0
  403. package/lib/esm/extension/ExtensionLoader.d.ts.map +1 -0
  404. package/lib/esm/extension/ExtensionLoader.js +9 -0
  405. package/lib/esm/extension/ExtensionLoader.js.map +1 -0
  406. package/lib/esm/extension/ExtensionRuntime.d.ts +5 -0
  407. package/lib/esm/extension/ExtensionRuntime.d.ts.map +1 -0
  408. package/lib/esm/extension/ExtensionRuntime.js +84 -0
  409. package/lib/esm/extension/ExtensionRuntime.js.map +1 -0
  410. package/lib/esm/extension/extensions.d.ts +19 -0
  411. package/lib/esm/extension/extensions.d.ts.map +1 -0
  412. package/lib/esm/extension/extensions.js +24 -0
  413. package/lib/esm/extension/extensions.js.map +1 -0
  414. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +2 -2
  415. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  416. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +48 -44
  417. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  418. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +90 -80
  419. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  420. package/lib/esm/quantity-formatting/QuantityFormatter.js +85 -42
  421. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  422. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts +54 -0
  423. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.d.ts.map +1 -0
  424. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js +26 -0
  425. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -0
  426. package/lib/esm/quantity-formatting/UnitsData.d.ts +11 -0
  427. package/lib/esm/quantity-formatting/UnitsData.d.ts.map +1 -0
  428. package/lib/esm/quantity-formatting/UnitsData.js +56 -0
  429. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -0
  430. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  431. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  432. package/lib/esm/render/GraphicBranch.js.map +1 -1
  433. package/lib/esm/render/RenderPlanarClassifier.d.ts +1 -1
  434. package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
  435. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  436. package/lib/esm/render/RenderSystem.d.ts +12 -7
  437. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  438. package/lib/esm/render/RenderSystem.js +6 -3
  439. package/lib/esm/render/RenderSystem.js.map +1 -1
  440. package/lib/esm/render/RenderTarget.d.ts +4 -4
  441. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  442. package/lib/esm/render/RenderTarget.js.map +1 -1
  443. package/lib/esm/render/Scene.d.ts.map +1 -1
  444. package/lib/esm/render/Scene.js.map +1 -1
  445. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts +17 -2
  446. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.d.ts.map +1 -1
  447. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js +39 -2
  448. package/lib/esm/render/primitives/mesh/RealityMeshPrimitive.js.map +1 -1
  449. package/lib/esm/render/webgl/BackgroundMapDrape.js +1 -1
  450. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  451. package/lib/esm/render/webgl/BranchState.d.ts +2 -0
  452. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  453. package/lib/esm/render/webgl/BranchState.js +5 -3
  454. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  455. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  456. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  457. package/lib/esm/render/webgl/Graphic.d.ts +5 -3
  458. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  459. package/lib/esm/render/webgl/Graphic.js +7 -2
  460. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  461. package/lib/esm/render/webgl/PlanarClassifier.d.ts +4 -1
  462. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  463. package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
  464. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  465. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +2 -2
  466. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  467. package/lib/esm/render/webgl/PlanarTextureProjection.js +5 -3
  468. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  469. package/lib/esm/render/webgl/RealityMesh.d.ts +31 -11
  470. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  471. package/lib/esm/render/webgl/RealityMesh.js +155 -52
  472. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  473. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  474. package/lib/esm/render/webgl/RenderCommands.js +4 -0
  475. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  476. package/lib/esm/render/webgl/SceneCompositor.d.ts +3 -0
  477. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  478. package/lib/esm/render/webgl/SceneCompositor.js +45 -19
  479. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  480. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -0
  481. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  482. package/lib/esm/render/webgl/ShaderProgram.js +1 -0
  483. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  484. package/lib/esm/render/webgl/System.d.ts +9 -9
  485. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  486. package/lib/esm/render/webgl/System.js +6 -6
  487. package/lib/esm/render/webgl/System.js.map +1 -1
  488. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  489. package/lib/esm/render/webgl/Target.js.map +1 -1
  490. package/lib/esm/render/webgl/glsl/PlanarClassification.js +1 -1
  491. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  492. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  493. package/lib/esm/render/webgl/glsl/RealityMesh.js +103 -28
  494. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  495. package/lib/esm/tile/ClassifierTileTree.d.ts +4 -2
  496. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  497. package/lib/esm/tile/ClassifierTileTree.js +32 -17
  498. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  499. package/lib/esm/tile/GltfReader.d.ts +22 -3
  500. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  501. package/lib/esm/tile/GltfReader.js +207 -42
  502. package/lib/esm/tile/GltfReader.js.map +1 -1
  503. package/lib/esm/tile/OPCFormatInterpreter.d.ts +22 -0
  504. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -0
  505. package/lib/esm/tile/OPCFormatInterpreter.js +88 -0
  506. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -0
  507. package/lib/esm/tile/PntsReader.d.ts +1 -1
  508. package/lib/esm/tile/PntsReader.d.ts.map +1 -1
  509. package/lib/esm/tile/PntsReader.js +154 -39
  510. package/lib/esm/tile/PntsReader.js.map +1 -1
  511. package/lib/esm/tile/PrimaryTileTree.d.ts +18 -2
  512. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  513. package/lib/esm/tile/PrimaryTileTree.js +51 -2
  514. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  515. package/lib/esm/tile/RealityModelTileTree.d.ts +24 -3
  516. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  517. package/lib/esm/tile/RealityModelTileTree.js +36 -12
  518. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  519. package/lib/esm/tile/RealityTile.d.ts +16 -2
  520. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  521. package/lib/esm/tile/RealityTile.js +32 -0
  522. package/lib/esm/tile/RealityTile.js.map +1 -1
  523. package/lib/esm/tile/RealityTileDrawArgs.d.ts +4 -1
  524. package/lib/esm/tile/RealityTileDrawArgs.d.ts.map +1 -1
  525. package/lib/esm/tile/RealityTileDrawArgs.js +3 -1
  526. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  527. package/lib/esm/tile/RealityTileLoader.d.ts +7 -4
  528. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  529. package/lib/esm/tile/RealityTileLoader.js +19 -5
  530. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  531. package/lib/esm/tile/RealityTileTree.d.ts +4 -1
  532. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  533. package/lib/esm/tile/RealityTileTree.js +13 -5
  534. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  535. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts +52 -0
  536. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -0
  537. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +175 -0
  538. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -0
  539. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  540. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  541. package/lib/esm/tile/TileDrawArgs.js +5 -0
  542. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  543. package/lib/esm/tile/TileGeometryCollector.d.ts +80 -0
  544. package/lib/esm/tile/TileGeometryCollector.d.ts.map +1 -0
  545. package/lib/esm/tile/TileGeometryCollector.js +67 -0
  546. package/lib/esm/tile/TileGeometryCollector.js.map +1 -0
  547. package/lib/esm/tile/TileTree.d.ts +7 -1
  548. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  549. package/lib/esm/tile/TileTree.js +7 -0
  550. package/lib/esm/tile/TileTree.js.map +1 -1
  551. package/lib/esm/tile/TileTreeReference.d.ts +26 -1
  552. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  553. package/lib/esm/tile/TileTreeReference.js +42 -2
  554. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  555. package/lib/esm/tile/internal.d.ts +4 -0
  556. package/lib/esm/tile/internal.d.ts.map +1 -1
  557. package/lib/esm/tile/internal.js +4 -0
  558. package/lib/esm/tile/internal.js.map +1 -1
  559. package/lib/esm/tile/map/CesiumTerrainProvider.js +2 -2
  560. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  561. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +5 -3
  562. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  563. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +46 -13
  564. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  565. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +2 -2
  566. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
  567. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  568. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +2 -2
  569. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
  570. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  571. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +2 -2
  572. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
  573. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +4 -3
  574. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  575. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts +2 -2
  576. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.d.ts.map +1 -1
  577. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  578. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +2 -2
  579. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  580. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
  581. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  582. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +2 -2
  583. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  584. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  585. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -3
  586. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  587. package/lib/esm/tile/map/ImageryTileTree.js +4 -3
  588. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  589. package/lib/esm/tile/map/MapFeatureInfo.d.ts +26 -0
  590. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -0
  591. package/lib/esm/tile/map/MapFeatureInfo.js +15 -0
  592. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -0
  593. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +4 -4
  594. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  595. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  596. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +3 -3
  597. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  598. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  599. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +5 -4
  600. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  601. package/lib/esm/tile/map/MapLayerImageryProvider.js +5 -1
  602. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  603. package/lib/esm/tile/map/MapLayerSources.d.ts +2 -2
  604. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  605. package/lib/esm/tile/map/MapLayerSources.js +6 -4
  606. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  607. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts +10 -2
  608. package/lib/esm/tile/map/MapLayerTileTreeReference.d.ts.map +1 -1
  609. package/lib/esm/tile/map/MapLayerTileTreeReference.js +25 -3
  610. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  611. package/lib/esm/tile/map/MapTile.d.ts +12 -10
  612. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  613. package/lib/esm/tile/map/MapTile.js +60 -39
  614. package/lib/esm/tile/map/MapTile.js.map +1 -1
  615. package/lib/esm/tile/map/MapTileLoader.d.ts +2 -1
  616. package/lib/esm/tile/map/MapTileLoader.d.ts.map +1 -1
  617. package/lib/esm/tile/map/MapTileLoader.js +4 -1
  618. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  619. package/lib/esm/tile/map/MapTileTree.d.ts +18 -8
  620. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  621. package/lib/esm/tile/map/MapTileTree.js +150 -63
  622. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  623. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  624. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +2 -2
  625. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  626. package/lib/esm/tools/ToolAdmin.d.ts +2 -3
  627. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  628. package/lib/esm/tools/ToolAdmin.js +8 -3
  629. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  630. package/lib/esm/tools/ViewTool.d.ts +4 -4
  631. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  632. package/lib/esm/tools/ViewTool.js +1 -1
  633. package/lib/esm/tools/ViewTool.js.map +1 -1
  634. package/package.json +22 -20
  635. package/lib/cjs/tile/DracoDecoder.d.ts +0 -20
  636. package/lib/cjs/tile/DracoDecoder.d.ts.map +0 -1
  637. package/lib/cjs/tile/DracoDecoder.js +0 -169
  638. package/lib/cjs/tile/DracoDecoder.js.map +0 -1
  639. package/lib/esm/tile/DracoDecoder.d.ts +0 -20
  640. package/lib/esm/tile/DracoDecoder.d.ts.map +0 -1
  641. package/lib/esm/tile/DracoDecoder.js +0 -165
  642. package/lib/esm/tile/DracoDecoder.js.map +0 -1
  643. package/lib/public/assets/approximateTerrainHeights.json +0 -1
@@ -0,0 +1,22 @@
1
+ import { PointCloudReader } from "@itwin/core-orbitgt";
2
+ import { SpatialLocationAndExtents } from "../RealityDataSource";
3
+ /**
4
+ * This class provide methods used to interpret Orbit Point Cloud (OPC) format
5
+ * @internal
6
+ */
7
+ export declare class OPCFormatInterpreter {
8
+ /** Gets an OPC file reader from a blobFileUrl
9
+ * @param blobFileURL the name of the file.
10
+ * @returns return a file reader open to read provided blob file
11
+ * @internal
12
+ */
13
+ static getFileReaderFromBlobFileURL(blobFileURL: string): Promise<PointCloudReader>;
14
+ /** Gets reality data spatial location and extents
15
+ * @param fileReader a file reader instance obtains from call to getFileReaderFromBlobFileURL
16
+ * @returns spatial location and volume of interest, in meters, centered around `spatial location`
17
+ * @throws [[RealityDataError]] if source is invalid or cannot be read
18
+ * @internal
19
+ */
20
+ static getSpatialLocationAndExtents(fileReader: PointCloudReader): Promise<SpatialLocationAndExtents>;
21
+ }
22
+ //# sourceMappingURL=OPCFormatInterpreter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OPCFormatInterpreter.d.ts","sourceRoot":"","sources":["../../../src/tile/OPCFormatInterpreter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAyF,gBAAgB,EAAS,MAAM,qBAAqB,CAAC;AAIrJ,OAAO,EAAoB,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAInF;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B;;;;OAIG;WACiB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBhG;;;;;OAKG;WACiB,4BAA4B,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CA2CnH"}
@@ -0,0 +1,92 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.OPCFormatInterpreter = void 0;
8
+ const core_common_1 = require("@itwin/core-common");
9
+ const core_geometry_1 = require("@itwin/core-geometry");
10
+ const core_orbitgt_1 = require("@itwin/core-orbitgt");
11
+ const FrontendLoggerCategory_1 = require("../FrontendLoggerCategory");
12
+ const DownloaderNode_1 = require("@itwin/core-orbitgt/lib/cjs/system/runtime/DownloaderNode");
13
+ const core_bentley_1 = require("@itwin/core-bentley");
14
+ const RealityDataSource_1 = require("../RealityDataSource");
15
+ const loggerCategory = FrontendLoggerCategory_1.FrontendLoggerCategory.RealityData;
16
+ /**
17
+ * This class provide methods used to interpret Orbit Point Cloud (OPC) format
18
+ * @internal
19
+ */
20
+ class OPCFormatInterpreter {
21
+ /** Gets an OPC file reader from a blobFileUrl
22
+ * @param blobFileURL the name of the file.
23
+ * @returns return a file reader open to read provided blob file
24
+ * @internal
25
+ */
26
+ static async getFileReaderFromBlobFileURL(blobFileURL) {
27
+ if (core_orbitgt_1.Downloader.INSTANCE == null)
28
+ core_orbitgt_1.Downloader.INSTANCE = new DownloaderNode_1.DownloaderNode();
29
+ if (core_orbitgt_1.CRSManager.ENGINE == null)
30
+ core_orbitgt_1.CRSManager.ENGINE = await core_orbitgt_1.OnlineEngine.create();
31
+ // let blobFileURL: string = rdUrl;
32
+ // if (accountName.length > 0) blobFileURL = UrlFS.getAzureBlobSasUrl(opcConfig.accountName, opcConfig.containerName, opcConfig.blobFileName, opcConfig.sasToken);
33
+ const urlFS = new core_orbitgt_1.UrlFS();
34
+ // wrap a caching layer (16 MB) around the blob file
35
+ const blobFileSize = await urlFS.getFileLength(blobFileURL);
36
+ core_bentley_1.Logger.logTrace(loggerCategory, `OPC File Size is ${blobFileSize}`);
37
+ const blobFile = new core_orbitgt_1.PageCachedFile(urlFS, blobFileURL, blobFileSize, 128 * 1024 /* pageSize */, 128 /* maxPageCount */);
38
+ const fileReader = await core_orbitgt_1.OPCReader.openFile(blobFile, blobFileURL, true /* lazyLoading */);
39
+ return fileReader;
40
+ }
41
+ /** Gets reality data spatial location and extents
42
+ * @param fileReader a file reader instance obtains from call to getFileReaderFromBlobFileURL
43
+ * @returns spatial location and volume of interest, in meters, centered around `spatial location`
44
+ * @throws [[RealityDataError]] if source is invalid or cannot be read
45
+ * @internal
46
+ */
47
+ static async getSpatialLocationAndExtents(fileReader) {
48
+ let worldRange = new core_geometry_1.Range3d();
49
+ let location;
50
+ let isGeolocated = true;
51
+ const bounds = fileReader.getFileBounds();
52
+ worldRange = core_geometry_1.Range3d.createXYZXYZ(bounds.getMinX(), bounds.getMinY(), bounds.getMinZ(), bounds.getMaxX(), bounds.getMaxY(), bounds.getMaxZ());
53
+ isGeolocated = false;
54
+ const fileCrs = fileReader.getFileCRS();
55
+ if (fileCrs) {
56
+ try {
57
+ await core_orbitgt_1.CRSManager.ENGINE.prepareForArea(fileCrs, bounds);
58
+ const wgs84ECEFCrs = "4978";
59
+ await core_orbitgt_1.CRSManager.ENGINE.prepareForArea(wgs84ECEFCrs, new core_orbitgt_1.OrbitGtBounds());
60
+ const ecefBounds = core_orbitgt_1.CRSManager.transformBounds(bounds, fileCrs, wgs84ECEFCrs);
61
+ const ecefRange = core_geometry_1.Range3d.createXYZXYZ(ecefBounds.getMinX(), ecefBounds.getMinY(), ecefBounds.getMinZ(), ecefBounds.getMaxX(), ecefBounds.getMaxY(), ecefBounds.getMaxZ());
62
+ const ecefCenter = ecefRange.localXYZToWorld(.5, .5, .5);
63
+ const cartoCenter = core_common_1.Cartographic.fromEcef(ecefCenter);
64
+ cartoCenter.height = 0;
65
+ const ecefLocation = core_common_1.EcefLocation.createFromCartographicOrigin(cartoCenter);
66
+ location = ecefLocation;
67
+ // this.iModelDb.setEcefLocation(ecefLocation);
68
+ const ecefToWorld = ecefLocation.getTransform().inverse();
69
+ worldRange = ecefToWorld.multiplyRange(ecefRange);
70
+ isGeolocated = true;
71
+ }
72
+ catch (e) {
73
+ core_bentley_1.Logger.logWarning(loggerCategory, `Error getSpatialLocationAndExtents - cannot interpret point cloud`);
74
+ const errorProps = core_bentley_1.BentleyError.getErrorProps(e);
75
+ const getMetaData = () => { return { errorProps }; };
76
+ const error = new RealityDataSource_1.RealityDataError(core_bentley_1.RealityDataStatus.InvalidData, "Invalid or unknown data", getMetaData);
77
+ throw error;
78
+ }
79
+ }
80
+ else {
81
+ // NoGCS case
82
+ isGeolocated = false;
83
+ const centerOfEarth = new core_common_1.EcefLocation({ origin: { x: 0.0, y: 0.0, z: 0.0 }, orientation: { yaw: 0.0, pitch: 0.0, roll: 0.0 } });
84
+ location = centerOfEarth;
85
+ core_bentley_1.Logger.logTrace(loggerCategory, "OPC RealityData NOT Geolocated", () => ({ ...location }));
86
+ }
87
+ const spatialLocation = { location, worldRange, isGeolocated };
88
+ return spatialLocation;
89
+ }
90
+ }
91
+ exports.OPCFormatInterpreter = OPCFormatInterpreter;
92
+ //# sourceMappingURL=OPCFormatInterpreter.js.map
@@ -0,0 +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, OnlineEngine, OPCReader, OrbitGtBounds, PageCachedFile, PointCloudReader, UrlFS } from \"@itwin/core-orbitgt\";\r\nimport { FrontendLoggerCategory } from \"../FrontendLoggerCategory\";\r\nimport { DownloaderNode } from \"@itwin/core-orbitgt/lib/cjs/system/runtime/DownloaderNode\";\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 DownloaderNode();\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 = () => {return { errorProps };};\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"]}
@@ -9,5 +9,5 @@ import { RenderSystem } from "../render/RenderSystem";
9
9
  /** Deserialize a point cloud tile and return it as a RenderGraphic.
10
10
  * @internal
11
11
  */
12
- export declare function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): RenderGraphic | undefined;
12
+ export declare function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): Promise<RenderGraphic | undefined>;
13
13
  //# sourceMappingURL=PntsReader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PntsReader.d.ts","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAa,mBAAmB,EAAkF,MAAM,oBAAoB,CAAC;AACpJ,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAgExM"}
1
+ {"version":3,"file":"PntsReader.d.ts","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAwB,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAa,mBAAmB,EAA4F,MAAM,oBAAoB,CAAC;AAE9J,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAsMtD;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA0DvN"}
@@ -6,18 +6,155 @@
6
6
  /** @packageDocumentation
7
7
  * @module Tiles
8
8
  */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
9
28
  Object.defineProperty(exports, "__esModule", { value: true });
10
29
  exports.readPointCloudTileContent = void 0;
11
30
  const core_bentley_1 = require("@itwin/core-bentley");
12
31
  const core_geometry_1 = require("@itwin/core-geometry");
13
32
  const core_common_1 = require("@itwin/core-common");
33
+ const FrontendLoggerCategory_1 = require("../FrontendLoggerCategory");
14
34
  const MeshPrimitives_1 = require("../render/primitives/mesh/MeshPrimitives");
15
35
  const PointCloudPrimitive_1 = require("../render/primitives/PointCloudPrimitive");
36
+ function readPntsColors(stream, dataOffset, pnts) {
37
+ const nPts = pnts.POINTS_LENGTH;
38
+ const nComponents = 3 * nPts;
39
+ if (pnts.RGB)
40
+ return new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGB.byteOffset, nComponents);
41
+ if (pnts.RGBA) {
42
+ // ###TODO support point cloud transparency.
43
+ const rgb = new Uint8Array(nComponents);
44
+ const rgba = new Uint8Array(stream.arrayBuffer, dataOffset + pnts.RGBA.byteOffset, nComponents);
45
+ for (let i = 0; i < nComponents; i += 4) {
46
+ rgb[i + 0] = rgba[i + 0];
47
+ rgb[i + 1] = rgba[i + 1];
48
+ rgb[i + 2] = rgba[i + 2];
49
+ }
50
+ return rgb;
51
+ }
52
+ else if (pnts.RGB565) {
53
+ // Each color is 16 bits: 5 red, 6 green, 5 blue.
54
+ const crgb = new Uint16Array(stream.arrayBuffer, dataOffset + pnts.RGB565.byteOffset, nPts);
55
+ const rgb = new Uint8Array(nComponents);
56
+ for (let i = 0; i < nPts; i++) {
57
+ const c = crgb[i];
58
+ rgb[i + 0] = (c >> 11) & 0x1f;
59
+ rgb[i + 1] = (c >> 5) & 0x3f;
60
+ rgb[i + 2] = c & 0x1f;
61
+ }
62
+ return rgb;
63
+ }
64
+ return undefined;
65
+ }
66
+ function readPnts(stream, dataOffset, pnts) {
67
+ const nPts = pnts.POINTS_LENGTH;
68
+ let params;
69
+ let points;
70
+ if (pnts.POSITION_QUANTIZED) {
71
+ const qpos = pnts.POSITION_QUANTIZED;
72
+ const offset = pnts.QUANTIZED_VOLUME_OFFSET;
73
+ const scale = pnts.QUANTIZED_VOLUME_SCALE;
74
+ const qOrigin = new core_geometry_1.Point3d(offset[0], offset[1], offset[2]);
75
+ const qScale = new core_geometry_1.Point3d(core_common_1.Quantization.computeScale(scale[0]), core_common_1.Quantization.computeScale(scale[1]), core_common_1.Quantization.computeScale(scale[2]));
76
+ params = core_common_1.QParams3d.fromOriginAndScale(qOrigin, qScale);
77
+ points = new Uint16Array(stream.arrayBuffer, dataOffset + qpos.byteOffset, 3 * nPts);
78
+ }
79
+ else {
80
+ const nCoords = nPts * 3;
81
+ const fpts = new Float32Array(stream.arrayBuffer, dataOffset + pnts.POSITION.byteOffset, 3 * nPts);
82
+ const range = core_geometry_1.Range3d.createNull();
83
+ for (let i = 0; i < nCoords; i += 3)
84
+ range.extendXYZ(fpts[i], fpts[i + 1], fpts[i + 2]);
85
+ params = core_common_1.QParams3d.fromRange(range);
86
+ const qpt = new core_common_1.QPoint3d();
87
+ const fpt = new core_geometry_1.Point3d();
88
+ points = new Uint16Array(3 * nPts);
89
+ for (let i = 0; i < nCoords; i += 3) {
90
+ fpt.set(fpts[i], fpts[i + 1], fpts[i + 2]);
91
+ qpt.init(fpt, params);
92
+ points[i] = qpt.x;
93
+ points[i + 1] = qpt.y;
94
+ points[i + 2] = qpt.z;
95
+ }
96
+ }
97
+ const colors = readPntsColors(stream, dataOffset, pnts);
98
+ return { params, points, colors };
99
+ }
100
+ async function decodeDracoPointCloud(buf) {
101
+ var _a, _b, _c, _d, _e, _f;
102
+ try {
103
+ const dracoLoader = (await Promise.resolve().then(() => __importStar(require("@loaders.gl/draco")))).DracoLoader;
104
+ const mesh = await dracoLoader.parse(buf, {});
105
+ if (mesh.topology !== "point-list")
106
+ return undefined;
107
+ const pos = (_a = mesh.attributes.POSITION) === null || _a === void 0 ? void 0 : _a.value;
108
+ if (!pos || (pos.length % 3) !== 0)
109
+ return undefined;
110
+ let colors = (_c = (_b = mesh.attributes.RGB) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : (_d = mesh.attributes.COLOR_0) === null || _d === void 0 ? void 0 : _d.value;
111
+ if (!colors) {
112
+ // ###TODO support point cloud transparency.
113
+ const rgba = (_e = mesh.attributes.RGBA) === null || _e === void 0 ? void 0 : _e.value;
114
+ if (rgba && (rgba.length % 4) === 0) {
115
+ // We currently don't support alpha channel for point clouds - strip it.
116
+ colors = new Uint8Array(3 * rgba.length / 4);
117
+ let j = 0;
118
+ for (let i = 0; i < rgba.length; i += 4) {
119
+ colors[j++] = rgba[i];
120
+ colors[j++] = rgba[i + 1];
121
+ colors[j++] = rgba[i + 2];
122
+ }
123
+ }
124
+ }
125
+ let posRange;
126
+ const bbox = (_f = mesh.header) === null || _f === void 0 ? void 0 : _f.boundingBox;
127
+ if (bbox) {
128
+ posRange = core_geometry_1.Range3d.createXYZXYZ(bbox[0][0], bbox[0][1], bbox[0][2], bbox[1][0], bbox[1][1], bbox[1][2]);
129
+ }
130
+ else {
131
+ posRange = core_geometry_1.Range3d.createNull();
132
+ for (let i = 0; i < pos.length; i += 3)
133
+ posRange.extendXYZ(pos[i], pos[i + 1], pos[i + 2]);
134
+ }
135
+ const params = core_common_1.QParams3d.fromRange(posRange);
136
+ const pt = core_geometry_1.Point3d.createZero();
137
+ const qpt = core_common_1.QPoint3d.create(pt, params);
138
+ const points = new Uint16Array(pos.length);
139
+ for (let i = 0; i < pos.length; i += 3) {
140
+ pt.set(pos[i], pos[i + 1], pos[i + 2]);
141
+ qpt.init(pt, params);
142
+ points[i] = qpt.x;
143
+ points[i + 1] = qpt.y;
144
+ points[i + 2] = qpt.z;
145
+ }
146
+ return { points, params, colors: colors instanceof Uint8Array ? colors : undefined };
147
+ }
148
+ catch (err) {
149
+ core_bentley_1.Logger.logWarning(FrontendLoggerCategory_1.FrontendLoggerCategory.Render, "Failed to decode draco-encoded point cloud");
150
+ core_bentley_1.Logger.logException(FrontendLoggerCategory_1.FrontendLoggerCategory.Render, err);
151
+ return undefined;
152
+ }
153
+ }
16
154
  /** Deserialize a point cloud tile and return it as a RenderGraphic.
17
155
  * @internal
18
156
  */
19
- function readPointCloudTileContent(stream, iModel, modelId, _is3d, range, system) {
20
- var _a;
157
+ async function readPointCloudTileContent(stream, iModel, modelId, _is3d, range, system) {
21
158
  const header = new core_common_1.PntsHeader(stream);
22
159
  if (!header.isValid)
23
160
  return undefined;
@@ -27,50 +164,47 @@ function readPointCloudTileContent(stream, iModel, modelId, _is3d, range, system
27
164
  const featureValue = JSON.parse(featureStr);
28
165
  if (undefined === featureValue)
29
166
  return undefined;
30
- let qParams, qPoints;
31
- let colors;
32
- const dracoPointExtension = featureValue.extensions ? featureValue.extensions["3DTILES_draco_point_compression"] : undefined;
167
+ let props;
33
168
  const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;
34
- if (dracoPointExtension && dracoPointExtension.byteLength !== undefined && dracoPointExtension.byteOffset !== undefined && ((_a = dracoPointExtension.properties) === null || _a === void 0 ? void 0 : _a.POSITION) !== undefined) {
35
- return undefined; // Defer Draco decompression until web workers implementation.
36
- /*
37
- const bufferData = new Uint8Array(stream.arrayBuffer, dataOffset + dracoPointExtension.byteOffset, dracoPointExtension.byteLength);
38
- const decoded = DracoDecoder.readDracoPointCloud(bufferData, dracoPointExtension.properties?.POSITION, dracoPointExtension.properties?.RGB);
39
- if (decoded) {
40
- qPoints = decoded.qPoints;
41
- qParams = decoded.qParams;
42
- colors = decoded.colors; */
169
+ const draco = featureValue.extensions ? featureValue.extensions["3DTILES_draco_point_compression"] : undefined;
170
+ if (draco) {
171
+ try {
172
+ const buf = new Uint8Array(stream.arrayBuffer, dataOffset + draco.byteOffset, draco.byteLength);
173
+ props = await decodeDracoPointCloud(buf);
174
+ }
175
+ catch (_) {
176
+ //
177
+ }
43
178
  }
44
179
  else {
45
- if (undefined === featureValue.POSITION_QUANTIZED ||
46
- undefined === featureValue.QUANTIZED_VOLUME_OFFSET ||
47
- undefined === featureValue.QUANTIZED_VOLUME_SCALE ||
48
- undefined === featureValue.POINTS_LENGTH ||
49
- undefined === featureValue.POSITION_QUANTIZED) {
50
- (0, core_bentley_1.assert)(false, "quantized point cloud points not found");
51
- return undefined;
52
- }
53
- const qOrigin = new core_geometry_1.Point3d(featureValue.QUANTIZED_VOLUME_OFFSET[0], featureValue.QUANTIZED_VOLUME_OFFSET[1], featureValue.QUANTIZED_VOLUME_OFFSET[2]);
54
- const qScale = new core_geometry_1.Point3d(core_common_1.Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[0]), core_common_1.Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[1]), core_common_1.Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[2]));
55
- qParams = core_common_1.QParams3d.fromOriginAndScale(qOrigin, qScale);
56
- qPoints = new Uint16Array(stream.arrayBuffer, dataOffset + featureValue.POSITION_QUANTIZED.byteOffset, 3 * featureValue.POINTS_LENGTH);
57
- if (undefined !== featureValue.RGB)
58
- colors = new Uint8Array(stream.arrayBuffer, dataOffset + featureValue.RGB.byteOffset, 3 * featureValue.POINTS_LENGTH);
180
+ props = readPnts(stream, dataOffset, featureValue);
59
181
  }
60
- if (!qPoints || !qParams)
182
+ if (!props)
61
183
  return undefined;
62
184
  if (featureValue.RTC_CENTER)
63
- qParams = core_common_1.QParams3d.fromOriginAndScale(qParams.origin.plus(core_geometry_1.Vector3d.fromJSON(featureValue.RTC_CENTER)), qParams.scale);
64
- if (undefined === colors) {
65
- colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);
66
- colors.fill(0xff, 0, colors.length); // TBD... Default color?
185
+ props.params = core_common_1.QParams3d.fromOriginAndScale(props.params.origin.plus(core_geometry_1.Vector3d.fromJSON(featureValue.RTC_CENTER)), props.params.scale);
186
+ if (!props.colors) {
187
+ // ###TODO we really should support uniform color instead of allocating an RGB value per point...
188
+ props.colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);
189
+ const rgba = featureValue.CONSTANT_RGBA;
190
+ if (rgba) {
191
+ // ###TODO support point cloud transparency.
192
+ for (let i = 0; i < featureValue.POINTS_LENGTH * 3; i += 3) {
193
+ props.colors[i] = rgba[0];
194
+ props.colors[i + 1] = rgba[1];
195
+ props.colors[i + 2] = rgba[2];
196
+ }
197
+ }
198
+ else {
199
+ // Default to white.
200
+ props.colors.fill(0xff, 0, props.colors.length);
201
+ }
67
202
  }
68
- // ###TODO? Do we expect a batch table? not currently handled...
69
203
  const featureTable = new core_common_1.FeatureTable(1, modelId, core_common_1.BatchType.Primary);
70
204
  const features = new MeshPrimitives_1.Mesh.Features(featureTable);
71
205
  features.add(new core_common_1.Feature(modelId), 1);
72
- const voxelSize = qParams.rangeDiagonal.maxAbs() / 256;
73
- let renderGraphic = system.createPointCloud(new PointCloudPrimitive_1.PointCloudArgs(qPoints, qParams, colors, features, voxelSize), iModel);
206
+ const voxelSize = props.params.rangeDiagonal.maxAbs() / 256;
207
+ let renderGraphic = system.createPointCloud(new PointCloudPrimitive_1.PointCloudArgs(props.points, props.params, props.colors, features, voxelSize), iModel);
74
208
  renderGraphic = system.createBatch(renderGraphic, core_common_1.PackedFeatureTable.pack(featureTable), range);
75
209
  return renderGraphic;
76
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PntsReader.js","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAmF;AACnF,wDAAyD;AACzD,oDAAoJ;AAEpJ,6EAAgE;AAChE,kFAA0E;AAI1E;;GAEG;AACH,SAAgB,yBAAyB,CAAC,MAAkB,EAAE,MAAwB,EAAE,OAAmB,EAAE,KAAc,EAAE,KAA0B,EAAE,MAAoB;;IAC3K,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,OAAO,SAAS,CAAC;IAEnB,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;IAEtD,IAAI,SAAS,KAAK,YAAY;QAC5B,OAAO,SAAS,CAAC;IAEnB,IAAI,OAAO,EAAE,OAAO,CAAC;IACrB,IAAI,MAA8B,CAAC;IACnC,MAAM,mBAAmB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7H,MAAM,UAAU,GAAG,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;IAC1E,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,UAAU,KAAK,SAAS,IAAI,mBAAmB,CAAC,UAAU,KAAK,SAAS,IAAI,CAAA,MAAA,mBAAmB,CAAC,UAAU,0CAAE,QAAQ,MAAK,SAAS,EAAE;QACjL,OAAO,SAAS,CAAC,CAAC,8DAA8D;QAChF;;;;;;qCAM6B;KAC9B;SAAM;QACL,IAAI,SAAS,KAAK,YAAY,CAAC,kBAAkB;YAC/C,SAAS,KAAK,YAAY,CAAC,uBAAuB;YAClD,SAAS,KAAK,YAAY,CAAC,sBAAsB;YACjD,SAAS,KAAK,YAAY,CAAC,aAAa;YACxC,SAAS,KAAK,YAAY,CAAC,kBAAkB,EAAE;YAC/C,IAAA,qBAAM,EAAC,KAAK,EAAE,wCAAwC,CAAC,CAAC;YACxD,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;QACvJ,MAAM,MAAM,GAAG,IAAI,uBAAO,CAAC,0BAAY,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,0BAAY,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,0BAAY,CAAC,YAAY,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpO,OAAO,GAAG,uBAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QACvI,IAAI,SAAS,KAAK,YAAY,CAAC,GAAG;YAChC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;KACzH;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;QACtB,OAAO,SAAS,CAAC;IAEnB,IAAI,YAAY,CAAC,UAAU;QACzB,OAAO,GAAG,uBAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzH,IAAI,SAAS,KAAK,MAAM,EAAE;QACxB,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAI,wBAAwB;KACjE;IAED,gEAAgE;IAChE,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,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvD,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,oCAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACvH,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,aAAc,EAAE,gCAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IACjG,OAAO,aAAa,CAAC;AACvB,CAAC;AAhED,8DAgEC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, ByteStream, Id64String, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, ElementAlignedBox3d, Feature, FeatureTable, PackedFeatureTable, PntsHeader, QParams3d, Quantization } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { Mesh } from \"../render/primitives/mesh/MeshPrimitives\";\r\nimport { PointCloudArgs } from \"../render/primitives/PointCloudPrimitive\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\r\n\r\n/** Deserialize a point cloud tile and return it as a RenderGraphic.\r\n * @internal\r\n */\r\nexport function readPointCloudTileContent(stream: ByteStream, iModel: IModelConnection, modelId: Id64String, _is3d: boolean, range: ElementAlignedBox3d, system: RenderSystem): RenderGraphic | undefined {\r\n const header = new PntsHeader(stream);\r\n\r\n if (!header.isValid)\r\n return undefined;\r\n\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);\r\n\r\n if (undefined === featureValue)\r\n return undefined;\r\n\r\n let qParams, qPoints;\r\n let colors: Uint8Array | undefined;\r\n const dracoPointExtension = featureValue.extensions ? featureValue.extensions[\"3DTILES_draco_point_compression\"] : undefined;\r\n const dataOffset = featureTableJsonOffset + header.featureTableJsonLength;\r\n if (dracoPointExtension && dracoPointExtension.byteLength !== undefined && dracoPointExtension.byteOffset !== undefined && dracoPointExtension.properties?.POSITION !== undefined) {\r\n return undefined; // Defer Draco decompression until web workers implementation.\r\n /*\r\n const bufferData = new Uint8Array(stream.arrayBuffer, dataOffset + dracoPointExtension.byteOffset, dracoPointExtension.byteLength);\r\n const decoded = DracoDecoder.readDracoPointCloud(bufferData, dracoPointExtension.properties?.POSITION, dracoPointExtension.properties?.RGB);\r\n if (decoded) {\r\n qPoints = decoded.qPoints;\r\n qParams = decoded.qParams;\r\n colors = decoded.colors; */\r\n } else {\r\n if (undefined === featureValue.POSITION_QUANTIZED ||\r\n undefined === featureValue.QUANTIZED_VOLUME_OFFSET ||\r\n undefined === featureValue.QUANTIZED_VOLUME_SCALE ||\r\n undefined === featureValue.POINTS_LENGTH ||\r\n undefined === featureValue.POSITION_QUANTIZED) {\r\n assert(false, \"quantized point cloud points not found\");\r\n return undefined;\r\n }\r\n\r\n const qOrigin = new Point3d(featureValue.QUANTIZED_VOLUME_OFFSET[0], featureValue.QUANTIZED_VOLUME_OFFSET[1], featureValue.QUANTIZED_VOLUME_OFFSET[2]);\r\n const qScale = new Point3d(Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[0]), Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[1]), Quantization.computeScale(featureValue.QUANTIZED_VOLUME_SCALE[2]));\r\n qParams = QParams3d.fromOriginAndScale(qOrigin, qScale);\r\n qPoints = new Uint16Array(stream.arrayBuffer, dataOffset + featureValue.POSITION_QUANTIZED.byteOffset, 3 * featureValue.POINTS_LENGTH);\r\n if (undefined !== featureValue.RGB)\r\n colors = new Uint8Array(stream.arrayBuffer, dataOffset + featureValue.RGB.byteOffset, 3 * featureValue.POINTS_LENGTH);\r\n }\r\n if (!qPoints || !qParams)\r\n return undefined;\r\n\r\n if (featureValue.RTC_CENTER)\r\n qParams = QParams3d.fromOriginAndScale(qParams.origin.plus(Vector3d.fromJSON(featureValue.RTC_CENTER)), qParams.scale);\r\n\r\n if (undefined === colors) {\r\n colors = new Uint8Array(3 * featureValue.POINTS_LENGTH);\r\n colors.fill(0xff, 0, colors.length); // TBD... Default color?\r\n }\r\n\r\n // ###TODO? Do we expect a batch table? not currently handled...\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 const voxelSize = qParams.rangeDiagonal.maxAbs() / 256;\r\n\r\n let renderGraphic = system.createPointCloud(new PointCloudArgs(qPoints, qParams, colors, features, voxelSize), iModel);\r\n renderGraphic = system.createBatch(renderGraphic!, PackedFeatureTable.pack(featureTable), range);\r\n return renderGraphic;\r\n}\r\n"]}
1
+ {"version":3,"file":"PntsReader.js","sourceRoot":"","sources":["../../../src/tile/PntsReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { ByteStream, Id64String, Logger, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { Point3d, Range3d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { BatchType, ElementAlignedBox3d, 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 { PointCloudArgs } from \"../render/primitives/PointCloudPrimitive\";\r\nimport { RenderGraphic } from \"../render/RenderGraphic\";\r\nimport { RenderSystem } from \"../render/RenderSystem\";\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;\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;\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 nCoords = nPts * 3;\r\n const fpts = new Float32Array(stream.arrayBuffer, dataOffset + pnts.POSITION.byteOffset, 3 * nPts);\r\n const range = Range3d.createNull();\r\n for (let i = 0; i < nCoords; i += 3)\r\n range.extendXYZ(fpts[i], fpts[i + 1], fpts[i + 2]);\r\n\r\n params = QParams3d.fromRange(range);\r\n const qpt = new QPoint3d();\r\n const fpt = new Point3d();\r\n points = new Uint16Array(3 * nPts);\r\n for (let i = 0; i < nCoords; i += 3) {\r\n fpt.set(fpts[i], fpts[i + 1], fpts[i + 2]);\r\n qpt.init(fpt, 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\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, range: ElementAlignedBox3d, system: RenderSystem): Promise<RenderGraphic | undefined> {\r\n const header = new PntsHeader(stream);\r\n if (!header.isValid)\r\n return undefined;\r\n\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 undefined;\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 undefined;\r\n\r\n if (featureValue.RTC_CENTER)\r\n props.params = QParams3d.fromOriginAndScale(props.params.origin.plus(Vector3d.fromJSON(featureValue.RTC_CENTER)), props.params.scale);\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 const voxelSize = props.params.rangeDiagonal.maxAbs() / 256;\r\n\r\n let renderGraphic = system.createPointCloud(new PointCloudArgs(props.points, props.params, props.colors, features, voxelSize), iModel);\r\n renderGraphic = system.createBatch(renderGraphic!, PackedFeatureTable.pack(featureTable), range);\r\n return renderGraphic;\r\n}\r\n"]}
@@ -2,15 +2,16 @@
2
2
  * @module Tiles
3
3
  */
4
4
  import { Id64String } from "@itwin/core-bentley";
5
+ import { FeatureAppearanceProvider, HiddenLine, MapLayerSettings, ModelMapLayerSettings, PrimaryTileTreeId, SpatialClassifier, ViewFlagOverrides, ViewFlagsProperties } from "@itwin/core-common";
5
6
  import { StringifiedClipVector, Transform } from "@itwin/core-geometry";
6
- import { FeatureAppearanceProvider, HiddenLine, PrimaryTileTreeId, ViewFlagOverrides } from "@itwin/core-common";
7
+ import { DisplayStyleState } from "../DisplayStyleState";
7
8
  import { IModelConnection } from "../IModelConnection";
8
9
  import { GeometricModelState } from "../ModelState";
9
10
  import { RenderClipVolume } from "../render/RenderClipVolume";
10
11
  import { SpatialViewState } from "../SpatialViewState";
11
12
  import { SceneContext } from "../ViewContext";
12
13
  import { ViewState } from "../ViewState";
13
- import { TileDrawArgs, TileTree, TileTreeOwner, TileTreeReference } from "./internal";
14
+ import { MapLayerTileTreeReference, TileDrawArgs, TileTree, TileTreeOwner, TileTreeReference } from "./internal";
14
15
  interface PrimaryTreeId {
15
16
  readonly treeId: PrimaryTileTreeId;
16
17
  readonly modelId: Id64String;
@@ -62,6 +63,21 @@ export declare class AnimatedTreeReference extends PrimaryTreeReference {
62
63
  export declare function createPrimaryTileTreeReference(view: ViewState, model: GeometricModelState): PrimaryTreeReference;
63
64
  /** @internal */
64
65
  export declare function createMaskTreeReference(view: ViewState, model: GeometricModelState): TileTreeReference;
66
+ /** @internal */
67
+ export declare class ModelMapLayerTileTreeReference extends MapLayerTileTreeReference {
68
+ private _classifier;
69
+ private _source?;
70
+ private _id;
71
+ private _owner;
72
+ get isPlanar(): boolean;
73
+ get activeClassifier(): SpatialClassifier;
74
+ constructor(layerSettings: MapLayerSettings, _classifier: SpatialClassifier, layerIndex: number, iModel: IModelConnection, _source?: DisplayStyleState | undefined);
75
+ protected createTreeId(): PrimaryTileTreeId;
76
+ get treeOwner(): TileTreeOwner;
77
+ get viewFlags(): Partial<ViewFlagsProperties>;
78
+ }
79
+ /** @internal */
80
+ export declare function createModelMapLayerTileTreeReference(layerSettings: ModelMapLayerSettings, layerIndex: number, iModel: IModelConnection): ModelMapLayerTileTreeReference | undefined;
65
81
  /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]].
66
82
  * @internal
67
83
  */
@@ -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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"}
@@ -7,10 +7,10 @@
7
7
  * @module Tiles
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SpatialTileTreeReferences = exports.createMaskTreeReference = exports.createPrimaryTileTreeReference = exports.AnimatedTreeReference = exports.disposeTileTreesForGeometricModels = void 0;
10
+ exports.SpatialTileTreeReferences = exports.createModelMapLayerTileTreeReference = exports.ModelMapLayerTileTreeReference = exports.createMaskTreeReference = exports.createPrimaryTileTreeReference = exports.AnimatedTreeReference = exports.disposeTileTreesForGeometricModels = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
- const core_geometry_1 = require("@itwin/core-geometry");
13
12
  const core_common_1 = require("@itwin/core-common");
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
16
  const RenderScheduleState_1 = require("../RenderScheduleState");
@@ -357,6 +357,57 @@ function createMaskTreeReference(view, model) {
357
357
  return new MaskTreeReference(view, model);
358
358
  }
359
359
  exports.createMaskTreeReference = createMaskTreeReference;
360
+ /** @internal */
361
+ class ModelMapLayerTileTreeReference extends internal_1.MapLayerTileTreeReference {
362
+ constructor(layerSettings, _classifier, layerIndex, iModel, _source) {
363
+ super(layerSettings, layerIndex, iModel);
364
+ this._classifier = _classifier;
365
+ this._source = _source;
366
+ this._id = {
367
+ modelId: _classifier.modelId,
368
+ is3d: true,
369
+ treeId: this.createTreeId(),
370
+ isPlanProjection: false,
371
+ forceNoInstancing: false,
372
+ };
373
+ this._owner = primaryTreeSupplier.getOwner(this._id, this.iModel);
374
+ }
375
+ get isPlanar() { return true; }
376
+ get activeClassifier() { return this._classifier; }
377
+ createTreeId() {
378
+ return { type: core_common_1.BatchType.Primary, edges: core_common_1.EdgeType.None };
379
+ }
380
+ get treeOwner() {
381
+ const newId = this.createTreeId();
382
+ if (0 !== (0, core_common_1.compareIModelTileTreeIds)(newId, this._id.treeId)) {
383
+ this._id = { modelId: this._id.modelId, is3d: this._id.is3d, treeId: newId, isPlanProjection: false, forceNoInstancing: false };
384
+ this._owner = primaryTreeSupplier.getOwner(this._id, this.iModel);
385
+ }
386
+ return this._owner;
387
+ }
388
+ get viewFlags() {
389
+ return {
390
+ renderMode: core_common_1.RenderMode.SmoothShade,
391
+ transparency: true,
392
+ textures: true,
393
+ lighting: false,
394
+ shadows: false,
395
+ monochrome: false,
396
+ materials: false,
397
+ ambientOcclusion: false,
398
+ visibleEdges: true,
399
+ hiddenEdges: false,
400
+ fill: true,
401
+ };
402
+ }
403
+ }
404
+ exports.ModelMapLayerTileTreeReference = ModelMapLayerTileTreeReference;
405
+ /** @internal */
406
+ function createModelMapLayerTileTreeReference(layerSettings, layerIndex, iModel) {
407
+ const classifier = core_common_1.SpatialClassifier.fromModelMapLayer(layerSettings);
408
+ return classifier ? new ModelMapLayerTileTreeReference(layerSettings, classifier, layerIndex, iModel) : undefined;
409
+ }
410
+ exports.createModelMapLayerTileTreeReference = createModelMapLayerTileTreeReference;
360
411
  /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]].
361
412
  * @internal
362
413
  */