@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
@@ -39,6 +39,7 @@ export class CachedGeometry {
39
39
  get asSurface() { return undefined; }
40
40
  get asMesh() { return undefined; }
41
41
  get asEdge() { return undefined; }
42
+ get asIndexedEdge() { return undefined; }
42
43
  get asRealityMesh() { return undefined; }
43
44
  get asSilhouette() { return undefined; }
44
45
  get asInstanced() { return undefined; }
@@ -293,7 +294,7 @@ export class SkyBoxQuadsGeometry extends CachedGeometry {
293
294
  constructor(ndxGeomParams, texture) {
294
295
  super();
295
296
  this.cube = texture;
296
- this._techniqueId = 22 /* SkyBox */;
297
+ this._techniqueId = 23 /* SkyBox */;
297
298
  this._params = ndxGeomParams;
298
299
  }
299
300
  static create(texture) {
@@ -304,10 +305,12 @@ export class SkyBoxQuadsGeometry extends CachedGeometry {
304
305
  // Not interested in tracking this.
305
306
  }
306
307
  get techniqueId() { return this._techniqueId; }
307
- getRenderPass(_target) { return 13 /* SkyBox */; }
308
+ getPass() { return "skybox"; }
308
309
  get renderOrder() { return 3 /* UnlitSurface */; }
309
310
  draw() {
311
+ this._params.buffers.bind();
310
312
  System.instance.context.drawArrays(GL.PrimitiveType.Triangles, 0, 36);
313
+ this._params.buffers.unbind();
311
314
  }
312
315
  get qOrigin() { return this._params.positions.origin; }
313
316
  get qScale() { return this._params.positions.scale; }
@@ -368,7 +371,7 @@ export class ViewportQuadGeometry extends IndexedGeometry {
368
371
  return undefined !== params ? new this(params, techniqueId) : undefined;
369
372
  }
370
373
  get techniqueId() { return this._techniqueId; }
371
- getRenderPass(_target) { return 4 /* OpaqueGeneral */; }
374
+ getPass() { return "opaque"; }
372
375
  get renderOrder() { return 3 /* UnlitSurface */; }
373
376
  collectStatistics(_stats) {
374
377
  // NB: These don't really count...
@@ -407,10 +410,9 @@ export class SkySphereViewportQuadGeometry extends ViewportQuadGeometry {
407
410
  this.groundColor = new Float32Array(3);
408
411
  this.nadirColor = new Float32Array(3);
409
412
  this.zOffset = skybox.zOffset;
410
- const sphere = skybox.sphere;
411
- this.rotation = undefined !== sphere ? sphere.rotation : 0.0;
412
- if (undefined !== sphere) {
413
- this.skyTexture = sphere.texture;
413
+ this.rotation = "sphere" === skybox.type ? skybox.rotation : 0;
414
+ if (skybox.type === "sphere") {
415
+ this.skyTexture = skybox.texture;
414
416
  this.typeAndExponents[0] = 0.0;
415
417
  this.typeAndExponents[1] = 1.0;
416
418
  this.typeAndExponents[2] = 1.0;
@@ -465,7 +467,7 @@ export class SkySphereViewportQuadGeometry extends ViewportQuadGeometry {
465
467
  this._isWorldPosSet = true;
466
468
  this._setPointsFromFrustum(target);
467
469
  this._worldPosBuff.bindData(this.worldPos, GL.Buffer.Usage.StreamDraw);
468
- const attrWorldPos = AttributeMap.findAttribute("a_worldPos", 23 /* SkySphereGradient */, false);
470
+ const attrWorldPos = AttributeMap.findAttribute("a_worldPos", 24 /* SkySphereGradient */, false);
469
471
  assert(attrWorldPos !== undefined);
470
472
  this._params.buffers.addBuffer(this._worldPosBuff, [BufferParameters.create(attrWorldPos.location, 3, GL.DataType.Float, false, 0, 0, false)]);
471
473
  }
@@ -553,7 +555,7 @@ export class SkySphereViewportQuadGeometry extends ViewportQuadGeometry {
553
555
  const params = ViewportQuad.getInstance().createParams();
554
556
  if (undefined === params)
555
557
  return undefined;
556
- const technique = undefined !== skybox.sphere ? 24 /* SkySphereTexture */ : 23 /* SkySphereGradient */;
558
+ const technique = "sphere" === skybox.type ? 25 /* SkySphereTexture */ : 24 /* SkySphereGradient */;
557
559
  return new SkySphereViewportQuadGeometry(params, skybox, technique);
558
560
  }
559
561
  get isDisposed() { return super.isDisposed && this._worldPosBuff.isDisposed; }
@@ -566,24 +568,25 @@ export class SkySphereViewportQuadGeometry extends ViewportQuadGeometry {
566
568
  * @internal
567
569
  */
568
570
  export class AmbientOcclusionGeometry extends TexturedViewportQuadGeometry {
569
- static createGeometry(depthAndOrder) {
571
+ static createGeometry(depthAndOrder, depth) {
570
572
  const params = ViewportQuad.getInstance().createParams();
571
573
  if (undefined === params) {
572
574
  return undefined;
573
575
  }
574
576
  // Will derive positions and normals from depthAndOrder.
575
- return new AmbientOcclusionGeometry(params, [depthAndOrder]);
577
+ return new AmbientOcclusionGeometry(params, [depth, depthAndOrder]);
576
578
  }
577
- get depthAndOrder() { return this._textures[0]; }
579
+ get depthAndOrder() { return this._textures[1]; }
580
+ get depth() { return this._textures[0]; }
578
581
  get noise() { return System.instance.noiseTexture.getHandle(); }
579
582
  constructor(params, textures) {
580
- super(params, 25 /* AmbientOcclusion */, textures);
583
+ super(params, 26 /* AmbientOcclusion */, textures);
581
584
  }
582
585
  }
583
586
  /** @internal */
584
587
  export class BlurGeometry extends TexturedViewportQuadGeometry {
585
588
  constructor(params, textures, blurDir) {
586
- super(params, 26 /* Blur */, textures);
589
+ super(params, 27 /* Blur */, textures);
587
590
  this.blurDir = blurDir;
588
591
  }
589
592
  static createGeometry(texToBlur, depthAndOrder, blurDir) {
@@ -599,7 +602,7 @@ export class BlurGeometry extends TexturedViewportQuadGeometry {
599
602
  /** @internal */
600
603
  export class EVSMGeometry extends TexturedViewportQuadGeometry {
601
604
  constructor(params, textures, width, height) {
602
- super(params, 21 /* EVSMFromDepth */, textures);
605
+ super(params, 22 /* EVSMFromDepth */, textures);
603
606
  this.stepSize = new Float32Array(2);
604
607
  this.stepSize[0] = 1.0 / width;
605
608
  this.stepSize[1] = 1.0 / height;
@@ -643,7 +646,7 @@ export class CompositeGeometry extends TexturedViewportQuadGeometry {
643
646
  return computeCompositeTechniqueId(flags);
644
647
  }
645
648
  constructor(params, textures) {
646
- super(params, 8 /* CompositeHilite */, textures);
649
+ super(params, 9 /* CompositeHilite */, textures);
647
650
  assert(4 <= this._textures.length);
648
651
  }
649
652
  }
@@ -663,7 +666,7 @@ export class CopyPickBufferGeometry extends TexturedViewportQuadGeometry {
663
666
  get featureId() { return this._textures[0]; }
664
667
  get depthAndOrder() { return this._textures[1]; }
665
668
  constructor(params, textures) {
666
- super(params, 16 /* CopyPickBuffers */, textures);
669
+ super(params, 17 /* CopyPickBuffers */, textures);
667
670
  }
668
671
  }
669
672
  export class CombineTexturesGeometry extends TexturedViewportQuadGeometry {
@@ -679,7 +682,7 @@ export class CombineTexturesGeometry extends TexturedViewportQuadGeometry {
679
682
  get texture0() { return this._textures[0]; }
680
683
  get texture1() { return this._textures[1]; }
681
684
  constructor(params, textures) {
682
- super(params, 27 /* CombineTextures */, textures);
685
+ super(params, 28 /* CombineTextures */, textures);
683
686
  }
684
687
  }
685
688
  export class Combine3TexturesGeometry extends TexturedViewportQuadGeometry {
@@ -696,7 +699,7 @@ export class Combine3TexturesGeometry extends TexturedViewportQuadGeometry {
696
699
  get texture1() { return this._textures[1]; }
697
700
  get texture2() { return this._textures[2]; }
698
701
  constructor(params, textures) {
699
- super(params, 28 /* Combine3Textures */, textures);
702
+ super(params, 29 /* Combine3Textures */, textures);
700
703
  }
701
704
  }
702
705
  /** @internal */
@@ -724,7 +727,7 @@ export var BoundaryType;
724
727
  /** @internal */
725
728
  export class VolumeClassifierGeometry extends SingleTexturedViewportQuadGeometry {
726
729
  constructor(params, texture) {
727
- super(params, texture, 30 /* VolClassSetBlend */);
730
+ super(params, texture, 31 /* VolClassSetBlend */);
728
731
  this.boundaryType = BoundaryType.Inside;
729
732
  }
730
733
  static createVCGeometry(texture) {
@@ -752,7 +755,7 @@ export class ScreenPointsGeometry extends CachedGeometry {
752
755
  this._scale[1] = this._positions.params[3];
753
756
  this._scale[2] = this._positions.params[3]; // just copy the scale from y
754
757
  this.buffers = BuffersContainer.create();
755
- const attrPos = AttributeMap.findAttribute("a_pos", 29 /* VolClassCopyZ */, false);
758
+ const attrPos = AttributeMap.findAttribute("a_pos", 30 /* VolClassCopyZ */, false);
756
759
  assert(attrPos !== undefined);
757
760
  this.buffers.addBuffer(this._positions, [BufferParameters.create(attrPos.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);
758
761
  }
@@ -787,8 +790,8 @@ export class ScreenPointsGeometry extends CachedGeometry {
787
790
  stats.addBuffer(RenderMemory.BufferType.PointStrings, this._positions.bytesUsed);
788
791
  }
789
792
  _wantWoWReversal(_target) { return false; }
790
- get techniqueId() { return 29 /* VolClassCopyZ */; }
791
- getRenderPass(_target) { return 5 /* Classification */; }
793
+ get techniqueId() { return 30 /* VolClassCopyZ */; }
794
+ getPass() { return "classification"; }
792
795
  get renderOrder() { return 0 /* None */; }
793
796
  get qOrigin() { return this._origin; }
794
797
  get qScale() { return this._scale; }
@@ -1 +1 @@
1
- {"version":3,"file":"CachedGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/CachedGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Angle, Point2d, Point3d, Range3d, Vector2d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { Npc, QParams2d, QParams3d, QPoint2dList, QPoint3dList, RenderMode, RenderTexture } from \"@itwin/core-common\";\r\nimport { SkyBox } from \"../../DisplayStyleState\";\r\nimport { FlashMode } from \"../../FlashSettings\";\r\nimport { TesselatedPolyline } from \"../primitives/VertexTable\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { ColorInfo } from \"./ColorInfo\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { fromSumOf, FrustumUniformType } from \"./FrustumUniforms\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { InstancedGeometry } from \"./InstancedGeometry\";\r\nimport { MaterialInfo } from \"./Material\";\r\nimport { EdgeGeometry, MeshGeometry, SilhouetteEdgeGeometry, SurfaceGeometry } from \"./Mesh\";\r\nimport { PointCloudGeometry } from \"./PointCloud\";\r\nimport { CompositeFlags, RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { computeCompositeTechniqueId, TechniqueId } from \"./TechniqueId\";\r\nimport { RealityMeshGeometry } from \"./RealityMesh\";\r\nimport { TextureHandle } from \"./Texture\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\nimport { PlanarGridGeometry } from \"./PlanarGrid\";\r\n\r\nconst scratchVec3a = new Vector3d();\r\nconst scratchVec3b = new Vector3d();\r\nconst scratchVec3c = new Vector3d();\r\nconst scratchPoint3a = new Point3d();\r\nconst scratchPoint3b = new Point3d();\r\nconst scratchPoint3c = new Point3d();\r\nconst scratchPoint3d = new Point3d();\r\n\r\n/** Represents a geometric primitive ready to be submitted to the GPU for rendering.\r\n * @internal\r\n */\r\nexport abstract class CachedGeometry implements WebGLDisposable, RenderMemory.Consumer {\r\n protected _range?: Range3d;\r\n /**\r\n * Functions for obtaining a subclass of CachedGeometry.\r\n * IMPORTANT: Do NOT use code like `const surface = cachedGeom as SurfaceGeometry`.\r\n * Instanced geometry holds a reference to the shared geometry rendered for each instance - such casts will fail,\r\n * while the casting `functions` will forward to the shared geometry.\r\n */\r\n public get asLUT(): LUTGeometry | undefined { return undefined; }\r\n public get asSurface(): SurfaceGeometry | undefined { return undefined; }\r\n public get asMesh(): MeshGeometry | undefined { return undefined; }\r\n public get asEdge(): EdgeGeometry | undefined { return undefined; }\r\n public get asRealityMesh(): RealityMeshGeometry | undefined { return undefined; }\r\n public get asSilhouette(): SilhouetteEdgeGeometry | undefined { return undefined; }\r\n public get asInstanced(): InstancedGeometry | undefined { return undefined; }\r\n public get isInstanced() { return undefined !== this.asInstanced; }\r\n public get asPointCloud(): PointCloudGeometry | undefined { return undefined; }\r\n public get asPlanarGrid(): PlanarGridGeometry | undefined { return undefined; }\r\n public get alwaysRenderTranslucent(): boolean { return false; }\r\n public get allowColorOverride(): boolean { return true; }\r\n\r\n // Returns true if white portions of this geometry should render as black on white background\r\n protected abstract _wantWoWReversal(_target: Target): boolean;\r\n // Returns the edge/line weight used to render this geometry\r\n protected _getLineWeight(_params: ShaderProgramParams): number { return 0; }\r\n // Returns the edge/line pattern used to render this geometry\r\n protected _getLineCode(_params: ShaderProgramParams): number { return LineCode.solid; }\r\n\r\n public abstract get isDisposed(): boolean;\r\n // Returns the Id of the Technique used to render this geometry\r\n public abstract get techniqueId(): TechniqueId;\r\n // Returns the pass in which to render this geometry. RenderPass.None indicates it should not be rendered.\r\n public abstract getRenderPass(target: Target): RenderPass;\r\n // Returns the 'order' of this geometry, which determines how z-fighting is resolved.\r\n public abstract get renderOrder(): RenderOrder;\r\n // Returns true if this is a lit surface\r\n public get isLitSurface(): boolean { return false; }\r\n // Returns true if this is an unlit surface with baked-in lighting (e.g. 3mx, scalable mesh reality models)\r\n public get hasBakedLighting(): boolean { return false; }\r\n // Returns true if this primitive contains auxillary animation data.\r\n public get hasAnimation(): boolean { return false; }\r\n\r\n /** Returns the origin of this geometry's quantization parameters. */\r\n public abstract get qOrigin(): Float32Array;\r\n /** Returns the scale of this geometry's quantization parameters. */\r\n public abstract get qScale(): Float32Array;\r\n // Draws this geometry\r\n public abstract draw(): void;\r\n\r\n public abstract dispose(): void;\r\n\r\n // Intended to be overridden by specific subclasses\r\n public get materialInfo(): MaterialInfo | undefined { return undefined; }\r\n public get hasMaterialAtlas(): boolean {\r\n const mat = this.materialInfo;\r\n return undefined !== mat && mat.isAtlas;\r\n }\r\n\r\n public get polylineBuffers(): PolylineBuffers | undefined { return undefined; }\r\n public get hasFeatures(): boolean { return false; }\r\n public get viewIndependentOrigin(): Point3d | undefined { return undefined; }\r\n public get isViewIndependent(): boolean { return undefined !== this.viewIndependentOrigin; }\r\n\r\n public get supportsThematicDisplay() { return false; }\r\n\r\n public get isEdge(): boolean {\r\n switch (this.renderOrder) {\r\n case RenderOrder.Edge:\r\n case RenderOrder.Silhouette:\r\n case RenderOrder.PlanarEdge:\r\n case RenderOrder.PlanarSilhouette:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n public wantWoWReversal(params: ShaderProgramParams): boolean {\r\n return params.target.currentViewFlags.whiteOnWhiteReversal && this._wantWoWReversal(params.target);\r\n }\r\n public getLineCode(params: ShaderProgramParams): number {\r\n return params.target.currentViewFlags.styles ? this._getLineCode(params) : LineCode.solid;\r\n }\r\n public getLineWeight(params: ShaderProgramParams): number {\r\n if (!params.target.currentViewFlags.weights) {\r\n return 1.0;\r\n }\r\n\r\n const minWeight = 1;\r\n let weight = this._getLineWeight(params);\r\n weight = Math.max(weight, minWeight);\r\n weight = Math.min(weight, 31.0);\r\n return weight;\r\n }\r\n\r\n public getFlashMode(params: DrawParams): FlashMode {\r\n // By default only surfaces rendered with lighting get brightened. Overridden for reality meshes since they have lighting baked-in.\r\n // NB: If the reality model is classified, the classifiers are drawn without lighting, therefore we mix the hilite color.\r\n if (this.hasBakedLighting)\r\n return FlashMode.Hilite;\r\n\r\n const vf = params.target.currentViewFlags;\r\n if (!this.isLitSurface || RenderMode.SmoothShade !== vf.renderMode)\r\n return FlashMode.Hilite;\r\n\r\n return vf.lighting ? params.target.plan.flashSettings.litMode : FlashMode.Hilite;\r\n }\r\n\r\n public wantMixMonochromeColor(_target: Target): boolean { return false; }\r\n public wantMonochrome(_target: Target): boolean { return true; }\r\n\r\n public abstract collectStatistics(stats: RenderMemory.Statistics): void;\r\n\r\n public computeRange(output?: Range3d): Range3d {\r\n if (undefined === this._range) {\r\n const lowX = this.qOrigin[0];\r\n const lowY = this.qOrigin[1];\r\n const lowZ = this.qOrigin[2];\r\n\r\n const hiX = 0xffff * this.qScale[0] + lowX;\r\n const hiY = 0xffff * this.qScale[1] + lowY;\r\n const hiZ = 0xffff * this.qScale[2] + lowZ;\r\n\r\n this._range = Range3d.createXYZXYZ(lowX, lowY, lowZ, hiX, hiY, hiZ);\r\n }\r\n\r\n return this._range.clone(output);\r\n }\r\n}\r\n\r\n/** Geometry which is drawn using indices into a look-up texture of vertex data, via gl.drawArrays()\r\n * @internal\r\n */\r\nexport abstract class LUTGeometry extends CachedGeometry {\r\n private readonly _viewIndependentOrigin?: Point3d;\r\n\r\n public abstract get lutBuffers(): BuffersContainer;\r\n\r\n // The texture containing the vertex data.\r\n public abstract get lut(): VertexLUT;\r\n public override get asLUT() { return this; }\r\n public override get viewIndependentOrigin() { return this._viewIndependentOrigin; }\r\n\r\n protected abstract _draw(_numInstances: number, _instanceBuffersContainer?: BuffersContainer): void;\r\n public draw(): void { this._draw(0); }\r\n public drawInstanced(numInstances: number, instanceBuffersContainer: BuffersContainer): void { this._draw(numInstances, instanceBuffersContainer); }\r\n\r\n // Override this if your color varies based on the target\r\n public getColor(_target: Target): ColorInfo { return this.lut.colorInfo; }\r\n\r\n public get qOrigin(): Float32Array { return this.lut.qOrigin; }\r\n public get qScale(): Float32Array { return this.lut.qScale; }\r\n public override get hasAnimation() { return this.lut.hasAnimation; }\r\n\r\n protected constructor(viewIndependentOrigin?: Point3d) {\r\n super();\r\n this._viewIndependentOrigin = viewIndependentOrigin;\r\n }\r\n}\r\n\r\n/** Parameters used to construct an IndexedGeometry\r\n * @internal\r\n */\r\nexport class IndexedGeometryParams implements WebGLDisposable {\r\n public readonly buffers: BuffersContainer;\r\n public readonly positions: QBufferHandle3d;\r\n public readonly indices: BufferHandle;\r\n public readonly numIndices: number;\r\n\r\n protected constructor(positions: QBufferHandle3d, indices: BufferHandle, numIndices: number) {\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", undefined, false);\r\n assert(attrPos !== undefined);\r\n this.buffers.addBuffer(positions, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.buffers.addBuffer(indices, []);\r\n this.positions = positions;\r\n this.indices = indices;\r\n this.numIndices = numIndices;\r\n }\r\n\r\n public static create(positions: Uint16Array, qParams: QParams3d, indices: Uint32Array) {\r\n const posBuf = QBufferHandle3d.create(qParams, positions);\r\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n if (undefined === posBuf || undefined === indBuf)\r\n return undefined;\r\n\r\n return new IndexedGeometryParams(posBuf, indBuf, indices.length);\r\n }\r\n public static createFromList(positions: QPoint3dList, indices: Uint32Array) {\r\n return IndexedGeometryParams.create(positions.toTypedArray(), positions.params, indices);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.buffers.isDisposed\r\n && this.positions.isDisposed\r\n && this.indices.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.positions);\r\n dispose(this.indices);\r\n }\r\n}\r\n\r\n/** A geometric primitive which is rendered using gl.drawElements() with one or more vertex buffers indexed by an index buffer.\r\n * @internal\r\n */\r\nexport abstract class IndexedGeometry extends CachedGeometry {\r\n protected readonly _params: IndexedGeometryParams;\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n protected constructor(params: IndexedGeometryParams) {\r\n super();\r\n this._params = params;\r\n }\r\n\r\n public get isDisposed(): boolean { return this._params.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this._params);\r\n }\r\n\r\n public draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, GL.DataType.UnsignedInt, 0);\r\n this._params.buffers.unbind();\r\n }\r\n\r\n public get qOrigin() { return this._params.positions.origin; }\r\n public get qScale() { return this._params.positions.scale; }\r\n}\r\n\r\n/** a cube of quads in normalized device coordinates for skybox rendering techniques\r\n * @internal\r\n */\r\nclass SkyBoxQuads {\r\n public readonly vertices: Uint16Array;\r\n public readonly vertexParams: QParams3d;\r\n\r\n public constructor() {\r\n const skyBoxSz = 1.0;\r\n\r\n const qVerts = new QPoint3dList(QParams3d.fromNormalizedRange());\r\n\r\n // NB: After applying the rotation matrix in the shader, Back becomes (Bottom), etc.\r\n // See the notes in the parens below.\r\n\r\n // ###TODO: Make this indexed. Currently not indexed because of previous six-sided texture system.\r\n\r\n // Back (Bottom after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, skyBoxSz)); // back upper left - 0\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n\r\n // Front (Top after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower right - 7\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n\r\n // Top (Front after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, skyBoxSz)); // back upper left - 0\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n\r\n // Bottom (Back after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower right - 7\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n\r\n // Left (Right after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, skyBoxSz)); // back upper left - 0\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n\r\n // Right (Left after rotation)\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower right - 7\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n\r\n this.vertices = qVerts.toTypedArray();\r\n this.vertexParams = qVerts.params;\r\n }\r\n\r\n public createParams() {\r\n return SkyBoxGeometryParams.create(this.vertices, this.vertexParams);\r\n }\r\n}\r\n\r\n/** Parameters used to construct an SkyBox\r\n * @internal\r\n */\r\nexport class SkyBoxGeometryParams implements WebGLDisposable {\r\n public readonly buffers: BuffersContainer;\r\n public readonly positions: QBufferHandle3d;\r\n\r\n protected constructor(positions: QBufferHandle3d) {\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", undefined, false);\r\n assert(attrPos !== undefined);\r\n this.buffers.addBuffer(positions, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.positions = positions;\r\n }\r\n\r\n public static create(positions: Uint16Array, qparams: QParams3d) {\r\n const posBuf = QBufferHandle3d.create(qparams, positions);\r\n if (undefined === posBuf)\r\n return undefined;\r\n\r\n return new SkyBoxGeometryParams(posBuf);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this.positions.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.positions);\r\n }\r\n}\r\n\r\n/** @internal */\r\nnamespace SkyBoxQuads { // eslint-disable-line no-redeclare\r\n let skyBoxQuads: SkyBoxQuads | undefined;\r\n\r\n export function getInstance(): SkyBoxQuads {\r\n if (undefined === skyBoxQuads)\r\n skyBoxQuads = new SkyBoxQuads();\r\n\r\n return skyBoxQuads;\r\n }\r\n}\r\n\r\n/** Geometry used for view-space rendering techniques.\r\n * @internal\r\n */\r\nexport class SkyBoxQuadsGeometry extends CachedGeometry {\r\n protected _techniqueId: TechniqueId;\r\n public readonly cube: RenderTexture;\r\n protected readonly _params: SkyBoxGeometryParams;\r\n\r\n protected constructor(ndxGeomParams: SkyBoxGeometryParams, texture: RenderTexture) {\r\n super();\r\n this.cube = texture;\r\n this._techniqueId = TechniqueId.SkyBox;\r\n this._params = ndxGeomParams;\r\n }\r\n\r\n public static create(texture: RenderTexture): SkyBoxQuadsGeometry | undefined {\r\n const sbxGeomParams = SkyBoxQuads.getInstance().createParams();\r\n return undefined !== sbxGeomParams ? new SkyBoxQuadsGeometry(sbxGeomParams, texture) : undefined;\r\n }\r\n\r\n public collectStatistics(_stats: RenderMemory.Statistics): void {\r\n // Not interested in tracking this.\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return this._techniqueId; }\r\n public getRenderPass(_target: Target) { return RenderPass.SkyBox; }\r\n public get renderOrder() { return RenderOrder.UnlitSurface; }\r\n\r\n public draw(): void {\r\n System.instance.context.drawArrays(GL.PrimitiveType.Triangles, 0, 36);\r\n }\r\n\r\n public get qOrigin() { return this._params.positions.origin; }\r\n public get qScale() { return this._params.positions.scale; }\r\n\r\n public get isDisposed(): boolean { return this._params.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this._params);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n}\r\n\r\n/** A quad with its corners mapped to the dimensions as the viewport, used for special rendering techniques.\r\n * @internal\r\n */\r\nclass ViewportQuad {\r\n public readonly vertices: Uint16Array;\r\n public readonly vertexParams: QParams3d;\r\n public readonly indices = new Uint32Array(6);\r\n\r\n public constructor() {\r\n const pt = new Point3d(-1, -1, 0);\r\n const vertices = new QPoint3dList(QParams3d.fromNormalizedRange());\r\n vertices.add(pt);\r\n pt.x = 1;\r\n vertices.add(pt);\r\n pt.y = 1;\r\n vertices.add(pt);\r\n pt.x = -1;\r\n vertices.add(pt);\r\n\r\n this.vertices = vertices.toTypedArray();\r\n this.vertexParams = vertices.params;\r\n\r\n this.indices[0] = 0;\r\n this.indices[1] = 1;\r\n this.indices[2] = 2;\r\n this.indices[3] = 0;\r\n this.indices[4] = 2;\r\n this.indices[5] = 3;\r\n }\r\n\r\n public createParams() {\r\n return IndexedGeometryParams.create(this.vertices, this.vertexParams, this.indices);\r\n }\r\n}\r\n\r\n/** @internal */\r\nnamespace ViewportQuad { // eslint-disable-line no-redeclare\r\n let viewportQuad: ViewportQuad | undefined;\r\n\r\n export function getInstance(): ViewportQuad {\r\n if (undefined === viewportQuad)\r\n viewportQuad = new ViewportQuad();\r\n\r\n return viewportQuad;\r\n }\r\n}\r\n\r\n/** Geometry used for view-space rendering techniques.\r\n * @internal\r\n */\r\nexport class ViewportQuadGeometry extends IndexedGeometry {\r\n protected _techniqueId: TechniqueId;\r\n\r\n protected constructor(params: IndexedGeometryParams, techniqueId: TechniqueId) {\r\n super(params);\r\n this._techniqueId = techniqueId;\r\n }\r\n public static create(techniqueId: TechniqueId) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n return undefined !== params ? new this(params, techniqueId) : undefined;\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return this._techniqueId; }\r\n public getRenderPass(_target: Target) { return RenderPass.OpaqueGeneral; }\r\n public get renderOrder() { return RenderOrder.UnlitSurface; }\r\n\r\n public collectStatistics(_stats: RenderMemory.Statistics): void {\r\n // NB: These don't really count...\r\n }\r\n}\r\n\r\n/** Geometry used for view-space rendering techniques which involve sampling one or more textures.\r\n * @internal\r\n */\r\nexport class TexturedViewportQuadGeometry extends ViewportQuadGeometry {\r\n protected readonly _textures: WebGLTexture[];\r\n\r\n protected constructor(params: IndexedGeometryParams, techniqueId: TechniqueId, textures: WebGLTexture[]) {\r\n super(params, techniqueId);\r\n this._textures = textures;\r\n\r\n // TypeScript compiler will happily accept TextureHandle (or any other type) in place of WebGLTexture.\r\n // There is no such 'type' as WebGLTexture at run-time.\r\n assert(this._textures.every((tx) => !(tx instanceof TextureHandle)));\r\n }\r\n\r\n public static createTexturedViewportQuadGeometry(techniqueId: TechniqueId, textures: WebGLTexture[]): TexturedViewportQuadGeometry | undefined {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n return new this(params, techniqueId, textures);\r\n }\r\n}\r\n\r\n/** Geometry used for rendering default gradient-style or single texture spherical skybox.\r\n * @internal\r\n */\r\nexport class SkySphereViewportQuadGeometry extends ViewportQuadGeometry {\r\n public worldPos: Float32Array; // LeftBottom, RightBottom, RightTop, LeftTop worl pos of frustum at mid depth.\r\n public readonly typeAndExponents: Float32Array; // [0] -1.0 for 2-color gradient, 1.0 for 4-color gradient, 0.0 for texture; [1] sky exponent (4-color only) [2] ground exponent (4-color only)\r\n public readonly zOffset: number;\r\n public readonly rotation: number;\r\n public readonly zenithColor: Float32Array;\r\n public readonly skyColor: Float32Array;\r\n public readonly groundColor: Float32Array;\r\n public readonly nadirColor: Float32Array;\r\n public readonly skyTexture?: RenderTexture;\r\n protected readonly _worldPosBuff: BufferHandle;\r\n private _isWorldPosSet: boolean = false;\r\n\r\n public initWorldPos(target: Target): void {\r\n if (this._isWorldPosSet)\r\n return;\r\n\r\n this._isWorldPosSet = true;\r\n this._setPointsFromFrustum(target);\r\n this._worldPosBuff.bindData(this.worldPos, GL.Buffer.Usage.StreamDraw);\r\n const attrWorldPos = AttributeMap.findAttribute(\"a_worldPos\", TechniqueId.SkySphereGradient, false);\r\n assert(attrWorldPos !== undefined);\r\n this._params.buffers.addBuffer(this._worldPosBuff, [BufferParameters.create(attrWorldPos.location, 3, GL.DataType.Float, false, 0, 0, false)]);\r\n }\r\n\r\n private _setPointsFromFrustum(target: Target) {\r\n const frustum = target.planFrustum;\r\n const wp = this.worldPos;\r\n\r\n const lb = frustum.getCorner(Npc.LeftBottomRear).interpolate(0.5, frustum.getCorner(Npc.LeftBottomFront), scratchPoint3a);\r\n const rb = frustum.getCorner(Npc.RightBottomRear).interpolate(0.5, frustum.getCorner(Npc.RightBottomFront), scratchPoint3b);\r\n const rt = frustum.getCorner(Npc.RightTopRear).interpolate(0.5, frustum.getCorner(Npc.RightTopFront), scratchPoint3c);\r\n if (!target.plan.backgroundMapOn || !target.plan.isGlobeMode3D) {\r\n wp[0] = lb.x;\r\n wp[1] = lb.y;\r\n wp[2] = lb.z;\r\n wp[3] = rb.x;\r\n wp[4] = rb.y;\r\n wp[5] = rb.z;\r\n wp[6] = rt.x;\r\n wp[7] = rt.y;\r\n wp[8] = rt.z;\r\n const lt = frustum.getCorner(Npc.LeftTopRear).interpolate(0.5, frustum.getCorner(Npc.LeftTopFront), scratchPoint3d);\r\n wp[9] = lt.x;\r\n wp[10] = lt.y;\r\n wp[11] = lt.z;\r\n } else {\r\n // Need to fake a different frustum to orient the 4 corners properly.\r\n // First find true frustum center & size.\r\n const fCenter = lb.interpolate(0.5, rt, scratchPoint3d);\r\n const upScreen = Vector3d.createStartEnd(rb, rt, scratchVec3a);\r\n let rightScreen = Vector3d.createStartEnd(lb, rb, scratchVec3b);\r\n const halfWidth = upScreen.magnitude() * 0.5;\r\n const halfHeight = rightScreen.magnitude() * 0.5;\r\n // Find the projection of the globe up onto the frustum plane.\r\n upScreen.normalizeInPlace();\r\n rightScreen.normalizeInPlace();\r\n const projUp = target.plan.upVector.dotProduct(upScreen);\r\n const projRt = target.plan.upVector.dotProduct(rightScreen);\r\n // Find camera position (create one for ortho).\r\n let camPos: Point3d;\r\n if (FrustumUniformType.Perspective === target.uniforms.frustum.type) {\r\n const farLowerLeft = frustum.getCorner(Npc.LeftBottomRear);\r\n const nearLowerLeft = frustum.getCorner(Npc.LeftBottomFront);\r\n const scale = 1.0 / (1.0 - target.planFraction);\r\n const zVec = Vector3d.createStartEnd(farLowerLeft, nearLowerLeft, scratchVec3c);\r\n camPos = fromSumOf(farLowerLeft, zVec, scale, scratchPoint3a);\r\n } else {\r\n const delta = Vector3d.createStartEnd(frustum.getCorner(Npc.LeftBottomRear), frustum.getCorner(Npc.LeftBottomFront), scratchVec3c);\r\n const pseudoCameraHalfAngle = 22.5;\r\n const diagonal = frustum.getCorner(Npc.LeftBottomRear).distance(frustum.getCorner(Npc.RightTopRear));\r\n const focalLength = diagonal / (2 * Math.atan(pseudoCameraHalfAngle * Angle.radiansPerDegree));\r\n let zScale = focalLength / delta.magnitude();\r\n if (zScale < 1.000001)\r\n zScale = 1.000001; // prevent worldEye front being on or inside the frustum front plane\r\n camPos = Point3d.createAdd3Scaled(frustum.getCorner(Npc.LeftBottomRear), .5, frustum.getCorner(Npc.RightTopRear), .5, delta, zScale, scratchPoint3a);\r\n }\r\n // Compute the distance from the camera to the frustum center.\r\n const camDist = camPos.distance(fCenter);\r\n // Now use a fixed camera direction and compute a new frustum center.\r\n const camDir = Vector3d.create(0.0, 1.0, 0.0, scratchVec3c);\r\n fCenter.setFromPoint3d(camPos);\r\n fCenter.addScaledInPlace(camDir, camDist);\r\n // Create an up vector that mimics the projection of the globl up onto the real frustum.\r\n upScreen.set(projRt, 0.0, projUp);\r\n upScreen.normalizeInPlace();\r\n // Compute a new right vector and then compute the 4 points for the sky.\r\n rightScreen = upScreen.crossProduct(camDir, scratchVec3b);\r\n upScreen.scaleInPlace(halfHeight);\r\n rightScreen.scaleInPlace(halfWidth);\r\n wp[0] = fCenter.x - rightScreen.x - upScreen.x; // left bottom\r\n wp[1] = fCenter.y - rightScreen.y - upScreen.y;\r\n wp[2] = fCenter.z - rightScreen.z - upScreen.z;\r\n wp[3] = fCenter.x + rightScreen.x - upScreen.x; // right bottom\r\n wp[4] = fCenter.y + rightScreen.y - upScreen.y;\r\n wp[5] = fCenter.z + rightScreen.z - upScreen.z;\r\n wp[6] = fCenter.x + rightScreen.x + upScreen.x; // right top\r\n wp[7] = fCenter.y + rightScreen.y + upScreen.y;\r\n wp[8] = fCenter.z + rightScreen.z + upScreen.z;\r\n wp[9] = fCenter.x - rightScreen.x + upScreen.x; // left top\r\n wp[10] = fCenter.y - rightScreen.y + upScreen.y;\r\n wp[11] = fCenter.z - rightScreen.z + upScreen.z;\r\n }\r\n }\r\n\r\n protected constructor(params: IndexedGeometryParams, skybox: SkyBox.CreateParams, techniqueId: TechniqueId) {\r\n super(params, techniqueId);\r\n\r\n this.worldPos = new Float32Array(4 * 3);\r\n this._worldPosBuff = new BufferHandle(GL.Buffer.Target.ArrayBuffer);\r\n this.typeAndExponents = new Float32Array(3);\r\n this.zenithColor = new Float32Array(3);\r\n this.skyColor = new Float32Array(3);\r\n this.groundColor = new Float32Array(3);\r\n this.nadirColor = new Float32Array(3);\r\n this.zOffset = skybox.zOffset;\r\n\r\n const sphere = skybox.sphere;\r\n this.rotation = undefined !== sphere ? sphere.rotation : 0.0;\r\n\r\n if (undefined !== sphere) {\r\n this.skyTexture = sphere.texture;\r\n this.typeAndExponents[0] = 0.0;\r\n this.typeAndExponents[1] = 1.0;\r\n this.typeAndExponents[2] = 1.0;\r\n this.zenithColor[0] = 0.0;\r\n this.zenithColor[1] = 0.0;\r\n this.zenithColor[2] = 0.0;\r\n this.nadirColor[0] = 0.0;\r\n this.nadirColor[1] = 0.0;\r\n this.nadirColor[2] = 0.0;\r\n this.skyColor[0] = 0.0;\r\n this.skyColor[1] = 0.0;\r\n this.skyColor[2] = 0.0;\r\n this.groundColor[0] = 0.0;\r\n this.groundColor[1] = 0.0;\r\n this.groundColor[2] = 0.0;\r\n } else {\r\n const gradient = skybox.gradient!;\r\n\r\n this.zenithColor[0] = gradient.zenithColor.colors.r / 255.0;\r\n this.zenithColor[1] = gradient.zenithColor.colors.g / 255.0;\r\n this.zenithColor[2] = gradient.zenithColor.colors.b / 255.0;\r\n this.nadirColor[0] = gradient.nadirColor.colors.r / 255.0;\r\n this.nadirColor[1] = gradient.nadirColor.colors.g / 255.0;\r\n this.nadirColor[2] = gradient.nadirColor.colors.b / 255.0;\r\n\r\n if (gradient.twoColor) {\r\n this.typeAndExponents[0] = -1.0;\r\n this.typeAndExponents[1] = 4.0;\r\n this.typeAndExponents[2] = 4.0;\r\n this.skyColor[0] = 0.0;\r\n this.skyColor[1] = 0.0;\r\n this.skyColor[2] = 0.0;\r\n this.groundColor[0] = 0.0;\r\n this.groundColor[1] = 0.0;\r\n this.groundColor[2] = 0.0;\r\n } else {\r\n this.typeAndExponents[0] = 1.0;\r\n this.typeAndExponents[1] = gradient.skyExponent;\r\n this.typeAndExponents[2] = gradient.groundExponent;\r\n this.skyColor[0] = gradient.skyColor.colors.r / 255.0;\r\n this.skyColor[1] = gradient.skyColor.colors.g / 255.0;\r\n this.skyColor[2] = gradient.skyColor.colors.b / 255.0;\r\n this.groundColor[0] = gradient.groundColor.colors.r / 255.0;\r\n this.groundColor[1] = gradient.groundColor.colors.g / 255.0;\r\n this.groundColor[2] = gradient.groundColor.colors.b / 255.0;\r\n }\r\n }\r\n }\r\n\r\n public static createGeometry(skybox: SkyBox.CreateParams) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n const technique = undefined !== skybox.sphere ? TechniqueId.SkySphereTexture : TechniqueId.SkySphereGradient;\r\n return new SkySphereViewportQuadGeometry(params, skybox, technique);\r\n }\r\n\r\n public override get isDisposed(): boolean { return super.isDisposed && this._worldPosBuff.isDisposed; }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this._worldPosBuff);\r\n }\r\n}\r\n\r\n/** Geometry used when rendering ambient occlusion information to an output texture\r\n * @internal\r\n */\r\nexport class AmbientOcclusionGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(depthAndOrder: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params) {\r\n return undefined;\r\n }\r\n\r\n // Will derive positions and normals from depthAndOrder.\r\n return new AmbientOcclusionGeometry(params, [depthAndOrder]);\r\n }\r\n\r\n public get depthAndOrder() { return this._textures[0]; }\r\n public get noise() { return System.instance.noiseTexture!.getHandle()!; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.AmbientOcclusion, textures);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class BlurGeometry extends TexturedViewportQuadGeometry {\r\n public readonly blurDir: Vector2d;\r\n\r\n public static createGeometry(texToBlur: WebGLTexture, depthAndOrder: WebGLTexture, blurDir: Vector2d) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params) {\r\n return undefined;\r\n }\r\n return new BlurGeometry(params, [texToBlur, depthAndOrder], blurDir);\r\n }\r\n\r\n public get textureToBlur() { return this._textures[0]; }\r\n public get depthAndOrder() { return this._textures[1]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[], blurDir: Vector2d) {\r\n super(params, TechniqueId.Blur, textures);\r\n this.blurDir = blurDir;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class EVSMGeometry extends TexturedViewportQuadGeometry {\r\n public readonly stepSize = new Float32Array(2);\r\n\r\n public static createGeometry(depthBuffer: WebGLTexture, width: number, height: number) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n return new EVSMGeometry(params, [depthBuffer], width, height);\r\n }\r\n\r\n public get depthTexture() { return this._textures[0]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[], width: number, height: number) {\r\n super(params, TechniqueId.EVSMFromDepth, textures);\r\n this.stepSize[0] = 1.0 / width;\r\n this.stepSize[1] = 1.0 / height;\r\n }\r\n}\r\n\r\n/** Geometry used during the 'composite' pass to apply transparency and/or hilite effects.\r\n * @internal\r\n */\r\nexport class CompositeGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(opaque: WebGLTexture, accum: WebGLTexture, reveal: WebGLTexture, hilite: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n const textures = [opaque, accum, reveal, hilite];\r\n return new CompositeGeometry(params, textures);\r\n }\r\n\r\n public get opaque() { return this._textures[0]; }\r\n public get accum() { return this._textures[1]; }\r\n public get reveal() { return this._textures[2]; }\r\n public get hilite() { return this._textures[3]; }\r\n public get occlusion(): WebGLTexture | undefined {\r\n return this._textures.length > 4 ? this._textures[4] : undefined;\r\n }\r\n public set occlusion(occlusion: WebGLTexture | undefined) {\r\n assert((undefined === occlusion) === (undefined !== this.occlusion));\r\n if (undefined !== occlusion)\r\n this._textures[4] = occlusion;\r\n else\r\n this._textures.length = 4;\r\n }\r\n\r\n // Invoked each frame to determine the appropriate Technique to use.\r\n public update(flags: CompositeFlags): void { this._techniqueId = this.determineTechnique(flags); }\r\n\r\n private determineTechnique(flags: CompositeFlags): TechniqueId {\r\n return computeCompositeTechniqueId(flags);\r\n }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.CompositeHilite, textures);\r\n assert(4 <= this._textures.length);\r\n }\r\n}\r\n\r\n/** Geometry used to ping-pong the pick buffer data in between opaque passes.\r\n * @internal\r\n */\r\nexport class CopyPickBufferGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(featureId: WebGLTexture, depthAndOrder: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined !== params) {\r\n return new CopyPickBufferGeometry(params, [featureId, depthAndOrder]);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public get featureId() { return this._textures[0]; }\r\n public get depthAndOrder() { return this._textures[1]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.CopyPickBuffers, textures);\r\n }\r\n}\r\nexport class CombineTexturesGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(texture0: WebGLTexture, texture1: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined !== params) {\r\n return new CombineTexturesGeometry(params, [texture0, texture1]);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public get texture0() { return this._textures[0]; }\r\n public get texture1() { return this._textures[1]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.CombineTextures, textures);\r\n }\r\n}\r\n\r\nexport class Combine3TexturesGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(texture0: WebGLTexture, texture1: WebGLTexture, texture2: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined !== params) {\r\n return new Combine3TexturesGeometry(params, [texture0, texture1, texture2]);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public get texture0() { return this._textures[0]; }\r\n public get texture1() { return this._textures[1]; }\r\n public get texture2() { return this._textures[2]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.Combine3Textures, textures);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class SingleTexturedViewportQuadGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(texture: WebGLTexture, techId: TechniqueId) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params) {\r\n return undefined;\r\n }\r\n\r\n return new SingleTexturedViewportQuadGeometry(params, texture, techId);\r\n }\r\n\r\n public get texture(): WebGLTexture { return this._textures[0]; }\r\n public set texture(texture: WebGLTexture) { this._textures[0] = texture; }\r\n\r\n protected constructor(params: IndexedGeometryParams, texture: WebGLTexture, techId: TechniqueId) {\r\n super(params, techId, [texture]);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport enum BoundaryType {\r\n Outside = 0,\r\n Inside = 1,\r\n Selected = 2,\r\n}\r\n\r\n/** @internal */\r\nexport class VolumeClassifierGeometry extends SingleTexturedViewportQuadGeometry {\r\n public boundaryType: BoundaryType = BoundaryType.Inside;\r\n\r\n public static createVCGeometry(texture: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n return new VolumeClassifierGeometry(params, texture);\r\n }\r\n\r\n private constructor(params: IndexedGeometryParams, texture: WebGLTexture) {\r\n super(params, texture, TechniqueId.VolClassSetBlend);\r\n }\r\n}\r\n\r\n/** A geometric primitive which renders gl points using gl.drawArrays() with one vertex buffer.\r\n * @internal\r\n */\r\nexport class ScreenPointsGeometry extends CachedGeometry {\r\n protected _numPoints: number;\r\n protected _origin: Float32Array;\r\n protected _scale: Float32Array;\r\n protected _positions: QBufferHandle2d;\r\n public readonly buffers: BuffersContainer;\r\n public readonly zTexture: WebGLTexture;\r\n\r\n protected constructor(vertices: QPoint2dList, zTexture: WebGLTexture) {\r\n super();\r\n\r\n this.zTexture = zTexture;\r\n\r\n this._numPoints = vertices.length;\r\n\r\n this._positions = QBufferHandle2d.create(vertices.params, vertices.toTypedArray())!;\r\n\r\n this._origin = new Float32Array(3);\r\n this._origin[0] = this._positions.params[0];\r\n this._origin[1] = this._positions.params[1];\r\n this._origin[2] = 0.0;\r\n this._scale = new Float32Array(3);\r\n this._scale[0] = this._positions.params[2];\r\n this._scale[1] = this._positions.params[3];\r\n this._scale[2] = this._positions.params[3]; // just copy the scale from y\r\n\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.VolClassCopyZ, false);\r\n assert(attrPos !== undefined);\r\n this.buffers.addBuffer(this._positions, [BufferParameters.create(attrPos.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n }\r\n\r\n public static createGeometry(width: number, height: number, depth: WebGLTexture): ScreenPointsGeometry {\r\n const pixWidth = 2.0 / width;\r\n const pixHeight = 2.0 / height;\r\n\r\n const startX = pixWidth * 0.5 - 1.0;\r\n const startY = pixHeight * 0.5 - 1.0;\r\n\r\n const pt = new Point2d(startX, startY);\r\n const vertices = new QPoint2dList(QParams2d.fromNormalizedRange());\r\n\r\n for (let y = 0; y < height; ++y) {\r\n pt.x = startX;\r\n for (let x = 0; x < width; ++x) {\r\n vertices.add(pt);\r\n pt.x += pixWidth;\r\n }\r\n pt.y += pixHeight;\r\n }\r\n return new ScreenPointsGeometry(vertices, depth);\r\n }\r\n\r\n public draw(): void {\r\n this.buffers.bind();\r\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._numPoints);\r\n this.buffers.unbind();\r\n }\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._positions.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this._positions);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addBuffer(RenderMemory.BufferType.PointStrings, this._positions.bytesUsed);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n public get techniqueId(): TechniqueId { return TechniqueId.VolClassCopyZ; }\r\n public getRenderPass(_target: Target) { return RenderPass.Classification; }\r\n public get renderOrder() { return RenderOrder.None; }\r\n public get qOrigin() { return this._origin; }\r\n public get qScale() { return this._scale; }\r\n}\r\n\r\n/** @internal */\r\nexport class PolylineBuffers implements WebGLDisposable {\r\n public buffers: BuffersContainer;\r\n public indices: BufferHandle;\r\n public prevIndices: BufferHandle;\r\n public nextIndicesAndParams: BufferHandle;\r\n private constructor(indices: BufferHandle, prevIndices: BufferHandle, nextIndicesAndParams: BufferHandle) {\r\n this.buffers = BuffersContainer.create();\r\n\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.Polyline, false);\r\n const attrPrevIndex = AttributeMap.findAttribute(\"a_prevIndex\", TechniqueId.Polyline, false);\r\n const attrNextIndex = AttributeMap.findAttribute(\"a_nextIndex\", TechniqueId.Polyline, false);\r\n const attrParam = AttributeMap.findAttribute(\"a_param\", TechniqueId.Polyline, false);\r\n assert(attrPos !== undefined);\r\n assert(attrPrevIndex !== undefined);\r\n assert(attrNextIndex !== undefined);\r\n assert(attrParam !== undefined);\r\n\r\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.buffers.addBuffer(prevIndices, [BufferParameters.create(attrPrevIndex.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.buffers.addBuffer(nextIndicesAndParams, [\r\n BufferParameters.create(attrNextIndex.location, 3, GL.DataType.UnsignedByte, false, 4, 0, false),\r\n BufferParameters.create(attrParam.location, 1, GL.DataType.UnsignedByte, false, 4, 3, false),\r\n ]);\r\n\r\n this.indices = indices;\r\n this.prevIndices = prevIndices;\r\n this.nextIndicesAndParams = nextIndicesAndParams;\r\n }\r\n\r\n public static create(polyline: TesselatedPolyline): PolylineBuffers | undefined {\r\n const indices = BufferHandle.createArrayBuffer(polyline.indices.data);\r\n const prev = BufferHandle.createArrayBuffer(polyline.prevIndices.data);\r\n const next = BufferHandle.createArrayBuffer(polyline.nextIndicesAndParams);\r\n return undefined !== indices && undefined !== prev && undefined !== next ? new PolylineBuffers(indices, prev, next) : undefined;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics, type: RenderMemory.BufferType): void {\r\n stats.addBuffer(type, this.indices.bytesUsed + this.prevIndices.bytesUsed + this.nextIndicesAndParams.bytesUsed);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.buffers.isDisposed\r\n && this.indices.isDisposed\r\n && this.prevIndices.isDisposed\r\n && this.nextIndicesAndParams.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.indices);\r\n dispose(this.prevIndices);\r\n dispose(this.nextIndicesAndParams);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CachedGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/CachedGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Angle, Point2d, Point3d, Range3d, Vector2d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { Npc, QParams2d, QParams3d, QPoint2dList, QPoint3dList, RenderMode, RenderTexture } from \"@itwin/core-common\";\r\nimport { RenderSkyGradientParams, RenderSkySphereParams } from \"../RenderSystem\";\r\nimport { FlashMode } from \"../../FlashSettings\";\r\nimport { TesselatedPolyline } from \"../primitives/PolylineParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { ColorInfo } from \"./ColorInfo\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { fromSumOf, FrustumUniformType } from \"./FrustumUniforms\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { InstancedGeometry } from \"./InstancedGeometry\";\r\nimport { MaterialInfo } from \"./Material\";\r\nimport { MeshGeometry } from \"./MeshGeometry\";\r\nimport { EdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { PointCloudGeometry } from \"./PointCloud\";\r\nimport { CompositeFlags, Pass, RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { computeCompositeTechniqueId, TechniqueId } from \"./TechniqueId\";\r\nimport { RealityMeshGeometry } from \"./RealityMesh\";\r\nimport { TextureHandle } from \"./Texture\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\nimport { PlanarGridGeometry } from \"./PlanarGrid\";\r\n\r\nconst scratchVec3a = new Vector3d();\r\nconst scratchVec3b = new Vector3d();\r\nconst scratchVec3c = new Vector3d();\r\nconst scratchPoint3a = new Point3d();\r\nconst scratchPoint3b = new Point3d();\r\nconst scratchPoint3c = new Point3d();\r\nconst scratchPoint3d = new Point3d();\r\n\r\n/** Represents a geometric primitive ready to be submitted to the GPU for rendering.\r\n * @internal\r\n */\r\nexport abstract class CachedGeometry implements WebGLDisposable, RenderMemory.Consumer {\r\n protected _range?: Range3d;\r\n /**\r\n * Functions for obtaining a subclass of CachedGeometry.\r\n * IMPORTANT: Do NOT use code like `const surface = cachedGeom as SurfaceGeometry`.\r\n * Instanced geometry holds a reference to the shared geometry rendered for each instance - such casts will fail,\r\n * while the casting `functions` will forward to the shared geometry.\r\n */\r\n public get asLUT(): LUTGeometry | undefined { return undefined; }\r\n public get asSurface(): SurfaceGeometry | undefined { return undefined; }\r\n public get asMesh(): MeshGeometry | undefined { return undefined; }\r\n public get asEdge(): EdgeGeometry | undefined { return undefined; }\r\n public get asIndexedEdge(): IndexedEdgeGeometry | undefined { return undefined; }\r\n public get asRealityMesh(): RealityMeshGeometry | undefined { return undefined; }\r\n public get asSilhouette(): SilhouetteEdgeGeometry | undefined { return undefined; }\r\n public get asInstanced(): InstancedGeometry | undefined { return undefined; }\r\n public get isInstanced() { return undefined !== this.asInstanced; }\r\n public get asPointCloud(): PointCloudGeometry | undefined { return undefined; }\r\n public get asPlanarGrid(): PlanarGridGeometry | undefined { return undefined; }\r\n public get alwaysRenderTranslucent(): boolean { return false; }\r\n public get allowColorOverride(): boolean { return true; }\r\n\r\n // Returns true if white portions of this geometry should render as black on white background\r\n protected abstract _wantWoWReversal(_target: Target): boolean;\r\n // Returns the edge/line weight used to render this geometry\r\n protected _getLineWeight(_params: ShaderProgramParams): number { return 0; }\r\n // Returns the edge/line pattern used to render this geometry\r\n protected _getLineCode(_params: ShaderProgramParams): number { return LineCode.solid; }\r\n\r\n public abstract get isDisposed(): boolean;\r\n // Returns the Id of the Technique used to render this geometry\r\n public abstract get techniqueId(): TechniqueId;\r\n // Returns the pass in which to render this geometry. \"none\" indicates it should not be rendered.\r\n public abstract getPass(target: Target): Pass;\r\n // Returns the 'order' of this geometry, which determines how z-fighting is resolved.\r\n public abstract get renderOrder(): RenderOrder;\r\n // Returns true if this is a lit surface\r\n public get isLitSurface(): boolean { return false; }\r\n // Returns true if this is an unlit surface with baked-in lighting (e.g. 3mx, scalable mesh reality models)\r\n public get hasBakedLighting(): boolean { return false; }\r\n // Returns true if this primitive contains auxillary animation data.\r\n public get hasAnimation(): boolean { return false; }\r\n\r\n /** Returns the origin of this geometry's quantization parameters. */\r\n public abstract get qOrigin(): Float32Array;\r\n /** Returns the scale of this geometry's quantization parameters. */\r\n public abstract get qScale(): Float32Array;\r\n // Draws this geometry\r\n public abstract draw(): void;\r\n\r\n public abstract dispose(): void;\r\n\r\n // Intended to be overridden by specific subclasses\r\n public get materialInfo(): MaterialInfo | undefined { return undefined; }\r\n public get hasMaterialAtlas(): boolean {\r\n const mat = this.materialInfo;\r\n return undefined !== mat && mat.isAtlas;\r\n }\r\n\r\n public get polylineBuffers(): PolylineBuffers | undefined { return undefined; }\r\n public get hasFeatures(): boolean { return false; }\r\n public get viewIndependentOrigin(): Point3d | undefined { return undefined; }\r\n public get isViewIndependent(): boolean { return undefined !== this.viewIndependentOrigin; }\r\n\r\n public get supportsThematicDisplay() { return false; }\r\n\r\n public get isEdge(): boolean {\r\n switch (this.renderOrder) {\r\n case RenderOrder.Edge:\r\n case RenderOrder.Silhouette:\r\n case RenderOrder.PlanarEdge:\r\n case RenderOrder.PlanarSilhouette:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n public wantWoWReversal(params: ShaderProgramParams): boolean {\r\n return params.target.currentViewFlags.whiteOnWhiteReversal && this._wantWoWReversal(params.target);\r\n }\r\n public getLineCode(params: ShaderProgramParams): number {\r\n return params.target.currentViewFlags.styles ? this._getLineCode(params) : LineCode.solid;\r\n }\r\n public getLineWeight(params: ShaderProgramParams): number {\r\n if (!params.target.currentViewFlags.weights) {\r\n return 1.0;\r\n }\r\n\r\n const minWeight = 1;\r\n let weight = this._getLineWeight(params);\r\n weight = Math.max(weight, minWeight);\r\n weight = Math.min(weight, 31.0);\r\n return weight;\r\n }\r\n\r\n public getFlashMode(params: DrawParams): FlashMode {\r\n // By default only surfaces rendered with lighting get brightened. Overridden for reality meshes since they have lighting baked-in.\r\n // NB: If the reality model is classified, the classifiers are drawn without lighting, therefore we mix the hilite color.\r\n if (this.hasBakedLighting)\r\n return FlashMode.Hilite;\r\n\r\n const vf = params.target.currentViewFlags;\r\n if (!this.isLitSurface || RenderMode.SmoothShade !== vf.renderMode)\r\n return FlashMode.Hilite;\r\n\r\n return vf.lighting ? params.target.plan.flashSettings.litMode : FlashMode.Hilite;\r\n }\r\n\r\n public wantMixMonochromeColor(_target: Target): boolean { return false; }\r\n public wantMonochrome(_target: Target): boolean { return true; }\r\n\r\n public abstract collectStatistics(stats: RenderMemory.Statistics): void;\r\n\r\n public computeRange(output?: Range3d): Range3d {\r\n if (undefined === this._range) {\r\n const lowX = this.qOrigin[0];\r\n const lowY = this.qOrigin[1];\r\n const lowZ = this.qOrigin[2];\r\n\r\n const hiX = 0xffff * this.qScale[0] + lowX;\r\n const hiY = 0xffff * this.qScale[1] + lowY;\r\n const hiZ = 0xffff * this.qScale[2] + lowZ;\r\n\r\n this._range = Range3d.createXYZXYZ(lowX, lowY, lowZ, hiX, hiY, hiZ);\r\n }\r\n\r\n return this._range.clone(output);\r\n }\r\n}\r\n\r\n/** Geometry which is drawn using indices into a look-up texture of vertex data, via gl.drawArrays()\r\n * @internal\r\n */\r\nexport abstract class LUTGeometry extends CachedGeometry {\r\n private readonly _viewIndependentOrigin?: Point3d;\r\n\r\n public abstract get lutBuffers(): BuffersContainer;\r\n\r\n // The texture containing the vertex data.\r\n public abstract get lut(): VertexLUT;\r\n public override get asLUT() { return this; }\r\n public override get viewIndependentOrigin() { return this._viewIndependentOrigin; }\r\n\r\n protected abstract _draw(_numInstances: number, _instanceBuffersContainer?: BuffersContainer): void;\r\n public draw(): void { this._draw(0); }\r\n public drawInstanced(numInstances: number, instanceBuffersContainer: BuffersContainer): void { this._draw(numInstances, instanceBuffersContainer); }\r\n\r\n // Override this if your color varies based on the target\r\n public getColor(_target: Target): ColorInfo { return this.lut.colorInfo; }\r\n\r\n public get qOrigin(): Float32Array { return this.lut.qOrigin; }\r\n public get qScale(): Float32Array { return this.lut.qScale; }\r\n public override get hasAnimation() { return this.lut.hasAnimation; }\r\n\r\n protected constructor(viewIndependentOrigin?: Point3d) {\r\n super();\r\n this._viewIndependentOrigin = viewIndependentOrigin;\r\n }\r\n}\r\n\r\n/** Parameters used to construct an IndexedGeometry\r\n * @internal\r\n */\r\nexport class IndexedGeometryParams implements WebGLDisposable {\r\n public readonly buffers: BuffersContainer;\r\n public readonly positions: QBufferHandle3d;\r\n public readonly indices: BufferHandle;\r\n public readonly numIndices: number;\r\n\r\n protected constructor(positions: QBufferHandle3d, indices: BufferHandle, numIndices: number) {\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", undefined, false);\r\n assert(attrPos !== undefined);\r\n this.buffers.addBuffer(positions, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.buffers.addBuffer(indices, []);\r\n this.positions = positions;\r\n this.indices = indices;\r\n this.numIndices = numIndices;\r\n }\r\n\r\n public static create(positions: Uint16Array, qParams: QParams3d, indices: Uint32Array) {\r\n const posBuf = QBufferHandle3d.create(qParams, positions);\r\n const indBuf = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n if (undefined === posBuf || undefined === indBuf)\r\n return undefined;\r\n\r\n return new IndexedGeometryParams(posBuf, indBuf, indices.length);\r\n }\r\n public static createFromList(positions: QPoint3dList, indices: Uint32Array) {\r\n return IndexedGeometryParams.create(positions.toTypedArray(), positions.params, indices);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.buffers.isDisposed\r\n && this.positions.isDisposed\r\n && this.indices.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.positions);\r\n dispose(this.indices);\r\n }\r\n}\r\n\r\n/** A geometric primitive which is rendered using gl.drawElements() with one or more vertex buffers indexed by an index buffer.\r\n * @internal\r\n */\r\nexport abstract class IndexedGeometry extends CachedGeometry {\r\n protected readonly _params: IndexedGeometryParams;\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n protected constructor(params: IndexedGeometryParams) {\r\n super();\r\n this._params = params;\r\n }\r\n\r\n public get isDisposed(): boolean { return this._params.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this._params);\r\n }\r\n\r\n public draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawElements(GL.PrimitiveType.Triangles, this._params.numIndices, GL.DataType.UnsignedInt, 0);\r\n this._params.buffers.unbind();\r\n }\r\n\r\n public get qOrigin() { return this._params.positions.origin; }\r\n public get qScale() { return this._params.positions.scale; }\r\n}\r\n\r\n/** a cube of quads in normalized device coordinates for skybox rendering techniques\r\n * @internal\r\n */\r\nclass SkyBoxQuads {\r\n public readonly vertices: Uint16Array;\r\n public readonly vertexParams: QParams3d;\r\n\r\n public constructor() {\r\n const skyBoxSz = 1.0;\r\n\r\n const qVerts = new QPoint3dList(QParams3d.fromNormalizedRange());\r\n\r\n // NB: After applying the rotation matrix in the shader, Back becomes (Bottom), etc.\r\n // See the notes in the parens below.\r\n\r\n // ###TODO: Make this indexed. Currently not indexed because of previous six-sided texture system.\r\n\r\n // Back (Bottom after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, skyBoxSz)); // back upper left - 0\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n\r\n // Front (Top after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower right - 7\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n\r\n // Top (Front after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, skyBoxSz)); // back upper left - 0\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n\r\n // Bottom (Back after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower right - 7\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n\r\n // Left (Right after rotation)\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, skyBoxSz)); // back upper left - 0\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n qVerts.add(new Point3d(-skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper left - 4\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower left - 6\r\n qVerts.add(new Point3d(-skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower left - 2\r\n\r\n // Right (Left after rotation)\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, skyBoxSz)); // back upper right - 1\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n qVerts.add(new Point3d(skyBoxSz, skyBoxSz, -skyBoxSz)); // front upper right - 5\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, -skyBoxSz)); // front lower right - 7\r\n qVerts.add(new Point3d(skyBoxSz, -skyBoxSz, skyBoxSz)); // back lower right - 3\r\n\r\n this.vertices = qVerts.toTypedArray();\r\n this.vertexParams = qVerts.params;\r\n }\r\n\r\n public createParams() {\r\n return SkyBoxGeometryParams.create(this.vertices, this.vertexParams);\r\n }\r\n}\r\n\r\n/** Parameters used to construct an SkyBox\r\n * @internal\r\n */\r\nexport class SkyBoxGeometryParams implements WebGLDisposable {\r\n public readonly buffers: BuffersContainer;\r\n public readonly positions: QBufferHandle3d;\r\n\r\n protected constructor(positions: QBufferHandle3d) {\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", undefined, false);\r\n assert(attrPos !== undefined);\r\n this.buffers.addBuffer(positions, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.positions = positions;\r\n }\r\n\r\n public static create(positions: Uint16Array, qparams: QParams3d) {\r\n const posBuf = QBufferHandle3d.create(qparams, positions);\r\n if (undefined === posBuf)\r\n return undefined;\r\n\r\n return new SkyBoxGeometryParams(posBuf);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this.positions.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.positions);\r\n }\r\n}\r\n\r\n/** @internal */\r\nnamespace SkyBoxQuads { // eslint-disable-line no-redeclare\r\n let skyBoxQuads: SkyBoxQuads | undefined;\r\n\r\n export function getInstance(): SkyBoxQuads {\r\n if (undefined === skyBoxQuads)\r\n skyBoxQuads = new SkyBoxQuads();\r\n\r\n return skyBoxQuads;\r\n }\r\n}\r\n\r\n/** Geometry used for view-space rendering techniques.\r\n * @internal\r\n */\r\nexport class SkyBoxQuadsGeometry extends CachedGeometry {\r\n protected _techniqueId: TechniqueId;\r\n public readonly cube: RenderTexture;\r\n protected readonly _params: SkyBoxGeometryParams;\r\n\r\n protected constructor(ndxGeomParams: SkyBoxGeometryParams, texture: RenderTexture) {\r\n super();\r\n this.cube = texture;\r\n this._techniqueId = TechniqueId.SkyBox;\r\n this._params = ndxGeomParams;\r\n }\r\n\r\n public static create(texture: RenderTexture): SkyBoxQuadsGeometry | undefined {\r\n const sbxGeomParams = SkyBoxQuads.getInstance().createParams();\r\n return undefined !== sbxGeomParams ? new SkyBoxQuadsGeometry(sbxGeomParams, texture) : undefined;\r\n }\r\n\r\n public collectStatistics(_stats: RenderMemory.Statistics): void {\r\n // Not interested in tracking this.\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return this._techniqueId; }\r\n public override getPass(): Pass { return \"skybox\"; }\r\n public get renderOrder() { return RenderOrder.UnlitSurface; }\r\n\r\n public draw(): void {\r\n this._params.buffers.bind();\r\n System.instance.context.drawArrays(GL.PrimitiveType.Triangles, 0, 36);\r\n this._params.buffers.unbind();\r\n }\r\n\r\n public get qOrigin() { return this._params.positions.origin; }\r\n public get qScale() { return this._params.positions.scale; }\r\n\r\n public get isDisposed(): boolean { return this._params.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this._params);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n}\r\n\r\n/** A quad with its corners mapped to the dimensions as the viewport, used for special rendering techniques.\r\n * @internal\r\n */\r\nclass ViewportQuad {\r\n public readonly vertices: Uint16Array;\r\n public readonly vertexParams: QParams3d;\r\n public readonly indices = new Uint32Array(6);\r\n\r\n public constructor() {\r\n const pt = new Point3d(-1, -1, 0);\r\n const vertices = new QPoint3dList(QParams3d.fromNormalizedRange());\r\n vertices.add(pt);\r\n pt.x = 1;\r\n vertices.add(pt);\r\n pt.y = 1;\r\n vertices.add(pt);\r\n pt.x = -1;\r\n vertices.add(pt);\r\n\r\n this.vertices = vertices.toTypedArray();\r\n this.vertexParams = vertices.params;\r\n\r\n this.indices[0] = 0;\r\n this.indices[1] = 1;\r\n this.indices[2] = 2;\r\n this.indices[3] = 0;\r\n this.indices[4] = 2;\r\n this.indices[5] = 3;\r\n }\r\n\r\n public createParams() {\r\n return IndexedGeometryParams.create(this.vertices, this.vertexParams, this.indices);\r\n }\r\n}\r\n\r\n/** @internal */\r\nnamespace ViewportQuad { // eslint-disable-line no-redeclare\r\n let viewportQuad: ViewportQuad | undefined;\r\n\r\n export function getInstance(): ViewportQuad {\r\n if (undefined === viewportQuad)\r\n viewportQuad = new ViewportQuad();\r\n\r\n return viewportQuad;\r\n }\r\n}\r\n\r\n/** Geometry used for view-space rendering techniques.\r\n * @internal\r\n */\r\nexport class ViewportQuadGeometry extends IndexedGeometry {\r\n protected _techniqueId: TechniqueId;\r\n\r\n protected constructor(params: IndexedGeometryParams, techniqueId: TechniqueId) {\r\n super(params);\r\n this._techniqueId = techniqueId;\r\n }\r\n public static create(techniqueId: TechniqueId) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n return undefined !== params ? new this(params, techniqueId) : undefined;\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return this._techniqueId; }\r\n public override getPass(): Pass { return \"opaque\"; }\r\n public get renderOrder() { return RenderOrder.UnlitSurface; }\r\n\r\n public collectStatistics(_stats: RenderMemory.Statistics): void {\r\n // NB: These don't really count...\r\n }\r\n}\r\n\r\n/** Geometry used for view-space rendering techniques which involve sampling one or more textures.\r\n * @internal\r\n */\r\nexport class TexturedViewportQuadGeometry extends ViewportQuadGeometry {\r\n protected readonly _textures: WebGLTexture[];\r\n\r\n protected constructor(params: IndexedGeometryParams, techniqueId: TechniqueId, textures: WebGLTexture[]) {\r\n super(params, techniqueId);\r\n this._textures = textures;\r\n\r\n // TypeScript compiler will happily accept TextureHandle (or any other type) in place of WebGLTexture.\r\n // There is no such 'type' as WebGLTexture at run-time.\r\n assert(this._textures.every((tx) => !(tx instanceof TextureHandle)));\r\n }\r\n\r\n public static createTexturedViewportQuadGeometry(techniqueId: TechniqueId, textures: WebGLTexture[]): TexturedViewportQuadGeometry | undefined {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n return new this(params, techniqueId, textures);\r\n }\r\n}\r\n\r\n/** Geometry used for rendering default gradient-style or single texture spherical skybox.\r\n * @internal\r\n */\r\nexport class SkySphereViewportQuadGeometry extends ViewportQuadGeometry {\r\n public worldPos: Float32Array; // LeftBottom, RightBottom, RightTop, LeftTop worl pos of frustum at mid depth.\r\n public readonly typeAndExponents: Float32Array; // [0] -1.0 for 2-color gradient, 1.0 for 4-color gradient, 0.0 for texture; [1] sky exponent (4-color only) [2] ground exponent (4-color only)\r\n public readonly zOffset: number;\r\n public readonly rotation: number;\r\n public readonly zenithColor: Float32Array;\r\n public readonly skyColor: Float32Array;\r\n public readonly groundColor: Float32Array;\r\n public readonly nadirColor: Float32Array;\r\n public readonly skyTexture?: RenderTexture;\r\n protected readonly _worldPosBuff: BufferHandle;\r\n private _isWorldPosSet: boolean = false;\r\n\r\n public initWorldPos(target: Target): void {\r\n if (this._isWorldPosSet)\r\n return;\r\n\r\n this._isWorldPosSet = true;\r\n this._setPointsFromFrustum(target);\r\n this._worldPosBuff.bindData(this.worldPos, GL.Buffer.Usage.StreamDraw);\r\n const attrWorldPos = AttributeMap.findAttribute(\"a_worldPos\", TechniqueId.SkySphereGradient, false);\r\n assert(attrWorldPos !== undefined);\r\n this._params.buffers.addBuffer(this._worldPosBuff, [BufferParameters.create(attrWorldPos.location, 3, GL.DataType.Float, false, 0, 0, false)]);\r\n }\r\n\r\n private _setPointsFromFrustum(target: Target) {\r\n const frustum = target.planFrustum;\r\n const wp = this.worldPos;\r\n\r\n const lb = frustum.getCorner(Npc.LeftBottomRear).interpolate(0.5, frustum.getCorner(Npc.LeftBottomFront), scratchPoint3a);\r\n const rb = frustum.getCorner(Npc.RightBottomRear).interpolate(0.5, frustum.getCorner(Npc.RightBottomFront), scratchPoint3b);\r\n const rt = frustum.getCorner(Npc.RightTopRear).interpolate(0.5, frustum.getCorner(Npc.RightTopFront), scratchPoint3c);\r\n if (!target.plan.backgroundMapOn || !target.plan.isGlobeMode3D) {\r\n wp[0] = lb.x;\r\n wp[1] = lb.y;\r\n wp[2] = lb.z;\r\n wp[3] = rb.x;\r\n wp[4] = rb.y;\r\n wp[5] = rb.z;\r\n wp[6] = rt.x;\r\n wp[7] = rt.y;\r\n wp[8] = rt.z;\r\n const lt = frustum.getCorner(Npc.LeftTopRear).interpolate(0.5, frustum.getCorner(Npc.LeftTopFront), scratchPoint3d);\r\n wp[9] = lt.x;\r\n wp[10] = lt.y;\r\n wp[11] = lt.z;\r\n } else {\r\n // Need to fake a different frustum to orient the 4 corners properly.\r\n // First find true frustum center & size.\r\n const fCenter = lb.interpolate(0.5, rt, scratchPoint3d);\r\n const upScreen = Vector3d.createStartEnd(rb, rt, scratchVec3a);\r\n let rightScreen = Vector3d.createStartEnd(lb, rb, scratchVec3b);\r\n const halfWidth = upScreen.magnitude() * 0.5;\r\n const halfHeight = rightScreen.magnitude() * 0.5;\r\n // Find the projection of the globe up onto the frustum plane.\r\n upScreen.normalizeInPlace();\r\n rightScreen.normalizeInPlace();\r\n const projUp = target.plan.upVector.dotProduct(upScreen);\r\n const projRt = target.plan.upVector.dotProduct(rightScreen);\r\n // Find camera position (create one for ortho).\r\n let camPos: Point3d;\r\n if (FrustumUniformType.Perspective === target.uniforms.frustum.type) {\r\n const farLowerLeft = frustum.getCorner(Npc.LeftBottomRear);\r\n const nearLowerLeft = frustum.getCorner(Npc.LeftBottomFront);\r\n const scale = 1.0 / (1.0 - target.planFraction);\r\n const zVec = Vector3d.createStartEnd(farLowerLeft, nearLowerLeft, scratchVec3c);\r\n camPos = fromSumOf(farLowerLeft, zVec, scale, scratchPoint3a);\r\n } else {\r\n const delta = Vector3d.createStartEnd(frustum.getCorner(Npc.LeftBottomRear), frustum.getCorner(Npc.LeftBottomFront), scratchVec3c);\r\n const pseudoCameraHalfAngle = 22.5;\r\n const diagonal = frustum.getCorner(Npc.LeftBottomRear).distance(frustum.getCorner(Npc.RightTopRear));\r\n const focalLength = diagonal / (2 * Math.atan(pseudoCameraHalfAngle * Angle.radiansPerDegree));\r\n let zScale = focalLength / delta.magnitude();\r\n if (zScale < 1.000001)\r\n zScale = 1.000001; // prevent worldEye front being on or inside the frustum front plane\r\n camPos = Point3d.createAdd3Scaled(frustum.getCorner(Npc.LeftBottomRear), .5, frustum.getCorner(Npc.RightTopRear), .5, delta, zScale, scratchPoint3a);\r\n }\r\n // Compute the distance from the camera to the frustum center.\r\n const camDist = camPos.distance(fCenter);\r\n // Now use a fixed camera direction and compute a new frustum center.\r\n const camDir = Vector3d.create(0.0, 1.0, 0.0, scratchVec3c);\r\n fCenter.setFromPoint3d(camPos);\r\n fCenter.addScaledInPlace(camDir, camDist);\r\n // Create an up vector that mimics the projection of the globl up onto the real frustum.\r\n upScreen.set(projRt, 0.0, projUp);\r\n upScreen.normalizeInPlace();\r\n // Compute a new right vector and then compute the 4 points for the sky.\r\n rightScreen = upScreen.crossProduct(camDir, scratchVec3b);\r\n upScreen.scaleInPlace(halfHeight);\r\n rightScreen.scaleInPlace(halfWidth);\r\n wp[0] = fCenter.x - rightScreen.x - upScreen.x; // left bottom\r\n wp[1] = fCenter.y - rightScreen.y - upScreen.y;\r\n wp[2] = fCenter.z - rightScreen.z - upScreen.z;\r\n wp[3] = fCenter.x + rightScreen.x - upScreen.x; // right bottom\r\n wp[4] = fCenter.y + rightScreen.y - upScreen.y;\r\n wp[5] = fCenter.z + rightScreen.z - upScreen.z;\r\n wp[6] = fCenter.x + rightScreen.x + upScreen.x; // right top\r\n wp[7] = fCenter.y + rightScreen.y + upScreen.y;\r\n wp[8] = fCenter.z + rightScreen.z + upScreen.z;\r\n wp[9] = fCenter.x - rightScreen.x + upScreen.x; // left top\r\n wp[10] = fCenter.y - rightScreen.y + upScreen.y;\r\n wp[11] = fCenter.z - rightScreen.z + upScreen.z;\r\n }\r\n }\r\n\r\n protected constructor(params: IndexedGeometryParams, skybox: RenderSkySphereParams | RenderSkyGradientParams, techniqueId: TechniqueId) {\r\n super(params, techniqueId);\r\n\r\n this.worldPos = new Float32Array(4 * 3);\r\n this._worldPosBuff = new BufferHandle(GL.Buffer.Target.ArrayBuffer);\r\n this.typeAndExponents = new Float32Array(3);\r\n this.zenithColor = new Float32Array(3);\r\n this.skyColor = new Float32Array(3);\r\n this.groundColor = new Float32Array(3);\r\n this.nadirColor = new Float32Array(3);\r\n this.zOffset = skybox.zOffset;\r\n\r\n this.rotation = \"sphere\" === skybox.type ? skybox.rotation : 0;\r\n if (skybox.type === \"sphere\") {\r\n this.skyTexture = skybox.texture;\r\n this.typeAndExponents[0] = 0.0;\r\n this.typeAndExponents[1] = 1.0;\r\n this.typeAndExponents[2] = 1.0;\r\n this.zenithColor[0] = 0.0;\r\n this.zenithColor[1] = 0.0;\r\n this.zenithColor[2] = 0.0;\r\n this.nadirColor[0] = 0.0;\r\n this.nadirColor[1] = 0.0;\r\n this.nadirColor[2] = 0.0;\r\n this.skyColor[0] = 0.0;\r\n this.skyColor[1] = 0.0;\r\n this.skyColor[2] = 0.0;\r\n this.groundColor[0] = 0.0;\r\n this.groundColor[1] = 0.0;\r\n this.groundColor[2] = 0.0;\r\n } else {\r\n const gradient = skybox.gradient;\r\n\r\n this.zenithColor[0] = gradient.zenithColor.colors.r / 255.0;\r\n this.zenithColor[1] = gradient.zenithColor.colors.g / 255.0;\r\n this.zenithColor[2] = gradient.zenithColor.colors.b / 255.0;\r\n this.nadirColor[0] = gradient.nadirColor.colors.r / 255.0;\r\n this.nadirColor[1] = gradient.nadirColor.colors.g / 255.0;\r\n this.nadirColor[2] = gradient.nadirColor.colors.b / 255.0;\r\n\r\n if (gradient.twoColor) {\r\n this.typeAndExponents[0] = -1.0;\r\n this.typeAndExponents[1] = 4.0;\r\n this.typeAndExponents[2] = 4.0;\r\n this.skyColor[0] = 0.0;\r\n this.skyColor[1] = 0.0;\r\n this.skyColor[2] = 0.0;\r\n this.groundColor[0] = 0.0;\r\n this.groundColor[1] = 0.0;\r\n this.groundColor[2] = 0.0;\r\n } else {\r\n this.typeAndExponents[0] = 1.0;\r\n this.typeAndExponents[1] = gradient.skyExponent;\r\n this.typeAndExponents[2] = gradient.groundExponent;\r\n this.skyColor[0] = gradient.skyColor.colors.r / 255.0;\r\n this.skyColor[1] = gradient.skyColor.colors.g / 255.0;\r\n this.skyColor[2] = gradient.skyColor.colors.b / 255.0;\r\n this.groundColor[0] = gradient.groundColor.colors.r / 255.0;\r\n this.groundColor[1] = gradient.groundColor.colors.g / 255.0;\r\n this.groundColor[2] = gradient.groundColor.colors.b / 255.0;\r\n }\r\n }\r\n }\r\n\r\n public static createGeometry(skybox: RenderSkySphereParams | RenderSkyGradientParams) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n const technique = \"sphere\" === skybox.type ? TechniqueId.SkySphereTexture : TechniqueId.SkySphereGradient;\r\n return new SkySphereViewportQuadGeometry(params, skybox, technique);\r\n }\r\n\r\n public override get isDisposed(): boolean { return super.isDisposed && this._worldPosBuff.isDisposed; }\r\n\r\n public override dispose() {\r\n super.dispose();\r\n dispose(this._worldPosBuff);\r\n }\r\n}\r\n\r\n/** Geometry used when rendering ambient occlusion information to an output texture\r\n * @internal\r\n */\r\nexport class AmbientOcclusionGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(depthAndOrder: WebGLTexture, depth: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params) {\r\n return undefined;\r\n }\r\n\r\n // Will derive positions and normals from depthAndOrder.\r\n return new AmbientOcclusionGeometry(params, [depth, depthAndOrder]);\r\n }\r\n\r\n public get depthAndOrder() { return this._textures[1]; }\r\n public get depth() { return this._textures[0]; }\r\n public get noise() { return System.instance.noiseTexture!.getHandle()!; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.AmbientOcclusion, textures);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class BlurGeometry extends TexturedViewportQuadGeometry {\r\n public readonly blurDir: Vector2d;\r\n\r\n public static createGeometry(texToBlur: WebGLTexture, depthAndOrder: WebGLTexture, blurDir: Vector2d) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params) {\r\n return undefined;\r\n }\r\n return new BlurGeometry(params, [texToBlur, depthAndOrder], blurDir);\r\n }\r\n\r\n public get textureToBlur() { return this._textures[0]; }\r\n public get depthAndOrder() { return this._textures[1]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[], blurDir: Vector2d) {\r\n super(params, TechniqueId.Blur, textures);\r\n this.blurDir = blurDir;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class EVSMGeometry extends TexturedViewportQuadGeometry {\r\n public readonly stepSize = new Float32Array(2);\r\n\r\n public static createGeometry(depthBuffer: WebGLTexture, width: number, height: number) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n return new EVSMGeometry(params, [depthBuffer], width, height);\r\n }\r\n\r\n public get depthTexture() { return this._textures[0]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[], width: number, height: number) {\r\n super(params, TechniqueId.EVSMFromDepth, textures);\r\n this.stepSize[0] = 1.0 / width;\r\n this.stepSize[1] = 1.0 / height;\r\n }\r\n}\r\n\r\n/** Geometry used during the 'composite' pass to apply transparency and/or hilite effects.\r\n * @internal\r\n */\r\nexport class CompositeGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(opaque: WebGLTexture, accum: WebGLTexture, reveal: WebGLTexture, hilite: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n\r\n const textures = [opaque, accum, reveal, hilite];\r\n return new CompositeGeometry(params, textures);\r\n }\r\n\r\n public get opaque() { return this._textures[0]; }\r\n public get accum() { return this._textures[1]; }\r\n public get reveal() { return this._textures[2]; }\r\n public get hilite() { return this._textures[3]; }\r\n public get occlusion(): WebGLTexture | undefined {\r\n return this._textures.length > 4 ? this._textures[4] : undefined;\r\n }\r\n public set occlusion(occlusion: WebGLTexture | undefined) {\r\n assert((undefined === occlusion) === (undefined !== this.occlusion));\r\n if (undefined !== occlusion)\r\n this._textures[4] = occlusion;\r\n else\r\n this._textures.length = 4;\r\n }\r\n\r\n // Invoked each frame to determine the appropriate Technique to use.\r\n public update(flags: CompositeFlags): void { this._techniqueId = this.determineTechnique(flags); }\r\n\r\n private determineTechnique(flags: CompositeFlags): TechniqueId {\r\n return computeCompositeTechniqueId(flags);\r\n }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.CompositeHilite, textures);\r\n assert(4 <= this._textures.length);\r\n }\r\n}\r\n\r\n/** Geometry used to ping-pong the pick buffer data in between opaque passes.\r\n * @internal\r\n */\r\nexport class CopyPickBufferGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(featureId: WebGLTexture, depthAndOrder: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined !== params) {\r\n return new CopyPickBufferGeometry(params, [featureId, depthAndOrder]);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public get featureId() { return this._textures[0]; }\r\n public get depthAndOrder() { return this._textures[1]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.CopyPickBuffers, textures);\r\n }\r\n}\r\nexport class CombineTexturesGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(texture0: WebGLTexture, texture1: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined !== params) {\r\n return new CombineTexturesGeometry(params, [texture0, texture1]);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public get texture0() { return this._textures[0]; }\r\n public get texture1() { return this._textures[1]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.CombineTextures, textures);\r\n }\r\n}\r\n\r\nexport class Combine3TexturesGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(texture0: WebGLTexture, texture1: WebGLTexture, texture2: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined !== params) {\r\n return new Combine3TexturesGeometry(params, [texture0, texture1, texture2]);\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n public get texture0() { return this._textures[0]; }\r\n public get texture1() { return this._textures[1]; }\r\n public get texture2() { return this._textures[2]; }\r\n\r\n private constructor(params: IndexedGeometryParams, textures: WebGLTexture[]) {\r\n super(params, TechniqueId.Combine3Textures, textures);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class SingleTexturedViewportQuadGeometry extends TexturedViewportQuadGeometry {\r\n public static createGeometry(texture: WebGLTexture, techId: TechniqueId) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params) {\r\n return undefined;\r\n }\r\n\r\n return new SingleTexturedViewportQuadGeometry(params, texture, techId);\r\n }\r\n\r\n public get texture(): WebGLTexture { return this._textures[0]; }\r\n public set texture(texture: WebGLTexture) { this._textures[0] = texture; }\r\n\r\n protected constructor(params: IndexedGeometryParams, texture: WebGLTexture, techId: TechniqueId) {\r\n super(params, techId, [texture]);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport enum BoundaryType {\r\n Outside = 0,\r\n Inside = 1,\r\n Selected = 2,\r\n}\r\n\r\n/** @internal */\r\nexport class VolumeClassifierGeometry extends SingleTexturedViewportQuadGeometry {\r\n public boundaryType: BoundaryType = BoundaryType.Inside;\r\n\r\n public static createVCGeometry(texture: WebGLTexture) {\r\n const params = ViewportQuad.getInstance().createParams();\r\n if (undefined === params)\r\n return undefined;\r\n return new VolumeClassifierGeometry(params, texture);\r\n }\r\n\r\n private constructor(params: IndexedGeometryParams, texture: WebGLTexture) {\r\n super(params, texture, TechniqueId.VolClassSetBlend);\r\n }\r\n}\r\n\r\n/** A geometric primitive which renders gl points using gl.drawArrays() with one vertex buffer.\r\n * @internal\r\n */\r\nexport class ScreenPointsGeometry extends CachedGeometry {\r\n protected _numPoints: number;\r\n protected _origin: Float32Array;\r\n protected _scale: Float32Array;\r\n protected _positions: QBufferHandle2d;\r\n public readonly buffers: BuffersContainer;\r\n public readonly zTexture: WebGLTexture;\r\n\r\n protected constructor(vertices: QPoint2dList, zTexture: WebGLTexture) {\r\n super();\r\n\r\n this.zTexture = zTexture;\r\n\r\n this._numPoints = vertices.length;\r\n\r\n this._positions = QBufferHandle2d.create(vertices.params, vertices.toTypedArray())!;\r\n\r\n this._origin = new Float32Array(3);\r\n this._origin[0] = this._positions.params[0];\r\n this._origin[1] = this._positions.params[1];\r\n this._origin[2] = 0.0;\r\n this._scale = new Float32Array(3);\r\n this._scale[0] = this._positions.params[2];\r\n this._scale[1] = this._positions.params[3];\r\n this._scale[2] = this._positions.params[3]; // just copy the scale from y\r\n\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.VolClassCopyZ, false);\r\n assert(attrPos !== undefined);\r\n this.buffers.addBuffer(this._positions, [BufferParameters.create(attrPos.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n }\r\n\r\n public static createGeometry(width: number, height: number, depth: WebGLTexture): ScreenPointsGeometry {\r\n const pixWidth = 2.0 / width;\r\n const pixHeight = 2.0 / height;\r\n\r\n const startX = pixWidth * 0.5 - 1.0;\r\n const startY = pixHeight * 0.5 - 1.0;\r\n\r\n const pt = new Point2d(startX, startY);\r\n const vertices = new QPoint2dList(QParams2d.fromNormalizedRange());\r\n\r\n for (let y = 0; y < height; ++y) {\r\n pt.x = startX;\r\n for (let x = 0; x < width; ++x) {\r\n vertices.add(pt);\r\n pt.x += pixWidth;\r\n }\r\n pt.y += pixHeight;\r\n }\r\n return new ScreenPointsGeometry(vertices, depth);\r\n }\r\n\r\n public draw(): void {\r\n this.buffers.bind();\r\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._numPoints);\r\n this.buffers.unbind();\r\n }\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._positions.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this._positions);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addBuffer(RenderMemory.BufferType.PointStrings, this._positions.bytesUsed);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n public get techniqueId(): TechniqueId { return TechniqueId.VolClassCopyZ; }\r\n public override getPass(): Pass { return \"classification\"; }\r\n public get renderOrder() { return RenderOrder.None; }\r\n public get qOrigin() { return this._origin; }\r\n public get qScale() { return this._scale; }\r\n}\r\n\r\n/** @internal */\r\nexport class PolylineBuffers implements WebGLDisposable {\r\n public buffers: BuffersContainer;\r\n public indices: BufferHandle;\r\n public prevIndices: BufferHandle;\r\n public nextIndicesAndParams: BufferHandle;\r\n private constructor(indices: BufferHandle, prevIndices: BufferHandle, nextIndicesAndParams: BufferHandle) {\r\n this.buffers = BuffersContainer.create();\r\n\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.Polyline, false);\r\n const attrPrevIndex = AttributeMap.findAttribute(\"a_prevIndex\", TechniqueId.Polyline, false);\r\n const attrNextIndex = AttributeMap.findAttribute(\"a_nextIndex\", TechniqueId.Polyline, false);\r\n const attrParam = AttributeMap.findAttribute(\"a_param\", TechniqueId.Polyline, false);\r\n assert(attrPos !== undefined);\r\n assert(attrPrevIndex !== undefined);\r\n assert(attrNextIndex !== undefined);\r\n assert(attrParam !== undefined);\r\n\r\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.buffers.addBuffer(prevIndices, [BufferParameters.create(attrPrevIndex.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.buffers.addBuffer(nextIndicesAndParams, [\r\n BufferParameters.create(attrNextIndex.location, 3, GL.DataType.UnsignedByte, false, 4, 0, false),\r\n BufferParameters.create(attrParam.location, 1, GL.DataType.UnsignedByte, false, 4, 3, false),\r\n ]);\r\n\r\n this.indices = indices;\r\n this.prevIndices = prevIndices;\r\n this.nextIndicesAndParams = nextIndicesAndParams;\r\n }\r\n\r\n public static create(polyline: TesselatedPolyline): PolylineBuffers | undefined {\r\n const indices = BufferHandle.createArrayBuffer(polyline.indices.data);\r\n const prev = BufferHandle.createArrayBuffer(polyline.prevIndices.data);\r\n const next = BufferHandle.createArrayBuffer(polyline.nextIndicesAndParams);\r\n return undefined !== indices && undefined !== prev && undefined !== next ? new PolylineBuffers(indices, prev, next) : undefined;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics, type: RenderMemory.BufferType): void {\r\n stats.addBuffer(type, this.indices.bytesUsed + this.prevIndices.bytesUsed + this.nextIndicesAndParams.bytesUsed);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.buffers.isDisposed\r\n && this.indices.isDisposed\r\n && this.prevIndices.isDisposed\r\n && this.nextIndicesAndParams.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.indices);\r\n dispose(this.prevIndices);\r\n dispose(this.nextIndicesAndParams);\r\n }\r\n}\r\n"]}
@@ -8,7 +8,7 @@ import { ClipVolume } from "./ClipVolume";
8
8
  import { Batch, Branch } from "./Graphic";
9
9
  import { UniformHandle } from "./UniformHandle";
10
10
  import { Primitive } from "./Primitive";
11
- import { RenderOrder, RenderPass } from "./RenderFlags";
11
+ import { Pass, RenderOrder, RenderPass } from "./RenderFlags";
12
12
  import { ShaderProgramExecutor } from "./ShaderProgram";
13
13
  import { Hilites, Target } from "./Target";
14
14
  /** @internal */
@@ -85,7 +85,6 @@ export declare class PushStateCommand {
85
85
  export declare class PushBranchCommand {
86
86
  readonly branch: Branch;
87
87
  readonly opcode = "pushBranch";
88
- private static _viewFlagOverrides?;
89
88
  constructor(branch: Branch);
90
89
  execute(exec: ShaderProgramExecutor): void;
91
90
  }
@@ -119,7 +118,7 @@ export declare class PrimitiveCommand {
119
118
  execute(exec: ShaderProgramExecutor): void;
120
119
  get hasFeatures(): boolean;
121
120
  get renderOrder(): RenderOrder;
122
- getRenderPass(target: Target): RenderPass;
121
+ getPass(target: Target): Pass;
123
122
  }
124
123
  /** @internal */
125
124
  export declare type PushCommand = PushBranchCommand | PushBatchCommand | PushStateCommand | PushClipCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawCommand.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/DrawCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawCommand.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/DrawCommand.ts"],"names":[],"mappings":"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"}