@itwin/core-frontend 3.0.0-extension.0 → 3.1.0-dev.11

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