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