@itwin/core-frontend 3.0.0-dev.98 → 3.0.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 (1224) hide show
  1. package/CHANGELOG.md +244 -35
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuSnap.js +3 -3
  4. package/lib/cjs/AccuSnap.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeights.d.ts.map +1 -1
  6. package/lib/cjs/ApproximateTerrainHeights.js +10 -5
  7. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  8. package/lib/cjs/BackgroundMapGeometry.d.ts +1 -1
  9. package/lib/cjs/BackgroundMapGeometry.d.ts.map +1 -1
  10. package/lib/cjs/BackgroundMapGeometry.js +2 -2
  11. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  12. package/lib/cjs/BingLocation.js +2 -2
  13. package/lib/cjs/BingLocation.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js +1 -1
  15. package/lib/cjs/CheckpointConnection.js.map +1 -1
  16. package/lib/cjs/ContextRealityModelState.js +1 -1
  17. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  18. package/lib/cjs/DisplayStyleState.d.ts +10 -163
  19. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  20. package/lib/cjs/DisplayStyleState.js +69 -350
  21. package/lib/cjs/DisplayStyleState.js.map +1 -1
  22. package/lib/cjs/DrawingViewState.d.ts +2 -2
  23. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  24. package/lib/cjs/DrawingViewState.js +3 -3
  25. package/lib/cjs/DrawingViewState.js.map +1 -1
  26. package/lib/cjs/ElementLocateManager.d.ts +5 -0
  27. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  28. package/lib/cjs/ElementLocateManager.js +12 -2
  29. package/lib/cjs/ElementLocateManager.js.map +1 -1
  30. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  31. package/lib/cjs/EmphasizeElements.js +14 -4
  32. package/lib/cjs/EmphasizeElements.js.map +1 -1
  33. package/lib/cjs/EnvironmentDecorations.d.ts +39 -0
  34. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -0
  35. package/lib/cjs/EnvironmentDecorations.js +203 -0
  36. package/lib/cjs/EnvironmentDecorations.js.map +1 -0
  37. package/lib/cjs/FrontendHubAccess.d.ts +11 -7
  38. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  39. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  40. package/lib/cjs/FrontendLoggerCategory.d.ts +2 -8
  41. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  42. package/lib/cjs/FrontendLoggerCategory.js +2 -8
  43. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  44. package/lib/cjs/HitDetail.js +7 -7
  45. package/lib/cjs/HitDetail.js.map +1 -1
  46. package/lib/cjs/IModelApp.d.ts +30 -17
  47. package/lib/cjs/IModelApp.d.ts.map +1 -1
  48. package/lib/cjs/IModelApp.js +33 -26
  49. package/lib/cjs/IModelApp.js.map +1 -1
  50. package/lib/cjs/IModelConnection.d.ts +4 -6
  51. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  52. package/lib/cjs/IModelConnection.js +6 -11
  53. package/lib/cjs/IModelConnection.js.map +1 -1
  54. package/lib/cjs/IModeljs-css.d.ts.map +1 -1
  55. package/lib/cjs/IModeljs-css.js +8 -6
  56. package/lib/cjs/IModeljs-css.js.map +1 -1
  57. package/lib/cjs/ImageUtil.d.ts +3 -3
  58. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  59. package/lib/cjs/ImageUtil.js +7 -4
  60. package/lib/cjs/ImageUtil.js.map +1 -1
  61. package/lib/cjs/LocalhostIpcApp.d.ts +2 -1
  62. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  63. package/lib/cjs/LocalhostIpcApp.js +21 -7
  64. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  65. package/lib/cjs/Marker.d.ts +9 -2
  66. package/lib/cjs/Marker.d.ts.map +1 -1
  67. package/lib/cjs/Marker.js +33 -5
  68. package/lib/cjs/Marker.js.map +1 -1
  69. package/lib/cjs/ModelState.js +1 -1
  70. package/lib/cjs/ModelState.js.map +1 -1
  71. package/lib/cjs/NativeApp.d.ts +3 -38
  72. package/lib/cjs/NativeApp.d.ts.map +1 -1
  73. package/lib/cjs/NativeApp.js +4 -73
  74. package/lib/cjs/NativeApp.js.map +1 -1
  75. package/lib/cjs/NoRenderApp.d.ts +0 -1
  76. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  77. package/lib/cjs/NoRenderApp.js +0 -1
  78. package/lib/cjs/NoRenderApp.js.map +1 -1
  79. package/lib/cjs/NotificationManager.d.ts +3 -1
  80. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  81. package/lib/cjs/NotificationManager.js +2 -0
  82. package/lib/cjs/NotificationManager.js.map +1 -1
  83. package/lib/cjs/RealityDataSource.d.ts +59 -29
  84. package/lib/cjs/RealityDataSource.d.ts.map +1 -1
  85. package/lib/cjs/RealityDataSource.js +247 -94
  86. package/lib/cjs/RealityDataSource.js.map +1 -1
  87. package/lib/cjs/RenderScheduleState.d.ts +2 -0
  88. package/lib/cjs/RenderScheduleState.d.ts.map +1 -1
  89. package/lib/cjs/RenderScheduleState.js +10 -5
  90. package/lib/cjs/RenderScheduleState.js.map +1 -1
  91. package/lib/cjs/SheetViewState.d.ts +2 -2
  92. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  93. package/lib/cjs/SheetViewState.js +7 -6
  94. package/lib/cjs/SheetViewState.js.map +1 -1
  95. package/lib/cjs/SpatialViewState.d.ts +10 -2
  96. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  97. package/lib/cjs/SpatialViewState.js +12 -2
  98. package/lib/cjs/SpatialViewState.js.map +1 -1
  99. package/lib/cjs/SubCategoriesCache.js +1 -1
  100. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  101. package/lib/cjs/Tiles.d.ts +11 -1
  102. package/lib/cjs/Tiles.d.ts.map +1 -1
  103. package/lib/cjs/Tiles.js +7 -0
  104. package/lib/cjs/Tiles.js.map +1 -1
  105. package/lib/cjs/TwoWayViewportSync.d.ts +35 -6
  106. package/lib/cjs/TwoWayViewportSync.d.ts.map +1 -1
  107. package/lib/cjs/TwoWayViewportSync.js +51 -11
  108. package/lib/cjs/TwoWayViewportSync.js.map +1 -1
  109. package/lib/cjs/UserPreferences.d.ts +72 -0
  110. package/lib/cjs/UserPreferences.d.ts.map +1 -0
  111. package/lib/cjs/UserPreferences.js +7 -0
  112. package/lib/cjs/UserPreferences.js.map +1 -0
  113. package/lib/cjs/ViewContext.d.ts +3 -1
  114. package/lib/cjs/ViewContext.d.ts.map +1 -1
  115. package/lib/cjs/ViewContext.js +4 -0
  116. package/lib/cjs/ViewContext.js.map +1 -1
  117. package/lib/cjs/ViewCreator2d.js +3 -3
  118. package/lib/cjs/ViewCreator2d.js.map +1 -1
  119. package/lib/cjs/ViewCreator3d.d.ts +1 -1
  120. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  121. package/lib/cjs/ViewCreator3d.js +4 -5
  122. package/lib/cjs/ViewCreator3d.js.map +1 -1
  123. package/lib/cjs/ViewManager.d.ts +6 -6
  124. package/lib/cjs/ViewManager.d.ts.map +1 -1
  125. package/lib/cjs/ViewManager.js +13 -13
  126. package/lib/cjs/ViewManager.js.map +1 -1
  127. package/lib/cjs/ViewState.d.ts +11 -5
  128. package/lib/cjs/ViewState.d.ts.map +1 -1
  129. package/lib/cjs/ViewState.js +18 -63
  130. package/lib/cjs/ViewState.js.map +1 -1
  131. package/lib/cjs/ViewingSpace.js +1 -1
  132. package/lib/cjs/ViewingSpace.js.map +1 -1
  133. package/lib/cjs/Viewport.d.ts +57 -11
  134. package/lib/cjs/Viewport.d.ts.map +1 -1
  135. package/lib/cjs/Viewport.js +55 -31
  136. package/lib/cjs/Viewport.js.map +1 -1
  137. package/lib/cjs/core-frontend.d.ts +10 -24
  138. package/lib/cjs/core-frontend.d.ts.map +1 -1
  139. package/lib/cjs/core-frontend.js +10 -24
  140. package/lib/cjs/core-frontend.js.map +1 -1
  141. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  142. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  143. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  144. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  145. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  146. package/lib/cjs/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  147. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js +20 -5
  148. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  149. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts +26 -3
  150. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  151. package/lib/cjs/quantity-formatting/QuantityFormatter.js +46 -7
  152. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  153. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  154. package/lib/cjs/render/FeatureSymbology.js +3 -3
  155. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  156. package/lib/cjs/render/GraphicBranch.d.ts +18 -2
  157. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  158. package/lib/cjs/render/GraphicBranch.js +9 -1
  159. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  160. package/lib/cjs/render/GraphicBuilder.d.ts +7 -1
  161. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  162. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  163. package/lib/cjs/render/MockRender.d.ts +3 -1
  164. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  165. package/lib/cjs/render/MockRender.js.map +1 -1
  166. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  167. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  168. package/lib/cjs/render/RenderMemory.js +21 -15
  169. package/lib/cjs/render/RenderMemory.js.map +1 -1
  170. package/lib/cjs/render/RenderSystem.d.ts +38 -7
  171. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  172. package/lib/cjs/render/RenderSystem.js +24 -9
  173. package/lib/cjs/render/RenderSystem.js.map +1 -1
  174. package/lib/cjs/render/RenderTarget.d.ts +10 -2
  175. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  176. package/lib/cjs/render/RenderTarget.js +2 -1
  177. package/lib/cjs/render/RenderTarget.js.map +1 -1
  178. package/lib/cjs/render/RenderTexture.d.ts +2 -17
  179. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  180. package/lib/cjs/render/RenderTexture.js +0 -17
  181. package/lib/cjs/render/RenderTexture.js.map +1 -1
  182. package/lib/cjs/render/primitives/EdgeParams.d.ts +84 -0
  183. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -0
  184. package/lib/cjs/render/primitives/EdgeParams.js +220 -0
  185. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -0
  186. package/lib/cjs/render/primitives/PointStringParams.d.ts +16 -0
  187. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +1 -0
  188. package/lib/cjs/render/primitives/PointStringParams.js +43 -0
  189. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -0
  190. package/lib/cjs/render/primitives/PolylineParams.d.ts +44 -0
  191. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +1 -0
  192. package/lib/cjs/render/primitives/PolylineParams.js +205 -0
  193. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -0
  194. package/lib/cjs/render/primitives/Primitives.d.ts +1 -1
  195. package/lib/cjs/render/primitives/Primitives.d.ts.map +1 -1
  196. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  197. package/lib/cjs/render/primitives/SurfaceParams.d.ts +46 -0
  198. package/lib/cjs/render/primitives/SurfaceParams.d.ts.map +1 -0
  199. package/lib/cjs/render/primitives/SurfaceParams.js +42 -0
  200. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -0
  201. package/lib/cjs/render/primitives/VertexTable.d.ts +4 -123
  202. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  203. package/lib/cjs/render/primitives/VertexTable.js +16 -352
  204. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  205. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  206. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  207. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +2 -1
  208. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  209. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  210. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +1 -0
  211. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  212. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  213. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  214. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +3 -3
  215. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  216. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  217. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  218. package/lib/cjs/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  219. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  220. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  221. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  222. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  223. package/lib/cjs/render/webgl/BranchUniforms.js +8 -5
  224. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  225. package/lib/cjs/render/webgl/CachedGeometry.d.ts +16 -11
  226. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  227. package/lib/cjs/render/webgl/CachedGeometry.js +26 -23
  228. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  229. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -3
  230. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  231. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  232. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  233. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +73 -0
  234. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -0
  235. package/lib/cjs/render/webgl/EdgeGeometry.js +141 -0
  236. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -0
  237. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
  238. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  239. package/lib/cjs/render/webgl/FeatureOverrides.js +11 -3
  240. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  241. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  242. package/lib/cjs/render/webgl/FloatRGBA.js +13 -11
  243. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  244. package/lib/cjs/render/webgl/Graphic.d.ts +13 -0
  245. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  246. package/lib/cjs/render/webgl/Graphic.js +41 -3
  247. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  248. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  249. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  250. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  251. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  252. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +6 -5
  253. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  254. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -1
  255. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  256. package/lib/cjs/render/webgl/Material.d.ts +1 -1
  257. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  258. package/lib/cjs/render/webgl/Material.js.map +1 -1
  259. package/lib/cjs/render/webgl/Mesh.d.ts +8 -162
  260. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  261. package/lib/cjs/render/webgl/Mesh.js +18 -458
  262. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  263. package/lib/cjs/render/webgl/MeshData.d.ts +38 -0
  264. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -0
  265. package/lib/cjs/render/webgl/MeshData.js +66 -0
  266. package/lib/cjs/render/webgl/MeshData.js.map +1 -0
  267. package/lib/cjs/render/webgl/MeshGeometry.d.ts +38 -0
  268. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -0
  269. package/lib/cjs/render/webgl/MeshGeometry.js +59 -0
  270. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -0
  271. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  272. package/lib/cjs/render/webgl/PlanarClassifier.js +8 -4
  273. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  274. package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
  275. package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
  276. package/lib/cjs/render/webgl/PlanarGrid.js +3 -3
  277. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  278. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  279. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -0
  280. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  281. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  282. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  283. package/lib/cjs/render/webgl/PointCloud.js +2 -2
  284. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  285. package/lib/cjs/render/webgl/PointString.d.ts +3 -3
  286. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  287. package/lib/cjs/render/webgl/PointString.js +1 -1
  288. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  289. package/lib/cjs/render/webgl/Polyline.d.ts +3 -3
  290. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  291. package/lib/cjs/render/webgl/Polyline.js +6 -6
  292. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  293. package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
  294. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  295. package/lib/cjs/render/webgl/Primitive.js +5 -5
  296. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  297. package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
  298. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  299. package/lib/cjs/render/webgl/RealityMesh.js +9 -9
  300. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  301. package/lib/cjs/render/webgl/RenderCommands.d.ts +6 -2
  302. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  303. package/lib/cjs/render/webgl/RenderCommands.js +81 -48
  304. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  305. package/lib/cjs/render/webgl/RenderFlags.d.ts +48 -1
  306. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  307. package/lib/cjs/render/webgl/RenderFlags.js +64 -2
  308. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  309. package/lib/cjs/render/webgl/SceneCompositor.js +10 -9
  310. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  311. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  312. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +23 -20
  313. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  314. package/lib/cjs/render/webgl/ShaderBuilder.js +38 -32
  315. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  316. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
  317. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  318. package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
  319. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  320. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  321. package/lib/cjs/render/webgl/SolarShadowMap.js +4 -3
  322. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  323. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +54 -0
  324. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  325. package/lib/cjs/render/webgl/SurfaceGeometry.js +248 -0
  326. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -0
  327. package/lib/cjs/render/webgl/System.d.ts +11 -10
  328. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  329. package/lib/cjs/render/webgl/System.js +32 -21
  330. package/lib/cjs/render/webgl/System.js.map +1 -1
  331. package/lib/cjs/render/webgl/Target.d.ts +13 -1
  332. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  333. package/lib/cjs/render/webgl/Target.js +88 -2
  334. package/lib/cjs/render/webgl/Target.js.map +1 -1
  335. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/Technique.js +112 -119
  337. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  338. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -1
  339. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  340. package/lib/cjs/render/webgl/TechniqueFlags.js +10 -1
  341. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  342. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  343. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  345. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  346. package/lib/cjs/render/webgl/Texture.d.ts +15 -12
  347. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  348. package/lib/cjs/render/webgl/Texture.js +26 -23
  349. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  350. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  351. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +83 -18
  352. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  353. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  354. package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
  355. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -2
  356. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -2
  357. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  358. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
  359. package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
  360. package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
  361. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  362. package/lib/cjs/render/webgl/glsl/CopyColor.js +17 -2
  363. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  364. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +2 -2
  365. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  366. package/lib/cjs/render/webgl/glsl/CopyStencil.js +10 -13
  367. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  368. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +2 -2
  369. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  370. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  371. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  372. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  373. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  374. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  375. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +43 -21
  376. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  378. package/lib/cjs/render/webgl/glsl/Fragment.js +19 -11
  379. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  380. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  381. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  382. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  384. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  385. package/lib/cjs/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  386. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +13 -4
  387. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  388. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  389. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  390. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  391. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  392. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  393. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  394. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  395. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  396. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  397. package/lib/cjs/render/webgl/glsl/RealityMesh.js +9 -6
  398. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  399. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  400. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  401. package/lib/cjs/render/webgl/glsl/SkyBox.js +2 -2
  402. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  403. package/lib/cjs/render/webgl/glsl/SkySphere.js +2 -2
  404. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  405. package/lib/cjs/render/webgl/glsl/Surface.js +41 -16
  406. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  407. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -2
  408. package/lib/cjs/render/webgl/glsl/Vertex.js +2 -2
  409. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  410. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  411. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  412. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts +9 -0
  413. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  414. package/lib/cjs/render/webgl/glsl/Wiremesh.js +40 -0
  415. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -0
  416. package/lib/cjs/render-primitives.d.ts +5 -1
  417. package/lib/cjs/render-primitives.d.ts.map +1 -1
  418. package/lib/cjs/render-primitives.js +5 -1
  419. package/lib/cjs/render-primitives.js.map +1 -1
  420. package/lib/cjs/request/Request.d.ts +167 -0
  421. package/lib/cjs/request/Request.d.ts.map +1 -0
  422. package/lib/cjs/request/Request.js +315 -0
  423. package/lib/cjs/request/Request.js.map +1 -0
  424. package/lib/cjs/tile/B3dmReader.d.ts +2 -1
  425. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  426. package/lib/cjs/tile/B3dmReader.js +11 -7
  427. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  428. package/lib/cjs/tile/CesiumAssetProvider.d.ts +14 -0
  429. package/lib/cjs/tile/CesiumAssetProvider.d.ts.map +1 -0
  430. package/lib/cjs/tile/CesiumAssetProvider.js +35 -0
  431. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -0
  432. package/lib/cjs/tile/ContextShareProvider.d.ts +22 -0
  433. package/lib/cjs/tile/ContextShareProvider.d.ts.map +1 -0
  434. package/lib/cjs/tile/ContextShareProvider.js +129 -0
  435. package/lib/cjs/tile/ContextShareProvider.js.map +1 -0
  436. package/lib/cjs/tile/DynamicIModelTile.js +9 -3
  437. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  438. package/lib/cjs/tile/GltfReader.d.ts +594 -55
  439. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  440. package/lib/cjs/tile/GltfReader.js +703 -264
  441. package/lib/cjs/tile/GltfReader.js.map +1 -1
  442. package/lib/cjs/tile/I3dmReader.d.ts +2 -1
  443. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  444. package/lib/cjs/tile/I3dmReader.js +10 -6
  445. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  446. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  447. package/lib/cjs/tile/IModelTile.js +14 -7
  448. package/lib/cjs/tile/IModelTile.js.map +1 -1
  449. package/lib/cjs/tile/IModelTileTree.d.ts +8 -0
  450. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  451. package/lib/cjs/tile/IModelTileTree.js +36 -1
  452. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  453. package/lib/cjs/tile/ImdlReader.d.ts +365 -10
  454. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  455. package/lib/cjs/tile/ImdlReader.js +201 -69
  456. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  457. package/lib/cjs/tile/OrbitGtTileTree.d.ts +0 -9
  458. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  459. package/lib/cjs/tile/OrbitGtTileTree.js +10 -20
  460. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  461. package/lib/cjs/tile/PrimaryTileTree.d.ts +14 -5
  462. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  463. package/lib/cjs/tile/PrimaryTileTree.js +69 -14
  464. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  465. package/lib/cjs/tile/RealityModelTileTree.d.ts +2 -41
  466. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  467. package/lib/cjs/tile/RealityModelTileTree.js +57 -217
  468. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  469. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -0
  470. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  471. package/lib/cjs/tile/RealityTileLoader.js +4 -3
  472. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  473. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  474. package/lib/cjs/tile/Tile.js +5 -1
  475. package/lib/cjs/tile/Tile.js.map +1 -1
  476. package/lib/cjs/tile/TileAdmin.d.ts +37 -4
  477. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  478. package/lib/cjs/tile/TileAdmin.js +18 -12
  479. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  480. package/lib/cjs/tile/TileDrawArgs.d.ts +11 -0
  481. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  482. package/lib/cjs/tile/TileDrawArgs.js +6 -1
  483. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  484. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  485. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  486. package/lib/cjs/tile/TileTreeReference.js +5 -0
  487. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  488. package/lib/cjs/tile/internal.d.ts +4 -1
  489. package/lib/cjs/tile/internal.d.ts.map +1 -1
  490. package/lib/cjs/tile/internal.js +4 -1
  491. package/lib/cjs/tile/internal.js.map +1 -1
  492. package/lib/cjs/tile/map/ArcGISTileMap.d.ts +22 -0
  493. package/lib/cjs/tile/map/ArcGISTileMap.d.ts.map +1 -0
  494. package/lib/cjs/tile/map/ArcGISTileMap.js +177 -0
  495. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -0
  496. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +3 -3
  497. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +1 -1
  498. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -1
  499. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  500. package/lib/cjs/tile/map/ArcGisUtilities.js +18 -10
  501. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  502. package/lib/cjs/tile/map/BingElevation.js +4 -4
  503. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  504. package/lib/cjs/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  505. package/lib/cjs/tile/map/CesiumTerrainProvider.js +27 -15
  506. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  507. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  508. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  509. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +23 -44
  510. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  511. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
  512. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  513. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  514. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  515. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  516. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  517. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  518. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  520. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  521. package/lib/cjs/tile/map/ImageryTileTree.d.ts +4 -4
  522. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  523. package/lib/cjs/tile/map/ImageryTileTree.js +20 -24
  524. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  525. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  526. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  527. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -0
  528. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  529. package/lib/cjs/tile/map/MapLayerAuthentication.js +18 -0
  530. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -0
  531. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  532. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  533. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +3 -1
  534. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  535. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts +2 -2
  536. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  537. package/lib/cjs/tile/map/MapLayerImageryFormats.js +21 -8
  538. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  539. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +18 -6
  540. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  541. package/lib/cjs/tile/map/MapLayerImageryProvider.js +47 -14
  542. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  543. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -11
  544. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  545. package/lib/cjs/tile/map/MapLayerSources.js +5 -34
  546. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  547. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  548. package/lib/cjs/tile/map/MapTile.js +4 -3
  549. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  550. package/lib/cjs/tile/map/MapTileLoader.js +2 -2
  551. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  552. package/lib/cjs/tile/map/MapTileTree.d.ts +1 -1
  553. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  554. package/lib/cjs/tile/map/MapTileTree.js +30 -21
  555. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  556. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  557. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  558. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +4 -6
  559. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  560. package/lib/cjs/tile/map/MapTilingScheme.d.ts +7 -2
  561. package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
  562. package/lib/cjs/tile/map/MapTilingScheme.js +21 -8
  563. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  564. package/lib/cjs/tile/map/QuadId.d.ts +1 -0
  565. package/lib/cjs/tile/map/QuadId.d.ts.map +1 -1
  566. package/lib/cjs/tile/map/QuadId.js +2 -1
  567. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  568. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +1 -1
  569. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  570. package/lib/cjs/tile/map/WmsCapabilities.d.ts +8 -1
  571. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  572. package/lib/cjs/tile/map/WmsCapabilities.js +39 -5
  573. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  574. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +11 -1
  575. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  576. package/lib/cjs/tile/map/WmtsCapabilities.js +23 -9
  577. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  578. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  579. package/lib/cjs/tools/EditManipulator.js +1 -1
  580. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  581. package/lib/cjs/tools/ElementSetTool.js +2 -2
  582. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  583. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -4
  584. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  585. package/lib/cjs/tools/PrimitiveTool.js +2 -2
  586. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  587. package/lib/cjs/tools/Tool.d.ts +29 -1
  588. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  589. package/lib/cjs/tools/Tool.js +66 -0
  590. package/lib/cjs/tools/Tool.js.map +1 -1
  591. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  592. package/lib/cjs/tools/ToolAdmin.js +20 -10
  593. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  594. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  595. package/lib/cjs/tools/ViewTool.js +3 -11
  596. package/lib/cjs/tools/ViewTool.js.map +1 -1
  597. package/lib/cjs/webgl.d.ts +5 -0
  598. package/lib/cjs/webgl.d.ts.map +1 -1
  599. package/lib/cjs/webgl.js +5 -0
  600. package/lib/cjs/webgl.js.map +1 -1
  601. package/lib/esm/AccuSnap.js +3 -3
  602. package/lib/esm/AccuSnap.js.map +1 -1
  603. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  604. package/lib/esm/ApproximateTerrainHeights.js +10 -5
  605. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  606. package/lib/esm/BackgroundMapGeometry.d.ts +1 -1
  607. package/lib/esm/BackgroundMapGeometry.d.ts.map +1 -1
  608. package/lib/esm/BackgroundMapGeometry.js +2 -2
  609. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  610. package/lib/esm/BingLocation.js +1 -1
  611. package/lib/esm/BingLocation.js.map +1 -1
  612. package/lib/esm/CheckpointConnection.js +1 -1
  613. package/lib/esm/CheckpointConnection.js.map +1 -1
  614. package/lib/esm/ContextRealityModelState.js +1 -1
  615. package/lib/esm/ContextRealityModelState.js.map +1 -1
  616. package/lib/esm/DisplayStyleState.d.ts +10 -163
  617. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  618. package/lib/esm/DisplayStyleState.js +70 -346
  619. package/lib/esm/DisplayStyleState.js.map +1 -1
  620. package/lib/esm/DrawingViewState.d.ts +2 -2
  621. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  622. package/lib/esm/DrawingViewState.js +3 -3
  623. package/lib/esm/DrawingViewState.js.map +1 -1
  624. package/lib/esm/ElementLocateManager.d.ts +5 -0
  625. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  626. package/lib/esm/ElementLocateManager.js +12 -2
  627. package/lib/esm/ElementLocateManager.js.map +1 -1
  628. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  629. package/lib/esm/EmphasizeElements.js +14 -4
  630. package/lib/esm/EmphasizeElements.js.map +1 -1
  631. package/lib/esm/EnvironmentDecorations.d.ts +39 -0
  632. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -0
  633. package/lib/esm/EnvironmentDecorations.js +199 -0
  634. package/lib/esm/EnvironmentDecorations.js.map +1 -0
  635. package/lib/esm/FrontendHubAccess.d.ts +11 -7
  636. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  637. package/lib/esm/FrontendHubAccess.js.map +1 -1
  638. package/lib/esm/FrontendLoggerCategory.d.ts +2 -8
  639. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  640. package/lib/esm/FrontendLoggerCategory.js +2 -8
  641. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  642. package/lib/esm/HitDetail.js +7 -7
  643. package/lib/esm/HitDetail.js.map +1 -1
  644. package/lib/esm/IModelApp.d.ts +30 -17
  645. package/lib/esm/IModelApp.d.ts.map +1 -1
  646. package/lib/esm/IModelApp.js +32 -25
  647. package/lib/esm/IModelApp.js.map +1 -1
  648. package/lib/esm/IModelConnection.d.ts +4 -6
  649. package/lib/esm/IModelConnection.d.ts.map +1 -1
  650. package/lib/esm/IModelConnection.js +6 -11
  651. package/lib/esm/IModelConnection.js.map +1 -1
  652. package/lib/esm/IModeljs-css.d.ts.map +1 -1
  653. package/lib/esm/IModeljs-css.js +8 -6
  654. package/lib/esm/IModeljs-css.js.map +1 -1
  655. package/lib/esm/ImageUtil.d.ts +3 -3
  656. package/lib/esm/ImageUtil.d.ts.map +1 -1
  657. package/lib/esm/ImageUtil.js +7 -4
  658. package/lib/esm/ImageUtil.js.map +1 -1
  659. package/lib/esm/LocalhostIpcApp.d.ts +2 -1
  660. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  661. package/lib/esm/LocalhostIpcApp.js +22 -8
  662. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  663. package/lib/esm/Marker.d.ts +9 -2
  664. package/lib/esm/Marker.d.ts.map +1 -1
  665. package/lib/esm/Marker.js +34 -6
  666. package/lib/esm/Marker.js.map +1 -1
  667. package/lib/esm/ModelState.js +1 -1
  668. package/lib/esm/ModelState.js.map +1 -1
  669. package/lib/esm/NativeApp.d.ts +3 -38
  670. package/lib/esm/NativeApp.d.ts.map +1 -1
  671. package/lib/esm/NativeApp.js +1 -69
  672. package/lib/esm/NativeApp.js.map +1 -1
  673. package/lib/esm/NoRenderApp.d.ts +0 -1
  674. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  675. package/lib/esm/NoRenderApp.js +0 -1
  676. package/lib/esm/NoRenderApp.js.map +1 -1
  677. package/lib/esm/NotificationManager.d.ts +3 -1
  678. package/lib/esm/NotificationManager.d.ts.map +1 -1
  679. package/lib/esm/NotificationManager.js +2 -0
  680. package/lib/esm/NotificationManager.js.map +1 -1
  681. package/lib/esm/RealityDataSource.d.ts +59 -29
  682. package/lib/esm/RealityDataSource.d.ts.map +1 -1
  683. package/lib/esm/RealityDataSource.js +247 -92
  684. package/lib/esm/RealityDataSource.js.map +1 -1
  685. package/lib/esm/RenderScheduleState.d.ts +2 -0
  686. package/lib/esm/RenderScheduleState.d.ts.map +1 -1
  687. package/lib/esm/RenderScheduleState.js +8 -4
  688. package/lib/esm/RenderScheduleState.js.map +1 -1
  689. package/lib/esm/SheetViewState.d.ts +2 -2
  690. package/lib/esm/SheetViewState.d.ts.map +1 -1
  691. package/lib/esm/SheetViewState.js +7 -6
  692. package/lib/esm/SheetViewState.js.map +1 -1
  693. package/lib/esm/SpatialViewState.d.ts +10 -2
  694. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  695. package/lib/esm/SpatialViewState.js +12 -2
  696. package/lib/esm/SpatialViewState.js.map +1 -1
  697. package/lib/esm/SubCategoriesCache.js +1 -1
  698. package/lib/esm/SubCategoriesCache.js.map +1 -1
  699. package/lib/esm/Tiles.d.ts +11 -1
  700. package/lib/esm/Tiles.d.ts.map +1 -1
  701. package/lib/esm/Tiles.js +7 -0
  702. package/lib/esm/Tiles.js.map +1 -1
  703. package/lib/esm/TwoWayViewportSync.d.ts +35 -6
  704. package/lib/esm/TwoWayViewportSync.d.ts.map +1 -1
  705. package/lib/esm/TwoWayViewportSync.js +49 -10
  706. package/lib/esm/TwoWayViewportSync.js.map +1 -1
  707. package/lib/esm/UserPreferences.d.ts +72 -0
  708. package/lib/esm/UserPreferences.d.ts.map +1 -0
  709. package/lib/esm/UserPreferences.js +6 -0
  710. package/lib/esm/UserPreferences.js.map +1 -0
  711. package/lib/esm/ViewContext.d.ts +3 -1
  712. package/lib/esm/ViewContext.d.ts.map +1 -1
  713. package/lib/esm/ViewContext.js +4 -0
  714. package/lib/esm/ViewContext.js.map +1 -1
  715. package/lib/esm/ViewCreator2d.js +3 -3
  716. package/lib/esm/ViewCreator2d.js.map +1 -1
  717. package/lib/esm/ViewCreator3d.d.ts +1 -1
  718. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  719. package/lib/esm/ViewCreator3d.js +5 -6
  720. package/lib/esm/ViewCreator3d.js.map +1 -1
  721. package/lib/esm/ViewManager.d.ts +6 -6
  722. package/lib/esm/ViewManager.d.ts.map +1 -1
  723. package/lib/esm/ViewManager.js +13 -13
  724. package/lib/esm/ViewManager.js.map +1 -1
  725. package/lib/esm/ViewState.d.ts +11 -5
  726. package/lib/esm/ViewState.d.ts.map +1 -1
  727. package/lib/esm/ViewState.js +21 -66
  728. package/lib/esm/ViewState.js.map +1 -1
  729. package/lib/esm/ViewingSpace.js +1 -1
  730. package/lib/esm/ViewingSpace.js.map +1 -1
  731. package/lib/esm/Viewport.d.ts +57 -11
  732. package/lib/esm/Viewport.d.ts.map +1 -1
  733. package/lib/esm/Viewport.js +56 -32
  734. package/lib/esm/Viewport.js.map +1 -1
  735. package/lib/esm/core-frontend.d.ts +10 -24
  736. package/lib/esm/core-frontend.d.ts.map +1 -1
  737. package/lib/esm/core-frontend.js +10 -24
  738. package/lib/esm/core-frontend.js.map +1 -1
  739. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts +3 -2
  740. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
  741. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +3 -2
  742. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  743. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts +5 -1
  744. package/lib/esm/quantity-formatting/BasicUnitsProvider.d.ts.map +1 -1
  745. package/lib/esm/quantity-formatting/BasicUnitsProvider.js +18 -4
  746. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  747. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts +26 -3
  748. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  749. package/lib/esm/quantity-formatting/QuantityFormatter.js +45 -7
  750. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  751. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  752. package/lib/esm/render/FeatureSymbology.js +3 -3
  753. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  754. package/lib/esm/render/GraphicBranch.d.ts +18 -2
  755. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  756. package/lib/esm/render/GraphicBranch.js +8 -0
  757. package/lib/esm/render/GraphicBranch.js.map +1 -1
  758. package/lib/esm/render/GraphicBuilder.d.ts +7 -1
  759. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  760. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  761. package/lib/esm/render/MockRender.d.ts +3 -1
  762. package/lib/esm/render/MockRender.d.ts.map +1 -1
  763. package/lib/esm/render/MockRender.js.map +1 -1
  764. package/lib/esm/render/RenderMemory.d.ts +21 -15
  765. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  766. package/lib/esm/render/RenderMemory.js +21 -15
  767. package/lib/esm/render/RenderMemory.js.map +1 -1
  768. package/lib/esm/render/RenderSystem.d.ts +38 -7
  769. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  770. package/lib/esm/render/RenderSystem.js +24 -9
  771. package/lib/esm/render/RenderSystem.js.map +1 -1
  772. package/lib/esm/render/RenderTarget.d.ts +10 -2
  773. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  774. package/lib/esm/render/RenderTarget.js +2 -1
  775. package/lib/esm/render/RenderTarget.js.map +1 -1
  776. package/lib/esm/render/RenderTexture.d.ts +2 -17
  777. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  778. package/lib/esm/render/RenderTexture.js +1 -16
  779. package/lib/esm/render/RenderTexture.js.map +1 -1
  780. package/lib/esm/render/primitives/EdgeParams.d.ts +84 -0
  781. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -0
  782. package/lib/esm/render/primitives/EdgeParams.js +217 -0
  783. package/lib/esm/render/primitives/EdgeParams.js.map +1 -0
  784. package/lib/esm/render/primitives/PointStringParams.d.ts +16 -0
  785. package/lib/esm/render/primitives/PointStringParams.d.ts.map +1 -0
  786. package/lib/esm/render/primitives/PointStringParams.js +39 -0
  787. package/lib/esm/render/primitives/PointStringParams.js.map +1 -0
  788. package/lib/esm/render/primitives/PolylineParams.d.ts +44 -0
  789. package/lib/esm/render/primitives/PolylineParams.d.ts.map +1 -0
  790. package/lib/esm/render/primitives/PolylineParams.js +199 -0
  791. package/lib/esm/render/primitives/PolylineParams.js.map +1 -0
  792. package/lib/esm/render/primitives/Primitives.d.ts +1 -1
  793. package/lib/esm/render/primitives/Primitives.d.ts.map +1 -1
  794. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  795. package/lib/esm/render/primitives/SurfaceParams.d.ts +46 -0
  796. package/lib/esm/render/primitives/SurfaceParams.d.ts.map +1 -0
  797. package/lib/esm/render/primitives/SurfaceParams.js +37 -0
  798. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -0
  799. package/lib/esm/render/primitives/VertexTable.d.ts +4 -123
  800. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  801. package/lib/esm/render/primitives/VertexTable.js +11 -342
  802. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  803. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +2 -0
  804. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  805. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +2 -1
  806. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  807. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  808. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +1 -0
  809. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  810. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +2 -2
  811. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  812. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +3 -3
  813. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  814. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.d.ts +1 -1
  815. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js +1 -1
  816. package/lib/esm/render/primitives/mesh/TerrainMeshPrimitive.js.map +1 -1
  817. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  818. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  819. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  820. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  821. package/lib/esm/render/webgl/BranchUniforms.js +8 -5
  822. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  823. package/lib/esm/render/webgl/CachedGeometry.d.ts +16 -11
  824. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  825. package/lib/esm/render/webgl/CachedGeometry.js +26 -23
  826. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  827. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -3
  828. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  829. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  830. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  831. package/lib/esm/render/webgl/EdgeGeometry.d.ts +73 -0
  832. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -0
  833. package/lib/esm/render/webgl/EdgeGeometry.js +135 -0
  834. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -0
  835. package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
  836. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  837. package/lib/esm/render/webgl/FeatureOverrides.js +11 -3
  838. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  839. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  840. package/lib/esm/render/webgl/FloatRGBA.js +13 -11
  841. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  842. package/lib/esm/render/webgl/Graphic.d.ts +13 -0
  843. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  844. package/lib/esm/render/webgl/Graphic.js +39 -2
  845. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  846. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  847. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  848. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  849. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  850. package/lib/esm/render/webgl/InstancedGeometry.d.ts +6 -5
  851. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  852. package/lib/esm/render/webgl/InstancedGeometry.js +2 -1
  853. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  854. package/lib/esm/render/webgl/Material.d.ts +1 -1
  855. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  856. package/lib/esm/render/webgl/Material.js.map +1 -1
  857. package/lib/esm/render/webgl/Mesh.d.ts +8 -162
  858. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  859. package/lib/esm/render/webgl/Mesh.js +12 -445
  860. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  861. package/lib/esm/render/webgl/MeshData.d.ts +38 -0
  862. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -0
  863. package/lib/esm/render/webgl/MeshData.js +62 -0
  864. package/lib/esm/render/webgl/MeshData.js.map +1 -0
  865. package/lib/esm/render/webgl/MeshGeometry.d.ts +38 -0
  866. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -0
  867. package/lib/esm/render/webgl/MeshGeometry.js +55 -0
  868. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -0
  869. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  870. package/lib/esm/render/webgl/PlanarClassifier.js +9 -5
  871. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  872. package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
  873. package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
  874. package/lib/esm/render/webgl/PlanarGrid.js +3 -3
  875. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  876. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  877. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -0
  878. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  879. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  880. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  881. package/lib/esm/render/webgl/PointCloud.js +2 -2
  882. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  883. package/lib/esm/render/webgl/PointString.d.ts +3 -3
  884. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  885. package/lib/esm/render/webgl/PointString.js +1 -1
  886. package/lib/esm/render/webgl/PointString.js.map +1 -1
  887. package/lib/esm/render/webgl/Polyline.d.ts +3 -3
  888. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  889. package/lib/esm/render/webgl/Polyline.js +6 -6
  890. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  891. package/lib/esm/render/webgl/Primitive.d.ts +2 -2
  892. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  893. package/lib/esm/render/webgl/Primitive.js +5 -5
  894. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  895. package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
  896. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  897. package/lib/esm/render/webgl/RealityMesh.js +9 -9
  898. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  899. package/lib/esm/render/webgl/RenderCommands.d.ts +6 -2
  900. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  901. package/lib/esm/render/webgl/RenderCommands.js +78 -45
  902. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  903. package/lib/esm/render/webgl/RenderFlags.d.ts +48 -1
  904. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  905. package/lib/esm/render/webgl/RenderFlags.js +63 -1
  906. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  907. package/lib/esm/render/webgl/SceneCompositor.js +10 -9
  908. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  909. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  910. package/lib/esm/render/webgl/ShaderBuilder.d.ts +23 -20
  911. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  912. package/lib/esm/render/webgl/ShaderBuilder.js +38 -32
  913. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  914. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
  915. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  916. package/lib/esm/render/webgl/ShaderProgram.js +4 -4
  917. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  918. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  919. package/lib/esm/render/webgl/SolarShadowMap.js +5 -4
  920. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  921. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +54 -0
  922. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -0
  923. package/lib/esm/render/webgl/SurfaceGeometry.js +243 -0
  924. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -0
  925. package/lib/esm/render/webgl/System.d.ts +11 -10
  926. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  927. package/lib/esm/render/webgl/System.js +34 -23
  928. package/lib/esm/render/webgl/System.js.map +1 -1
  929. package/lib/esm/render/webgl/Target.d.ts +13 -1
  930. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  931. package/lib/esm/render/webgl/Target.js +88 -2
  932. package/lib/esm/render/webgl/Target.js.map +1 -1
  933. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  934. package/lib/esm/render/webgl/Technique.js +112 -119
  935. package/lib/esm/render/webgl/Technique.js.map +1 -1
  936. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -1
  937. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  938. package/lib/esm/render/webgl/TechniqueFlags.js +10 -1
  939. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  940. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  941. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  942. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  943. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  944. package/lib/esm/render/webgl/Texture.d.ts +15 -12
  945. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  946. package/lib/esm/render/webgl/Texture.js +27 -24
  947. package/lib/esm/render/webgl/Texture.js.map +1 -1
  948. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  949. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +84 -19
  950. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  951. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  952. package/lib/esm/render/webgl/glsl/Blur.js +1 -1
  953. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -2
  954. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -2
  955. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  956. package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
  957. package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
  958. package/lib/esm/render/webgl/glsl/Composite.js +1 -1
  959. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  960. package/lib/esm/render/webgl/glsl/CopyColor.js +17 -2
  961. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  962. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +2 -2
  963. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  964. package/lib/esm/render/webgl/glsl/CopyStencil.js +10 -13
  965. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  966. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +2 -2
  967. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  968. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  969. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  970. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  971. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  972. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  973. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +44 -22
  974. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  975. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  976. package/lib/esm/render/webgl/glsl/Fragment.js +19 -11
  977. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  978. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
  979. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  980. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  981. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  982. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  983. package/lib/esm/render/webgl/glsl/PlanarClassification.d.ts.map +1 -1
  984. package/lib/esm/render/webgl/glsl/PlanarClassification.js +13 -4
  985. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  986. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  987. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  988. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  989. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  990. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  991. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  992. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  993. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  994. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  995. package/lib/esm/render/webgl/glsl/RealityMesh.js +9 -6
  996. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  997. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +2 -2
  998. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  999. package/lib/esm/render/webgl/glsl/SkyBox.js +2 -2
  1000. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  1001. package/lib/esm/render/webgl/glsl/SkySphere.js +2 -2
  1002. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  1003. package/lib/esm/render/webgl/glsl/Surface.js +41 -16
  1004. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  1005. package/lib/esm/render/webgl/glsl/Translucency.js +2 -2
  1006. package/lib/esm/render/webgl/glsl/Vertex.js +3 -3
  1007. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1008. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  1009. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  1010. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts +9 -0
  1011. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -0
  1012. package/lib/esm/render/webgl/glsl/Wiremesh.js +36 -0
  1013. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -0
  1014. package/lib/esm/render-primitives.d.ts +5 -1
  1015. package/lib/esm/render-primitives.d.ts.map +1 -1
  1016. package/lib/esm/render-primitives.js +5 -1
  1017. package/lib/esm/render-primitives.js.map +1 -1
  1018. package/lib/esm/request/Request.d.ts +167 -0
  1019. package/lib/esm/request/Request.d.ts.map +1 -0
  1020. package/lib/esm/request/Request.js +289 -0
  1021. package/lib/esm/request/Request.js.map +1 -0
  1022. package/lib/esm/tile/B3dmReader.d.ts +2 -1
  1023. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  1024. package/lib/esm/tile/B3dmReader.js +12 -8
  1025. package/lib/esm/tile/B3dmReader.js.map +1 -1
  1026. package/lib/esm/tile/CesiumAssetProvider.d.ts +14 -0
  1027. package/lib/esm/tile/CesiumAssetProvider.d.ts.map +1 -0
  1028. package/lib/esm/tile/CesiumAssetProvider.js +31 -0
  1029. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -0
  1030. package/lib/esm/tile/ContextShareProvider.d.ts +22 -0
  1031. package/lib/esm/tile/ContextShareProvider.d.ts.map +1 -0
  1032. package/lib/esm/tile/ContextShareProvider.js +125 -0
  1033. package/lib/esm/tile/ContextShareProvider.js.map +1 -0
  1034. package/lib/esm/tile/DynamicIModelTile.js +9 -3
  1035. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1036. package/lib/esm/tile/GltfReader.d.ts +594 -55
  1037. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1038. package/lib/esm/tile/GltfReader.js +678 -242
  1039. package/lib/esm/tile/GltfReader.js.map +1 -1
  1040. package/lib/esm/tile/I3dmReader.d.ts +2 -1
  1041. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  1042. package/lib/esm/tile/I3dmReader.js +11 -7
  1043. package/lib/esm/tile/I3dmReader.js.map +1 -1
  1044. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  1045. package/lib/esm/tile/IModelTile.js +14 -7
  1046. package/lib/esm/tile/IModelTile.js.map +1 -1
  1047. package/lib/esm/tile/IModelTileTree.d.ts +8 -0
  1048. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1049. package/lib/esm/tile/IModelTileTree.js +36 -1
  1050. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1051. package/lib/esm/tile/ImdlReader.d.ts +365 -10
  1052. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1053. package/lib/esm/tile/ImdlReader.js +198 -67
  1054. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1055. package/lib/esm/tile/OrbitGtTileTree.d.ts +0 -9
  1056. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  1057. package/lib/esm/tile/OrbitGtTileTree.js +10 -20
  1058. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  1059. package/lib/esm/tile/PrimaryTileTree.d.ts +14 -5
  1060. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1061. package/lib/esm/tile/PrimaryTileTree.js +70 -15
  1062. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1063. package/lib/esm/tile/RealityModelTileTree.d.ts +2 -41
  1064. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  1065. package/lib/esm/tile/RealityModelTileTree.js +56 -215
  1066. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  1067. package/lib/esm/tile/RealityTileLoader.d.ts +1 -0
  1068. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1069. package/lib/esm/tile/RealityTileLoader.js +4 -3
  1070. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1071. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1072. package/lib/esm/tile/Tile.js +5 -1
  1073. package/lib/esm/tile/Tile.js.map +1 -1
  1074. package/lib/esm/tile/TileAdmin.d.ts +37 -4
  1075. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1076. package/lib/esm/tile/TileAdmin.js +19 -13
  1077. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1078. package/lib/esm/tile/TileDrawArgs.d.ts +11 -0
  1079. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1080. package/lib/esm/tile/TileDrawArgs.js +6 -1
  1081. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1082. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1083. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1084. package/lib/esm/tile/TileTreeReference.js +5 -0
  1085. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1086. package/lib/esm/tile/internal.d.ts +4 -1
  1087. package/lib/esm/tile/internal.d.ts.map +1 -1
  1088. package/lib/esm/tile/internal.js +4 -1
  1089. package/lib/esm/tile/internal.js.map +1 -1
  1090. package/lib/esm/tile/map/ArcGISTileMap.d.ts +22 -0
  1091. package/lib/esm/tile/map/ArcGISTileMap.d.ts.map +1 -0
  1092. package/lib/esm/tile/map/ArcGISTileMap.js +173 -0
  1093. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -0
  1094. package/lib/esm/tile/map/ArcGisTokenGenerator.js +1 -1
  1095. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +1 -1
  1096. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -1
  1097. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1098. package/lib/esm/tile/map/ArcGisUtilities.js +14 -6
  1099. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1100. package/lib/esm/tile/map/BingElevation.js +1 -1
  1101. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1102. package/lib/esm/tile/map/CesiumTerrainProvider.d.ts.map +1 -1
  1103. package/lib/esm/tile/map/CesiumTerrainProvider.js +25 -13
  1104. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  1105. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -2
  1106. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1107. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +21 -42
  1108. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1109. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
  1110. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  1111. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +8 -0
  1112. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1113. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +51 -10
  1114. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1115. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts +6 -1
  1116. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.d.ts.map +1 -1
  1117. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +63 -21
  1118. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  1119. package/lib/esm/tile/map/ImageryTileTree.d.ts +4 -4
  1120. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  1121. package/lib/esm/tile/map/ImageryTileTree.js +21 -25
  1122. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  1123. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  1124. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  1125. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -0
  1126. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -0
  1127. package/lib/esm/tile/map/MapLayerAuthentication.js +15 -0
  1128. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -0
  1129. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +6 -3
  1130. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1131. package/lib/esm/tile/map/MapLayerFormatRegistry.js +3 -1
  1132. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1133. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts +2 -2
  1134. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1135. package/lib/esm/tile/map/MapLayerImageryFormats.js +22 -9
  1136. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1137. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +18 -6
  1138. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  1139. package/lib/esm/tile/map/MapLayerImageryProvider.js +44 -11
  1140. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  1141. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -11
  1142. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1143. package/lib/esm/tile/map/MapLayerSources.js +7 -36
  1144. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1145. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  1146. package/lib/esm/tile/map/MapTile.js +4 -3
  1147. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1148. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1149. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1150. package/lib/esm/tile/map/MapTileTree.d.ts +1 -1
  1151. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  1152. package/lib/esm/tile/map/MapTileTree.js +30 -21
  1153. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1154. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +3 -3
  1155. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  1156. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +4 -6
  1157. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  1158. package/lib/esm/tile/map/MapTilingScheme.d.ts +7 -2
  1159. package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
  1160. package/lib/esm/tile/map/MapTilingScheme.js +22 -9
  1161. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  1162. package/lib/esm/tile/map/QuadId.d.ts +1 -0
  1163. package/lib/esm/tile/map/QuadId.d.ts.map +1 -1
  1164. package/lib/esm/tile/map/QuadId.js +2 -1
  1165. package/lib/esm/tile/map/QuadId.js.map +1 -1
  1166. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +1 -1
  1167. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  1168. package/lib/esm/tile/map/WmsCapabilities.d.ts +8 -1
  1169. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1170. package/lib/esm/tile/map/WmsCapabilities.js +37 -3
  1171. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1172. package/lib/esm/tile/map/WmtsCapabilities.d.ts +11 -1
  1173. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  1174. package/lib/esm/tile/map/WmtsCapabilities.js +20 -6
  1175. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  1176. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1177. package/lib/esm/tools/EditManipulator.js +1 -1
  1178. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1179. package/lib/esm/tools/ElementSetTool.js +2 -2
  1180. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  1181. package/lib/esm/tools/PrimitiveTool.d.ts +4 -4
  1182. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1183. package/lib/esm/tools/PrimitiveTool.js +2 -2
  1184. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1185. package/lib/esm/tools/Tool.d.ts +29 -1
  1186. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1187. package/lib/esm/tools/Tool.js +66 -0
  1188. package/lib/esm/tools/Tool.js.map +1 -1
  1189. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1190. package/lib/esm/tools/ToolAdmin.js +20 -10
  1191. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1192. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1193. package/lib/esm/tools/ViewTool.js +3 -11
  1194. package/lib/esm/tools/ViewTool.js.map +1 -1
  1195. package/lib/esm/webgl.d.ts +5 -0
  1196. package/lib/esm/webgl.d.ts.map +1 -1
  1197. package/lib/esm/webgl.js +5 -0
  1198. package/lib/esm/webgl.js.map +1 -1
  1199. package/lib/public/locales/en/iModelJs.json +3 -1
  1200. package/package.json +33 -28
  1201. package/lib/cjs/RealityDataAccessProps.d.ts +0 -44
  1202. package/lib/cjs/RealityDataAccessProps.d.ts.map +0 -1
  1203. package/lib/cjs/RealityDataAccessProps.js +0 -23
  1204. package/lib/cjs/RealityDataAccessProps.js.map +0 -1
  1205. package/lib/cjs/RealityDataConnection.d.ts +0 -31
  1206. package/lib/cjs/RealityDataConnection.d.ts.map +0 -1
  1207. package/lib/cjs/RealityDataConnection.js +0 -101
  1208. package/lib/cjs/RealityDataConnection.js.map +0 -1
  1209. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts +0 -39
  1210. package/lib/cjs/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1211. package/lib/cjs/tile/map/MapLayerSettingsService.js +0 -190
  1212. package/lib/cjs/tile/map/MapLayerSettingsService.js.map +0 -1
  1213. package/lib/esm/RealityDataAccessProps.d.ts +0 -44
  1214. package/lib/esm/RealityDataAccessProps.d.ts.map +0 -1
  1215. package/lib/esm/RealityDataAccessProps.js +0 -20
  1216. package/lib/esm/RealityDataAccessProps.js.map +0 -1
  1217. package/lib/esm/RealityDataConnection.d.ts +0 -31
  1218. package/lib/esm/RealityDataConnection.d.ts.map +0 -1
  1219. package/lib/esm/RealityDataConnection.js +0 -98
  1220. package/lib/esm/RealityDataConnection.js.map +0 -1
  1221. package/lib/esm/tile/map/MapLayerSettingsService.d.ts +0 -39
  1222. package/lib/esm/tile/map/MapLayerSettingsService.d.ts.map +0 -1
  1223. package/lib/esm/tile/map/MapLayerSettingsService.js +0 -186
  1224. package/lib/esm/tile/map/MapLayerSettingsService.js.map +0 -1
@@ -7,64 +7,264 @@
7
7
  * @module Tiles
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = void 0;
10
+ exports.GltfGraphicsReader = exports.readGltfGraphics = exports.GltfReader = exports.GltfMeshData = exports.GltfReaderProps = exports.GltfBufferData = exports.GltfDataType = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const core_common_1 = require("@itwin/core-common");
14
14
  const ImageUtil_1 = require("../ImageUtil");
15
+ const IModelApp_1 = require("../IModelApp");
15
16
  const GraphicBranch_1 = require("../render/GraphicBranch");
16
17
  const DisplayParams_1 = require("../render/primitives/DisplayParams");
17
18
  const MeshPrimitives_1 = require("../render/primitives/mesh/MeshPrimitives");
18
19
  const RealityMeshPrimitive_1 = require("../render/primitives/mesh/RealityMeshPrimitive");
19
- const RenderTexture_1 = require("../render/RenderTexture");
20
- // eslint-disable-next-line prefer-const
21
- let forceLUT = false;
20
+ /* eslint-disable no-restricted-syntax */
21
+ /** Enumerates the types of [[GltfMeshPrimitive]] topologies. */
22
+ var GltfMeshMode;
23
+ (function (GltfMeshMode) {
24
+ GltfMeshMode[GltfMeshMode["Points"] = 0] = "Points";
25
+ GltfMeshMode[GltfMeshMode["Lines"] = 1] = "Lines";
26
+ GltfMeshMode[GltfMeshMode["LineStrip"] = 3] = "LineStrip";
27
+ GltfMeshMode[GltfMeshMode["Triangles"] = 4] = "Triangles";
28
+ /** Not currently supported. */
29
+ GltfMeshMode[GltfMeshMode["TriangleStrip"] = 5] = "TriangleStrip";
30
+ /** Not currently supported. */
31
+ GltfMeshMode[GltfMeshMode["TriangleFan"] = 6] = "TriangleFan";
32
+ })(GltfMeshMode || (GltfMeshMode = {}));
33
+ /** Enumerates the basic data types supported by accessors, material values, technique uniforms, etc.
34
+ * @internal
35
+ */
36
+ var GltfDataType;
37
+ (function (GltfDataType) {
38
+ GltfDataType[GltfDataType["SignedByte"] = 5120] = "SignedByte";
39
+ GltfDataType[GltfDataType["UnsignedByte"] = 5121] = "UnsignedByte";
40
+ GltfDataType[GltfDataType["SignedShort"] = 5122] = "SignedShort";
41
+ GltfDataType[GltfDataType["UnsignedShort"] = 5123] = "UnsignedShort";
42
+ GltfDataType[GltfDataType["UInt32"] = 5125] = "UInt32";
43
+ GltfDataType[GltfDataType["Float"] = 5126] = "Float";
44
+ GltfDataType[GltfDataType["Rgb"] = 6407] = "Rgb";
45
+ GltfDataType[GltfDataType["Rgba"] = 6408] = "Rgba";
46
+ GltfDataType[GltfDataType["IntVec2"] = 35667] = "IntVec2";
47
+ GltfDataType[GltfDataType["IntVec3"] = 35668] = "IntVec3";
48
+ GltfDataType[GltfDataType["FloatVec2"] = 35664] = "FloatVec2";
49
+ GltfDataType[GltfDataType["FloatVec3"] = 35665] = "FloatVec3";
50
+ GltfDataType[GltfDataType["FloatVec4"] = 35666] = "FloatVec4";
51
+ GltfDataType[GltfDataType["FloatMat3"] = 35675] = "FloatMat3";
52
+ GltfDataType[GltfDataType["FloatMat4"] = 35676] = "FloatMat4";
53
+ GltfDataType[GltfDataType["Sampler2d"] = 35678] = "Sampler2d";
54
+ })(GltfDataType = exports.GltfDataType || (exports.GltfDataType = {}));
55
+ /** @internal */
56
+ var GltfMagFilter;
57
+ (function (GltfMagFilter) {
58
+ GltfMagFilter[GltfMagFilter["Nearest"] = 9728] = "Nearest";
59
+ GltfMagFilter[GltfMagFilter["Linear"] = 9729] = "Linear";
60
+ })(GltfMagFilter || (GltfMagFilter = {}));
61
+ /** @internal */
62
+ var GltfMinFilter;
63
+ (function (GltfMinFilter) {
64
+ GltfMinFilter[GltfMinFilter["Nearest"] = 9728] = "Nearest";
65
+ GltfMinFilter[GltfMinFilter["Linear"] = 9729] = "Linear";
66
+ GltfMinFilter[GltfMinFilter["NearestMipMapNearest"] = 9984] = "NearestMipMapNearest";
67
+ GltfMinFilter[GltfMinFilter["LinearMipMapNearest"] = 9985] = "LinearMipMapNearest";
68
+ GltfMinFilter[GltfMinFilter["NearestMipMapLinear"] = 9986] = "NearestMipMapLinear";
69
+ GltfMinFilter[GltfMinFilter["LinearMipMapLinear"] = 9987] = "LinearMipMapLinear";
70
+ })(GltfMinFilter || (GltfMinFilter = {}));
71
+ /** Describes how texture coordinates outside of the range [0..1] are handled. */
72
+ var GltfWrapMode;
73
+ (function (GltfWrapMode) {
74
+ GltfWrapMode[GltfWrapMode["ClampToEdge"] = 33071] = "ClampToEdge";
75
+ GltfWrapMode[GltfWrapMode["MirroredRepeat"] = 33648] = "MirroredRepeat";
76
+ GltfWrapMode[GltfWrapMode["Repeat"] = 10497] = "Repeat";
77
+ })(GltfWrapMode || (GltfWrapMode = {}));
78
+ /** Describes the intended target of a [[GltfBufferViewProps]]. */
79
+ var GltfBufferTarget;
80
+ (function (GltfBufferTarget) {
81
+ GltfBufferTarget[GltfBufferTarget["ArrayBuffer"] = 34962] = "ArrayBuffer";
82
+ GltfBufferTarget[GltfBufferTarget["ElementArrayBuffer"] = 24963] = "ElementArrayBuffer";
83
+ })(GltfBufferTarget || (GltfBufferTarget = {}));
84
+ function* dictionaryIterator(dict) {
85
+ if (Array.isArray(dict)) {
86
+ for (const elem of dict)
87
+ yield elem;
88
+ }
89
+ else {
90
+ for (const key of Object.keys(dict)) {
91
+ const value = dict[key];
92
+ if (undefined !== value)
93
+ yield value;
94
+ }
95
+ }
96
+ }
97
+ function getNodeMeshIds(node) {
98
+ if (undefined !== node.meshes)
99
+ return typeof node.meshes === "string" ? [node.meshes] : node.meshes;
100
+ else if (undefined !== node.mesh)
101
+ return [node.mesh];
102
+ return [];
103
+ }
104
+ /** GL states that can be enabled by a [[GltfTechnique]]. Only those queried by this implementation are enumerated. */
105
+ var GltfTechniqueState;
106
+ (function (GltfTechniqueState) {
107
+ /** Enables alpha blending. */
108
+ GltfTechniqueState[GltfTechniqueState["Blend"] = 3042] = "Blend";
109
+ })(GltfTechniqueState || (GltfTechniqueState = {}));
110
+ function isGltf1Material(material) {
111
+ const mat1 = material;
112
+ return undefined !== mat1.technique || undefined !== mat1.values;
113
+ }
114
+ /**
115
+ * A chunk of binary data exposed as a typed array.
116
+ * The count member indicates how many elements exist. This may be less than this.buffer.length due to padding added to the
117
+ * binary stream to ensure correct alignment.
118
+ * @internal
119
+ */
120
+ class GltfBufferData {
121
+ constructor(buffer, count) {
122
+ this.buffer = buffer;
123
+ this.count = count;
124
+ }
125
+ /**
126
+ * Create a GltfBufferData of the desired type. The actual type may differ from the desired type - for example, small 32-bit integers
127
+ * may be represented as 8-bit or 16-bit integers instead.
128
+ * If the actual data type is not convertible to the desired type, this function returns undefined.
129
+ */
130
+ static create(bytes, actualType, expectedType, count) {
131
+ if (expectedType !== actualType) {
132
+ // Some data is stored in smaller data types to save space if no values exceed the maximum of the smaller type.
133
+ switch (expectedType) {
134
+ case GltfDataType.Float:
135
+ case GltfDataType.UnsignedByte:
136
+ return undefined;
137
+ case GltfDataType.UnsignedShort:
138
+ if (GltfDataType.UnsignedByte !== actualType)
139
+ return undefined;
140
+ break;
141
+ case GltfDataType.UInt32:
142
+ if (GltfDataType.UnsignedByte !== actualType && GltfDataType.UnsignedShort !== actualType)
143
+ return undefined;
144
+ break;
145
+ }
146
+ }
147
+ const data = this.createDataBuffer(bytes, actualType);
148
+ return undefined !== data ? new GltfBufferData(data, count) : undefined;
149
+ }
150
+ static createDataBuffer(bytes, actualType) {
151
+ // NB: Endianness of typed array data is determined by the 'platform byte order'. Actual data is always little-endian.
152
+ // We are assuming little-endian platform. If we find a big-endian platform, we'll need to use a DataView instead.
153
+ switch (actualType) {
154
+ case GltfDataType.UnsignedByte:
155
+ return bytes;
156
+ case GltfDataType.UnsignedShort:
157
+ return new Uint16Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 2);
158
+ case GltfDataType.UInt32:
159
+ return new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);
160
+ case GltfDataType.Float:
161
+ return new Float32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);
162
+ default:
163
+ return undefined;
164
+ }
165
+ }
166
+ }
167
+ exports.GltfBufferData = GltfBufferData;
168
+ /**
169
+ * A view of a chunk of glTF binary data containing an array of elements of a specific data type.
170
+ * The count member indicates how many elements exist; this may be smaller than this.data.length.
171
+ * The count member may also indicate the number of elements of a type containing more than one value of the
172
+ * underlying type. For example, a buffer of 4 32-bit floating point 'vec2' elements will have a count of 4,
173
+ * but its data member will contain 8 32-bit floating point values (2 per vec2).
174
+ * The accessor member may contain additional JSON data specific to a particular buffer.
175
+ * @internal
176
+ */
177
+ class GltfBufferView {
178
+ constructor(data, count, type, accessor, stride) {
179
+ this.data = data;
180
+ this.count = count;
181
+ this.type = type;
182
+ this.accessor = accessor;
183
+ this.stride = stride;
184
+ }
185
+ get byteLength() { return this.data.length; }
186
+ toBufferData(desiredType) {
187
+ return GltfBufferData.create(this.data, this.type, desiredType, this.count);
188
+ }
189
+ }
22
190
  /** Data required for creating a [[GltfReader]] capable of deserializing [glTF](https://www.khronos.org/gltf/).
23
191
  * @internal
24
192
  */
25
193
  class GltfReaderProps {
26
- constructor(buffer, binaryData, accessors, bufferViews, scene, nodes, meshes, materials, extensions, samplers, techniques, yAxisUp) {
27
- this.buffer = buffer;
194
+ constructor(glTF, version, yAxisUp, binaryData, baseUrl) {
195
+ this.version = version;
196
+ this.glTF = glTF;
28
197
  this.binaryData = binaryData;
29
- this.accessors = accessors;
30
- this.bufferViews = bufferViews;
31
- this.scene = scene;
32
- this.nodes = nodes;
33
- this.meshes = meshes;
34
- this.materials = materials;
35
- this.extensions = extensions;
36
- this.samplers = samplers;
37
- this.techniques = techniques;
38
198
  this.yAxisUp = yAxisUp;
199
+ this.baseUrl = baseUrl;
39
200
  }
40
201
  /** Attempt to construct a new GltfReaderProps from the binary data beginning at the supplied stream's current read position. */
41
- static create(buffer, yAxisUp = false) {
42
- const header = new core_common_1.GltfHeader(buffer);
43
- if (!header.isValid)
44
- return undefined;
45
- const binaryData = new Uint8Array(buffer.arrayBuffer, header.binaryPosition);
46
- buffer.curPos = header.scenePosition;
47
- const sceneStrData = buffer.nextBytes(header.sceneStrLength);
48
- const sceneStr = (0, core_bentley_1.utf8ToString)(sceneStrData);
49
- if (undefined === sceneStr)
50
- return undefined;
51
- try {
52
- const sceneValue = JSON.parse(sceneStr);
53
- const nodes = core_bentley_1.JsonUtils.asObject(sceneValue.nodes);
54
- const meshes = core_bentley_1.JsonUtils.asObject(sceneValue.meshes);
55
- const materialValues = core_bentley_1.JsonUtils.asObject(sceneValue.materials);
56
- const accessors = core_bentley_1.JsonUtils.asObject(sceneValue.accessors);
57
- const bufferViews = core_bentley_1.JsonUtils.asObject(sceneValue.bufferViews);
58
- const extensions = core_bentley_1.JsonUtils.asObject(sceneValue.extensions);
59
- const samplers = core_bentley_1.JsonUtils.asObject(sceneValue.samplers);
60
- const techniques = core_bentley_1.JsonUtils.asObject(sceneValue.techniques);
61
- if (undefined === meshes)
62
- return undefined;
63
- return new GltfReaderProps(buffer, binaryData, accessors, bufferViews, sceneValue, nodes, meshes, materialValues, extensions, samplers, techniques, yAxisUp);
202
+ static create(source, yAxisUp = false, baseUrl) {
203
+ let version;
204
+ let json;
205
+ let binaryData;
206
+ if (source instanceof Uint8Array) {
207
+ // It may be JSON - check for magic indicating glb.
208
+ const buffer = core_bentley_1.ByteStream.fromUint8Array(source);
209
+ if (core_common_1.TileFormat.Gltf !== buffer.nextUint32) {
210
+ try {
211
+ const utf8Json = (0, core_bentley_1.utf8ToString)(source);
212
+ if (!utf8Json)
213
+ return undefined;
214
+ json = JSON.parse(utf8Json);
215
+ version = 2;
216
+ }
217
+ catch (_) {
218
+ return undefined;
219
+ }
220
+ }
221
+ else {
222
+ buffer.reset();
223
+ const header = new core_common_1.GlbHeader(buffer);
224
+ if (!header.isValid)
225
+ return undefined;
226
+ version = header.version;
227
+ if (header.binaryChunk)
228
+ binaryData = new Uint8Array(source.buffer, source.byteOffset + header.binaryChunk.offset, header.binaryChunk.length);
229
+ try {
230
+ const jsonBytes = new Uint8Array(source.buffer, source.byteOffset + header.jsonChunk.offset, header.jsonChunk.length);
231
+ const jsonStr = (0, core_bentley_1.utf8ToString)(jsonBytes);
232
+ if (undefined === jsonStr)
233
+ return undefined;
234
+ json = JSON.parse(jsonStr);
235
+ }
236
+ catch (_) {
237
+ return undefined;
238
+ }
239
+ }
64
240
  }
65
- catch (e) {
66
- return undefined;
241
+ else {
242
+ version = 2; // ###TODO verify against source.asset?.version
243
+ json = source;
67
244
  }
245
+ // asset is required in glTF 2, optional in glTF 1
246
+ const asset = core_bentley_1.JsonUtils.asObject(json.asset);
247
+ if (version === 2 && !asset)
248
+ return undefined;
249
+ const glTF = {
250
+ asset,
251
+ scene: core_bentley_1.JsonUtils.asString(json.scene),
252
+ extensions: core_bentley_1.JsonUtils.asObject(json.extensions),
253
+ extensionsUsed: core_bentley_1.JsonUtils.asArray(json.extensionsUsed),
254
+ extensionsRequired: core_bentley_1.JsonUtils.asArray(json.extensionsRequired),
255
+ accessors: core_bentley_1.JsonUtils.asObject(json.accessors),
256
+ buffers: core_bentley_1.JsonUtils.asObject(json.buffers),
257
+ bufferViews: core_bentley_1.JsonUtils.asObject(json.bufferViews),
258
+ images: core_bentley_1.JsonUtils.asObject(json.images),
259
+ materials: core_bentley_1.JsonUtils.asObject(json.materials),
260
+ meshes: core_bentley_1.JsonUtils.asObject(json.meshes),
261
+ nodes: core_bentley_1.JsonUtils.asObject(json.nodes),
262
+ samplers: core_bentley_1.JsonUtils.asObject(json.samplers),
263
+ scenes: core_bentley_1.JsonUtils.asObject(json.scenes),
264
+ textures: core_bentley_1.JsonUtils.asObject(json.textures),
265
+ techniques: core_bentley_1.JsonUtils.asObject(json.techniques),
266
+ };
267
+ return glTF.meshes ? new GltfReaderProps(glTF, version, yAxisUp, binaryData, baseUrl) : undefined;
68
268
  }
69
269
  }
70
270
  exports.GltfReaderProps = GltfReaderProps;
@@ -90,56 +290,176 @@ exports.GltfMeshData = GltfMeshData;
90
290
  }
91
291
  }
92
292
  -------------------------------------- */
293
+ const emptyDict = {};
294
+ function colorFromJson(values) {
295
+ return core_common_1.ColorDef.from(values[0] * 255, values[1] * 255, values[2] * 255, (1.0 - values[3]) * 255);
296
+ }
297
+ function colorFromMaterial(material, isTransparent) {
298
+ var _a, _b, _c, _d, _e;
299
+ let color = core_common_1.ColorDef.white;
300
+ if (isGltf1Material(material)) {
301
+ if (((_a = material.values) === null || _a === void 0 ? void 0 : _a.color) && Array.isArray(material.values.color))
302
+ color = colorFromJson(material.values.color);
303
+ }
304
+ else if ((_d = (_c = (_b = material.extensions) === null || _b === void 0 ? void 0 : _b.KHR_techniques_webgl) === null || _c === void 0 ? void 0 : _c.values) === null || _d === void 0 ? void 0 : _d.u_color) {
305
+ color = colorFromJson(material.extensions.KHR_techniques_webgl.values.u_color);
306
+ }
307
+ else if ((_e = material.pbrMetallicRoughness) === null || _e === void 0 ? void 0 : _e.baseColorFactor) {
308
+ color = colorFromJson(material.pbrMetallicRoughness.baseColorFactor);
309
+ }
310
+ // SPEC: Opaque materials ignore any alpha channel.
311
+ if (!isTransparent)
312
+ color = color.withTransparency(0);
313
+ return color;
314
+ }
315
+ class TransformStack {
316
+ constructor() {
317
+ this._stack = [];
318
+ }
319
+ get transform() {
320
+ return this._stack.length > 0 ? this._stack[this._stack.length - 1] : undefined;
321
+ }
322
+ get isEmpty() {
323
+ return 0 === this._stack.length;
324
+ }
325
+ push(node) {
326
+ let nodeTransform;
327
+ if (node.matrix) {
328
+ const origin = core_geometry_1.Point3d.create(node.matrix[12], node.matrix[13], node.matrix[14]);
329
+ const matrix = core_geometry_1.Matrix3d.createRowValues(node.matrix[0], node.matrix[4], node.matrix[8], node.matrix[1], node.matrix[5], node.matrix[9], node.matrix[2], node.matrix[6], node.matrix[10]);
330
+ nodeTransform = core_geometry_1.Transform.createOriginAndMatrix(origin, matrix);
331
+ }
332
+ else if (node.rotation || node.scale || node.translation) {
333
+ // SPEC: To compose the local transformation matrix, TRS properties MUST be converted to matrices and postmultiplied in the T * R * S order;
334
+ // first the scale is applied to the vertices, then the rotation, and then the translation.
335
+ const scale = core_geometry_1.Transform.createRefs(undefined, node.scale ? core_geometry_1.Matrix3d.createScale(node.scale[0], node.scale[1], node.scale[2]) : core_geometry_1.Matrix3d.identity);
336
+ const rot = core_geometry_1.Transform.createRefs(undefined, node.rotation ? core_geometry_1.Matrix3d.createFromQuaternion(core_geometry_1.Point4d.create(node.rotation[0], node.rotation[1], node.rotation[2], node.rotation[3])) : core_geometry_1.Matrix3d.identity);
337
+ rot.matrix.transposeInPlace(); // See comment on Matrix3d.createFromQuaternion
338
+ const trans = core_geometry_1.Transform.createTranslation(node.translation ? new core_geometry_1.Point3d(node.translation[0], node.translation[1], node.translation[2]) : core_geometry_1.Point3d.createZero());
339
+ nodeTransform = scale.multiplyTransformTransform(rot);
340
+ trans.multiplyTransformTransform(nodeTransform, nodeTransform);
341
+ }
342
+ const top = this.transform;
343
+ if (!top)
344
+ this._stack.push(nodeTransform);
345
+ else
346
+ this._stack.push(nodeTransform ? top.multiplyTransformTransform(nodeTransform) : top);
347
+ }
348
+ pop() {
349
+ (0, core_bentley_1.assert)(this._stack.length > 0);
350
+ this._stack.pop();
351
+ }
352
+ }
353
+ function* traverseNodes(ids, nodes, traversed) {
354
+ for (const id of ids) {
355
+ if (traversed.has(id))
356
+ throw new Error("Cycle detected while traversing glTF nodes");
357
+ const node = nodes[id];
358
+ if (!node)
359
+ continue;
360
+ traversed.add(id);
361
+ yield node;
362
+ if (node.children)
363
+ for (const child of traverseNodes(node.children, nodes, traversed))
364
+ yield child;
365
+ }
366
+ }
367
+ function compareTextureKeys(lhs, rhs) {
368
+ const cmp = (0, core_bentley_1.compareBooleans)(lhs.isTransparent, rhs.isTransparent);
369
+ if (0 !== cmp)
370
+ return cmp;
371
+ (0, core_bentley_1.assert)(typeof lhs.id === typeof rhs.id);
372
+ if ("string" === typeof lhs.id) {
373
+ (0, core_bentley_1.assert)("string" === typeof rhs.id);
374
+ return (0, core_bentley_1.compareStrings)(lhs.id, rhs.id);
375
+ }
376
+ (0, core_bentley_1.assert)("number" === typeof lhs.id && "number" === typeof rhs.id);
377
+ return (0, core_bentley_1.compareNumbers)(lhs.id, rhs.id);
378
+ }
93
379
  /** Deserializes [glTF](https://www.khronos.org/gltf/).
94
380
  * @internal
95
381
  */
96
382
  class GltfReader {
97
- constructor(props, iModel, modelId, is3d, system, type = core_common_1.BatchType.Primary, isCanceled) {
98
- this._buffer = props.buffer;
99
- this._scene = props.scene;
100
- this._binaryData = props.binaryData;
101
- this._accessors = props.accessors;
102
- this._bufferViews = props.bufferViews;
103
- this._meshes = props.meshes;
104
- this._nodes = props.nodes;
105
- this._materialValues = props.materials;
106
- this._samplers = props.samplers;
107
- this._techniques = props.techniques;
108
- this._extensions = props.extensions;
109
- this._yAxisUp = props.yAxisUp;
110
- this._returnToCenter = this.extractReturnToCenter(props.extensions);
111
- this._textures = props.scene.textures;
112
- this._images = props.scene.images;
113
- this._renderMaterials = props.scene.renderMaterials;
114
- this._namedTextures = props.scene.namedTextures;
115
- this._iModel = iModel;
116
- this._modelId = modelId;
117
- this._is3d = is3d;
118
- this._system = system;
119
- this._type = type;
120
- this._canceled = isCanceled;
383
+ constructor(args) {
384
+ var _a, _b, _c, _d, _e, _f, _g;
385
+ this._resolvedTextures = new core_bentley_1.Dictionary((lhs, rhs) => compareTextureKeys(lhs, rhs));
386
+ this._glTF = args.props.glTF;
387
+ this._version = args.props.version;
388
+ this._yAxisUp = args.props.yAxisUp;
389
+ this._baseUrl = args.props.baseUrl;
390
+ const rtcCenter = (_b = (_a = args.props.glTF.extensions) === null || _a === void 0 ? void 0 : _a.CESIUM_RTC) === null || _b === void 0 ? void 0 : _b.center;
391
+ if (rtcCenter && 3 === rtcCenter.length)
392
+ if (0 !== rtcCenter[0] || 0 !== rtcCenter[1] || 0 !== rtcCenter[2])
393
+ this._returnToCenter = core_geometry_1.Point3d.fromJSON(rtcCenter);
394
+ this._iModel = args.iModel;
395
+ this._is3d = true !== args.is2d;
396
+ this._system = (_c = args.system) !== null && _c !== void 0 ? _c : IModelApp_1.IModelApp.renderSystem;
397
+ this._type = (_d = args.type) !== null && _d !== void 0 ? _d : core_common_1.BatchType.Primary;
398
+ this._canceled = args.shouldAbort;
399
+ this._deduplicateVertices = (_e = args.deduplicateVertices) !== null && _e !== void 0 ? _e : false;
400
+ this._vertexTableRequired = (_f = args.vertexTableRequired) !== null && _f !== void 0 ? _f : false;
401
+ const binaryData = args.props.binaryData;
402
+ if (binaryData) {
403
+ const buffer = this._buffers[this._version === 2 ? 0 : "binary_glTF"];
404
+ if (buffer && undefined === buffer.uri)
405
+ buffer.resolvedBuffer = binaryData;
406
+ }
407
+ // The original implementation of GltfReader would process and produce graphics for every node in glTF.nodes.
408
+ // What it's *supposed* to do is process the nodes in glTF.scenes[glTF.scene].nodes
409
+ // Some nodes may not be referenced by the configured scene, or only indirectly via GltfNode.children.
410
+ // Perhaps some faulty tiles existed that didn't define their scenes properly?
411
+ let sceneNodes;
412
+ if (this._glTF.scenes && undefined !== this._glTF.scene)
413
+ sceneNodes = (_g = this._glTF.scenes[this._glTF.scene]) === null || _g === void 0 ? void 0 : _g.nodes;
414
+ if (!sceneNodes)
415
+ sceneNodes = Object.keys(this._nodes);
416
+ this._sceneNodes = sceneNodes;
121
417
  }
418
+ get _nodes() { var _a; return (_a = this._glTF.nodes) !== null && _a !== void 0 ? _a : emptyDict; }
419
+ get _meshes() { var _a; return (_a = this._glTF.meshes) !== null && _a !== void 0 ? _a : emptyDict; }
420
+ get _accessors() { var _a; return (_a = this._glTF.accessors) !== null && _a !== void 0 ? _a : emptyDict; }
421
+ get _bufferViews() { var _a; return (_a = this._glTF.bufferViews) !== null && _a !== void 0 ? _a : emptyDict; }
422
+ get _materials() { var _a; return (_a = this._glTF.materials) !== null && _a !== void 0 ? _a : emptyDict; }
423
+ get _samplers() { var _a; return (_a = this._glTF.samplers) !== null && _a !== void 0 ? _a : emptyDict; }
424
+ get _textures() { var _a; return (_a = this._glTF.textures) !== null && _a !== void 0 ? _a : emptyDict; }
425
+ get _images() { var _a; return (_a = this._glTF.images) !== null && _a !== void 0 ? _a : emptyDict; }
426
+ get _buffers() { var _a; return (_a = this._glTF.buffers) !== null && _a !== void 0 ? _a : emptyDict; }
122
427
  get _isCanceled() { return undefined !== this._canceled && this._canceled(this); }
123
428
  get _isVolumeClassifier() { return core_common_1.BatchType.VolumeClassifier === this._type; }
429
+ /** Traverse the nodes specified by their Ids, recursing into their child nodes.
430
+ * @param nodeIds The Ids of the nodes to traverse.
431
+ * @throws Error if a node appears more than once during traversal
432
+ */
433
+ traverseNodes(nodeIds) {
434
+ return traverseNodes(nodeIds, this._nodes, new Set());
435
+ }
436
+ /** Traverse the nodes specified by their scene, recursing into their child nodes.
437
+ * @throws Error if a node appears more than once during traversal
438
+ */
439
+ traverseScene() {
440
+ return this.traverseNodes(this._sceneNodes);
441
+ }
124
442
  readGltfAndCreateGraphics(isLeaf, featureTable, contentRange, transformToRoot, pseudoRtcBias, instances) {
125
443
  var _a;
126
444
  if (this._isCanceled)
127
445
  return { readStatus: core_common_1.TileReadStatus.Canceled, isLeaf };
128
- if (this._returnToCenter !== undefined || ((_a = this._nodes[0]) === null || _a === void 0 ? void 0 : _a.matrix) !== undefined || (pseudoRtcBias !== undefined && pseudoRtcBias.magnitude() < 1.0E5))
446
+ // If contentRange was not supplied, we will compute it as we read the meshes.
447
+ if (!contentRange)
448
+ this._computedContentRange = contentRange = core_geometry_1.Range3d.createNull();
449
+ else
450
+ this._computedContentRange = undefined;
451
+ // ###TODO this looks like a hack? Why does it assume the first node's transform is special, or that the transform will be specified as a matrix instead of translation+rot+scale?
452
+ if (this._returnToCenter || ((_a = this._nodes[0]) === null || _a === void 0 ? void 0 : _a.matrix) || (pseudoRtcBias && pseudoRtcBias.magnitude() < 1.0E5))
129
453
  pseudoRtcBias = undefined;
130
- const childNodes = new Set();
131
- for (const key of Object.keys(this._nodes)) {
132
- const node = this._nodes[key];
133
- if (node.children)
134
- for (const child of node.children)
135
- childNodes.add(child.toString());
136
- }
454
+ const transformStack = new TransformStack();
137
455
  const renderGraphicList = [];
138
456
  let readStatus = core_common_1.TileReadStatus.InvalidTileData;
139
- for (const nodeKey of Object.keys(this._nodes))
140
- if (!childNodes.has(nodeKey))
141
- if (core_common_1.TileReadStatus.Success !== (readStatus = this.readNodeAndCreateGraphics(renderGraphicList, this._nodes[nodeKey], featureTable, undefined, instances, pseudoRtcBias)))
142
- return { readStatus, isLeaf };
457
+ for (const nodeKey of this._sceneNodes) {
458
+ (0, core_bentley_1.assert)(transformStack.isEmpty);
459
+ const node = this._nodes[nodeKey];
460
+ if (node && core_common_1.TileReadStatus.Success !== (readStatus = this.readNodeAndCreateGraphics(renderGraphicList, node, featureTable, transformStack, instances, pseudoRtcBias)))
461
+ return { readStatus, isLeaf };
462
+ }
143
463
  if (0 === renderGraphicList.length)
144
464
  return { readStatus: core_common_1.TileReadStatus.InvalidTileData, isLeaf };
145
465
  let renderGraphic;
@@ -149,20 +469,21 @@ class GltfReader {
149
469
  renderGraphic = this._system.createGraphicList(renderGraphicList);
150
470
  let transform;
151
471
  let range = contentRange;
152
- if (undefined !== this._returnToCenter || undefined !== pseudoRtcBias || this._yAxisUp || undefined !== transformToRoot) {
153
- if (undefined !== this._returnToCenter)
154
- transform = core_geometry_1.Transform.createTranslationXYZ(this._returnToCenter[0], this._returnToCenter[1], this._returnToCenter[2]);
155
- else if (undefined !== pseudoRtcBias)
472
+ if (this._returnToCenter || pseudoRtcBias || this._yAxisUp || transformToRoot) {
473
+ if (this._returnToCenter)
474
+ transform = core_geometry_1.Transform.createTranslation(this._returnToCenter.clone());
475
+ else if (pseudoRtcBias)
156
476
  transform = core_geometry_1.Transform.createTranslationXYZ(pseudoRtcBias.x, pseudoRtcBias.y, pseudoRtcBias.z);
157
477
  else
158
478
  transform = core_geometry_1.Transform.createIdentity();
159
479
  if (this._yAxisUp)
160
480
  transform = transform.multiplyTransformMatrix3d(core_geometry_1.Matrix3d.createRotationAroundVector(core_geometry_1.Vector3d.create(1.0, 0.0, 0.0), core_geometry_1.Angle.createRadians(core_geometry_1.Angle.piOver2Radians)));
161
- if (undefined !== transformToRoot)
481
+ if (transformToRoot)
162
482
  transform = transformToRoot.multiplyTransformTransform(transform);
163
483
  range = transform.inverse().multiplyRange(contentRange);
164
484
  }
165
- renderGraphic = this._system.createBatch(renderGraphic, core_common_1.PackedFeatureTable.pack(featureTable), range);
485
+ if (featureTable)
486
+ renderGraphic = this._system.createBatch(renderGraphic, core_common_1.PackedFeatureTable.pack(featureTable), range);
166
487
  if (transform) {
167
488
  const branch = new GraphicBranch_1.GraphicBranch(true);
168
489
  branch.add(renderGraphic);
@@ -176,11 +497,9 @@ class GltfReader {
176
497
  };
177
498
  }
178
499
  graphicFromMeshData(gltfMesh, meshGraphicArgs, instances) {
179
- if (!gltfMesh.points || !gltfMesh.pointRange) {
180
- (0, core_bentley_1.assert)(false);
500
+ if (!gltfMesh.points || !gltfMesh.pointRange)
181
501
  return;
182
- }
183
- const realityMeshPrimitive = (forceLUT || instances) ? undefined : RealityMeshPrimitive_1.RealityMeshPrimitive.createFromGltfMesh(gltfMesh);
502
+ const realityMeshPrimitive = (this._vertexTableRequired || instances) ? undefined : RealityMeshPrimitive_1.RealityMeshPrimitive.createFromGltfMesh(gltfMesh);
184
503
  if (realityMeshPrimitive) {
185
504
  const realityMesh = this._system.createRealityMesh(realityMeshPrimitive);
186
505
  if (realityMesh)
@@ -201,16 +520,12 @@ class GltfReader {
201
520
  mesh.normals.push(new core_common_1.OctEncodedNormal(normal));
202
521
  return mesh.getGraphics(meshGraphicArgs, this._system, instances);
203
522
  }
204
- readNodeAndCreateGraphics(renderGraphicList, node, featureTable, parentTransform, instances, pseudoRtcBias) {
523
+ readNodeAndCreateGraphics(renderGraphicList, node, featureTable, transformStack, instances, pseudoRtcBias) {
205
524
  if (undefined === node)
206
525
  return core_common_1.TileReadStatus.InvalidTileData;
207
- let thisTransform = parentTransform;
208
- let thisBias;
209
- if (Array.isArray(node.matrix)) {
210
- const jTrans = node.matrix;
211
- const nodeTransform = core_geometry_1.Transform.createOriginAndMatrix(core_geometry_1.Point3d.create(jTrans[12], jTrans[13], jTrans[14]), core_geometry_1.Matrix3d.createRowValues(jTrans[0], jTrans[4], jTrans[8], jTrans[1], jTrans[5], jTrans[9], jTrans[2], jTrans[6], jTrans[10]));
212
- thisTransform = thisTransform ? thisTransform.multiplyTransformTransform(nodeTransform) : nodeTransform;
213
- }
526
+ // IMPORTANT: Do not return without popping this node from the stack.
527
+ transformStack.push(node);
528
+ const thisTransform = transformStack.transform;
214
529
  /**
215
530
  * This is a workaround for tiles generated by
216
531
  * context capture which have a large offset from the tileset origin that exceeds the
@@ -219,19 +534,24 @@ class GltfReader {
219
534
  * as the vertices are supplied in a quantized format, applying the RTC bias to
220
535
  * quantization origin will make these tiles work correctly.
221
536
  */
222
- if (undefined !== pseudoRtcBias) {
537
+ let thisBias;
538
+ if (undefined !== pseudoRtcBias)
223
539
  thisBias = (undefined === thisTransform) ? pseudoRtcBias : thisTransform.matrix.multiplyInverse(pseudoRtcBias);
224
- }
225
- const meshKey = node.meshes ? node.meshes : node.mesh;
226
- if (undefined !== meshKey) {
540
+ for (const meshKey of getNodeMeshIds(node)) {
227
541
  const nodeMesh = this._meshes[meshKey];
228
- if (nodeMesh) {
542
+ if (nodeMesh === null || nodeMesh === void 0 ? void 0 : nodeMesh.primitives) {
229
543
  const meshGraphicArgs = new MeshPrimitives_1.MeshGraphicArgs();
230
544
  const meshes = [];
231
545
  for (const primitive of nodeMesh.primitives) {
232
546
  const geometry = this.readMeshPrimitive(primitive, featureTable, thisBias);
233
- if (undefined !== geometry)
547
+ if (geometry) {
234
548
  meshes.push(geometry);
549
+ if (this._computedContentRange && geometry.pointRange) {
550
+ const invTransform = thisTransform === null || thisTransform === void 0 ? void 0 : thisTransform.inverse();
551
+ const meshRange = invTransform ? invTransform.multiplyRange(geometry.pointRange) : geometry.pointRange;
552
+ this._computedContentRange.extendRange(meshRange);
553
+ }
554
+ }
235
555
  }
236
556
  let renderGraphic;
237
557
  if (0 !== meshes.length) {
@@ -260,30 +580,41 @@ class GltfReader {
260
580
  }
261
581
  }
262
582
  if (node.children) {
263
- for (const child of node.children)
264
- this.readNodeAndCreateGraphics(renderGraphicList, this._nodes[child], featureTable, thisTransform, instances);
583
+ for (const childId of node.children) {
584
+ const child = this._nodes[childId];
585
+ if (child)
586
+ this.readNodeAndCreateGraphics(renderGraphicList, child, featureTable, transformStack, instances);
587
+ }
265
588
  }
589
+ transformStack.pop();
266
590
  return core_common_1.TileReadStatus.Success;
267
591
  }
592
+ // ###TODO what is the actual type of `json`?
268
593
  getBufferView(json, accessorName) {
269
594
  try {
270
595
  const accessorValue = core_bentley_1.JsonUtils.asString(json[accessorName]);
271
- const accessor = 0 < accessorValue.length ? core_bentley_1.JsonUtils.asObject(this._accessors[accessorValue]) : undefined;
272
- const bufferViewAccessorValue = undefined !== accessor ? core_bentley_1.JsonUtils.asString(accessor.bufferView) : "";
273
- const bufferView = 0 < bufferViewAccessorValue.length ? core_bentley_1.JsonUtils.asObject(this._bufferViews[bufferViewAccessorValue]) : undefined;
274
- if (undefined === accessor)
596
+ const accessor = accessorValue ? this._accessors[accessorValue] : undefined;
597
+ if (!accessor)
598
+ return undefined;
599
+ const bufferViewAccessorValue = accessor.bufferView;
600
+ const bufferView = undefined !== bufferViewAccessorValue ? this._bufferViews[bufferViewAccessorValue] : undefined;
601
+ if (!bufferView || undefined === bufferView.buffer)
602
+ return undefined;
603
+ const buffer = this._buffers[bufferView.buffer];
604
+ const bufferData = buffer === null || buffer === void 0 ? void 0 : buffer.resolvedBuffer;
605
+ if (!bufferData)
275
606
  return undefined;
276
607
  const type = accessor.componentType;
277
608
  let dataSize = 0;
278
609
  switch (type) {
279
- case core_common_1.GltfDataType.UnsignedByte:
610
+ case GltfDataType.UnsignedByte:
280
611
  dataSize = 1;
281
612
  break;
282
- case core_common_1.GltfDataType.UnsignedShort:
613
+ case GltfDataType.UnsignedShort:
283
614
  dataSize = 2;
284
615
  break;
285
- case core_common_1.GltfDataType.UInt32:
286
- case core_common_1.GltfDataType.Float:
616
+ case GltfDataType.UInt32:
617
+ case GltfDataType.Float:
287
618
  dataSize = 4;
288
619
  break;
289
620
  default:
@@ -302,38 +633,26 @@ class GltfReader {
302
633
  const offset = ((bufferView && bufferView.byteOffset) ? bufferView.byteOffset : 0) + (accessor.byteOffset ? accessor.byteOffset : 0);
303
634
  const length = byteStride * accessor.count;
304
635
  // If the data is misaligned (Scalable mesh tile publisher) use slice to copy -- else use subarray.
305
- // assert(0 === offset % dataSize);
306
- const bytes = (0 === (this._binaryData.byteOffset + offset) % dataSize) ? this._binaryData.subarray(offset, offset + length) : this._binaryData.slice(offset, offset + length);
307
- return new core_common_1.GltfBufferView(bytes, accessor.count, type, accessor, byteStride / dataSize);
636
+ const aligned = 0 === (bufferData.byteOffset + offset) % dataSize;
637
+ const bytes = aligned ? bufferData.subarray(offset, offset + length) : bufferData.slice(offset, offset + length);
638
+ return new GltfBufferView(bytes, accessor.count, type, accessor, byteStride / dataSize);
308
639
  }
309
640
  catch (e) {
310
641
  return undefined;
311
642
  }
312
643
  }
313
- readBufferData32(json, accessorName) { return this.readBufferData(json, accessorName, core_common_1.GltfDataType.UInt32); }
314
- readBufferData16(json, accessorName) { return this.readBufferData(json, accessorName, core_common_1.GltfDataType.UnsignedShort); }
315
- readBufferData8(json, accessorName) { return this.readBufferData(json, accessorName, core_common_1.GltfDataType.UnsignedByte); }
316
- readBufferDataFloat(json, accessorName) { return this.readBufferData(json, accessorName, core_common_1.GltfDataType.Float); }
644
+ readBufferData32(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.UInt32); }
645
+ readBufferData16(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.UnsignedShort); }
646
+ readBufferData8(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.UnsignedByte); }
647
+ readBufferDataFloat(json, accessorName) { return this.readBufferData(json, accessorName, GltfDataType.Float); }
317
648
  readBufferData(json, accessorName, type) {
318
649
  const view = this.getBufferView(json, accessorName);
319
650
  return undefined !== view ? view.toBufferData(type) : undefined;
320
651
  }
321
652
  readFeatureIndices(_json) { return undefined; }
322
- colorFromJson(values) { return core_common_1.ColorDef.from(values[0] * 255, values[1] * 255, values[2] * 255, (1.0 - values[3]) * 255); }
323
- colorFromMaterial(materialJson) {
324
- if (materialJson) {
325
- if (materialJson.values && Array.isArray(materialJson.values.color))
326
- return this.colorFromJson(materialJson.values.color);
327
- else if (materialJson.pbrMetallicRoughness && Array.isArray(materialJson.pbrMetallicRoughness.baseColorFactor))
328
- return this.colorFromJson(materialJson.pbrMetallicRoughness.baseColorFactor);
329
- else if (materialJson.extensions && materialJson.extensions.KHR_techniques_webgl && materialJson.extensions.KHR_techniques_webgl.values && materialJson.extensions.KHR_techniques_webgl.values.u_color)
330
- return this.colorFromJson(materialJson.extensions.KHR_techniques_webgl.values.u_color);
331
- }
332
- return core_common_1.ColorDef.white;
333
- }
334
- extractTextureId(materialJson) {
653
+ extractTextureId(material) {
335
654
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
336
- if (typeof materialJson !== "object")
655
+ if (typeof material !== "object")
337
656
  return undefined;
338
657
  const extractId = (value) => {
339
658
  switch (typeof value) {
@@ -346,67 +665,73 @@ class GltfReader {
346
665
  }
347
666
  };
348
667
  // Bimium's shader value...almost certainly obsolete at this point.
349
- let id = extractId((_a = materialJson.values) === null || _a === void 0 ? void 0 : _a.tex);
350
- if (undefined !== id)
351
- return id;
668
+ if (isGltf1Material(material))
669
+ return (_a = material.diffuse) !== null && _a !== void 0 ? _a : extractId((_b = material.values) === null || _b === void 0 ? void 0 : _b.tex);
352
670
  // KHR_techniques_webgl extension
353
- const techniques = (_c = (_b = this._extensions) === null || _b === void 0 ? void 0 : _b.KHR_techniques_webgl) === null || _c === void 0 ? void 0 : _c.techniques;
354
- const ext = Array.isArray(techniques) ? (_d = materialJson.extensions) === null || _d === void 0 ? void 0 : _d.KHR_techniques_webgl : undefined;
355
- if (undefined !== ext && typeof ext.values === "object") {
671
+ const techniques = (_d = (_c = this._glTF.extensions) === null || _c === void 0 ? void 0 : _c.KHR_techniques_webgl) === null || _d === void 0 ? void 0 : _d.techniques;
672
+ const ext = Array.isArray(techniques) ? (_e = material.extensions) === null || _e === void 0 ? void 0 : _e.KHR_techniques_webgl : undefined;
673
+ if (techniques && undefined !== ext && typeof (ext.values) === "object") {
356
674
  const uniforms = typeof ext.technique === "number" ? techniques[ext.technique].uniforms : undefined;
357
675
  if (typeof uniforms === "object") {
358
676
  for (const uniformName of Object.keys(uniforms)) {
359
677
  const uniform = uniforms[uniformName];
360
- if (typeof uniform === "object" && uniform.type === core_common_1.GltfDataType.Sampler2d)
361
- return extractId((_e = ext.values[uniformName]) === null || _e === void 0 ? void 0 : _e.index);
678
+ if (typeof uniform === "object" && uniform.type === GltfDataType.Sampler2d)
679
+ return extractId((_f = ext.values[uniformName]) === null || _f === void 0 ? void 0 : _f.index);
362
680
  }
363
681
  }
364
682
  }
365
- id = extractId((_f = materialJson.diffuseTexture) === null || _f === void 0 ? void 0 : _f.index);
366
- id = id !== null && id !== void 0 ? id : extractId((_g = materialJson.emissiveTexture) === null || _g === void 0 ? void 0 : _g.index);
367
- return id !== null && id !== void 0 ? id : extractId((_j = (_h = materialJson.pbrMetallicRoughness) === null || _h === void 0 ? void 0 : _h.baseColorTexture) === null || _j === void 0 ? void 0 : _j.index);
683
+ const id = extractId((_h = (_g = material.pbrMetallicRoughness) === null || _g === void 0 ? void 0 : _g.baseColorTexture) === null || _h === void 0 ? void 0 : _h.index);
684
+ return id !== null && id !== void 0 ? id : extractId((_j = material.emissiveTexture) === null || _j === void 0 ? void 0 : _j.index);
368
685
  }
369
- createDisplayParams(materialJson, hasBakedLighting) {
370
- const textureId = this.extractTextureId(materialJson);
371
- const textureMapping = undefined !== textureId ? this.findTextureMapping(textureId) : undefined;
372
- const color = this.colorFromMaterial(materialJson);
373
- return new DisplayParams_1.DisplayParams(DisplayParams_1.DisplayParams.Type.Mesh, color, color, 1, core_common_1.LinePixels.Solid, core_common_1.FillFlags.Always, undefined, undefined, hasBakedLighting, textureMapping);
374
- }
375
- extractReturnToCenter(extensions) {
376
- if (extensions === undefined) {
377
- return undefined;
686
+ isMaterialTransparent(material) {
687
+ var _a, _b;
688
+ if (isGltf1Material(material)) {
689
+ if (this._glTF.techniques && undefined !== material.technique) {
690
+ const technique = this._glTF.techniques[material.technique];
691
+ if ((_b = (_a = technique === null || technique === void 0 ? void 0 : technique.states) === null || _a === void 0 ? void 0 : _a.enable) === null || _b === void 0 ? void 0 : _b.some((state) => state === GltfTechniqueState.Blend))
692
+ return true;
693
+ }
694
+ return false;
695
+ }
696
+ else {
697
+ // Default: OPAQUE.
698
+ // ###TODO support MASK. For now treat as opaque.
699
+ return "BLEND" === material.alphaMode;
378
700
  }
379
- const cesiumRtc = core_bentley_1.JsonUtils.asObject(extensions.CESIUM_RTC);
380
- if (cesiumRtc === undefined)
381
- return undefined;
382
- const rtc = core_bentley_1.JsonUtils.asArray(cesiumRtc.center);
383
- return (rtc[0] === 0.0 && rtc[1] === 0.0 && rtc[2] === 0.0) ? undefined : rtc;
701
+ }
702
+ createDisplayParams(material, hasBakedLighting) {
703
+ const isTransparent = this.isMaterialTransparent(material);
704
+ const textureId = this.extractTextureId(material);
705
+ const textureMapping = undefined !== textureId ? this.findTextureMapping(textureId, isTransparent) : undefined;
706
+ const color = colorFromMaterial(material, isTransparent);
707
+ return new DisplayParams_1.DisplayParams(DisplayParams_1.DisplayParams.Type.Mesh, color, color, 1, core_common_1.LinePixels.Solid, core_common_1.FillFlags.Always, undefined, undefined, hasBakedLighting, textureMapping);
384
708
  }
385
709
  readMeshPrimitive(primitive, featureTable, pseudoRtcBias) {
386
- var _a, _b;
710
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
387
711
  const materialName = core_bentley_1.JsonUtils.asString(primitive.material);
388
- const hasBakedLighting = undefined === primitive.attributes.NORMAL;
389
- const materialValue = 0 < materialName.length ? core_bentley_1.JsonUtils.asObject(this._materialValues[materialName]) : undefined;
390
- const displayParams = this.createDisplayParams(materialValue, hasBakedLighting);
391
- if (undefined === displayParams)
712
+ const material = 0 < materialName.length ? this._materials[materialName] : undefined;
713
+ if (!material)
714
+ return undefined;
715
+ const hasBakedLighting = undefined === primitive.attributes.NORMAL || undefined !== ((_a = material.extensions) === null || _a === void 0 ? void 0 : _a.KHR_materials_unlit);
716
+ const displayParams = material ? this.createDisplayParams(material, hasBakedLighting) : undefined;
717
+ if (!displayParams)
392
718
  return undefined;
393
719
  let primitiveType = -1;
394
- const meshMode = core_bentley_1.JsonUtils.asInt(primitive.mode, core_common_1.GltfMeshMode.Triangles);
720
+ const meshMode = core_bentley_1.JsonUtils.asInt(primitive.mode, GltfMeshMode.Triangles);
395
721
  switch (meshMode) {
396
- case core_common_1.GltfMeshMode.Lines:
722
+ case GltfMeshMode.Lines:
397
723
  primitiveType = MeshPrimitives_1.Mesh.PrimitiveType.Polyline;
398
724
  break;
399
- case core_common_1.GltfMeshMode.Points:
725
+ case GltfMeshMode.Points:
400
726
  primitiveType = MeshPrimitives_1.Mesh.PrimitiveType.Point;
401
727
  break;
402
- case core_common_1.GltfMeshMode.Triangles:
728
+ case GltfMeshMode.Triangles:
403
729
  primitiveType = MeshPrimitives_1.Mesh.PrimitiveType.Mesh;
404
730
  break;
405
731
  default:
406
732
  (0, core_bentley_1.assert)(false);
407
733
  return undefined;
408
734
  }
409
- const isPlanar = core_bentley_1.JsonUtils.asBool(primitive.isPlanar);
410
735
  const isVolumeClassifier = this._isVolumeClassifier;
411
736
  const meshPrimitive = MeshPrimitives_1.Mesh.create({
412
737
  displayParams,
@@ -414,7 +739,7 @@ class GltfReader {
414
739
  type: primitiveType,
415
740
  range: core_geometry_1.Range3d.createNull(),
416
741
  is2d: !this._is3d,
417
- isPlanar,
742
+ isPlanar: false,
418
743
  hasBakedLighting,
419
744
  isVolumeClassifier,
420
745
  });
@@ -424,12 +749,12 @@ class GltfReader {
424
749
  // uv parameters to pick the colors out of the color map texture.
425
750
  meshPrimitive.colorMap.insert(displayParams.fillColor.tbgr); // White...
426
751
  const colorIndices = this.readBufferData16(primitive.attributes, "_COLORINDEX");
427
- if (undefined !== colorIndices) {
752
+ if (undefined !== colorIndices && material) {
428
753
  let texStep;
429
- if (materialValue.values !== undefined && Array.isArray(materialValue.values.texStep))
430
- texStep = materialValue.values.texStep;
431
- else if (materialValue.extensions && materialValue.extensions.KHR_techniques_webgl && materialValue.extensions.KHR_techniques_webgl.values && Array.isArray(materialValue.extensions.KHR_techniques_webgl.values.u_texStep))
432
- texStep = materialValue.extensions.KHR_techniques_webgl.values.u_texStep;
754
+ if (isGltf1Material(material))
755
+ texStep = (_b = material.values) === null || _b === void 0 ? void 0 : _b.texStep;
756
+ else
757
+ texStep = (_e = (_d = (_c = material.extensions) === null || _c === void 0 ? void 0 : _c.KHR_techniques_webgl) === null || _d === void 0 ? void 0 : _d.values) === null || _e === void 0 ? void 0 : _e.u_texStep;
433
758
  if (texStep) {
434
759
  const uvParams = [];
435
760
  for (let i = 0; i < colorIndices.count; i++)
@@ -439,7 +764,7 @@ class GltfReader {
439
764
  mesh.uvQParams = paramList.params;
440
765
  }
441
766
  }
442
- if ((_a = primitive.extensions) === null || _a === void 0 ? void 0 : _a.KHR_draco_mesh_compression) {
767
+ if ((_f = primitive.extensions) === null || _f === void 0 ? void 0 : _f.KHR_draco_mesh_compression) {
443
768
  return undefined; // Defer Draco decompression until web workers implementation.
444
769
  /*
445
770
  const dracoExtension = primitive.extensions.KHR_draco_mesh_compression;
@@ -458,8 +783,14 @@ class GltfReader {
458
783
  return undefined;
459
784
  if (!displayParams.ignoreLighting && !this.readNormals(mesh, primitive.attributes, "NORMAL"))
460
785
  return undefined;
461
- if (!mesh.uvs)
462
- this.readUVParams(mesh, primitive.attributes, "TEXCOORD_0");
786
+ if (!mesh.uvs) {
787
+ let texCoordIndex = 0;
788
+ if (!isGltf1Material(material) && undefined !== ((_h = (_g = material.pbrMetallicRoughness) === null || _g === void 0 ? void 0 : _g.baseColorTexture) === null || _h === void 0 ? void 0 : _h.texCoord))
789
+ texCoordIndex = core_bentley_1.JsonUtils.asInt(material.pbrMetallicRoughness.baseColorTexture.texCoord);
790
+ this.readUVParams(mesh, primitive.attributes, `TEXCOORD_${texCoordIndex}`);
791
+ }
792
+ if (this._deduplicateVertices && !this.deduplicateVertices(mesh))
793
+ return undefined;
463
794
  break;
464
795
  }
465
796
  case MeshPrimitives_1.Mesh.PrimitiveType.Polyline:
@@ -475,7 +806,7 @@ class GltfReader {
475
806
  }
476
807
  if (displayParams.textureMapping && !mesh.uvs)
477
808
  return undefined;
478
- if ((_b = primitive.extensions) === null || _b === void 0 ? void 0 : _b.CESIUM_primitive_outline) {
809
+ if ((_j = primitive.extensions) === null || _j === void 0 ? void 0 : _j.CESIUM_primitive_outline) {
479
810
  const data = this.readBufferData32(primitive.extensions.CESIUM_primitive_outline, "indices");
480
811
  if (data !== undefined) {
481
812
  (0, core_bentley_1.assert)(0 === data.count % 2);
@@ -486,6 +817,37 @@ class GltfReader {
486
817
  }
487
818
  return mesh;
488
819
  }
820
+ deduplicateVertices(mesh) {
821
+ if (!mesh.points || !mesh.indices)
822
+ return false;
823
+ const numPoints = mesh.indices.length;
824
+ (0, core_bentley_1.assert)(0 === numPoints % 3);
825
+ const indices = mesh.indices;
826
+ if (indices instanceof Uint16Array && numPoints > 0xffff)
827
+ mesh.indices = new Uint32Array(numPoints);
828
+ else if (indices instanceof Uint8Array && numPoints > 0xff)
829
+ mesh.indices = new Uint32Array(numPoints);
830
+ const points = new Uint16Array(3 * numPoints);
831
+ const normals = mesh.normals ? new Uint16Array(numPoints) : undefined;
832
+ const uvs = mesh.uvs ? new Uint16Array(2 * numPoints) : undefined;
833
+ for (let i = 0; i < numPoints; i++) {
834
+ const index = indices[i];
835
+ mesh.indices[i] = i;
836
+ points[i * 3 + 0] = mesh.points[index * 3 + 0];
837
+ points[i * 3 + 1] = mesh.points[index * 3 + 1];
838
+ points[i * 3 + 2] = mesh.points[index * 3 + 2];
839
+ if (normals)
840
+ normals[i] = mesh.normals[index];
841
+ if (uvs) {
842
+ uvs[i * 2 + 0] = mesh.uvs[index * 2 + 0];
843
+ uvs[i * 2 + 1] = mesh.uvs[index * 2 + 1];
844
+ }
845
+ }
846
+ mesh.points = points;
847
+ mesh.normals = normals;
848
+ mesh.uvs = uvs;
849
+ return true;
850
+ }
489
851
  /**
490
852
  *
491
853
  * @param positions quantized points
@@ -498,8 +860,8 @@ class GltfReader {
498
860
  const view = this.getBufferView(primitive.attributes, "POSITION");
499
861
  if (undefined === view)
500
862
  return false;
501
- if (core_common_1.GltfDataType.Float === view.type) {
502
- const buffer = view.toBufferData(core_common_1.GltfDataType.Float);
863
+ if (GltfDataType.Float === view.type) {
864
+ const buffer = view.toBufferData(GltfDataType.Float);
503
865
  if (undefined === buffer)
504
866
  return false;
505
867
  const strideSkip = view.stride - 3;
@@ -518,7 +880,7 @@ class GltfReader {
518
880
  mesh.points = positions.toTypedArray();
519
881
  }
520
882
  else {
521
- if (core_common_1.GltfDataType.UnsignedShort !== view.type)
883
+ if (GltfDataType.UnsignedShort !== view.type)
522
884
  return false;
523
885
  const extensions = core_bentley_1.JsonUtils.asObject(view.accessor.extensions);
524
886
  const quantized = undefined !== extensions ? core_bentley_1.JsonUtils.asObject(extensions.WEB3D_quantized_attributes) : undefined;
@@ -528,7 +890,7 @@ class GltfReader {
528
890
  const rangeMax = core_bentley_1.JsonUtils.asArray(quantized.decodedMax);
529
891
  if (undefined === rangeMin || undefined === rangeMax)
530
892
  return false;
531
- const buffer = view.toBufferData(core_common_1.GltfDataType.UnsignedShort);
893
+ const buffer = view.toBufferData(GltfDataType.UnsignedShort);
532
894
  if (undefined === buffer || !(buffer.buffer instanceof Uint16Array))
533
895
  return false;
534
896
  (0, core_bentley_1.assert)(buffer.buffer instanceof Uint16Array);
@@ -565,10 +927,22 @@ class GltfReader {
565
927
  readBatchTable(_mesh, _json) {
566
928
  }
567
929
  readMeshIndices(mesh, json) {
568
- const data = this.readBufferData16(json, "indices") || this.readBufferData32(json, "indices");
569
- if (undefined === data || (!(data.buffer instanceof (Uint16Array)) && !(data.buffer instanceof (Uint32Array))))
930
+ var _a;
931
+ if (undefined !== json.indices) {
932
+ const data = this.readBufferData16(json, "indices") || this.readBufferData32(json, "indices");
933
+ if (data && (data.buffer instanceof Uint8Array || data.buffer instanceof Uint16Array || data.buffer instanceof Uint32Array)) {
934
+ mesh.indices = data.buffer;
935
+ return true;
936
+ }
570
937
  return false;
571
- mesh.indices = data.buffer;
938
+ }
939
+ // Non-indexed geometry. Manufacture triangle indices from points.
940
+ const numPoints = (_a = mesh.points) === null || _a === void 0 ? void 0 : _a.length;
941
+ if (undefined === numPoints || 0 !== numPoints % 3)
942
+ return false;
943
+ mesh.indices = numPoints < 255 ? new Uint8Array(numPoints) : (numPoints < 0xffff ? new Uint16Array(numPoints) : new Uint32Array(numPoints));
944
+ for (let i = 0; i < numPoints; i++)
945
+ mesh.indices[i] = i;
572
946
  return true;
573
947
  }
574
948
  readNormals(mesh, json, accessorName) {
@@ -576,8 +950,8 @@ class GltfReader {
576
950
  if (undefined === view)
577
951
  return false;
578
952
  switch (view.type) {
579
- case core_common_1.GltfDataType.Float: {
580
- const data = view.toBufferData(core_common_1.GltfDataType.Float);
953
+ case GltfDataType.Float: {
954
+ const data = view.toBufferData(GltfDataType.Float);
581
955
  if (undefined === data)
582
956
  return false;
583
957
  mesh.normals = new Uint16Array(data.count);
@@ -589,8 +963,8 @@ class GltfReader {
589
963
  }
590
964
  return true;
591
965
  }
592
- case core_common_1.GltfDataType.UnsignedByte: {
593
- const data = view.toBufferData(core_common_1.GltfDataType.UnsignedByte);
966
+ case GltfDataType.UnsignedByte: {
967
+ const data = view.toBufferData(GltfDataType.UnsignedByte);
594
968
  if (undefined === data)
595
969
  return false;
596
970
  // ###TODO: we shouldn't have to allocate OctEncodedNormal objects...just use uint16s / numbers...
@@ -609,12 +983,13 @@ class GltfReader {
609
983
  }
610
984
  readUVParams(mesh, json, accessorName) {
611
985
  const view = this.getBufferView(json, accessorName);
612
- let data;
613
986
  if (view === undefined)
614
987
  return false;
615
988
  switch (view.type) {
616
- case core_common_1.GltfDataType.Float: {
617
- data = this.readBufferDataFloat(json, accessorName);
989
+ case GltfDataType.Float: {
990
+ const data = this.readBufferDataFloat(json, accessorName);
991
+ if (!data)
992
+ return false;
618
993
  mesh.uvRange = core_geometry_1.Range2d.createNull();
619
994
  for (let i = 0; i < data.count; i++) {
620
995
  const index = view.stride * i; // 2 float per param...
@@ -629,7 +1004,7 @@ class GltfReader {
629
1004
  }
630
1005
  return true;
631
1006
  }
632
- case core_common_1.GltfDataType.UnsignedShort: {
1007
+ case GltfDataType.UnsignedShort: {
633
1008
  const extensions = core_bentley_1.JsonUtils.asObject(view.accessor.extensions);
634
1009
  const quantized = undefined !== extensions ? core_bentley_1.JsonUtils.asObject(extensions.WEB3D_quantized_attributes) : undefined;
635
1010
  if (undefined === quantized)
@@ -638,7 +1013,7 @@ class GltfReader {
638
1013
  const rangeMax = core_bentley_1.JsonUtils.asArray(quantized.decodedMax);
639
1014
  if (undefined === rangeMin || undefined === rangeMax)
640
1015
  return false;
641
- const qData = view.toBufferData(core_common_1.GltfDataType.UnsignedShort);
1016
+ const qData = view.toBufferData(GltfDataType.UnsignedShort);
642
1017
  if (undefined === qData || !(qData.buffer instanceof Uint16Array))
643
1018
  return false;
644
1019
  mesh.uvRange = core_geometry_1.Range2d.createXYXY(rangeMin[0], rangeMin[1], rangeMax[0], rangeMax[1]);
@@ -689,88 +1064,152 @@ class GltfReader {
689
1064
  polylines.push(new core_common_1.MeshPolyline(indices));
690
1065
  return true;
691
1066
  }
692
- async loadTextures() {
693
- if (undefined === this._textures)
694
- return;
695
- const transparentTextures = new Set();
696
- for (const name of Object.keys(this._materialValues)) {
697
- const materialValue = this._materialValues[name];
698
- let technique;
699
- if (undefined !== materialValue.values &&
700
- undefined !== materialValue.values.tex &&
701
- undefined !== materialValue.technique &&
702
- undefined !== (technique = this._techniques[materialValue.technique]) &&
703
- undefined !== technique.states &&
704
- Array.isArray(technique.states.enable)) {
705
- for (const enable of technique.states.enable)
706
- if (enable === 3042)
707
- transparentTextures.add(materialValue.values.tex);
708
- }
709
- }
710
- const promises = new Array();
711
- for (const name of Object.keys(this._textures))
712
- promises.push(this.loadTexture(name, transparentTextures.has(name)));
713
- if (promises.length > 0)
1067
+ async resolveResources() {
1068
+ // ###TODO traverse the scene nodes to find resources referenced by them, instead of resolving everything - some resources may not
1069
+ // be required for the scene.
1070
+ const promises = [];
1071
+ try {
1072
+ for (const buffer of dictionaryIterator(this._buffers))
1073
+ if (!buffer.resolvedBuffer)
1074
+ promises.push(this.resolveBuffer(buffer));
714
1075
  await Promise.all(promises);
1076
+ if (this._isCanceled)
1077
+ return;
1078
+ promises.length = 0;
1079
+ for (const image of dictionaryIterator(this._images))
1080
+ if (!image.resolvedImage)
1081
+ promises.push(this.resolveImage(image));
1082
+ await Promise.all(promises);
1083
+ }
1084
+ catch (_) {
1085
+ }
715
1086
  }
716
- async loadTextureImage(imageJson, samplerJson, isTransparent) {
1087
+ resolveUrl(uri) {
717
1088
  try {
718
- const binaryImageJson = (imageJson.extensions && imageJson.extensions.KHR_binary_glTF) ? core_bentley_1.JsonUtils.asObject(imageJson.extensions.KHR_binary_glTF) : imageJson;
719
- const bufferView = this._bufferViews[binaryImageJson.bufferView];
720
- const mimeType = core_bentley_1.JsonUtils.asString(binaryImageJson.mimeType);
721
- const format = (0, ImageUtil_1.getImageSourceFormatForMimeType)(mimeType);
722
- if (undefined === format)
723
- return undefined;
724
- let textureType = core_common_1.RenderTexture.Type.Normal;
725
- if (undefined !== samplerJson &&
726
- (undefined !== samplerJson.wrapS || undefined !== samplerJson.wrapT))
727
- textureType = core_common_1.RenderTexture.Type.TileSection;
728
- const offset = bufferView.byteOffset;
729
- /* -----------------------------------
730
- const jpegArray = this._binaryData.slice(offset, offset + bufferView.byteLength);
731
- const jpegArrayBuffer = jpegArray.buffer;
732
- const workerOp = new ImageDecodeWorkerOperation(jpegArrayBuffer, mimeType);
733
- try {
734
- const imageBitmap = await GltfReader.webWorkerManager.queueOperation(workerOp)
735
- return this._isCanceled ? undefined : this._system.createTextureFromImage(imageBitmap, isTransparent && ImageSourceFormat.Png === format, this._iModel, textureParams))
736
- } catch {
737
- return undefined;
738
- }
739
- ------------------------------------- */
740
- const bytes = this._binaryData.subarray(offset, offset + bufferView.byteLength);
741
- const imageSource = new core_common_1.ImageSource(bytes, format);
742
- try {
743
- const image = await (0, ImageUtil_1.imageElementFromImageSource)(imageSource);
744
- if (this._isCanceled)
745
- return undefined;
746
- return this._system.createTexture({
747
- type: textureType,
748
- image: {
749
- source: image,
750
- transparency: isTransparent && core_common_1.ImageSourceFormat.Png === format ? RenderTexture_1.TextureTransparency.Translucent : RenderTexture_1.TextureTransparency.Opaque,
751
- },
752
- });
753
- }
754
- catch {
755
- return undefined;
756
- }
1089
+ return new URL(uri, this._baseUrl).toString();
757
1090
  }
758
- catch (e) {
1091
+ catch (_) {
759
1092
  return undefined;
760
1093
  }
761
1094
  }
762
- async loadTexture(textureId, isTransparent) {
763
- const textureJson = core_bentley_1.JsonUtils.asObject(this._textures[textureId]);
764
- if (undefined === textureJson)
1095
+ async resolveBuffer(buffer) {
1096
+ if (buffer.resolvedBuffer || undefined === buffer.uri)
765
1097
  return;
766
- const texture = await this.loadTextureImage(this._images[textureJson.source], undefined === this._samplers ? undefined : this._samplers[textureJson.sampler], isTransparent);
767
- textureJson.renderTexture = texture;
1098
+ try {
1099
+ const url = this.resolveUrl(buffer.uri);
1100
+ const response = url ? await fetch(url) : undefined;
1101
+ if (this._isCanceled)
1102
+ return;
1103
+ const data = await (response === null || response === void 0 ? void 0 : response.arrayBuffer());
1104
+ if (this._isCanceled)
1105
+ return;
1106
+ if (data)
1107
+ buffer.resolvedBuffer = new Uint8Array(data);
1108
+ }
1109
+ catch (_) {
1110
+ //
1111
+ }
768
1112
  }
769
- findTextureMapping(textureId) {
770
- const textureJson = core_bentley_1.JsonUtils.asObject(this._textures[textureId]);
771
- const texture = undefined !== textureJson ? textureJson.renderTexture : undefined;
772
- return undefined !== texture ? new core_common_1.TextureMapping(texture, new core_common_1.TextureMapping.Params()) : undefined;
1113
+ async resolveImage(image) {
1114
+ var _a, _b, _c;
1115
+ if (image.resolvedImage)
1116
+ return;
1117
+ const bvSrc = undefined !== image.bufferView ? image : (_a = image.extensions) === null || _a === void 0 ? void 0 : _a.KHR_binary_glTF;
1118
+ if (undefined !== (bvSrc === null || bvSrc === void 0 ? void 0 : bvSrc.bufferView)) {
1119
+ const format = undefined !== bvSrc.mimeType ? (0, ImageUtil_1.getImageSourceFormatForMimeType)(bvSrc.mimeType) : undefined;
1120
+ const bufferView = this._bufferViews[bvSrc.bufferView];
1121
+ if (undefined === format || !bufferView || !bufferView.byteLength || bufferView.byteLength < 0)
1122
+ return;
1123
+ const bufferData = (_b = this._buffers[bufferView.buffer]) === null || _b === void 0 ? void 0 : _b.resolvedBuffer;
1124
+ if (!bufferData)
1125
+ return;
1126
+ const offset = (_c = bufferView.byteOffset) !== null && _c !== void 0 ? _c : 0;
1127
+ const bytes = bufferData.subarray(offset, offset + bufferView.byteLength);
1128
+ try {
1129
+ image.resolvedImage = await (0, ImageUtil_1.imageElementFromImageSource)(new core_common_1.ImageSource(bytes, format));
1130
+ }
1131
+ catch (_) {
1132
+ //
1133
+ }
1134
+ return;
1135
+ }
1136
+ const url = undefined !== image.uri ? this.resolveUrl(image.uri) : undefined;
1137
+ if (undefined !== url)
1138
+ image.resolvedImage = await (0, ImageUtil_1.tryImageElementFromUrl)(url);
1139
+ }
1140
+ resolveTexture(textureId, isTransparent) {
1141
+ var _a;
1142
+ const texture = this._textures[textureId];
1143
+ if (!texture || undefined === texture.source)
1144
+ return false;
1145
+ const image = (_a = this._images[texture.source]) === null || _a === void 0 ? void 0 : _a.resolvedImage;
1146
+ if (!image)
1147
+ return false;
1148
+ const samplerId = texture.sampler;
1149
+ const sampler = undefined !== samplerId ? this._samplers[samplerId] : undefined;
1150
+ // ###TODO: RenderTexture should support different wrapping behavior for U vs V, and support mirrored repeat.
1151
+ // For now, repeat unless either explicitly clamps.
1152
+ const textureType = GltfWrapMode.ClampToEdge === (sampler === null || sampler === void 0 ? void 0 : sampler.wrapS) || GltfWrapMode.ClampToEdge === (sampler === null || sampler === void 0 ? void 0 : sampler.wrapT) ? core_common_1.RenderTexture.Type.TileSection : core_common_1.RenderTexture.Type.Normal;
1153
+ const renderTexture = this._system.createTexture({
1154
+ type: textureType,
1155
+ image: {
1156
+ source: image,
1157
+ transparency: isTransparent ? core_common_1.TextureTransparency.Mixed : core_common_1.TextureTransparency.Opaque,
1158
+ },
1159
+ });
1160
+ return renderTexture !== null && renderTexture !== void 0 ? renderTexture : false;
1161
+ }
1162
+ findTextureMapping(id, isTransparent) {
1163
+ let texture = this._resolvedTextures.get({ id, isTransparent });
1164
+ if (undefined === texture)
1165
+ this._resolvedTextures.set({ id, isTransparent }, texture = this.resolveTexture(id, isTransparent));
1166
+ return texture ? new core_common_1.TextureMapping(texture, new core_common_1.TextureMapping.Params()) : undefined;
773
1167
  }
774
1168
  }
775
1169
  exports.GltfReader = GltfReader;
1170
+ /** Produce a [[RenderGraphic]] from a [glTF](https://www.khronos.org/gltf/) asset suitable for use in [view decorations]($docs/learning/frontend/ViewDecorations).
1171
+ * @returns a graphic produced from the glTF asset's default scene, or `undefined` if a graphic could not be produced from the asset.
1172
+ * @note Support for the full [glTF 2.0 specification](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html) is currently a work in progress.
1173
+ * If a particular glTF asset fails to load and/or display properly, please
1174
+ * [submit an issue](https://github.com/iTwin/itwinjs-core/issues).
1175
+ * @see [Example decorator]($docs/learning/frontend/ViewDecorations#gltf-decorations) for an example of a decorator that reads and displays a glTF asset.
1176
+ * @public
1177
+ */
1178
+ async function readGltfGraphics(args) {
1179
+ const props = GltfReaderProps.create(args.gltf, true, args.baseUrl); // glTF supports exactly one coordinate system with y axis up.
1180
+ const reader = props ? new GltfGraphicsReader(props, args) : undefined;
1181
+ if (!reader)
1182
+ return undefined;
1183
+ const result = await reader.read();
1184
+ return result.graphic;
1185
+ }
1186
+ exports.readGltfGraphics = readGltfGraphics;
1187
+ /** Implements [[readGltfGraphics]]. Exported strictly for tests.
1188
+ * @internal
1189
+ */
1190
+ class GltfGraphicsReader extends GltfReader {
1191
+ constructor(props, args) {
1192
+ var _a, _b, _c;
1193
+ super({
1194
+ props,
1195
+ iModel: args.iModel,
1196
+ vertexTableRequired: true,
1197
+ });
1198
+ this.binaryData = props.binaryData;
1199
+ const pickableId = (_a = args.pickableOptions) === null || _a === void 0 ? void 0 : _a.id;
1200
+ if (pickableId) {
1201
+ this._featureTable = new core_common_1.FeatureTable(1, (_c = (_b = args.pickableOptions) === null || _b === void 0 ? void 0 : _b.modelId) !== null && _c !== void 0 ? _c : pickableId, core_common_1.BatchType.Primary);
1202
+ this._featureTable.insert(new core_common_1.Feature(pickableId));
1203
+ }
1204
+ }
1205
+ async read() {
1206
+ await this.resolveResources();
1207
+ return this.readGltfAndCreateGraphics(true, this._featureTable, undefined);
1208
+ }
1209
+ get nodes() { return this._nodes; }
1210
+ get scenes() { var _a; return (_a = this._glTF.scenes) !== null && _a !== void 0 ? _a : emptyDict; }
1211
+ get sceneNodes() { return this._sceneNodes; }
1212
+ get textures() { return this._textures; }
1213
+ }
1214
+ exports.GltfGraphicsReader = GltfGraphicsReader;
776
1215
  //# sourceMappingURL=GltfReader.js.map