@itwin/core-frontend 4.8.0-dev.4 → 4.8.0-dev.41

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 (1086) hide show
  1. package/CHANGELOG.md +62 -1
  2. package/README.md +9 -1
  3. package/ThirdPartyNotices.md +3 -3
  4. package/lib/cjs/AccuDraw.d.ts +6 -1
  5. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  6. package/lib/cjs/AccuDraw.js +18 -6
  7. package/lib/cjs/AccuDraw.js.map +1 -1
  8. package/lib/cjs/AccuSnap.d.ts +9 -0
  9. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  10. package/lib/cjs/AccuSnap.js +15 -3
  11. package/lib/cjs/AccuSnap.js.map +1 -1
  12. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  13. package/lib/cjs/AuxCoordSys.js +2 -2
  14. package/lib/cjs/AuxCoordSys.js.map +1 -1
  15. package/lib/cjs/DecorationsCache.d.ts +1 -1
  16. package/lib/cjs/DecorationsCache.d.ts.map +1 -1
  17. package/lib/cjs/DecorationsCache.js.map +1 -1
  18. package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
  19. package/lib/cjs/EnvironmentDecorations.js +2 -2
  20. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  21. package/lib/cjs/HitDetail.d.ts.map +1 -1
  22. package/lib/cjs/HitDetail.js +3 -3
  23. package/lib/cjs/HitDetail.js.map +1 -1
  24. package/lib/cjs/IModelApp.d.ts +2 -3
  25. package/lib/cjs/IModelApp.d.ts.map +1 -1
  26. package/lib/cjs/IModelApp.js +2 -2
  27. package/lib/cjs/IModelApp.js.map +1 -1
  28. package/lib/cjs/IModelConnection.d.ts +16 -6
  29. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  30. package/lib/cjs/IModelConnection.js +21 -7
  31. package/lib/cjs/IModelConnection.js.map +1 -1
  32. package/lib/cjs/IpcApp.d.ts +5 -1
  33. package/lib/cjs/IpcApp.d.ts.map +1 -1
  34. package/lib/cjs/IpcApp.js +11 -5
  35. package/lib/cjs/IpcApp.js.map +1 -1
  36. package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
  37. package/lib/cjs/LocalhostIpcApp.js +2 -1
  38. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  39. package/lib/cjs/NativeApp.d.ts.map +1 -1
  40. package/lib/cjs/NativeApp.js +2 -1
  41. package/lib/cjs/NativeApp.js.map +1 -1
  42. package/lib/cjs/NoRenderApp.d.ts +2 -0
  43. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  44. package/lib/cjs/NoRenderApp.js +7 -0
  45. package/lib/cjs/NoRenderApp.js.map +1 -1
  46. package/lib/cjs/PlanarClipMaskState.d.ts +8 -3
  47. package/lib/cjs/PlanarClipMaskState.d.ts.map +1 -1
  48. package/lib/cjs/PlanarClipMaskState.js +47 -17
  49. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  50. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
  51. package/lib/cjs/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  52. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js +15 -4
  53. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  54. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  55. package/lib/cjs/SheetViewState.js +3 -3
  56. package/lib/cjs/SheetViewState.js.map +1 -1
  57. package/lib/cjs/SpatialViewState.d.ts +14 -1
  58. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  59. package/lib/cjs/SpatialViewState.js +17 -0
  60. package/lib/cjs/SpatialViewState.js.map +1 -1
  61. package/lib/cjs/SubCategoriesCache.d.ts +3 -1
  62. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  63. package/lib/cjs/SubCategoriesCache.js +19 -5
  64. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  65. package/lib/cjs/ViewContext.d.ts +2 -1
  66. package/lib/cjs/ViewContext.d.ts.map +1 -1
  67. package/lib/cjs/ViewContext.js +8 -8
  68. package/lib/cjs/ViewContext.js.map +1 -1
  69. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  70. package/lib/cjs/ViewCreator3d.js +1 -0
  71. package/lib/cjs/ViewCreator3d.js.map +1 -1
  72. package/lib/cjs/ViewManager.d.ts +4 -7
  73. package/lib/cjs/ViewManager.d.ts.map +1 -1
  74. package/lib/cjs/ViewManager.js +4 -7
  75. package/lib/cjs/ViewManager.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.d.ts +3 -1
  77. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  78. package/lib/cjs/ViewingSpace.js +11 -2
  79. package/lib/cjs/ViewingSpace.js.map +1 -1
  80. package/lib/cjs/Viewport.d.ts +1 -3
  81. package/lib/cjs/Viewport.d.ts.map +1 -1
  82. package/lib/cjs/Viewport.js +3 -5
  83. package/lib/cjs/Viewport.js.map +1 -1
  84. package/lib/cjs/common/WorkerProxy.d.ts +7 -25
  85. package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
  86. package/lib/cjs/common/WorkerProxy.js +2 -1
  87. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  88. package/lib/cjs/common/gltf/GltfSchema.d.ts +15 -1
  89. package/lib/cjs/common/gltf/GltfSchema.d.ts.map +1 -1
  90. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  91. package/lib/cjs/common/imdl/CompactEdges.d.ts +1 -1
  92. package/lib/cjs/common/imdl/CompactEdges.d.ts.map +1 -1
  93. package/lib/cjs/common/imdl/CompactEdges.js +2 -2
  94. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  95. package/lib/cjs/common/imdl/ImdlModel.d.ts +5 -3
  96. package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
  97. package/lib/cjs/common/imdl/ImdlModel.js +49 -42
  98. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  99. package/lib/cjs/common/imdl/ImdlSchema.d.ts +4 -4
  100. package/lib/cjs/common/imdl/ImdlSchema.d.ts.map +1 -1
  101. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  102. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts +4 -2
  103. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  104. package/lib/cjs/common/imdl/ParseImdlDocument.js +10 -8
  105. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  106. package/lib/cjs/common/internal/Symbols.d.ts +10 -0
  107. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -0
  108. package/lib/cjs/common/internal/Symbols.js +20 -0
  109. package/lib/cjs/common/internal/Symbols.js.map +1 -0
  110. package/lib/cjs/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  111. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -0
  112. package/lib/cjs/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  113. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -0
  114. package/lib/cjs/common/internal/render/ColorMap.d.ts.map +1 -0
  115. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -0
  116. package/lib/cjs/common/internal/render/DisplayParams.d.ts.map +1 -0
  117. package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.js +3 -6
  118. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -0
  119. package/lib/cjs/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  120. package/lib/cjs/common/internal/render/EdgeParams.d.ts.map +1 -0
  121. package/lib/cjs/{render/primitives → common/internal/render}/EdgeParams.js +50 -16
  122. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -0
  123. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  124. package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  125. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  126. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -0
  127. package/lib/cjs/common/internal/render/GeometryList.d.ts.map +1 -0
  128. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -0
  129. package/lib/{esm/render/primitives/geometry → cjs/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  130. package/lib/cjs/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  131. package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  132. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -0
  133. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
  134. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  135. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js +252 -0
  136. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  137. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
  138. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
  139. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js +146 -0
  140. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
  141. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  142. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  143. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  144. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -0
  145. package/lib/{esm/render/primitives/mesh → cjs/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  146. package/lib/cjs/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  147. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  148. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -0
  149. package/lib/cjs/common/internal/render/MeshParams.d.ts.map +1 -0
  150. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -0
  151. package/lib/cjs/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  152. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -0
  153. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts +82 -0
  154. package/lib/cjs/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  155. package/lib/cjs/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +82 -104
  156. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -0
  157. package/lib/cjs/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  158. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -0
  159. package/lib/{esm/common/render/primitives → cjs/common/internal/render}/PointStringParams.d.ts +3 -0
  160. package/lib/cjs/common/internal/render/PointStringParams.d.ts.map +1 -0
  161. package/lib/cjs/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  162. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -0
  163. package/lib/{esm/render/primitives → cjs/common/internal/render}/Polyface.d.ts +1 -1
  164. package/lib/cjs/common/internal/render/Polyface.d.ts.map +1 -0
  165. package/lib/cjs/common/internal/render/Polyface.js.map +1 -0
  166. package/lib/cjs/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
  167. package/lib/cjs/common/internal/render/PolylineParams.d.ts.map +1 -0
  168. package/lib/cjs/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  169. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -0
  170. package/lib/{esm/render/primitives → cjs/common/internal/render}/Primitives.d.ts +3 -34
  171. package/lib/cjs/common/internal/render/Primitives.d.ts.map +1 -0
  172. package/lib/cjs/{render/primitives → common/internal/render}/Primitives.js +1 -44
  173. package/lib/cjs/common/internal/render/Primitives.js.map +1 -0
  174. package/lib/{esm/render/primitives → cjs/common/internal/render}/Strokes.d.ts +1 -1
  175. package/lib/cjs/common/internal/render/Strokes.d.ts.map +1 -0
  176. package/lib/cjs/common/internal/render/Strokes.js.map +1 -0
  177. package/lib/cjs/common/internal/render/SurfaceParams.d.ts.map +1 -0
  178. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -0
  179. package/lib/cjs/common/internal/render/VertexIndices.d.ts.map +1 -0
  180. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -0
  181. package/lib/cjs/common/internal/render/VertexKey.d.ts.map +1 -0
  182. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -0
  183. package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -0
  184. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -0
  185. package/lib/{esm/render/primitives → cjs/common/internal/render}/VertexTableBuilder.d.ts +5 -4
  186. package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  187. package/lib/cjs/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  188. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -0
  189. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  190. package/lib/cjs/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  191. package/lib/cjs/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
  192. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -0
  193. package/lib/cjs/common/render/BatchOptions.d.ts +46 -0
  194. package/lib/cjs/common/render/BatchOptions.d.ts.map +1 -0
  195. package/lib/cjs/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  196. package/lib/cjs/common/render/BatchOptions.js.map +1 -0
  197. package/lib/cjs/common/render/GraphicAssembler.d.ts +197 -0
  198. package/lib/cjs/common/render/GraphicAssembler.d.ts.map +1 -0
  199. package/lib/cjs/common/render/GraphicAssembler.js +386 -0
  200. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -0
  201. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts +89 -0
  202. package/lib/cjs/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  203. package/lib/cjs/common/render/GraphicDescriptionBuilder.js +34 -0
  204. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -0
  205. package/lib/cjs/common/render/GraphicDescriptionContext.d.ts +85 -0
  206. package/lib/cjs/common/render/GraphicDescriptionContext.d.ts.map +1 -0
  207. package/lib/cjs/common/render/GraphicDescriptionContext.js +22 -0
  208. package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -0
  209. package/lib/cjs/common/render/GraphicPrimitive.d.ts.map +1 -0
  210. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -0
  211. package/lib/cjs/common/render/GraphicType.d.ts +62 -0
  212. package/lib/cjs/common/render/GraphicType.d.ts.map +1 -0
  213. package/lib/cjs/common/render/GraphicType.js +70 -0
  214. package/lib/cjs/common/render/GraphicType.js.map +1 -0
  215. package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -0
  216. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -0
  217. package/lib/cjs/common.d.ts +14 -0
  218. package/lib/cjs/common.d.ts.map +1 -0
  219. package/lib/cjs/common.js +35 -0
  220. package/lib/cjs/common.js.map +1 -0
  221. package/lib/cjs/core-frontend.d.ts +5 -43
  222. package/lib/cjs/core-frontend.d.ts.map +1 -1
  223. package/lib/cjs/core-frontend.js +5 -43
  224. package/lib/cjs/core-frontend.js.map +1 -1
  225. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  226. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  227. package/lib/cjs/internal/cross-package.d.ts +7 -0
  228. package/lib/cjs/internal/cross-package.d.ts.map +1 -0
  229. package/lib/cjs/internal/cross-package.js +17 -0
  230. package/lib/cjs/internal/cross-package.js.map +1 -0
  231. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +33 -0
  232. package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  233. package/lib/cjs/internal/render/PrimitiveBuilder.js +140 -0
  234. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -0
  235. package/lib/cjs/render/FeatureSymbology.js +3 -3
  236. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  237. package/lib/cjs/render/GraphicBranch.d.ts +1 -1
  238. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  239. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  240. package/lib/cjs/render/GraphicBuilder.d.ts +7 -254
  241. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  242. package/lib/cjs/render/GraphicBuilder.js +18 -235
  243. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  244. package/lib/cjs/render/MeshArgs.d.ts +56 -0
  245. package/lib/cjs/render/MeshArgs.d.ts.map +1 -0
  246. package/lib/cjs/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
  247. package/lib/cjs/render/MeshArgs.js.map +1 -0
  248. package/lib/cjs/render/MockRender.d.ts +7 -5
  249. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  250. package/lib/cjs/render/MockRender.js +6 -2
  251. package/lib/cjs/render/MockRender.js.map +1 -1
  252. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  253. package/lib/cjs/render/ParticleCollectionBuilder.js +4 -3
  254. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  255. package/lib/cjs/render/PolylineArgs.d.ts +31 -0
  256. package/lib/cjs/render/PolylineArgs.d.ts.map +1 -0
  257. package/lib/cjs/render/PolylineArgs.js +10 -0
  258. package/lib/cjs/render/PolylineArgs.js.map +1 -0
  259. package/lib/cjs/render/RealityMeshParams.js +1 -1
  260. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  261. package/lib/cjs/render/RenderSystem.d.ts +36 -7
  262. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  263. package/lib/cjs/render/RenderSystem.js +94 -6
  264. package/lib/cjs/render/RenderSystem.js.map +1 -1
  265. package/lib/cjs/render/RenderTarget.d.ts +49 -5
  266. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  267. package/lib/cjs/render/RenderTarget.js +33 -5
  268. package/lib/cjs/render/RenderTarget.js.map +1 -1
  269. package/lib/cjs/render/webgl/BackgroundMapDrape.js +1 -1
  270. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  271. package/lib/cjs/render/webgl/CachedGeometry.d.ts +1 -1
  272. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  273. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  274. package/lib/cjs/render/webgl/ColorInfo.d.ts +1 -1
  275. package/lib/cjs/render/webgl/ColorInfo.d.ts.map +1 -1
  276. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  277. package/lib/cjs/render/webgl/EdgeGeometry.d.ts +2 -2
  278. package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
  279. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  280. package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
  281. package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
  282. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  283. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  284. package/lib/cjs/render/webgl/Graphic.d.ts +1 -1
  285. package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
  286. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  287. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  288. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  289. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  290. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
  291. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  292. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  293. package/lib/cjs/render/webgl/Material.d.ts +5 -1
  294. package/lib/cjs/render/webgl/Material.d.ts.map +1 -1
  295. package/lib/cjs/render/webgl/Material.js +5 -0
  296. package/lib/cjs/render/webgl/Material.js.map +1 -1
  297. package/lib/cjs/render/webgl/Mesh.d.ts +6 -3
  298. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  299. package/lib/cjs/render/webgl/Mesh.js +3 -1
  300. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  301. package/lib/cjs/render/webgl/MeshData.d.ts +2 -2
  302. package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
  303. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  304. package/lib/cjs/render/webgl/MeshGeometry.d.ts +1 -1
  305. package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
  306. package/lib/cjs/render/webgl/PlanarClassifier.d.ts +2 -0
  307. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  308. package/lib/cjs/render/webgl/PlanarClassifier.js +38 -11
  309. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  310. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts +3 -3
  311. package/lib/cjs/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  312. package/lib/cjs/render/webgl/PlanarTextureProjection.js +53 -19
  313. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  314. package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
  315. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  316. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  317. package/lib/cjs/render/webgl/PointString.d.ts +1 -1
  318. package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
  319. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  320. package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
  321. package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
  322. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  323. package/lib/cjs/render/webgl/Primitive.d.ts +1 -1
  324. package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
  325. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  326. package/lib/cjs/render/webgl/RenderCommands.js +1 -1
  327. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  328. package/lib/cjs/render/webgl/SolarShadowMap.js +2 -2
  329. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  330. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +1 -1
  331. package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  332. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  333. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  334. package/lib/cjs/render/webgl/System.d.ts +7 -6
  335. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/System.js +2 -2
  337. package/lib/cjs/render/webgl/System.js.map +1 -1
  338. package/lib/cjs/render/webgl/Target.d.ts +3 -0
  339. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  340. package/lib/cjs/render/webgl/Target.js +6 -1
  341. package/lib/cjs/render/webgl/Target.js.map +1 -1
  342. package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
  343. package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
  344. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  345. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  346. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  347. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  348. package/lib/cjs/tile/B3dmReader.d.ts +1 -2
  349. package/lib/cjs/tile/B3dmReader.d.ts.map +1 -1
  350. package/lib/cjs/tile/B3dmReader.js +1 -2
  351. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  352. package/lib/cjs/tile/DynamicIModelTile.js +1 -0
  353. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  354. package/lib/cjs/tile/GltfReader.d.ts +30 -6
  355. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  356. package/lib/cjs/tile/GltfReader.js +245 -9
  357. package/lib/cjs/tile/GltfReader.js.map +1 -1
  358. package/lib/cjs/tile/GraphicsCollector.d.ts.map +1 -1
  359. package/lib/cjs/tile/GraphicsCollector.js +5 -2
  360. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  361. package/lib/cjs/tile/I3dmReader.d.ts +1 -2
  362. package/lib/cjs/tile/I3dmReader.d.ts.map +1 -1
  363. package/lib/cjs/tile/I3dmReader.js +1 -2
  364. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  365. package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
  366. package/lib/cjs/tile/ImdlDecoder.d.ts.map +1 -1
  367. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  368. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -0
  369. package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  370. package/lib/cjs/tile/ImdlGraphicsCreator.js +88 -5
  371. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  372. package/lib/cjs/tile/ImdlReader.d.ts +1 -1
  373. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  374. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  375. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  376. package/lib/cjs/tile/OPCFormatInterpreter.js +7 -2
  377. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  378. package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
  379. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  380. package/lib/cjs/tile/PntsReader.js +1 -1
  381. package/lib/cjs/tile/PntsReader.js.map +1 -1
  382. package/lib/cjs/tile/PrimaryTileTree.d.ts +6 -2
  383. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  384. package/lib/cjs/tile/PrimaryTileTree.js +26 -1
  385. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  386. package/lib/cjs/tile/RealityModelTileTree.js +1 -1
  387. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  388. package/lib/cjs/tile/RealityTile.d.ts +2 -3
  389. package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
  390. package/lib/cjs/tile/RealityTile.js +0 -1
  391. package/lib/cjs/tile/RealityTile.js.map +1 -1
  392. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  393. package/lib/cjs/tile/RealityTileLoader.js +1 -0
  394. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  395. package/lib/cjs/tile/TileGeometryCollector.d.ts +4 -4
  396. package/lib/cjs/tile/TileGeometryCollector.js +1 -1
  397. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  398. package/lib/cjs/tile/TileTreeReference.d.ts +0 -4
  399. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  400. package/lib/cjs/tile/TileTreeReference.js +0 -3
  401. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  402. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +1 -0
  403. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  404. package/lib/cjs/tile/map/ArcGisUtilities.js +7 -5
  405. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  406. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  407. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
  408. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  409. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  410. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  411. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  412. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  413. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  414. package/lib/cjs/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  415. package/lib/cjs/tile/map/MapFeatureInfo.d.ts +1 -1
  416. package/lib/cjs/tile/map/MapFeatureInfo.d.ts.map +1 -1
  417. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  418. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  419. package/lib/cjs/tile/map/MapTileTree.js +5 -5
  420. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  421. package/lib/cjs/tools/AccuDrawTool.d.ts +21 -0
  422. package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
  423. package/lib/cjs/tools/AccuDrawTool.js +93 -1
  424. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  425. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  426. package/lib/cjs/tools/ClipViewTool.js +16 -16
  427. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  428. package/lib/cjs/tools/ElementSetTool.d.ts +9 -5
  429. package/lib/cjs/tools/ElementSetTool.d.ts.map +1 -1
  430. package/lib/cjs/tools/ElementSetTool.js +9 -5
  431. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  432. package/lib/cjs/tools/MeasureTool.d.ts.map +1 -1
  433. package/lib/cjs/tools/MeasureTool.js +9 -9
  434. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  435. package/lib/cjs/tools/ToolAdmin.d.ts +2 -0
  436. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  437. package/lib/cjs/tools/ToolAdmin.js +6 -1
  438. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  439. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  440. package/lib/cjs/tools/ViewTool.js +8 -8
  441. package/lib/cjs/tools/ViewTool.js.map +1 -1
  442. package/lib/cjs/workers/RegisterWorker.d.ts +2 -1
  443. package/lib/cjs/workers/RegisterWorker.d.ts.map +1 -1
  444. package/lib/cjs/workers/RegisterWorker.js +2 -1
  445. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  446. package/lib/esm/AccuDraw.d.ts +6 -1
  447. package/lib/esm/AccuDraw.d.ts.map +1 -1
  448. package/lib/esm/AccuDraw.js +15 -3
  449. package/lib/esm/AccuDraw.js.map +1 -1
  450. package/lib/esm/AccuSnap.d.ts +9 -0
  451. package/lib/esm/AccuSnap.d.ts.map +1 -1
  452. package/lib/esm/AccuSnap.js +15 -3
  453. package/lib/esm/AccuSnap.js.map +1 -1
  454. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  455. package/lib/esm/AuxCoordSys.js +1 -1
  456. package/lib/esm/AuxCoordSys.js.map +1 -1
  457. package/lib/esm/DecorationsCache.d.ts +1 -1
  458. package/lib/esm/DecorationsCache.d.ts.map +1 -1
  459. package/lib/esm/DecorationsCache.js.map +1 -1
  460. package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
  461. package/lib/esm/EnvironmentDecorations.js +1 -1
  462. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  463. package/lib/esm/HitDetail.d.ts.map +1 -1
  464. package/lib/esm/HitDetail.js +1 -1
  465. package/lib/esm/HitDetail.js.map +1 -1
  466. package/lib/esm/IModelApp.d.ts +2 -3
  467. package/lib/esm/IModelApp.d.ts.map +1 -1
  468. package/lib/esm/IModelApp.js +2 -2
  469. package/lib/esm/IModelApp.js.map +1 -1
  470. package/lib/esm/IModelConnection.d.ts +16 -6
  471. package/lib/esm/IModelConnection.d.ts.map +1 -1
  472. package/lib/esm/IModelConnection.js +21 -7
  473. package/lib/esm/IModelConnection.js.map +1 -1
  474. package/lib/esm/IpcApp.d.ts +5 -1
  475. package/lib/esm/IpcApp.d.ts.map +1 -1
  476. package/lib/esm/IpcApp.js +11 -5
  477. package/lib/esm/IpcApp.js.map +1 -1
  478. package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
  479. package/lib/esm/LocalhostIpcApp.js +2 -1
  480. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  481. package/lib/esm/NativeApp.d.ts.map +1 -1
  482. package/lib/esm/NativeApp.js +2 -1
  483. package/lib/esm/NativeApp.js.map +1 -1
  484. package/lib/esm/NoRenderApp.d.ts +2 -0
  485. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  486. package/lib/esm/NoRenderApp.js +7 -0
  487. package/lib/esm/NoRenderApp.js.map +1 -1
  488. package/lib/esm/PlanarClipMaskState.d.ts +8 -3
  489. package/lib/esm/PlanarClipMaskState.d.ts.map +1 -1
  490. package/lib/esm/PlanarClipMaskState.js +48 -18
  491. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  492. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts +3 -0
  493. package/lib/esm/RealityDataSourceTilesetUrlImpl.d.ts.map +1 -1
  494. package/lib/esm/RealityDataSourceTilesetUrlImpl.js +15 -4
  495. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  496. package/lib/esm/SheetViewState.d.ts.map +1 -1
  497. package/lib/esm/SheetViewState.js +1 -1
  498. package/lib/esm/SheetViewState.js.map +1 -1
  499. package/lib/esm/SpatialViewState.d.ts +14 -1
  500. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  501. package/lib/esm/SpatialViewState.js +17 -0
  502. package/lib/esm/SpatialViewState.js.map +1 -1
  503. package/lib/esm/SubCategoriesCache.d.ts +3 -1
  504. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  505. package/lib/esm/SubCategoriesCache.js +19 -5
  506. package/lib/esm/SubCategoriesCache.js.map +1 -1
  507. package/lib/esm/ViewContext.d.ts +2 -1
  508. package/lib/esm/ViewContext.d.ts.map +1 -1
  509. package/lib/esm/ViewContext.js +1 -1
  510. package/lib/esm/ViewContext.js.map +1 -1
  511. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  512. package/lib/esm/ViewCreator3d.js +1 -0
  513. package/lib/esm/ViewCreator3d.js.map +1 -1
  514. package/lib/esm/ViewManager.d.ts +4 -7
  515. package/lib/esm/ViewManager.d.ts.map +1 -1
  516. package/lib/esm/ViewManager.js +4 -7
  517. package/lib/esm/ViewManager.js.map +1 -1
  518. package/lib/esm/ViewingSpace.d.ts +3 -1
  519. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  520. package/lib/esm/ViewingSpace.js +11 -2
  521. package/lib/esm/ViewingSpace.js.map +1 -1
  522. package/lib/esm/Viewport.d.ts +1 -3
  523. package/lib/esm/Viewport.d.ts.map +1 -1
  524. package/lib/esm/Viewport.js +2 -4
  525. package/lib/esm/Viewport.js.map +1 -1
  526. package/lib/esm/common/WorkerProxy.d.ts +7 -25
  527. package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
  528. package/lib/esm/common/WorkerProxy.js +2 -1
  529. package/lib/esm/common/WorkerProxy.js.map +1 -1
  530. package/lib/esm/common/gltf/GltfSchema.d.ts +15 -1
  531. package/lib/esm/common/gltf/GltfSchema.d.ts.map +1 -1
  532. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  533. package/lib/esm/common/imdl/CompactEdges.d.ts +1 -1
  534. package/lib/esm/common/imdl/CompactEdges.d.ts.map +1 -1
  535. package/lib/esm/common/imdl/CompactEdges.js +2 -2
  536. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  537. package/lib/esm/common/imdl/ImdlModel.d.ts +5 -3
  538. package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
  539. package/lib/esm/common/imdl/ImdlModel.js +47 -41
  540. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  541. package/lib/esm/common/imdl/ImdlSchema.d.ts +4 -4
  542. package/lib/esm/common/imdl/ImdlSchema.d.ts.map +1 -1
  543. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  544. package/lib/esm/common/imdl/ParseImdlDocument.d.ts +4 -2
  545. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  546. package/lib/esm/common/imdl/ParseImdlDocument.js +9 -8
  547. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  548. package/lib/esm/common/internal/Symbols.d.ts +10 -0
  549. package/lib/esm/common/internal/Symbols.d.ts.map +1 -0
  550. package/lib/esm/common/internal/Symbols.js +17 -0
  551. package/lib/esm/common/internal/Symbols.js.map +1 -0
  552. package/lib/esm/common/internal/render/AnimationNodeId.d.ts.map +1 -0
  553. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -0
  554. package/lib/esm/common/internal/render/AuxChannelTable.d.ts.map +1 -0
  555. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -0
  556. package/lib/esm/common/internal/render/ColorMap.d.ts.map +1 -0
  557. package/lib/esm/common/internal/render/ColorMap.js.map +1 -0
  558. package/lib/esm/common/internal/render/DisplayParams.d.ts.map +1 -0
  559. package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.js +4 -7
  560. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -0
  561. package/lib/esm/common/{render/primitives → internal/render}/EdgeParams.d.ts +7 -0
  562. package/lib/esm/common/internal/render/EdgeParams.d.ts.map +1 -0
  563. package/lib/esm/{render/primitives → common/internal/render}/EdgeParams.js +47 -14
  564. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -0
  565. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.d.ts +4 -18
  566. package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -0
  567. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryAccumulator.js +2 -70
  568. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -0
  569. package/lib/esm/common/internal/render/GeometryList.d.ts.map +1 -0
  570. package/lib/esm/common/internal/render/GeometryList.js.map +1 -0
  571. package/lib/{cjs/render/primitives/geometry → esm/common/internal/render}/GeometryPrimitives.d.ts +3 -3
  572. package/lib/esm/common/internal/render/GeometryPrimitives.d.ts.map +1 -0
  573. package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryPrimitives.js +3 -3
  574. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -0
  575. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts +46 -0
  576. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.d.ts.map +1 -0
  577. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js +246 -0
  578. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -0
  579. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts +104 -0
  580. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.d.ts.map +1 -0
  581. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js +140 -0
  582. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -0
  583. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.d.ts +4 -4
  584. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilder.d.ts.map +1 -1
  585. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilder.js +2 -2
  586. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -0
  587. package/lib/{cjs/render/primitives/mesh → esm/common/internal/render}/MeshBuilderMap.d.ts +7 -8
  588. package/lib/esm/common/internal/render/MeshBuilderMap.d.ts.map +1 -0
  589. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshBuilderMap.js +4 -6
  590. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -0
  591. package/lib/esm/common/internal/render/MeshParams.d.ts.map +1 -0
  592. package/lib/esm/common/internal/render/MeshParams.js.map +1 -0
  593. package/lib/esm/common/internal/render/MeshPrimitive.d.ts.map +1 -0
  594. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -0
  595. package/lib/esm/common/internal/render/MeshPrimitives.d.ts +82 -0
  596. package/lib/esm/common/internal/render/MeshPrimitives.d.ts.map +1 -0
  597. package/lib/esm/{render/primitives/mesh → common/internal/render}/MeshPrimitives.js +79 -103
  598. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -0
  599. package/lib/esm/common/internal/render/PointCloudPrimitive.d.ts.map +1 -0
  600. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -0
  601. package/lib/{cjs/common/render/primitives → esm/common/internal/render}/PointStringParams.d.ts +3 -0
  602. package/lib/esm/common/internal/render/PointStringParams.d.ts.map +1 -0
  603. package/lib/esm/{render/primitives → common/internal/render}/PointStringParams.js +3 -4
  604. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -0
  605. package/lib/{cjs/render/primitives → esm/common/internal/render}/Polyface.d.ts +1 -1
  606. package/lib/esm/common/internal/render/Polyface.d.ts.map +1 -0
  607. package/lib/esm/common/internal/render/Polyface.js.map +1 -0
  608. package/lib/esm/common/{render/primitives → internal/render}/PolylineParams.d.ts +11 -1
  609. package/lib/esm/common/internal/render/PolylineParams.d.ts.map +1 -0
  610. package/lib/esm/{render/primitives → common/internal/render}/PolylineParams.js +5 -6
  611. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -0
  612. package/lib/{cjs/render/primitives → esm/common/internal/render}/Primitives.d.ts +3 -34
  613. package/lib/esm/common/internal/render/Primitives.d.ts.map +1 -0
  614. package/lib/esm/{render/primitives → common/internal/render}/Primitives.js +0 -42
  615. package/lib/esm/common/internal/render/Primitives.js.map +1 -0
  616. package/lib/{cjs/render/primitives → esm/common/internal/render}/Strokes.d.ts +1 -1
  617. package/lib/esm/common/internal/render/Strokes.d.ts.map +1 -0
  618. package/lib/esm/common/internal/render/Strokes.js.map +1 -0
  619. package/lib/esm/common/internal/render/SurfaceParams.d.ts.map +1 -0
  620. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -0
  621. package/lib/esm/common/internal/render/VertexIndices.d.ts.map +1 -0
  622. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -0
  623. package/lib/esm/common/internal/render/VertexKey.d.ts.map +1 -0
  624. package/lib/esm/common/internal/render/VertexKey.js.map +1 -0
  625. package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -0
  626. package/lib/esm/common/internal/render/VertexTable.js.map +1 -0
  627. package/lib/{cjs/render/primitives → esm/common/internal/render}/VertexTableBuilder.d.ts +5 -4
  628. package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -0
  629. package/lib/esm/{render/primitives → common/internal/render}/VertexTableBuilder.js +6 -6
  630. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -0
  631. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.d.ts +1 -1
  632. package/lib/esm/common/internal/render/VertexTableSplitter.d.ts.map +1 -0
  633. package/lib/esm/common/{render/primitives → internal/render}/VertexTableSplitter.js +17 -4
  634. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -0
  635. package/lib/esm/common/render/BatchOptions.d.ts +46 -0
  636. package/lib/esm/common/render/BatchOptions.d.ts.map +1 -0
  637. package/lib/esm/common/render/{primitives/PolylineParams.js → BatchOptions.js} +1 -1
  638. package/lib/esm/common/render/BatchOptions.js.map +1 -0
  639. package/lib/esm/common/render/GraphicAssembler.d.ts +197 -0
  640. package/lib/esm/common/render/GraphicAssembler.d.ts.map +1 -0
  641. package/lib/esm/common/render/GraphicAssembler.js +382 -0
  642. package/lib/esm/common/render/GraphicAssembler.js.map +1 -0
  643. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts +89 -0
  644. package/lib/esm/common/render/GraphicDescriptionBuilder.d.ts.map +1 -0
  645. package/lib/esm/common/render/GraphicDescriptionBuilder.js +31 -0
  646. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -0
  647. package/lib/esm/common/render/GraphicDescriptionContext.d.ts +85 -0
  648. package/lib/esm/common/render/GraphicDescriptionContext.d.ts.map +1 -0
  649. package/lib/esm/common/render/GraphicDescriptionContext.js +19 -0
  650. package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -0
  651. package/lib/esm/common/render/GraphicPrimitive.d.ts.map +1 -0
  652. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -0
  653. package/lib/esm/common/render/GraphicType.d.ts +62 -0
  654. package/lib/esm/common/render/GraphicType.d.ts.map +1 -0
  655. package/lib/esm/common/render/GraphicType.js +67 -0
  656. package/lib/esm/common/render/GraphicType.js.map +1 -0
  657. package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -0
  658. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -0
  659. package/lib/esm/common.d.ts +14 -0
  660. package/lib/esm/common.d.ts.map +1 -0
  661. package/lib/esm/common.js +19 -0
  662. package/lib/esm/common.js.map +1 -0
  663. package/lib/esm/core-frontend.d.ts +5 -43
  664. package/lib/esm/core-frontend.d.ts.map +1 -1
  665. package/lib/esm/core-frontend.js +5 -43
  666. package/lib/esm/core-frontend.js.map +1 -1
  667. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  668. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  669. package/lib/esm/internal/cross-package.d.ts +7 -0
  670. package/lib/esm/internal/cross-package.d.ts.map +1 -0
  671. package/lib/esm/internal/cross-package.js +11 -0
  672. package/lib/esm/internal/cross-package.js.map +1 -0
  673. package/lib/esm/internal/render/PrimitiveBuilder.d.ts +33 -0
  674. package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -0
  675. package/lib/esm/internal/render/PrimitiveBuilder.js +136 -0
  676. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -0
  677. package/lib/esm/render/FeatureSymbology.js +3 -3
  678. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  679. package/lib/esm/render/GraphicBranch.d.ts +1 -1
  680. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  681. package/lib/esm/render/GraphicBranch.js.map +1 -1
  682. package/lib/esm/render/GraphicBuilder.d.ts +7 -254
  683. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  684. package/lib/esm/render/GraphicBuilder.js +18 -235
  685. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  686. package/lib/esm/render/MeshArgs.d.ts +56 -0
  687. package/lib/esm/render/MeshArgs.d.ts.map +1 -0
  688. package/lib/esm/{common/render/primitives/PointStringParams.js → render/MeshArgs.js} +1 -1
  689. package/lib/esm/render/MeshArgs.js.map +1 -0
  690. package/lib/esm/render/MockRender.d.ts +7 -5
  691. package/lib/esm/render/MockRender.d.ts.map +1 -1
  692. package/lib/esm/render/MockRender.js +5 -1
  693. package/lib/esm/render/MockRender.js.map +1 -1
  694. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  695. package/lib/esm/render/ParticleCollectionBuilder.js +4 -3
  696. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  697. package/lib/esm/render/PolylineArgs.d.ts +31 -0
  698. package/lib/esm/render/PolylineArgs.d.ts.map +1 -0
  699. package/lib/esm/render/PolylineArgs.js +9 -0
  700. package/lib/esm/render/PolylineArgs.js.map +1 -0
  701. package/lib/esm/render/RealityMeshParams.js +1 -1
  702. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  703. package/lib/esm/render/RenderSystem.d.ts +36 -7
  704. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  705. package/lib/esm/render/RenderSystem.js +96 -8
  706. package/lib/esm/render/RenderSystem.js.map +1 -1
  707. package/lib/esm/render/RenderTarget.d.ts +49 -5
  708. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  709. package/lib/esm/render/RenderTarget.js +33 -5
  710. package/lib/esm/render/RenderTarget.js.map +1 -1
  711. package/lib/esm/render/webgl/BackgroundMapDrape.js +2 -2
  712. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  713. package/lib/esm/render/webgl/CachedGeometry.d.ts +1 -1
  714. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  715. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  716. package/lib/esm/render/webgl/ColorInfo.d.ts +1 -1
  717. package/lib/esm/render/webgl/ColorInfo.d.ts.map +1 -1
  718. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  719. package/lib/esm/render/webgl/EdgeGeometry.d.ts +2 -2
  720. package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
  721. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  722. package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
  723. package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
  724. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  725. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  726. package/lib/esm/render/webgl/Graphic.d.ts +1 -1
  727. package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
  728. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  729. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
  730. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
  731. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  732. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
  733. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  734. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  735. package/lib/esm/render/webgl/Material.d.ts +5 -1
  736. package/lib/esm/render/webgl/Material.d.ts.map +1 -1
  737. package/lib/esm/render/webgl/Material.js +5 -0
  738. package/lib/esm/render/webgl/Material.js.map +1 -1
  739. package/lib/esm/render/webgl/Mesh.d.ts +6 -3
  740. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  741. package/lib/esm/render/webgl/Mesh.js +3 -1
  742. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  743. package/lib/esm/render/webgl/MeshData.d.ts +2 -2
  744. package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
  745. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  746. package/lib/esm/render/webgl/MeshGeometry.d.ts +1 -1
  747. package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
  748. package/lib/esm/render/webgl/PlanarClassifier.d.ts +2 -0
  749. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  750. package/lib/esm/render/webgl/PlanarClassifier.js +40 -13
  751. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  752. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts +3 -3
  753. package/lib/esm/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
  754. package/lib/esm/render/webgl/PlanarTextureProjection.js +54 -20
  755. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  756. package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
  757. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  758. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  759. package/lib/esm/render/webgl/PointString.d.ts +1 -1
  760. package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
  761. package/lib/esm/render/webgl/PointString.js.map +1 -1
  762. package/lib/esm/render/webgl/Polyline.d.ts +1 -1
  763. package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
  764. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  765. package/lib/esm/render/webgl/Primitive.d.ts +1 -1
  766. package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
  767. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  768. package/lib/esm/render/webgl/RenderCommands.js +1 -1
  769. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  770. package/lib/esm/render/webgl/SolarShadowMap.js +2 -2
  771. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  772. package/lib/esm/render/webgl/SurfaceGeometry.d.ts +1 -1
  773. package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
  774. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  775. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  776. package/lib/esm/render/webgl/System.d.ts +7 -6
  777. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  778. package/lib/esm/render/webgl/System.js +1 -1
  779. package/lib/esm/render/webgl/System.js.map +1 -1
  780. package/lib/esm/render/webgl/Target.d.ts +3 -0
  781. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  782. package/lib/esm/render/webgl/Target.js +6 -1
  783. package/lib/esm/render/webgl/Target.js.map +1 -1
  784. package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
  785. package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
  786. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  787. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  788. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  789. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  790. package/lib/esm/tile/B3dmReader.d.ts +1 -2
  791. package/lib/esm/tile/B3dmReader.d.ts.map +1 -1
  792. package/lib/esm/tile/B3dmReader.js +1 -2
  793. package/lib/esm/tile/B3dmReader.js.map +1 -1
  794. package/lib/esm/tile/DynamicIModelTile.js +1 -0
  795. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  796. package/lib/esm/tile/GltfReader.d.ts +30 -6
  797. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  798. package/lib/esm/tile/GltfReader.js +245 -9
  799. package/lib/esm/tile/GltfReader.js.map +1 -1
  800. package/lib/esm/tile/GraphicsCollector.d.ts.map +1 -1
  801. package/lib/esm/tile/GraphicsCollector.js +5 -2
  802. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  803. package/lib/esm/tile/I3dmReader.d.ts +1 -2
  804. package/lib/esm/tile/I3dmReader.d.ts.map +1 -1
  805. package/lib/esm/tile/I3dmReader.js +1 -2
  806. package/lib/esm/tile/I3dmReader.js.map +1 -1
  807. package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
  808. package/lib/esm/tile/ImdlDecoder.d.ts.map +1 -1
  809. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  810. package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -0
  811. package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
  812. package/lib/esm/tile/ImdlGraphicsCreator.js +88 -6
  813. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  814. package/lib/esm/tile/ImdlReader.d.ts +1 -1
  815. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  816. package/lib/esm/tile/ImdlReader.js.map +1 -1
  817. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  818. package/lib/esm/tile/OPCFormatInterpreter.js +7 -2
  819. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  820. package/lib/esm/tile/OrbitGtTileTree.js +1 -1
  821. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  822. package/lib/esm/tile/PntsReader.js +1 -1
  823. package/lib/esm/tile/PntsReader.js.map +1 -1
  824. package/lib/esm/tile/PrimaryTileTree.d.ts +6 -2
  825. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  826. package/lib/esm/tile/PrimaryTileTree.js +26 -1
  827. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  828. package/lib/esm/tile/RealityModelTileTree.js +1 -1
  829. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  830. package/lib/esm/tile/RealityTile.d.ts +2 -3
  831. package/lib/esm/tile/RealityTile.d.ts.map +1 -1
  832. package/lib/esm/tile/RealityTile.js +0 -1
  833. package/lib/esm/tile/RealityTile.js.map +1 -1
  834. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  835. package/lib/esm/tile/RealityTileLoader.js +1 -0
  836. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  837. package/lib/esm/tile/TileGeometryCollector.d.ts +4 -4
  838. package/lib/esm/tile/TileGeometryCollector.js +1 -1
  839. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  840. package/lib/esm/tile/TileTreeReference.d.ts +0 -4
  841. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  842. package/lib/esm/tile/TileTreeReference.js +0 -3
  843. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  844. package/lib/esm/tile/map/ArcGisUtilities.d.ts +1 -0
  845. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  846. package/lib/esm/tile/map/ArcGisUtilities.js +7 -5
  847. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  848. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  849. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +9 -4
  850. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  851. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  852. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
  853. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  854. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts +1 -1
  855. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.d.ts.map +1 -1
  856. package/lib/esm/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  857. package/lib/esm/tile/map/MapFeatureInfo.d.ts +1 -1
  858. package/lib/esm/tile/map/MapFeatureInfo.d.ts.map +1 -1
  859. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  860. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  861. package/lib/esm/tile/map/MapTileTree.js +5 -5
  862. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  863. package/lib/esm/tools/AccuDrawTool.d.ts +21 -0
  864. package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
  865. package/lib/esm/tools/AccuDrawTool.js +89 -0
  866. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  867. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  868. package/lib/esm/tools/ClipViewTool.js +1 -1
  869. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  870. package/lib/esm/tools/ElementSetTool.d.ts +9 -5
  871. package/lib/esm/tools/ElementSetTool.d.ts.map +1 -1
  872. package/lib/esm/tools/ElementSetTool.js +9 -5
  873. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  874. package/lib/esm/tools/MeasureTool.d.ts.map +1 -1
  875. package/lib/esm/tools/MeasureTool.js +1 -1
  876. package/lib/esm/tools/MeasureTool.js.map +1 -1
  877. package/lib/esm/tools/ToolAdmin.d.ts +2 -0
  878. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  879. package/lib/esm/tools/ToolAdmin.js +6 -1
  880. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  881. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  882. package/lib/esm/tools/ViewTool.js +1 -1
  883. package/lib/esm/tools/ViewTool.js.map +1 -1
  884. package/lib/esm/workers/RegisterWorker.d.ts +2 -1
  885. package/lib/esm/workers/RegisterWorker.d.ts.map +1 -1
  886. package/lib/esm/workers/RegisterWorker.js +2 -1
  887. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  888. package/lib/public/locales/en/CoreTools.json +15 -0
  889. package/lib/public/locales/en/iModelJs.json +5 -0
  890. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  891. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  892. package/package.json +18 -18
  893. package/lib/cjs/common/render/AnimationNodeId.d.ts.map +0 -1
  894. package/lib/cjs/common/render/AnimationNodeId.js.map +0 -1
  895. package/lib/cjs/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  896. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +0 -1
  897. package/lib/cjs/common/render/primitives/DisplayParams.d.ts.map +0 -1
  898. package/lib/cjs/common/render/primitives/DisplayParams.js.map +0 -1
  899. package/lib/cjs/common/render/primitives/EdgeParams.d.ts.map +0 -1
  900. package/lib/cjs/common/render/primitives/EdgeParams.js +0 -46
  901. package/lib/cjs/common/render/primitives/EdgeParams.js.map +0 -1
  902. package/lib/cjs/common/render/primitives/MeshParams.d.ts.map +0 -1
  903. package/lib/cjs/common/render/primitives/MeshParams.js.map +0 -1
  904. package/lib/cjs/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  905. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +0 -1
  906. package/lib/cjs/common/render/primitives/PointStringParams.d.ts.map +0 -1
  907. package/lib/cjs/common/render/primitives/PointStringParams.js.map +0 -1
  908. package/lib/cjs/common/render/primitives/PolylineParams.d.ts.map +0 -1
  909. package/lib/cjs/common/render/primitives/PolylineParams.js.map +0 -1
  910. package/lib/cjs/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  911. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +0 -1
  912. package/lib/cjs/common/render/primitives/VertexIndices.d.ts.map +0 -1
  913. package/lib/cjs/common/render/primitives/VertexIndices.js.map +0 -1
  914. package/lib/cjs/common/render/primitives/VertexTable.d.ts.map +0 -1
  915. package/lib/cjs/common/render/primitives/VertexTable.js.map +0 -1
  916. package/lib/cjs/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  917. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +0 -1
  918. package/lib/cjs/render/GraphicPrimitive.d.ts.map +0 -1
  919. package/lib/cjs/render/GraphicPrimitive.js.map +0 -1
  920. package/lib/cjs/render/InstancedGraphicParams.d.ts.map +0 -1
  921. package/lib/cjs/render/InstancedGraphicParams.js.map +0 -1
  922. package/lib/cjs/render/primitives/ColorMap.d.ts.map +0 -1
  923. package/lib/cjs/render/primitives/ColorMap.js.map +0 -1
  924. package/lib/cjs/render/primitives/EdgeParams.d.ts +0 -8
  925. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +0 -1
  926. package/lib/cjs/render/primitives/EdgeParams.js.map +0 -1
  927. package/lib/cjs/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  928. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +0 -1
  929. package/lib/cjs/render/primitives/PointStringParams.d.ts +0 -8
  930. package/lib/cjs/render/primitives/PointStringParams.d.ts.map +0 -1
  931. package/lib/cjs/render/primitives/PointStringParams.js.map +0 -1
  932. package/lib/cjs/render/primitives/Polyface.d.ts.map +0 -1
  933. package/lib/cjs/render/primitives/Polyface.js.map +0 -1
  934. package/lib/cjs/render/primitives/PolylineParams.d.ts +0 -15
  935. package/lib/cjs/render/primitives/PolylineParams.d.ts.map +0 -1
  936. package/lib/cjs/render/primitives/PolylineParams.js.map +0 -1
  937. package/lib/cjs/render/primitives/Primitives.d.ts.map +0 -1
  938. package/lib/cjs/render/primitives/Primitives.js.map +0 -1
  939. package/lib/cjs/render/primitives/Strokes.d.ts.map +0 -1
  940. package/lib/cjs/render/primitives/Strokes.js.map +0 -1
  941. package/lib/cjs/render/primitives/VertexKey.d.ts.map +0 -1
  942. package/lib/cjs/render/primitives/VertexKey.js.map +0 -1
  943. package/lib/cjs/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  944. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +0 -1
  945. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  946. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  947. package/lib/cjs/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  948. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +0 -1
  949. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  950. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  951. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +0 -176
  952. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  953. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  954. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  955. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +0 -1
  956. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  957. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  958. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
  959. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  960. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  961. package/lib/esm/common/render/AnimationNodeId.d.ts.map +0 -1
  962. package/lib/esm/common/render/AnimationNodeId.js.map +0 -1
  963. package/lib/esm/common/render/primitives/AuxChannelTable.d.ts.map +0 -1
  964. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +0 -1
  965. package/lib/esm/common/render/primitives/DisplayParams.d.ts.map +0 -1
  966. package/lib/esm/common/render/primitives/DisplayParams.js.map +0 -1
  967. package/lib/esm/common/render/primitives/EdgeParams.d.ts.map +0 -1
  968. package/lib/esm/common/render/primitives/EdgeParams.js +0 -42
  969. package/lib/esm/common/render/primitives/EdgeParams.js.map +0 -1
  970. package/lib/esm/common/render/primitives/MeshParams.d.ts.map +0 -1
  971. package/lib/esm/common/render/primitives/MeshParams.js.map +0 -1
  972. package/lib/esm/common/render/primitives/MeshPrimitive.d.ts.map +0 -1
  973. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +0 -1
  974. package/lib/esm/common/render/primitives/PointStringParams.d.ts.map +0 -1
  975. package/lib/esm/common/render/primitives/PointStringParams.js.map +0 -1
  976. package/lib/esm/common/render/primitives/PolylineParams.d.ts.map +0 -1
  977. package/lib/esm/common/render/primitives/PolylineParams.js.map +0 -1
  978. package/lib/esm/common/render/primitives/SurfaceParams.d.ts.map +0 -1
  979. package/lib/esm/common/render/primitives/SurfaceParams.js.map +0 -1
  980. package/lib/esm/common/render/primitives/VertexIndices.d.ts.map +0 -1
  981. package/lib/esm/common/render/primitives/VertexIndices.js.map +0 -1
  982. package/lib/esm/common/render/primitives/VertexTable.d.ts.map +0 -1
  983. package/lib/esm/common/render/primitives/VertexTable.js.map +0 -1
  984. package/lib/esm/common/render/primitives/VertexTableSplitter.d.ts.map +0 -1
  985. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +0 -1
  986. package/lib/esm/render/GraphicPrimitive.d.ts.map +0 -1
  987. package/lib/esm/render/GraphicPrimitive.js.map +0 -1
  988. package/lib/esm/render/InstancedGraphicParams.d.ts.map +0 -1
  989. package/lib/esm/render/InstancedGraphicParams.js.map +0 -1
  990. package/lib/esm/render/primitives/ColorMap.d.ts.map +0 -1
  991. package/lib/esm/render/primitives/ColorMap.js.map +0 -1
  992. package/lib/esm/render/primitives/EdgeParams.d.ts +0 -8
  993. package/lib/esm/render/primitives/EdgeParams.d.ts.map +0 -1
  994. package/lib/esm/render/primitives/EdgeParams.js.map +0 -1
  995. package/lib/esm/render/primitives/PointCloudPrimitive.d.ts.map +0 -1
  996. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +0 -1
  997. package/lib/esm/render/primitives/PointStringParams.d.ts +0 -8
  998. package/lib/esm/render/primitives/PointStringParams.d.ts.map +0 -1
  999. package/lib/esm/render/primitives/PointStringParams.js.map +0 -1
  1000. package/lib/esm/render/primitives/Polyface.d.ts.map +0 -1
  1001. package/lib/esm/render/primitives/Polyface.js.map +0 -1
  1002. package/lib/esm/render/primitives/PolylineParams.d.ts +0 -15
  1003. package/lib/esm/render/primitives/PolylineParams.d.ts.map +0 -1
  1004. package/lib/esm/render/primitives/PolylineParams.js.map +0 -1
  1005. package/lib/esm/render/primitives/Primitives.d.ts.map +0 -1
  1006. package/lib/esm/render/primitives/Primitives.js.map +0 -1
  1007. package/lib/esm/render/primitives/Strokes.d.ts.map +0 -1
  1008. package/lib/esm/render/primitives/Strokes.js.map +0 -1
  1009. package/lib/esm/render/primitives/VertexKey.d.ts.map +0 -1
  1010. package/lib/esm/render/primitives/VertexKey.js.map +0 -1
  1011. package/lib/esm/render/primitives/VertexTableBuilder.d.ts.map +0 -1
  1012. package/lib/esm/render/primitives/VertexTableBuilder.js.map +0 -1
  1013. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +0 -1
  1014. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +0 -1
  1015. package/lib/esm/render/primitives/geometry/GeometryList.d.ts.map +0 -1
  1016. package/lib/esm/render/primitives/geometry/GeometryList.js.map +0 -1
  1017. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +0 -50
  1018. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +0 -1
  1019. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +0 -171
  1020. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +0 -1
  1021. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +0 -1
  1022. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +0 -1
  1023. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +0 -1
  1024. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +0 -1
  1025. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +0 -1
  1026. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +0 -171
  1027. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +0 -1
  1028. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +0 -1
  1029. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  1030. /package/lib/cjs/common/{render → internal/render}/AnimationNodeId.js +0 -0
  1031. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  1032. /package/lib/cjs/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  1033. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  1034. /package/lib/cjs/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  1035. /package/lib/cjs/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  1036. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  1037. /package/lib/cjs/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  1038. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  1039. /package/lib/cjs/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  1040. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  1041. /package/lib/cjs/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  1042. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  1043. /package/lib/cjs/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  1044. /package/lib/cjs/{render/primitives → common/internal/render}/Polyface.js +0 -0
  1045. /package/lib/cjs/{render/primitives → common/internal/render}/Strokes.js +0 -0
  1046. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  1047. /package/lib/cjs/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  1048. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  1049. /package/lib/cjs/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  1050. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  1051. /package/lib/cjs/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  1052. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  1053. /package/lib/cjs/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  1054. /package/lib/cjs/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  1055. /package/lib/cjs/{render → common/render}/GraphicPrimitive.js +0 -0
  1056. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  1057. /package/lib/cjs/{render → common/render}/InstancedGraphicParams.js +0 -0
  1058. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.d.ts +0 -0
  1059. /package/lib/esm/common/{render → internal/render}/AnimationNodeId.js +0 -0
  1060. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.d.ts +0 -0
  1061. /package/lib/esm/common/{render/primitives → internal/render}/AuxChannelTable.js +0 -0
  1062. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.d.ts +0 -0
  1063. /package/lib/esm/{render/primitives → common/internal/render}/ColorMap.js +0 -0
  1064. /package/lib/esm/common/{render/primitives → internal/render}/DisplayParams.d.ts +0 -0
  1065. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.d.ts +0 -0
  1066. /package/lib/esm/{render/primitives/geometry → common/internal/render}/GeometryList.js +0 -0
  1067. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.d.ts +0 -0
  1068. /package/lib/esm/common/{render/primitives → internal/render}/MeshParams.js +0 -0
  1069. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.d.ts +0 -0
  1070. /package/lib/esm/common/{render/primitives → internal/render}/MeshPrimitive.js +0 -0
  1071. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.d.ts +0 -0
  1072. /package/lib/esm/{render/primitives → common/internal/render}/PointCloudPrimitive.js +0 -0
  1073. /package/lib/esm/{render/primitives → common/internal/render}/Polyface.js +0 -0
  1074. /package/lib/esm/{render/primitives → common/internal/render}/Strokes.js +0 -0
  1075. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.d.ts +0 -0
  1076. /package/lib/esm/common/{render/primitives → internal/render}/SurfaceParams.js +0 -0
  1077. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.d.ts +0 -0
  1078. /package/lib/esm/common/{render/primitives → internal/render}/VertexIndices.js +0 -0
  1079. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.d.ts +0 -0
  1080. /package/lib/esm/{render/primitives → common/internal/render}/VertexKey.js +0 -0
  1081. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.d.ts +0 -0
  1082. /package/lib/esm/common/{render/primitives → internal/render}/VertexTable.js +0 -0
  1083. /package/lib/esm/{render → common/render}/GraphicPrimitive.d.ts +0 -0
  1084. /package/lib/esm/{render → common/render}/GraphicPrimitive.js +0 -0
  1085. /package/lib/esm/{render → common/render}/InstancedGraphicParams.d.ts +0 -0
  1086. /package/lib/esm/{render → common/render}/InstancedGraphicParams.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SolarShadowMap.js","sourceRoot":"","sources":["../../../../src/render/webgl/SolarShadowMap.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { ClipUtilities, ConvexClipPlaneSet, Geometry, GrowableXYZArray, Map4d, Matrix3d, Matrix4d, Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n Frustum, FrustumPlanes, RenderMode, RenderTexture, SolarShadowSettings, TextureTransparency, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { RenderType } from \"@itwin/webgl-compatibility\";\r\nimport { Tile, TileDrawArgs, TileTreeReference, TileVisibility } from \"../../tile/internal\";\r\nimport { SceneContext } from \"../../ViewContext\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { BranchStack } from \"./BranchStack\";\r\nimport { BatchState } from \"./BatchState\";\r\nimport { EVSMGeometry } from \"./CachedGeometry\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass, TextureUnit } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { Texture, TextureHandle } from \"./Texture\";\r\n\r\ntype ProcessTiles = (tiles: Tile[]) => void;\r\n\r\nfunction createDrawArgs(sceneContext: SceneContext, solarShadowMap: SolarShadowMap, tree: TileTreeReference, frustumPlanes: FrustumPlanes, processTiles: ProcessTiles): TileDrawArgs | undefined {\r\n class SolarShadowMapDrawArgs extends TileDrawArgs {\r\n private _useViewportMap?: boolean;\r\n private readonly _processTiles: ProcessTiles;\r\n\r\n constructor(private _mapFrustumPlanes: FrustumPlanes, private _shadowMap: SolarShadowMap, args: TileDrawArgs, process: ProcessTiles) {\r\n super(args);\r\n this._processTiles = process;\r\n }\r\n\r\n // The solar shadow projection is parallel - which can cause excessive tile selection if it is along an axis of an unbounded tile\r\n // tree such as the OSM buildings. Rev limit the selection here.\r\n public override get maxRealityTreeSelectionCount(): undefined | number { return 500; }\r\n\r\n public override processSelectedTiles(tiles: Tile[]): void {\r\n this._processTiles(tiles);\r\n }\r\n\r\n public override get frustumPlanes(): FrustumPlanes {\r\n if (true === this._useViewportMap)\r\n return super.frustumPlanes;\r\n else\r\n return this._mapFrustumPlanes;\r\n }\r\n\r\n public override get worldToViewMap(): Map4d {\r\n if (true === this._useViewportMap)\r\n return super.worldToViewMap;\r\n else\r\n return this._shadowMap.worldToViewMap;\r\n }\r\n\r\n public override drawGraphics(): void {\r\n const graphics = this.produceGraphics();\r\n if (graphics)\r\n this._shadowMap.addGraphic(graphics);\r\n }\r\n\r\n public override getPixelSize(tile: Tile): number {\r\n // For tiles that are part of the scene, size them based on the viewport frustum so that shadow map uses same resolution tiles as scene\r\n // - otherwise artifacts like shadow acne may result.\r\n // For tiles that are NOT part of the scene, size them based on the shadow frustum, not the viewport frustum\r\n // - otherwise excessive numbers of excessively detailed may be requested for the shadow map.\r\n if (undefined === this._useViewportMap) {\r\n this._useViewportMap = true;\r\n const vis = tile.computeVisibility(this);\r\n this._useViewportMap = TileVisibility.OutsideFrustum !== vis;\r\n }\r\n\r\n const size = super.getPixelSize(tile);\r\n this._useViewportMap = undefined;\r\n return size;\r\n }\r\n\r\n public static create(context: SceneContext, shadowMap: SolarShadowMap, tileTree: TileTreeReference, planes: FrustumPlanes, process: ProcessTiles) {\r\n const args = tileTree.createDrawArgs(context);\r\n return undefined !== args ? new SolarShadowMapDrawArgs(planes, shadowMap, args, process) : undefined;\r\n }\r\n }\r\n\r\n return SolarShadowMapDrawArgs.create(sceneContext, solarShadowMap, tree, frustumPlanes, processTiles);\r\n}\r\n\r\nconst shadowMapWidth = 4096; // size of original depth buffer map\r\nconst shadowMapHeight = shadowMapWidth; // TBD - Adjust for aspect ratio.\r\nconst evsmWidth = shadowMapWidth / 2; // EVSM buffer is 1/2 size each direction\r\nconst evsmHeight = shadowMapHeight / 2;\r\nconst postProjectionMatrixNpc = Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row 1 */ 0, 0, 1, 0, /* Row 3 */ 1, 0, 0, 0, /* Row 4 */ 0, 0, 0, 1);\r\n\r\n// Bundles up the disposable, create-once-and-reuse members of a SolarShadowMap.\r\nclass Bundle implements WebGLDisposable {\r\n private constructor(\r\n public readonly depthTexture: Texture,\r\n public readonly shadowMapTexture: Texture,\r\n public readonly fbo: FrameBuffer,\r\n public readonly fboSM: FrameBuffer,\r\n public readonly evsmGeom: EVSMGeometry,\r\n public readonly renderCommands: RenderCommands) {\r\n }\r\n\r\n public static create(target: Target, stack: BranchStack, batch: BatchState): Bundle | undefined {\r\n const depthTextureHandle = System.instance.createDepthBuffer(shadowMapWidth, shadowMapHeight) as TextureHandle;\r\n if (undefined === depthTextureHandle)\r\n return undefined;\r\n\r\n let pixelDataType = GL.Texture.DataType.Float;\r\n switch (System.instance.maxRenderType) {\r\n case RenderType.TextureFloat:\r\n break;\r\n case RenderType.TextureHalfFloat:\r\n pixelDataType = System.instance.context.HALF_FLOAT;\r\n break;\r\n /* falls through */\r\n default:\r\n return undefined;\r\n }\r\n\r\n const colorTextures: TextureHandle[] = [];\r\n\r\n const fbo = FrameBuffer.create(colorTextures, depthTextureHandle);\r\n if (undefined === fbo)\r\n return undefined;\r\n\r\n // shadowMap texture is 1/4 size the depth texture (and averaged down when converting)\r\n const shadowMapTextureHandle = TextureHandle.createForAttachment(evsmWidth, evsmHeight, GL.Texture.Format.Rgba, pixelDataType);\r\n if (undefined === shadowMapTextureHandle)\r\n return undefined;\r\n\r\n const fboSM = FrameBuffer.create([shadowMapTextureHandle]);\r\n if (undefined === fboSM)\r\n return undefined;\r\n\r\n const depthTexture = new Texture({ ownership: \"external\", type: RenderTexture.Type.TileSection, handle: depthTextureHandle, transparency: TextureTransparency.Opaque });\r\n const evsmGeom = EVSMGeometry.createGeometry(depthTexture.texture.getHandle()!, shadowMapWidth, shadowMapHeight);\r\n if (undefined === evsmGeom)\r\n return undefined;\r\n\r\n const shadowMapTexture = new Texture({ type: RenderTexture.Type.Normal, ownership: \"external\", handle: shadowMapTextureHandle, transparency: TextureTransparency.Opaque });\r\n const renderCommands = new RenderCommands(target, stack, batch);\r\n return new Bundle(depthTexture, shadowMapTexture, fbo, fboSM, evsmGeom, renderCommands);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.depthTexture.isDisposed\r\n && this.shadowMapTexture.isDisposed\r\n && this.fbo.isDisposed\r\n && this.fboSM.isDisposed\r\n && this.evsmGeom.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.depthTexture);\r\n dispose(this.shadowMapTexture);\r\n dispose(this.fbo);\r\n dispose(this.fboSM);\r\n dispose(this.evsmGeom);\r\n }\r\n}\r\n\r\n/** Describes the set of parameters which, when they change, require us to recreate the shadow map. */\r\nclass ShadowMapParams {\r\n public readonly direction = new Vector3d();\r\n public readonly viewFrustum = new Frustum();\r\n public settings: SolarShadowSettings;\r\n\r\n public constructor(viewFrustum: Frustum, direction: Vector3d, settings: SolarShadowSettings) {\r\n direction.clone(this.direction);\r\n this.viewFrustum.setFrom(viewFrustum);\r\n this.settings = settings;\r\n }\r\n\r\n public update(viewFrustum: Frustum, direction: Vector3d, settings: SolarShadowSettings): void {\r\n this.settings = settings;\r\n this.viewFrustum.setFrom(viewFrustum);\r\n direction.clone(this.direction);\r\n }\r\n}\r\n\r\nconst defaultSunDirection = Vector3d.create(-1, -1, -1).normalize()!;\r\nconst scratchFrustum = new Frustum();\r\nconst scratchFrustumPlanes = FrustumPlanes.createEmpty();\r\n\r\nexport class SolarShadowMap implements RenderMemory.Consumer, WebGLDisposable {\r\n private _bundle?: Bundle;\r\n private _projectionMatrix = Matrix4d.createIdentity();\r\n private _graphics: RenderGraphic[] = [];\r\n private _shadowFrustum = new Frustum();\r\n private _isReady = false;\r\n private _isDrawing = false;\r\n private _enabled = false;\r\n private _params?: ShadowMapParams;\r\n private readonly _scratchRange = Range3d.createNull();\r\n private readonly _scratchTransform = Transform.createIdentity();\r\n\r\n private readonly _scratchViewFlags = new ViewFlags();\r\n private readonly _renderState: RenderState;\r\n private readonly _noZRenderState: RenderState;\r\n private readonly _batchState: BatchState;\r\n private _worldToViewMap = Map4d.createIdentity();\r\n private readonly _target: Target;\r\n\r\n // This exists chiefly for debugging. See ToggleShadowMapTilesTool.\r\n public onGraphicsChanged?: (graphics: RenderGraphic[]) => void;\r\n\r\n private getBundle(target: Target): Bundle | undefined {\r\n if (undefined === this._bundle) {\r\n this._bundle = Bundle.create(target, target.uniforms.branch.stack, this._batchState);\r\n assert(undefined !== this._bundle);\r\n }\r\n\r\n return this._bundle;\r\n }\r\n\r\n public get isReady() { return this._isReady; }\r\n public get isDrawing() { return this._isDrawing; }\r\n public get isEnabled() { return this._enabled; }\r\n public get projectionMatrix(): Matrix4d { return this._projectionMatrix; }\r\n public get depthTexture(): Texture | undefined { return undefined !== this._bundle ? this._bundle.depthTexture : undefined; }\r\n public get shadowMapTexture(): Texture | undefined { return undefined !== this._bundle ? this._bundle.shadowMapTexture : undefined; }\r\n public get settings(): SolarShadowSettings | undefined { return undefined !== this._params ? this._params.settings : undefined; }\r\n public get direction(): Vector3d | undefined { return undefined !== this._params ? this._params.direction : undefined; }\r\n public get frustum(): Frustum { return this._shadowFrustum; }\r\n public get worldToViewMap(): Map4d { return this._worldToViewMap; }\r\n public addGraphic(graphic: RenderGraphic) { this._graphics.push(graphic); }\r\n\r\n public constructor(target: Target) {\r\n this._target = target;\r\n this._renderState = new RenderState();\r\n this._renderState.flags.depthMask = true;\r\n this._renderState.flags.blend = false;\r\n this._renderState.flags.depthTest = true;\r\n\r\n this._noZRenderState = new RenderState();\r\n this._noZRenderState.flags.depthMask = false;\r\n\r\n this._batchState = new BatchState(target.uniforms.branch.stack);\r\n }\r\n\r\n public disable() {\r\n this._enabled = this._isReady = false;\r\n this._bundle = dispose(this._bundle);\r\n this.clearGraphics(true);\r\n this._target.uniforms.shadow.update();\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const bundle = this._bundle;\r\n if (undefined !== bundle)\r\n stats.addShadowMap(bundle.depthTexture.bytesUsed + bundle.shadowMapTexture.bytesUsed);\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this._bundle && 0 === this._graphics.length; }\r\n\r\n public dispose() {\r\n this._bundle = dispose(this._bundle);\r\n this.clearGraphics(true);\r\n }\r\n\r\n private clearGraphics(notify: boolean) {\r\n for (const graphic of this._graphics)\r\n graphic.dispose();\r\n\r\n this._graphics.length = 0;\r\n if (notify)\r\n this.notifyGraphicsChanged();\r\n }\r\n\r\n private notifyGraphicsChanged(): void {\r\n if (undefined !== this.onGraphicsChanged)\r\n this.onGraphicsChanged(this._graphics);\r\n }\r\n\r\n public update(context: SceneContext | undefined) {\r\n this._isReady = false;\r\n this.clearGraphics(false);\r\n\r\n if (undefined === context || !context.viewport.view.isSpatialView()) {\r\n this.disable();\r\n this.notifyGraphicsChanged();\r\n return;\r\n }\r\n\r\n const view = context.viewport.view;\r\n const style = view.getDisplayStyle3d();\r\n const sunDirection = style.sunDirection ?? defaultSunDirection;\r\n\r\n const minimumHorizonDirection = -.01;\r\n if (sunDirection.z > minimumHorizonDirection) {\r\n this.notifyGraphicsChanged();\r\n return;\r\n }\r\n\r\n this._enabled = true;\r\n const viewFrustum = context.viewingSpace.getFrustum();\r\n const settings = style.settings.solarShadows;\r\n if (undefined === this._params)\r\n this._params = new ShadowMapParams(viewFrustum, sunDirection, settings);\r\n else\r\n this._params.update(viewFrustum, sunDirection, settings);\r\n\r\n const iModel = view.iModel;\r\n\r\n const worldToMapTransform = Transform.createRefs(Point3d.createZero(), Matrix3d.createRigidHeadsUp(this._params.direction.negate()).inverse()!);\r\n const worldToMap = Matrix4d.createTransform(worldToMapTransform);\r\n const mapToWorld = worldToMap.createInverse()!;\r\n\r\n // Start with entire project.\r\n const shadowRange = worldToMapTransform.multiplyRange(iModel.projectExtents);\r\n\r\n // Limit the map to only displayed models.\r\n const viewTileRange = Range3d.createNull();\r\n view.forEachTileTreeRef((ref) => {\r\n if (ref.castsShadows) {\r\n if (ref.isGlobal) {\r\n // A shadow-casting tile tree that spans the globe. Limit its range to the viewed extents.\r\n for (const p3 of viewFrustum.points) {\r\n const p4 = worldToMap.multiplyPoint3d(p3, 1);\r\n if (p4.w > 0.0001)\r\n viewTileRange.extendXYZW(p4.x, p4.y, p4.z, p4.w);\r\n else\r\n viewTileRange.high.z = Math.max(1.0, viewTileRange.high.z); // behind eye plane.\r\n }\r\n } else {\r\n ref.accumulateTransformedRange(viewTileRange, worldToMap, undefined);\r\n }\r\n }\r\n });\r\n\r\n if (!viewTileRange.isNull)\r\n viewTileRange.clone(shadowRange);\r\n\r\n // Expand shadow range to include both the shadowers and shadowed portion of background map.\r\n scratchFrustum.initFromRange(shadowRange);\r\n mapToWorld.multiplyPoint3dArrayQuietNormalize(scratchFrustum.points); // This frustum represents the shadwowing geometry. Intersect it with background geometry and expand the range depth to include that intersection.\r\n const backgroundMapGeometry = context.viewport.view.displayStyle.getBackgroundMapGeometry();\r\n if (undefined !== backgroundMapGeometry) {\r\n const backgroundDepthRange = backgroundMapGeometry.getFrustumIntersectionDepthRange(this._shadowFrustum, iModel.projectExtents);\r\n if (!backgroundDepthRange.isNull)\r\n shadowRange.low.z = Math.min(shadowRange.low.z, backgroundDepthRange.low);\r\n }\r\n\r\n this._params.viewFrustum.transformBy(worldToMapTransform, scratchFrustum);\r\n scratchFrustumPlanes.init(scratchFrustum);\r\n\r\n const viewIntersectShadowRange = Range3d.createNull();\r\n const viewClipPlanes = ConvexClipPlaneSet.createPlanes(scratchFrustumPlanes.planes);\r\n ClipUtilities.announceLoopsOfConvexClipPlaneSetIntersectRange(viewClipPlanes, shadowRange, (points: GrowableXYZArray) => {\r\n for (const point of points.getPoint3dArray())\r\n viewIntersectShadowRange.extendPoint(point);\r\n });\r\n if (viewIntersectShadowRange.isNull) {\r\n this.notifyGraphicsChanged();\r\n return;\r\n }\r\n viewIntersectShadowRange.high.z = shadowRange.high.z; // We need to include shadowing geometry that may be outside view (along the solar axis).\r\n\r\n this._shadowFrustum.initFromRange(viewIntersectShadowRange);\r\n mapToWorld.multiplyPoint3dArrayQuietNormalize(this._shadowFrustum.points);\r\n\r\n const tileRange = Range3d.createNull();\r\n scratchFrustumPlanes.init(this._shadowFrustum);\r\n view.forEachTileTreeRef(((ref) => {\r\n if (!ref.castsShadows)\r\n return;\r\n\r\n const drawArgs = createDrawArgs(context, this, ref, scratchFrustumPlanes, (tiles: Tile[]) => {\r\n for (const tile of tiles)\r\n tileRange.extendRange(tileToMapTransform.multiplyRange(tile.range, this._scratchRange));\r\n });\r\n\r\n if (undefined === drawArgs)\r\n return;\r\n\r\n const tileToMapTransform = worldToMapTransform.multiplyTransformTransform(drawArgs.location, this._scratchTransform);\r\n drawArgs.tree.draw(drawArgs);\r\n }));\r\n\r\n if (tileRange.isNull) {\r\n this.clearGraphics(true);\r\n } else if (this._graphics.length > 0) {\r\n // Avoid an uninvertible matrix on empty range...\r\n if (Geometry.isAlmostEqualNumber(shadowRange.low.x, shadowRange.high.x) ||\r\n Geometry.isAlmostEqualNumber(shadowRange.low.y, shadowRange.high.y) ||\r\n Geometry.isAlmostEqualNumber(shadowRange.low.z, shadowRange.high.z)) {\r\n this.clearGraphics(true);\r\n return;\r\n }\r\n\r\n const frustumMap = this._shadowFrustum.toMap4d();\r\n if (undefined === frustumMap) {\r\n this.clearGraphics(true);\r\n assert(false);\r\n return;\r\n }\r\n\r\n this._projectionMatrix = frustumMap.transform0.clone();\r\n\r\n const worldToNpc = postProjectionMatrixNpc.multiplyMatrixMatrix(this._projectionMatrix);\r\n const npcToView = Map4d.createBoxMap(Point3d.create(0, 0, 0), Point3d.create(1, 1, 1), Point3d.create(0, 0, 0), Point3d.create(shadowMapWidth, shadowMapHeight, 1))!;\r\n const npcToWorld = worldToNpc.createInverse();\r\n if (undefined === npcToWorld) {\r\n this.clearGraphics(true);\r\n return;\r\n }\r\n\r\n const worldToNpcMap = Map4d.createRefs(worldToNpc, npcToWorld);\r\n this._worldToViewMap = npcToView.multiplyMapMap(worldToNpcMap);\r\n }\r\n\r\n this._target.uniforms.shadow.update();\r\n this.notifyGraphicsChanged();\r\n }\r\n\r\n public draw(target: Target) {\r\n assert(this.isEnabled);\r\n\r\n if (this.isReady || 0 === this._graphics.length)\r\n return;\r\n\r\n const bundle = this.getBundle(target);\r\n if (undefined === bundle)\r\n return;\r\n\r\n this._isDrawing = true;\r\n\r\n const prevState = System.instance.currentRenderState.clone();\r\n const gl = System.instance.context;\r\n gl.viewport(0, 0, shadowMapWidth, shadowMapHeight);\r\n\r\n // NB: textures and materials are needed because their transparencies affect whether or not a surface casts shadows\r\n const viewFlags = target.currentViewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n wiremesh: false,\r\n transparency: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n });\r\n\r\n System.instance.applyRenderState(this._renderState);\r\n const prevPlan = target.plan;\r\n\r\n target.changeFrustum(this._shadowFrustum, this._shadowFrustum.getFraction(), true);\r\n target.uniforms.branch.changeRenderPlan(viewFlags, target.plan.is3d, target.plan.hline);\r\n\r\n const renderCommands = bundle.renderCommands;\r\n renderCommands.reset(target, target.uniforms.branch.stack, this._batchState);\r\n renderCommands.addGraphics(this._graphics);\r\n\r\n System.instance.frameBufferStack.execute(bundle.fbo, true, false, () => {\r\n System.instance.context.clearDepth(1.0);\r\n System.instance.context.clear(GL.BufferBit.Depth);\r\n target.techniques.execute(target, renderCommands.getCommands(RenderPass.OpaquePlanar), RenderPass.PlanarClassification); // Draw these with RenderPass.PlanarClassification (rather than Opaque...) so that the pick ordering is avoided.\r\n target.techniques.execute(target, renderCommands.getCommands(RenderPass.OpaqueGeneral), RenderPass.PlanarClassification); // Draw these with RenderPass.PlanarClassification (rather than Opaque...) so that the pick ordering is avoided.\r\n });\r\n\r\n // copy depth buffer to EVSM shadow buffer and average down for AA effect\r\n gl.viewport(0, 0, evsmWidth, evsmHeight);\r\n System.instance.frameBufferStack.execute(bundle.fboSM, true, false, () => {\r\n System.instance.applyRenderState(this._noZRenderState);\r\n const params = getDrawParams(target, bundle.evsmGeom);\r\n target.techniques.draw(params);\r\n });\r\n\r\n // mipmap resulting EVSM texture and set filtering options\r\n System.instance.activateTexture2d(TextureUnit.ShadowMap, bundle.shadowMapTexture.texture.getHandle());\r\n gl.generateMipmap(gl.TEXTURE_2D);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n\r\n System.instance.setMaxAnisotropy(undefined);\r\n // target.recordPerformanceMetric(\"Compute EVSM\");\r\n\r\n this._batchState.reset(); // Reset the batch Ids...\r\n target.changeRenderPlan(prevPlan);\r\n\r\n System.instance.applyRenderState(prevState);\r\n System.instance.context.viewport(0, 0, target.viewRect.width, target.viewRect.height); // Restore viewport\r\n this.clearGraphics(false);\r\n this._isDrawing = false;\r\n this._isReady = true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SolarShadowMap.js","sourceRoot":"","sources":["../../../../src/render/webgl/SolarShadowMap.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { ClipUtilities, ConvexClipPlaneSet, Geometry, GrowableXYZArray, Map4d, Matrix3d, Matrix4d, Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n Frustum, FrustumPlanes, RenderMode, RenderTexture, SolarShadowSettings, TextureTransparency, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { RenderType } from \"@itwin/webgl-compatibility\";\r\nimport { Tile, TileDrawArgs, TileTreeReference, TileVisibility } from \"../../tile/internal\";\r\nimport { SceneContext } from \"../../ViewContext\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { BranchStack } from \"./BranchStack\";\r\nimport { BatchState } from \"./BatchState\";\r\nimport { EVSMGeometry } from \"./CachedGeometry\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass, TextureUnit } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { Texture, TextureHandle } from \"./Texture\";\r\n\r\ntype ProcessTiles = (tiles: Tile[]) => void;\r\n\r\nfunction createDrawArgs(sceneContext: SceneContext, solarShadowMap: SolarShadowMap, tree: TileTreeReference, frustumPlanes: FrustumPlanes, processTiles: ProcessTiles): TileDrawArgs | undefined {\r\n class SolarShadowMapDrawArgs extends TileDrawArgs {\r\n private _useViewportMap?: boolean;\r\n private readonly _processTiles: ProcessTiles;\r\n\r\n constructor(private _mapFrustumPlanes: FrustumPlanes, private _shadowMap: SolarShadowMap, args: TileDrawArgs, process: ProcessTiles) {\r\n super(args);\r\n this._processTiles = process;\r\n }\r\n\r\n // The solar shadow projection is parallel - which can cause excessive tile selection if it is along an axis of an unbounded tile\r\n // tree such as the OSM buildings. Rev limit the selection here.\r\n public override get maxRealityTreeSelectionCount(): undefined | number { return 500; }\r\n\r\n public override processSelectedTiles(tiles: Tile[]): void {\r\n this._processTiles(tiles);\r\n }\r\n\r\n public override get frustumPlanes(): FrustumPlanes {\r\n if (true === this._useViewportMap)\r\n return super.frustumPlanes;\r\n else\r\n return this._mapFrustumPlanes;\r\n }\r\n\r\n public override get worldToViewMap(): Map4d {\r\n if (true === this._useViewportMap)\r\n return super.worldToViewMap;\r\n else\r\n return this._shadowMap.worldToViewMap;\r\n }\r\n\r\n public override drawGraphics(): void {\r\n const graphics = this.produceGraphics();\r\n if (graphics)\r\n this._shadowMap.addGraphic(graphics);\r\n }\r\n\r\n public override getPixelSize(tile: Tile): number {\r\n // For tiles that are part of the scene, size them based on the viewport frustum so that shadow map uses same resolution tiles as scene\r\n // - otherwise artifacts like shadow acne may result.\r\n // For tiles that are NOT part of the scene, size them based on the shadow frustum, not the viewport frustum\r\n // - otherwise excessive numbers of excessively detailed may be requested for the shadow map.\r\n if (undefined === this._useViewportMap) {\r\n this._useViewportMap = true;\r\n const vis = tile.computeVisibility(this);\r\n this._useViewportMap = TileVisibility.OutsideFrustum !== vis;\r\n }\r\n\r\n const size = super.getPixelSize(tile);\r\n this._useViewportMap = undefined;\r\n return size;\r\n }\r\n\r\n public static create(context: SceneContext, shadowMap: SolarShadowMap, tileTree: TileTreeReference, planes: FrustumPlanes, process: ProcessTiles) {\r\n const args = tileTree.createDrawArgs(context);\r\n return undefined !== args ? new SolarShadowMapDrawArgs(planes, shadowMap, args, process) : undefined;\r\n }\r\n }\r\n\r\n return SolarShadowMapDrawArgs.create(sceneContext, solarShadowMap, tree, frustumPlanes, processTiles);\r\n}\r\n\r\nconst shadowMapWidth = 4096; // size of original depth buffer map\r\nconst shadowMapHeight = shadowMapWidth; // TBD - Adjust for aspect ratio.\r\nconst evsmWidth = shadowMapWidth / 2; // EVSM buffer is 1/2 size each direction\r\nconst evsmHeight = shadowMapHeight / 2;\r\nconst postProjectionMatrixNpc = Matrix4d.createRowValues(/* Row 1 */ 0, 1, 0, 0, /* Row 2 */ 0, 0, 1, 0, /* Row 3 */ 1, 0, 0, 0, /* Row 4 */ 0, 0, 0, 1);\r\n\r\n// Bundles up the disposable, create-once-and-reuse members of a SolarShadowMap.\r\nclass Bundle implements WebGLDisposable {\r\n private constructor(\r\n public readonly depthTexture: Texture,\r\n public readonly shadowMapTexture: Texture,\r\n public readonly fbo: FrameBuffer,\r\n public readonly fboSM: FrameBuffer,\r\n public readonly evsmGeom: EVSMGeometry,\r\n public readonly renderCommands: RenderCommands) {\r\n }\r\n\r\n public static create(target: Target, stack: BranchStack, batch: BatchState): Bundle | undefined {\r\n const depthTextureHandle = System.instance.createDepthBuffer(shadowMapWidth, shadowMapHeight) as TextureHandle;\r\n if (undefined === depthTextureHandle)\r\n return undefined;\r\n\r\n let pixelDataType = GL.Texture.DataType.Float;\r\n switch (System.instance.maxRenderType) {\r\n case RenderType.TextureFloat:\r\n break;\r\n case RenderType.TextureHalfFloat:\r\n pixelDataType = System.instance.context.HALF_FLOAT;\r\n break;\r\n /* falls through */\r\n default:\r\n return undefined;\r\n }\r\n\r\n const colorTextures: TextureHandle[] = [];\r\n\r\n const fbo = FrameBuffer.create(colorTextures, depthTextureHandle);\r\n if (undefined === fbo)\r\n return undefined;\r\n\r\n // shadowMap texture is 1/4 size the depth texture (and averaged down when converting)\r\n const shadowMapTextureHandle = TextureHandle.createForAttachment(evsmWidth, evsmHeight, GL.Texture.Format.Rgba, pixelDataType);\r\n if (undefined === shadowMapTextureHandle)\r\n return undefined;\r\n\r\n const fboSM = FrameBuffer.create([shadowMapTextureHandle]);\r\n if (undefined === fboSM)\r\n return undefined;\r\n\r\n const depthTexture = new Texture({ ownership: \"external\", type: RenderTexture.Type.TileSection, handle: depthTextureHandle, transparency: TextureTransparency.Opaque });\r\n const evsmGeom = EVSMGeometry.createGeometry(depthTexture.texture.getHandle()!, shadowMapWidth, shadowMapHeight);\r\n if (undefined === evsmGeom)\r\n return undefined;\r\n\r\n const shadowMapTexture = new Texture({ type: RenderTexture.Type.Normal, ownership: \"external\", handle: shadowMapTextureHandle, transparency: TextureTransparency.Opaque });\r\n const renderCommands = new RenderCommands(target, stack, batch);\r\n return new Bundle(depthTexture, shadowMapTexture, fbo, fboSM, evsmGeom, renderCommands);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.depthTexture.isDisposed\r\n && this.shadowMapTexture.isDisposed\r\n && this.fbo.isDisposed\r\n && this.fboSM.isDisposed\r\n && this.evsmGeom.isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this.depthTexture);\r\n dispose(this.shadowMapTexture);\r\n dispose(this.fbo);\r\n dispose(this.fboSM);\r\n dispose(this.evsmGeom);\r\n }\r\n}\r\n\r\n/** Describes the set of parameters which, when they change, require us to recreate the shadow map. */\r\nclass ShadowMapParams {\r\n public readonly direction = new Vector3d();\r\n public readonly viewFrustum = new Frustum();\r\n public settings: SolarShadowSettings;\r\n\r\n public constructor(viewFrustum: Frustum, direction: Vector3d, settings: SolarShadowSettings) {\r\n direction.clone(this.direction);\r\n this.viewFrustum.setFrom(viewFrustum);\r\n this.settings = settings;\r\n }\r\n\r\n public update(viewFrustum: Frustum, direction: Vector3d, settings: SolarShadowSettings): void {\r\n this.settings = settings;\r\n this.viewFrustum.setFrom(viewFrustum);\r\n direction.clone(this.direction);\r\n }\r\n}\r\n\r\nconst defaultSunDirection = Vector3d.create(-1, -1, -1).normalize()!;\r\nconst scratchFrustum = new Frustum();\r\nconst scratchFrustumPlanes = FrustumPlanes.createEmpty();\r\n\r\nexport class SolarShadowMap implements RenderMemory.Consumer, WebGLDisposable {\r\n private _bundle?: Bundle;\r\n private _projectionMatrix = Matrix4d.createIdentity();\r\n private _graphics: RenderGraphic[] = [];\r\n private _shadowFrustum = new Frustum();\r\n private _isReady = false;\r\n private _isDrawing = false;\r\n private _enabled = false;\r\n private _params?: ShadowMapParams;\r\n private readonly _scratchRange = Range3d.createNull();\r\n private readonly _scratchTransform = Transform.createIdentity();\r\n\r\n private readonly _scratchViewFlags = new ViewFlags();\r\n private readonly _renderState: RenderState;\r\n private readonly _noZRenderState: RenderState;\r\n private readonly _batchState: BatchState;\r\n private _worldToViewMap = Map4d.createIdentity();\r\n private readonly _target: Target;\r\n\r\n // This exists chiefly for debugging. See ToggleShadowMapTilesTool.\r\n public onGraphicsChanged?: (graphics: RenderGraphic[]) => void;\r\n\r\n private getBundle(target: Target): Bundle | undefined {\r\n if (undefined === this._bundle) {\r\n this._bundle = Bundle.create(target, target.uniforms.branch.stack, this._batchState);\r\n assert(undefined !== this._bundle);\r\n }\r\n\r\n return this._bundle;\r\n }\r\n\r\n public get isReady() { return this._isReady; }\r\n public get isDrawing() { return this._isDrawing; }\r\n public get isEnabled() { return this._enabled; }\r\n public get projectionMatrix(): Matrix4d { return this._projectionMatrix; }\r\n public get depthTexture(): Texture | undefined { return undefined !== this._bundle ? this._bundle.depthTexture : undefined; }\r\n public get shadowMapTexture(): Texture | undefined { return undefined !== this._bundle ? this._bundle.shadowMapTexture : undefined; }\r\n public get settings(): SolarShadowSettings | undefined { return undefined !== this._params ? this._params.settings : undefined; }\r\n public get direction(): Vector3d | undefined { return undefined !== this._params ? this._params.direction : undefined; }\r\n public get frustum(): Frustum { return this._shadowFrustum; }\r\n public get worldToViewMap(): Map4d { return this._worldToViewMap; }\r\n public addGraphic(graphic: RenderGraphic) { this._graphics.push(graphic); }\r\n\r\n public constructor(target: Target) {\r\n this._target = target;\r\n this._renderState = new RenderState();\r\n this._renderState.flags.depthMask = true;\r\n this._renderState.flags.blend = false;\r\n this._renderState.flags.depthTest = true;\r\n\r\n this._noZRenderState = new RenderState();\r\n this._noZRenderState.flags.depthMask = false;\r\n\r\n this._batchState = new BatchState(target.uniforms.branch.stack);\r\n }\r\n\r\n public disable() {\r\n this._enabled = this._isReady = false;\r\n this._bundle = dispose(this._bundle);\r\n this.clearGraphics(true);\r\n this._target.uniforms.shadow.update();\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const bundle = this._bundle;\r\n if (undefined !== bundle)\r\n stats.addShadowMap(bundle.depthTexture.bytesUsed + bundle.shadowMapTexture.bytesUsed);\r\n }\r\n\r\n public get isDisposed(): boolean { return undefined === this._bundle && 0 === this._graphics.length; }\r\n\r\n public dispose() {\r\n this._bundle = dispose(this._bundle);\r\n this.clearGraphics(true);\r\n }\r\n\r\n private clearGraphics(notify: boolean) {\r\n for (const graphic of this._graphics)\r\n graphic.dispose();\r\n\r\n this._graphics.length = 0;\r\n if (notify)\r\n this.notifyGraphicsChanged();\r\n }\r\n\r\n private notifyGraphicsChanged(): void {\r\n if (undefined !== this.onGraphicsChanged)\r\n this.onGraphicsChanged(this._graphics);\r\n }\r\n\r\n public update(context: SceneContext | undefined) {\r\n this._isReady = false;\r\n this.clearGraphics(false);\r\n\r\n if (undefined === context || !context.viewport.view.isSpatialView()) {\r\n this.disable();\r\n this.notifyGraphicsChanged();\r\n return;\r\n }\r\n\r\n const view = context.viewport.view;\r\n const style = view.getDisplayStyle3d();\r\n const sunDirection = style.sunDirection ?? defaultSunDirection;\r\n\r\n const minimumHorizonDirection = -.01;\r\n if (sunDirection.z > minimumHorizonDirection) {\r\n this.notifyGraphicsChanged();\r\n return;\r\n }\r\n\r\n this._enabled = true;\r\n const viewFrustum = context.viewingSpace.getFrustum();\r\n const settings = style.settings.solarShadows;\r\n if (undefined === this._params)\r\n this._params = new ShadowMapParams(viewFrustum, sunDirection, settings);\r\n else\r\n this._params.update(viewFrustum, sunDirection, settings);\r\n\r\n const iModel = view.iModel;\r\n\r\n const worldToMapTransform = Transform.createRefs(Point3d.createZero(), Matrix3d.createRigidHeadsUp(this._params.direction.negate()).inverse()!);\r\n const worldToMap = Matrix4d.createTransform(worldToMapTransform);\r\n const mapToWorld = worldToMap.createInverse()!;\r\n\r\n // Start with entire project.\r\n const shadowRange = worldToMapTransform.multiplyRange(iModel.projectExtents);\r\n\r\n // Limit the map to only displayed models.\r\n const viewTileRange = Range3d.createNull();\r\n view.forEachTileTreeRef((ref) => {\r\n if (ref.castsShadows) {\r\n if (ref.isGlobal) {\r\n // A shadow-casting tile tree that spans the globe. Limit its range to the viewed extents.\r\n for (const p3 of viewFrustum.points) {\r\n const p4 = worldToMap.multiplyPoint3d(p3, 1);\r\n if (p4.w > 0.0001)\r\n viewTileRange.extendXYZW(p4.x, p4.y, p4.z, p4.w);\r\n else\r\n viewTileRange.high.z = Math.max(1.0, viewTileRange.high.z); // behind eye plane.\r\n }\r\n } else {\r\n ref.accumulateTransformedRange(viewTileRange, worldToMap, undefined);\r\n }\r\n }\r\n });\r\n\r\n if (!viewTileRange.isNull)\r\n viewTileRange.clone(shadowRange);\r\n\r\n // Expand shadow range to include both the shadowers and shadowed portion of background map.\r\n scratchFrustum.initFromRange(shadowRange);\r\n mapToWorld.multiplyPoint3dArrayQuietNormalize(scratchFrustum.points); // This frustum represents the shadowing geometry. Intersect it with background geometry and expand the range depth to include that intersection.\r\n const backgroundMapGeometry = context.viewport.view.displayStyle.getBackgroundMapGeometry();\r\n if (undefined !== backgroundMapGeometry) {\r\n const backgroundDepthRange = backgroundMapGeometry.getFrustumIntersectionDepthRange(this._shadowFrustum, iModel.projectExtents);\r\n if (!backgroundDepthRange.isNull)\r\n shadowRange.low.z = Math.min(shadowRange.low.z, backgroundDepthRange.low);\r\n }\r\n\r\n this._params.viewFrustum.transformBy(worldToMapTransform, scratchFrustum);\r\n scratchFrustumPlanes.init(scratchFrustum);\r\n\r\n const viewIntersectShadowRange = Range3d.createNull();\r\n const viewClipPlanes = ConvexClipPlaneSet.createPlanes(scratchFrustumPlanes.planes);\r\n ClipUtilities.announceLoopsOfConvexClipPlaneSetIntersectRange(viewClipPlanes, shadowRange, (points: GrowableXYZArray) => {\r\n for (const point of points.getPoint3dArray())\r\n viewIntersectShadowRange.extendPoint(point);\r\n });\r\n if (viewIntersectShadowRange.isNull) {\r\n this.notifyGraphicsChanged();\r\n return;\r\n }\r\n viewIntersectShadowRange.high.z = shadowRange.high.z; // We need to include shadowing geometry that may be outside view (along the solar axis).\r\n\r\n this._shadowFrustum.initFromRange(viewIntersectShadowRange);\r\n mapToWorld.multiplyPoint3dArrayQuietNormalize(this._shadowFrustum.points);\r\n\r\n const tileRange = Range3d.createNull();\r\n scratchFrustumPlanes.init(this._shadowFrustum);\r\n view.forEachTileTreeRef(((ref) => {\r\n if (!ref.castsShadows)\r\n return;\r\n\r\n const drawArgs = createDrawArgs(context, this, ref, scratchFrustumPlanes, (tiles: Tile[]) => {\r\n for (const tile of tiles)\r\n tileRange.extendRange(tileToMapTransform.multiplyRange(tile.range, this._scratchRange));\r\n });\r\n\r\n if (undefined === drawArgs)\r\n return;\r\n\r\n const tileToMapTransform = worldToMapTransform.multiplyTransformTransform(drawArgs.location, this._scratchTransform);\r\n drawArgs.tree.draw(drawArgs);\r\n }));\r\n\r\n if (tileRange.isNull) {\r\n this.clearGraphics(true);\r\n } else if (this._graphics.length > 0) {\r\n // Avoid an uninvertible matrix on empty range...\r\n if (Geometry.isAlmostEqualNumber(shadowRange.low.x, shadowRange.high.x) ||\r\n Geometry.isAlmostEqualNumber(shadowRange.low.y, shadowRange.high.y) ||\r\n Geometry.isAlmostEqualNumber(shadowRange.low.z, shadowRange.high.z)) {\r\n this.clearGraphics(true);\r\n return;\r\n }\r\n\r\n const frustumMap = this._shadowFrustum.toMap4d();\r\n if (undefined === frustumMap) {\r\n this.clearGraphics(true);\r\n assert(false);\r\n return;\r\n }\r\n\r\n this._projectionMatrix = frustumMap.transform0.clone();\r\n\r\n const worldToNpc = postProjectionMatrixNpc.multiplyMatrixMatrix(this._projectionMatrix);\r\n const npcToView = Map4d.createBoxMap(Point3d.create(0, 0, 0), Point3d.create(1, 1, 1), Point3d.create(0, 0, 0), Point3d.create(shadowMapWidth, shadowMapHeight, 1))!;\r\n const npcToWorld = worldToNpc.createInverse();\r\n if (undefined === npcToWorld) {\r\n this.clearGraphics(true);\r\n return;\r\n }\r\n\r\n const worldToNpcMap = Map4d.createRefs(worldToNpc, npcToWorld);\r\n this._worldToViewMap = npcToView.multiplyMapMap(worldToNpcMap);\r\n }\r\n\r\n this._target.uniforms.shadow.update();\r\n this.notifyGraphicsChanged();\r\n }\r\n\r\n public draw(target: Target) {\r\n assert(this.isEnabled);\r\n\r\n if (this.isReady || 0 === this._graphics.length)\r\n return;\r\n\r\n const bundle = this.getBundle(target);\r\n if (undefined === bundle)\r\n return;\r\n\r\n this._isDrawing = true;\r\n\r\n const prevState = System.instance.currentRenderState.clone();\r\n const gl = System.instance.context;\r\n gl.viewport(0, 0, shadowMapWidth, shadowMapHeight);\r\n\r\n // NB: textures and materials are needed because their transparencies affect whether or not a surface casts shadows\r\n const viewFlags = target.currentViewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n wiremesh: false,\r\n transparency: false,\r\n lighting: false,\r\n shadows: false,\r\n monochrome: false,\r\n ambientOcclusion: false,\r\n visibleEdges: false,\r\n hiddenEdges: false,\r\n });\r\n\r\n System.instance.applyRenderState(this._renderState);\r\n const prevPlan = target.plan;\r\n\r\n target.changeFrustum(this._shadowFrustum, this._shadowFrustum.getFraction(), true);\r\n target.uniforms.branch.changeRenderPlan(viewFlags, target.plan.is3d, target.plan.hline);\r\n\r\n const renderCommands = bundle.renderCommands;\r\n renderCommands.reset(target, target.uniforms.branch.stack, this._batchState);\r\n renderCommands.addGraphics(this._graphics);\r\n\r\n System.instance.frameBufferStack.execute(bundle.fbo, true, false, () => {\r\n System.instance.context.clearDepth(1.0);\r\n System.instance.context.clear(GL.BufferBit.Depth);\r\n target.techniques.execute(target, renderCommands.getCommands(RenderPass.OpaquePlanar), RenderPass.PlanarClassification); // Draw these with RenderPass.PlanarClassification (rather than Opaque...) so that the pick ordering is avoided.\r\n target.techniques.execute(target, renderCommands.getCommands(RenderPass.OpaqueGeneral), RenderPass.PlanarClassification); // Draw these with RenderPass.PlanarClassification (rather than Opaque...) so that the pick ordering is avoided.\r\n });\r\n\r\n // copy depth buffer to EVSM shadow buffer and average down for AA effect\r\n gl.viewport(0, 0, evsmWidth, evsmHeight);\r\n System.instance.frameBufferStack.execute(bundle.fboSM, true, false, () => {\r\n System.instance.applyRenderState(this._noZRenderState);\r\n const params = getDrawParams(target, bundle.evsmGeom);\r\n target.techniques.draw(params);\r\n });\r\n\r\n // mipmap resulting EVSM texture and set filtering options\r\n System.instance.activateTexture2d(TextureUnit.ShadowMap, bundle.shadowMapTexture.texture.getHandle());\r\n gl.generateMipmap(gl.TEXTURE_2D);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR);\r\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n\r\n System.instance.setMaxAnisotropy(undefined);\r\n // target.recordPerformanceMetric(\"Compute EVSM\");\r\n\r\n this._batchState.reset(); // Reset the batch Ids...\r\n target.changeRenderPlan(prevPlan);\r\n\r\n System.instance.applyRenderState(prevState);\r\n System.instance.context.viewport(0, 0, target.viewRect.width, target.viewRect.height); // Restore viewport\r\n this.clearGraphics(false);\r\n this._isDrawing = false;\r\n this._isReady = true;\r\n }\r\n}\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module WebGL
3
3
  */
4
4
  import { ViewFlags } from "@itwin/core-common";
5
- import { VertexIndices } from "../../common/render/primitives/VertexIndices";
5
+ import { VertexIndices } from "../../common/internal/render/VertexIndices";
6
6
  import { RenderMemory } from "../RenderMemory";
7
7
  import { ShaderProgramParams } from "./DrawCommand";
8
8
  import { BuffersContainer } from "./AttributeBuffers";
@@ -1 +1 @@
1
- {"version":3,"file":"SurfaceGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/SurfaceGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAgF,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7H,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAkC,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAA+B,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEpD;AAMD,gBAAgB;AAChB,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC,IAAW,UAAU,qBAA4B;WAEnC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS;IAKzF,IAAW,UAAU,IAAI,OAAO,CAG/B;IAEM,OAAO;IAKP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAI9D,IAAW,KAAK,YAAmG;IACnH,IAAW,cAAc,YAAwG;IACjI,IAAW,UAAU,YAAgE;IACrF,IAAW,YAAY,YAAgF;IACvG,IAAW,OAAO,YAAgC;IAClD,IAAoB,uBAAuB,YAA2B;IACtE,IAAW,aAAa,YAAuE;IAC/F,IAAW,YAAY,YAAgE;IACvF,IAAoB,uBAAuB,YAE1C;IAED,IAAoB,kBAAkB,YAKrC;IAED,IAAoB,SAAS,SAAmB;IAChD,IAAoB,MAAM,cAAwB;IAClD,IAAoB,YAAY,cAAwB;IAExD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAmBxE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/D,IAAW,WAAW,IAAI,WAAW,CAAgC;IACrE,IAAoB,YAAY,YAAyB;IACzD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,WAAW,IAAI,WAAW,CASpC;IAEe,QAAQ,CAAC,MAAM,EAAE,MAAM;IAOvB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoF7C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAmBnD,IAAoB,YAAY,IAAI,YAAY,GAAG,SAAS,CAAmC;IAExF,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIhD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIlD,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAwDhF,OAAO;IASP,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,cAAc;CAavB"}
1
+ {"version":3,"file":"SurfaceGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/SurfaceGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAgF,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7H,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAkC,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAA+B,MAAM,eAAe,CAAC;AAE/E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEpD;AAMD,gBAAgB;AAChB,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC,IAAW,UAAU,qBAA4B;WAEnC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS;IAKzF,IAAW,UAAU,IAAI,OAAO,CAG/B;IAEM,OAAO;IAKP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAI9D,IAAW,KAAK,YAAmG;IACnH,IAAW,cAAc,YAAwG;IACjI,IAAW,UAAU,YAAgE;IACrF,IAAW,YAAY,YAAgF;IACvG,IAAW,OAAO,YAAgC;IAClD,IAAoB,uBAAuB,YAA2B;IACtE,IAAW,aAAa,YAAuE;IAC/F,IAAW,YAAY,YAAgE;IACvF,IAAoB,uBAAuB,YAE1C;IAED,IAAoB,kBAAkB,YAKrC;IAED,IAAoB,SAAS,SAAmB;IAChD,IAAoB,MAAM,cAAwB;IAClD,IAAoB,YAAY,cAAwB;IAExD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAmBxE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/D,IAAW,WAAW,IAAI,WAAW,CAAgC;IACrE,IAAoB,YAAY,YAAyB;IACzD,IAAoB,gBAAgB,YAAyC;IAC7E,IAAW,WAAW,IAAI,WAAW,CASpC;IAEe,QAAQ,CAAC,MAAM,EAAE,MAAM;IAOvB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoF7C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAmBnD,IAAoB,YAAY,IAAI,YAAY,GAAG,SAAS,CAAmC;IAExF,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIhD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIlD,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAwDhF,OAAO;IASP,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,cAAc;CAavB"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { assert, dispose } from "@itwin/core-bentley";
9
9
  import { FillFlags, RenderMode, TextureTransparency, ThematicGradientTransparencyMode } from "@itwin/core-common";
10
- import { SurfaceType } from "../../common/render/primitives/SurfaceParams";
10
+ import { SurfaceType } from "../../common/internal/render/SurfaceParams";
11
11
  import { AttributeMap } from "./AttributeMap";
12
12
  import { GL } from "./GL";
13
13
  import { BufferHandle, BufferParameters, BuffersContainer } from "./AttributeBuffers";
@@ -1 +1 @@
1
- {"version":3,"file":"SurfaceGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/SurfaceGeometry.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,gCAAgC,EAAa,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,EAAa;IACzC,OAAO,EAAE,CAAC,SAAS,IAAI,UAAU,CAAC,WAAW,KAAK,EAAE,CAAC,UAAU,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,EAAa;IACjC,OAAO,UAAU,CAAC,WAAW,KAAK,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,QAAQ,CAAC;AACjE,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAI/C,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1C,MAAM,CAAC,MAAM,CAAC,IAAc,EAAE,OAAsB;QACzD,MAAM,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjE,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxG,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU;eAC1B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IAChC,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,WAAW,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACnH,IAAW,cAAc,KAAK,OAAO,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACjI,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,cAAc,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvG,IAAW,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,IAAoB,uBAAuB,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,IAAW,aAAa,KAAK,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/F,IAAW,YAAY,KAAK,OAAO,WAAW,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACvF,IAAoB,uBAAuB;QACzC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAoB,kBAAkB;QACpC,qHAAqH;QACrH,0CAA0C;QAC1C,yIAAyI;QACzI,OAAO,SAAS,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,IAAoB,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAChD,IAAoB,MAAM,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;IAClD,IAAoB,YAAY,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;IAE9C,KAAK,CAAC,YAAoB,EAAE,wBAA2C;QAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE/B,8GAA8G;QAC9G,MAAM,MAAM,GAAG,uCAA+B,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC7F,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/F,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,MAAM;YACR,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IAEe,sBAAsB,CAAC,MAAc;QACnD,0CAA0C;QAC1C,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,IAAW,WAAW,KAAkB,mCAA2B,CAAC,CAAC;IACrE,IAAoB,YAAY,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,IAAoB,gBAAgB,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC7E,IAAW,WAAW;QACpB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;YAC1D,0CAAkC;QAEpC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,gCAAwB,CAAC,iCAAyB,CAAC;QAC3E,IAAI,IAAI,CAAC,QAAQ;YACf,KAAK,GAAG,KAAK,gCAAwB,CAAC;QAExC,OAAO,KAAK,CAAC;IACf,CAAC;IAEe,QAAQ,CAAC,MAAc;QACrC,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;YAClE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;;YAEjD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEe,OAAO,CAAC,MAAc;QACpC,oCAAoC;QACpC,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO,gBAAgB,CAAC;QAE1B,IAAI,UAAU,GAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;QAElE,mGAAmG;QACnG,IAAI,IAAI,CAAC,OAAO;YACd,OAAO,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;QAEpE,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEnC,0FAA0F;QAC1F,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACnI,IAAI,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY;YACnD,OAAO,aAAa,CAAC;QAEvB,2FAA2F;QAC3F,IAAI,UAAU,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACzI,IAAI,CAAC,QAAQ;gBACX,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,UAAU,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU;YACvG,OAAO,UAAU,CAAC;QAEpB,wGAAwG;QACxG,IAAI,IAAI,CAAC,kBAAkB,IAAI,SAAS,KAAK,MAAM,CAAC,eAAe,EAAE,CAAC;YACpE,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACrD,QAAQ,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;gBAC3E,KAAK,mBAAmB,CAAC,WAAW;oBAClC,OAAO,aAAa,CAAC;gBACvB,KAAK,mBAAmB,CAAC,MAAM;oBAC7B,OAAO,UAAU,CAAC;gBACpB,KAAK,mBAAmB,CAAC,KAAK;oBAC5B,OAAO,GAAG,UAAU,cAAc,CAAC;YACvC,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,mFAAmF;QACnF,uDAAuD;QACvD,4GAA4G;QAC5G,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,IAAI,SAAS,KAAK,GAAG,IAAI,GAAG,CAAC,cAAc;YACzC,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;;YAE/B,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC;QAEnD,+EAA+E;QAC/E,IAAI,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,KAAK,gCAAgC,CAAC,0BAA0B,EAAE,CAAC;YAC3H,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;gBACtD,KAAK,mBAAmB,CAAC,MAAM;oBAC7B,8EAA8E;oBAC9E,OAAO,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC/C,KAAK,mBAAmB,CAAC,WAAW;oBAClC,qFAAqF;oBACrF,OAAO,aAAa,CAAC;gBACvB,KAAK,mBAAmB,CAAC,KAAK;oBAC5B,gEAAgE;oBAChE,OAAO,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,cAAc,CAAC;YAClE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,QAAQ,GAAG,EAAE,YAAY,EAAE,CAAC;gBAC1B,KAAK,mBAAmB,CAAC,WAAW;oBAClC,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,KAAK,mBAAmB,CAAC,KAAK;oBAC5B,UAAU,GAAG,GAAG,UAAU,cAAc,CAAC;oBACzC,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/C,CAAC;IAES,gBAAgB,CAAC,MAAc;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,wCAAwC;QAExD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;YACnD,OAAO,IAAI,CAAC,CAAC,mCAAmC;QAElD,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,YAAY;YAC3D,OAAO,KAAK,CAAC,CAAC,iDAAiD;QAEjE,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QAEf,2CAA2C;QAC3C,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,IAAoB,YAAY,KAA+B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAExF,UAAU,CAAC,MAA2B;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAEM,YAAY,CAAC,MAA2B;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC;IAEM,mBAAmB,CAAC,MAA2B,EAAE,KAAiB;QACvE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEnC,MAAM,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,wCAAgC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,KAAK,0CAAkC,GAAG,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvF,KAAK,uCAA+B,GAAG,CAAC,CAAC;QACzC,KAAK,2CAAmC,GAAG,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,KAAK,oCAA4B,GAAG,CAAC,CAAC;YACtC,IAAI,YAAY,CAAC,EAAE,CAAC;gBAClB,KAAK,uCAA+B,GAAG,CAAC,CAAC;YAE3C,wDAAwD;YACxD,kFAAkF;YAClF,oCAAoC;YACpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,KAAK,2CAAmC,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,oCAA4B,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,oCAA4B,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,sCAA8B,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,uDAA8C,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,KAAK,yDAAgD,GAAG,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,2IAA2I;QAC3I,KAAK,+CAAuC,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,KAAK,wCAAgC,GAAG,CAAC,CAAC;QAC1C,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,8IAA8I;YAC9I,qCAA6B;YAC7B,qCAA6B;YAC7B,sCAA8B;YAC9B,oCAA4B;YAC5B,sCAA6B;YAC7B,qCAA6B;YAC7B,0CAAkC;YAClC,sCAA6B,CAAC,CAAC,CAAC;gBAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC;oBACvF,KAAK,+CAAuC,GAAG,CAAC,CAAC;oBACjD,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/F,8EAA8E;wBAC9E,KAAK,wCAAgC,GAAG,CAAC,CAAC;oBAC5C,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAoB,OAAqB,EAAE,UAAkB,EAAE,IAAc;QAC3E,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,+BAAuB,KAAK,CAAC,CAAC;QAChF,MAAM,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/H,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,MAAc,EAAE,oBAA6B;QAChE,IAAI,IAAI,CAAC,kBAAkB,IAAI,SAAS,KAAK,MAAM,CAAC,eAAe;YACjE,OAAO,IAAI,CAAC;QAEd,IAAI,CAAC,oBAAoB;YACvB,OAAO,KAAK,CAAC;QAEf,IAAI,IAAI,CAAC,IAAI,CAAC,wBAAwB;YACpC,OAAO,IAAI,CAAC;QAEd,IAAI,IAAI,CAAC,uBAAuB,IAAI,MAAM,CAAC,mBAAmB;YAC5D,OAAO,KAAK,CAAC;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEtC,2EAA2E;QAC3E,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,UAAU,CAAC,WAAW;gBACzB,OAAO,KAAK,CAAC,QAAQ,CAAC;YACxB,KAAK,UAAU,CAAC,SAAS;gBACvB,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1H;gBACE,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAc,EAAE,eAAwB;QAC7D,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAC/C,OAAO,KAAK,CAAC;QAEf,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEtC,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;YACzB,KAAK,UAAU,CAAC,WAAW;gBACzB,OAAO,KAAK,CAAC,QAAQ,CAAC;YACxB;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;CACF","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 { FillFlags, RenderMode, TextureTransparency, ThematicGradientTransparencyMode, ViewFlags } from \"@itwin/core-common\";\r\nimport { SurfaceType } from \"../../common/render/primitives/SurfaceParams\";\r\nimport { VertexIndices } from \"../../common/render/primitives/VertexIndices\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { MaterialInfo } from \"./Material\";\r\nimport { Pass, RenderOrder, RenderPass, SurfaceBitIndex } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { MeshData } from \"./MeshData\";\r\nimport { MeshGeometry } from \"./MeshGeometry\";\r\n\r\n/** @internal */\r\nexport function wantMaterials(vf: ViewFlags): boolean {\r\n return vf.materials && RenderMode.SmoothShade === vf.renderMode;\r\n}\r\n\r\nfunction wantLighting(vf: ViewFlags) {\r\n return RenderMode.SmoothShade === vf.renderMode && vf.lighting;\r\n}\r\n\r\n/** @internal */\r\nexport class SurfaceGeometry extends MeshGeometry {\r\n private readonly _buffers: BuffersContainer;\r\n private readonly _indices: BufferHandle;\r\n\r\n public get lutBuffers() { return this._buffers; }\r\n\r\n public static create(mesh: MeshData, indices: VertexIndices): SurfaceGeometry | undefined {\r\n const indexBuffer = BufferHandle.createArrayBuffer(indices.data);\r\n return undefined !== indexBuffer ? new SurfaceGeometry(indexBuffer, indices.length, mesh) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this._buffers.isDisposed\r\n && this._indices.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this._buffers);\r\n dispose(this._indices);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addSurface(this._indices.bytesUsed);\r\n }\r\n\r\n public get isLit() { return SurfaceType.Lit === this.surfaceType || SurfaceType.TexturedLit === this.surfaceType; }\r\n public get isTexturedType() { return SurfaceType.Textured === this.surfaceType || SurfaceType.TexturedLit === this.surfaceType; }\r\n public get hasTexture() { return this.isTexturedType && undefined !== this.texture; }\r\n public get hasNormalMap() { return this.isLit && this.isTexturedType && undefined !== this.normalMap; }\r\n public get isGlyph() { return this.mesh.isGlyph; }\r\n public override get alwaysRenderTranslucent() { return this.isGlyph; }\r\n public get isTileSection() { return undefined !== this.texture && this.texture.isTileSection; }\r\n public get isClassifier() { return SurfaceType.VolumeClassifier === this.surfaceType; }\r\n public override get supportsThematicDisplay() {\r\n return !this.isGlyph;\r\n }\r\n\r\n public override get allowColorOverride() {\r\n // Text background color should not be overridden by feature symbology overrides - otherwise it becomes unreadable...\r\n // We don't actually know if we have text.\r\n // We do know that text background color uses blanking fill. So do ImageGraphics, so they're also going to forbid overriding their color.\r\n return FillFlags.Blanking !== (this.fillFlags & FillFlags.Blanking);\r\n }\r\n\r\n public override get asSurface() { return this; }\r\n public override get asEdge() { return undefined; }\r\n public override get asSilhouette() { return undefined; }\r\n\r\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\r\n const system = System.instance;\r\n\r\n // If we can't write depth in the fragment shader, use polygonOffset to force blanking regions to draw behind.\r\n const offset = RenderOrder.BlankingRegion === this.renderOrder && !system.supportsLogZBuffer;\r\n if (offset) {\r\n system.context.enable(GL.POLYGON_OFFSET_FILL);\r\n system.context.polygonOffset(1.0, 1.0);\r\n }\r\n\r\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers;\r\n bufs.bind();\r\n system.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\r\n bufs.unbind();\r\n\r\n if (offset)\r\n system.context.disable(GL.POLYGON_OFFSET_FILL);\r\n }\r\n\r\n public override wantMixMonochromeColor(target: Target): boolean {\r\n // Text relies on white-on-white reversal.\r\n return !this.isGlyph && (this.isLitSurface || this.wantTextures(target, this.hasTexture));\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.Surface; }\r\n public override get isLitSurface() { return this.isLit; }\r\n public override get hasBakedLighting() { return this.mesh.hasBakedLighting; }\r\n public get renderOrder(): RenderOrder {\r\n if (FillFlags.Behind === (this.fillFlags & FillFlags.Behind))\r\n return RenderOrder.BlankingRegion;\r\n\r\n let order = this.isLit ? RenderOrder.LitSurface : RenderOrder.UnlitSurface;\r\n if (this.isPlanar)\r\n order = order | RenderOrder.PlanarBit;\r\n\r\n return order;\r\n }\r\n\r\n public override getColor(target: Target) {\r\n if (FillFlags.Background === (this.fillFlags & FillFlags.Background))\r\n return target.uniforms.style.backgroundColorInfo;\r\n else\r\n return this.colorInfo;\r\n }\r\n\r\n public override getPass(target: Target): Pass {\r\n // Classifiers have a dedicated pass\r\n if (this.isClassifier)\r\n return \"classification\";\r\n\r\n let opaquePass: Pass = this.isPlanar ? \"opaque-planar\" : \"opaque\";\r\n\r\n // When reading pixels, glyphs are always opaque. Otherwise always transparent (for anti-aliasing).\r\n if (this.isGlyph)\r\n return target.isReadPixelsInProgress ? opaquePass : \"translucent\";\r\n\r\n const vf = target.currentViewFlags;\r\n\r\n // When rendering thematic isolines, we need translucency because they have anti-aliasing.\r\n const thematic = target.wantThematicDisplay && this.supportsThematicDisplay ? target.uniforms.thematic.thematicDisplay : undefined;\r\n if (thematic && target.uniforms.thematic.wantIsoLines)\r\n return \"translucent\";\r\n\r\n // In wireframe, unless fill is explicitly enabled for planar region, surface does not draw\r\n if (RenderMode.Wireframe === vf.renderMode && !this.mesh.isTextureAlwaysDisplayed) {\r\n const fillFlags = this.fillFlags;\r\n const showFill = FillFlags.Always === (fillFlags & FillFlags.Always) || (vf.fill && FillFlags.ByView === (fillFlags & FillFlags.ByView));\r\n if (!showFill)\r\n return \"none\";\r\n }\r\n\r\n // If transparency disabled by render mode or view flag, always draw opaque.\r\n if (!vf.transparency || RenderMode.SolidFill === vf.renderMode || RenderMode.HiddenLine === vf.renderMode)\r\n return opaquePass;\r\n\r\n // A gradient texture applied by analysis style always fully determines the transparency of the surface.\r\n if (this.hasScalarAnimation && undefined !== target.analysisTexture) {\r\n assert(undefined !== target.analysisStyle?.thematic);\r\n switch (target.analysisStyle.thematic.thematicSettings.textureTransparency) {\r\n case TextureTransparency.Translucent:\r\n return \"translucent\";\r\n case TextureTransparency.Opaque:\r\n return opaquePass;\r\n case TextureTransparency.Mixed:\r\n return `${opaquePass}-translucent`;\r\n }\r\n }\r\n\r\n // We have 3 sources of alpha: the material, the texture, and the color.\r\n // Base alpha comes from the material if it overrides it; otherwise from the color.\r\n // The texture's alpha is multiplied by the base alpha.\r\n // So we must draw in the translucent pass if the texture has transparency OR the base alpha is less than 1.\r\n let hasAlpha = false;\r\n const mat = wantMaterials(vf) ? this.mesh.materialInfo : undefined;\r\n if (undefined !== mat && mat.overridesAlpha)\r\n hasAlpha = mat.hasTranslucency;\r\n else\r\n hasAlpha = this.getColor(target).hasTranslucency;\r\n\r\n // Thematic gradient can optionally multiply gradient alpha with surface alpha.\r\n if (thematic && thematic.gradientSettings.transparencyMode === ThematicGradientTransparencyMode.MultiplySurfaceAndGradient) {\r\n switch (thematic.gradientSettings.textureTransparency) {\r\n case TextureTransparency.Opaque:\r\n // This surface's alpha gets multiplied by 1 - gradient colors are all opaque.\r\n return hasAlpha ? \"translucent\" : opaquePass;\r\n case TextureTransparency.Translucent:\r\n // This surface's alpha gets multiplied by < 1 - gradient colors are all translucent.\r\n return \"translucent\";\r\n case TextureTransparency.Mixed:\r\n // The gradient contains a mix of translucent and opaque colors.\r\n return hasAlpha ? \"translucent\" : `${opaquePass}-translucent`;\r\n }\r\n }\r\n\r\n if (!hasAlpha) {\r\n const tex = this.wantTextures(target, true) ? this.texture : undefined;\r\n switch (tex?.transparency) {\r\n case TextureTransparency.Translucent:\r\n hasAlpha = true;\r\n break;\r\n case TextureTransparency.Mixed:\r\n opaquePass = `${opaquePass}-translucent`;\r\n break;\r\n }\r\n }\r\n\r\n return hasAlpha ? \"translucent\" : opaquePass;\r\n }\r\n\r\n protected _wantWoWReversal(target: Target): boolean {\r\n const fillFlags = this.fillFlags;\r\n if (FillFlags.None !== (fillFlags & FillFlags.Background))\r\n return false; // fill color explicitly from background\r\n\r\n if (FillFlags.None !== (fillFlags & FillFlags.Always))\r\n return true; // fill displayed even in wireframe\r\n\r\n const vf = target.currentViewFlags;\r\n if (RenderMode.Wireframe === vf.renderMode || vf.visibleEdges)\r\n return false; // never invert surfaces when edges are displayed\r\n\r\n if (this.isLit && wantLighting(vf))\r\n return false;\r\n\r\n // Don't invert white pixels of textures...\r\n return !this.wantTextures(target, this.hasTexture);\r\n }\r\n\r\n public override get materialInfo(): MaterialInfo | undefined { return this.mesh.materialInfo; }\r\n\r\n public useTexture(params: ShaderProgramParams): boolean {\r\n return this.wantTextures(params.target, this.hasTexture);\r\n }\r\n\r\n public useNormalMap(params: ShaderProgramParams): boolean {\r\n return this.wantNormalMaps(params.target, this.hasNormalMap);\r\n }\r\n\r\n public computeSurfaceFlags(params: ShaderProgramParams, flags: Int32Array): void {\r\n const target = params.target;\r\n const vf = target.currentViewFlags;\r\n\r\n const useMaterial = wantMaterials(vf);\r\n flags[SurfaceBitIndex.IgnoreMaterial] = useMaterial ? 0 : 1;\r\n flags[SurfaceBitIndex.HasMaterialAtlas] = useMaterial && this.hasMaterialAtlas ? 1 : 0;\r\n\r\n flags[SurfaceBitIndex.ApplyLighting] = 0;\r\n flags[SurfaceBitIndex.HasColorAndNormal] = 0;\r\n if (this.isLit) {\r\n flags[SurfaceBitIndex.HasNormals] = 1;\r\n if (wantLighting(vf))\r\n flags[SurfaceBitIndex.ApplyLighting] = 1;\r\n\r\n // Textured meshes store normal in place of color index.\r\n // Untextured lit meshes store normal where textured meshes would store UV coords.\r\n // Tell shader where to find normal.\r\n if (!this.isTexturedType) {\r\n flags[SurfaceBitIndex.HasColorAndNormal] = 1;\r\n }\r\n } else {\r\n flags[SurfaceBitIndex.HasNormals] = 0;\r\n }\r\n\r\n flags[SurfaceBitIndex.HasTexture] = this.useTexture(params) ? 1 : 0;\r\n flags[SurfaceBitIndex.HasNormalMap] = this.useNormalMap(params) ? 1 : 0;\r\n flags[SurfaceBitIndex.UseConstantLodTextureMapping] = this.mesh.textureUsesConstantLod ? 1 : 0;\r\n flags[SurfaceBitIndex.UseConstantLodNormalMapMapping] = this.mesh.normalMapUsesConstantLod ? 1 : 0;\r\n\r\n // The transparency threshold controls how transparent a surface must be to allow light to pass through; more opaque surfaces cast shadows.\r\n flags[SurfaceBitIndex.TransparencyThreshold] = params.target.isDrawingShadowMap ? 1 : 0;\r\n flags[SurfaceBitIndex.BackgroundFill] = 0;\r\n switch (params.renderPass) {\r\n // NB: We need this for opaque pass due to SolidFill (must compute transparency, discard below threshold, render opaque at or above threshold)\r\n case RenderPass.OpaqueLinear:\r\n case RenderPass.OpaquePlanar:\r\n case RenderPass.OpaqueGeneral:\r\n case RenderPass.Translucent:\r\n case RenderPass.WorldOverlay:\r\n case RenderPass.OpaqueLayers:\r\n case RenderPass.TranslucentLayers:\r\n case RenderPass.OverlayLayers: {\r\n const mode = vf.renderMode;\r\n if (!this.isGlyph && (RenderMode.HiddenLine === mode || RenderMode.SolidFill === mode)) {\r\n flags[SurfaceBitIndex.TransparencyThreshold] = 1;\r\n if (RenderMode.HiddenLine === mode && FillFlags.Always !== (this.fillFlags & FillFlags.Always)) {\r\n // fill flags test for text - doesn't render with bg fill in hidden line mode.\r\n flags[SurfaceBitIndex.BackgroundFill] = 1;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private constructor(indices: BufferHandle, numIndices: number, mesh: MeshData) {\r\n super(mesh, numIndices);\r\n this._buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.Surface, false);\r\n assert(undefined !== attrPos);\r\n this._buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this._indices = indices;\r\n }\r\n\r\n private wantTextures(target: Target, surfaceTextureExists: boolean): boolean {\r\n if (this.hasScalarAnimation && undefined !== target.analysisTexture)\r\n return true;\r\n\r\n if (!surfaceTextureExists)\r\n return false;\r\n\r\n if (this.mesh.isTextureAlwaysDisplayed)\r\n return true;\r\n\r\n if (this.supportsThematicDisplay && target.wantThematicDisplay)\r\n return false;\r\n\r\n const fill = this.fillFlags;\r\n const flags = target.currentViewFlags;\r\n\r\n // ###TODO need to distinguish between gradient fill and actual textures...\r\n switch (flags.renderMode) {\r\n case RenderMode.SmoothShade:\r\n return flags.textures;\r\n case RenderMode.Wireframe:\r\n return FillFlags.Always === (fill & FillFlags.Always) || (flags.fill && FillFlags.ByView === (fill & FillFlags.ByView));\r\n default:\r\n return FillFlags.Always === (fill & FillFlags.Always);\r\n }\r\n }\r\n\r\n private wantNormalMaps(target: Target, normalMapExists: boolean): boolean {\r\n if (!normalMapExists || !target.displayNormalMaps)\r\n return false;\r\n\r\n const flags = target.currentViewFlags;\r\n\r\n switch (flags.renderMode) {\r\n case RenderMode.SmoothShade:\r\n return flags.textures;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SurfaceGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/SurfaceGeometry.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 { FillFlags, RenderMode, TextureTransparency, ThematicGradientTransparencyMode, ViewFlags } from \"@itwin/core-common\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { VertexIndices } from \"../../common/internal/render/VertexIndices\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { MaterialInfo } from \"./Material\";\r\nimport { Pass, RenderOrder, RenderPass, SurfaceBitIndex } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { MeshData } from \"./MeshData\";\r\nimport { MeshGeometry } from \"./MeshGeometry\";\r\n\r\n/** @internal */\r\nexport function wantMaterials(vf: ViewFlags): boolean {\r\n return vf.materials && RenderMode.SmoothShade === vf.renderMode;\r\n}\r\n\r\nfunction wantLighting(vf: ViewFlags) {\r\n return RenderMode.SmoothShade === vf.renderMode && vf.lighting;\r\n}\r\n\r\n/** @internal */\r\nexport class SurfaceGeometry extends MeshGeometry {\r\n private readonly _buffers: BuffersContainer;\r\n private readonly _indices: BufferHandle;\r\n\r\n public get lutBuffers() { return this._buffers; }\r\n\r\n public static create(mesh: MeshData, indices: VertexIndices): SurfaceGeometry | undefined {\r\n const indexBuffer = BufferHandle.createArrayBuffer(indices.data);\r\n return undefined !== indexBuffer ? new SurfaceGeometry(indexBuffer, indices.length, mesh) : undefined;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this._buffers.isDisposed\r\n && this._indices.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this._buffers);\r\n dispose(this._indices);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addSurface(this._indices.bytesUsed);\r\n }\r\n\r\n public get isLit() { return SurfaceType.Lit === this.surfaceType || SurfaceType.TexturedLit === this.surfaceType; }\r\n public get isTexturedType() { return SurfaceType.Textured === this.surfaceType || SurfaceType.TexturedLit === this.surfaceType; }\r\n public get hasTexture() { return this.isTexturedType && undefined !== this.texture; }\r\n public get hasNormalMap() { return this.isLit && this.isTexturedType && undefined !== this.normalMap; }\r\n public get isGlyph() { return this.mesh.isGlyph; }\r\n public override get alwaysRenderTranslucent() { return this.isGlyph; }\r\n public get isTileSection() { return undefined !== this.texture && this.texture.isTileSection; }\r\n public get isClassifier() { return SurfaceType.VolumeClassifier === this.surfaceType; }\r\n public override get supportsThematicDisplay() {\r\n return !this.isGlyph;\r\n }\r\n\r\n public override get allowColorOverride() {\r\n // Text background color should not be overridden by feature symbology overrides - otherwise it becomes unreadable...\r\n // We don't actually know if we have text.\r\n // We do know that text background color uses blanking fill. So do ImageGraphics, so they're also going to forbid overriding their color.\r\n return FillFlags.Blanking !== (this.fillFlags & FillFlags.Blanking);\r\n }\r\n\r\n public override get asSurface() { return this; }\r\n public override get asEdge() { return undefined; }\r\n public override get asSilhouette() { return undefined; }\r\n\r\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\r\n const system = System.instance;\r\n\r\n // If we can't write depth in the fragment shader, use polygonOffset to force blanking regions to draw behind.\r\n const offset = RenderOrder.BlankingRegion === this.renderOrder && !system.supportsLogZBuffer;\r\n if (offset) {\r\n system.context.enable(GL.POLYGON_OFFSET_FILL);\r\n system.context.polygonOffset(1.0, 1.0);\r\n }\r\n\r\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers;\r\n bufs.bind();\r\n system.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\r\n bufs.unbind();\r\n\r\n if (offset)\r\n system.context.disable(GL.POLYGON_OFFSET_FILL);\r\n }\r\n\r\n public override wantMixMonochromeColor(target: Target): boolean {\r\n // Text relies on white-on-white reversal.\r\n return !this.isGlyph && (this.isLitSurface || this.wantTextures(target, this.hasTexture));\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.Surface; }\r\n public override get isLitSurface() { return this.isLit; }\r\n public override get hasBakedLighting() { return this.mesh.hasBakedLighting; }\r\n public get renderOrder(): RenderOrder {\r\n if (FillFlags.Behind === (this.fillFlags & FillFlags.Behind))\r\n return RenderOrder.BlankingRegion;\r\n\r\n let order = this.isLit ? RenderOrder.LitSurface : RenderOrder.UnlitSurface;\r\n if (this.isPlanar)\r\n order = order | RenderOrder.PlanarBit;\r\n\r\n return order;\r\n }\r\n\r\n public override getColor(target: Target) {\r\n if (FillFlags.Background === (this.fillFlags & FillFlags.Background))\r\n return target.uniforms.style.backgroundColorInfo;\r\n else\r\n return this.colorInfo;\r\n }\r\n\r\n public override getPass(target: Target): Pass {\r\n // Classifiers have a dedicated pass\r\n if (this.isClassifier)\r\n return \"classification\";\r\n\r\n let opaquePass: Pass = this.isPlanar ? \"opaque-planar\" : \"opaque\";\r\n\r\n // When reading pixels, glyphs are always opaque. Otherwise always transparent (for anti-aliasing).\r\n if (this.isGlyph)\r\n return target.isReadPixelsInProgress ? opaquePass : \"translucent\";\r\n\r\n const vf = target.currentViewFlags;\r\n\r\n // When rendering thematic isolines, we need translucency because they have anti-aliasing.\r\n const thematic = target.wantThematicDisplay && this.supportsThematicDisplay ? target.uniforms.thematic.thematicDisplay : undefined;\r\n if (thematic && target.uniforms.thematic.wantIsoLines)\r\n return \"translucent\";\r\n\r\n // In wireframe, unless fill is explicitly enabled for planar region, surface does not draw\r\n if (RenderMode.Wireframe === vf.renderMode && !this.mesh.isTextureAlwaysDisplayed) {\r\n const fillFlags = this.fillFlags;\r\n const showFill = FillFlags.Always === (fillFlags & FillFlags.Always) || (vf.fill && FillFlags.ByView === (fillFlags & FillFlags.ByView));\r\n if (!showFill)\r\n return \"none\";\r\n }\r\n\r\n // If transparency disabled by render mode or view flag, always draw opaque.\r\n if (!vf.transparency || RenderMode.SolidFill === vf.renderMode || RenderMode.HiddenLine === vf.renderMode)\r\n return opaquePass;\r\n\r\n // A gradient texture applied by analysis style always fully determines the transparency of the surface.\r\n if (this.hasScalarAnimation && undefined !== target.analysisTexture) {\r\n assert(undefined !== target.analysisStyle?.thematic);\r\n switch (target.analysisStyle.thematic.thematicSettings.textureTransparency) {\r\n case TextureTransparency.Translucent:\r\n return \"translucent\";\r\n case TextureTransparency.Opaque:\r\n return opaquePass;\r\n case TextureTransparency.Mixed:\r\n return `${opaquePass}-translucent`;\r\n }\r\n }\r\n\r\n // We have 3 sources of alpha: the material, the texture, and the color.\r\n // Base alpha comes from the material if it overrides it; otherwise from the color.\r\n // The texture's alpha is multiplied by the base alpha.\r\n // So we must draw in the translucent pass if the texture has transparency OR the base alpha is less than 1.\r\n let hasAlpha = false;\r\n const mat = wantMaterials(vf) ? this.mesh.materialInfo : undefined;\r\n if (undefined !== mat && mat.overridesAlpha)\r\n hasAlpha = mat.hasTranslucency;\r\n else\r\n hasAlpha = this.getColor(target).hasTranslucency;\r\n\r\n // Thematic gradient can optionally multiply gradient alpha with surface alpha.\r\n if (thematic && thematic.gradientSettings.transparencyMode === ThematicGradientTransparencyMode.MultiplySurfaceAndGradient) {\r\n switch (thematic.gradientSettings.textureTransparency) {\r\n case TextureTransparency.Opaque:\r\n // This surface's alpha gets multiplied by 1 - gradient colors are all opaque.\r\n return hasAlpha ? \"translucent\" : opaquePass;\r\n case TextureTransparency.Translucent:\r\n // This surface's alpha gets multiplied by < 1 - gradient colors are all translucent.\r\n return \"translucent\";\r\n case TextureTransparency.Mixed:\r\n // The gradient contains a mix of translucent and opaque colors.\r\n return hasAlpha ? \"translucent\" : `${opaquePass}-translucent`;\r\n }\r\n }\r\n\r\n if (!hasAlpha) {\r\n const tex = this.wantTextures(target, true) ? this.texture : undefined;\r\n switch (tex?.transparency) {\r\n case TextureTransparency.Translucent:\r\n hasAlpha = true;\r\n break;\r\n case TextureTransparency.Mixed:\r\n opaquePass = `${opaquePass}-translucent`;\r\n break;\r\n }\r\n }\r\n\r\n return hasAlpha ? \"translucent\" : opaquePass;\r\n }\r\n\r\n protected _wantWoWReversal(target: Target): boolean {\r\n const fillFlags = this.fillFlags;\r\n if (FillFlags.None !== (fillFlags & FillFlags.Background))\r\n return false; // fill color explicitly from background\r\n\r\n if (FillFlags.None !== (fillFlags & FillFlags.Always))\r\n return true; // fill displayed even in wireframe\r\n\r\n const vf = target.currentViewFlags;\r\n if (RenderMode.Wireframe === vf.renderMode || vf.visibleEdges)\r\n return false; // never invert surfaces when edges are displayed\r\n\r\n if (this.isLit && wantLighting(vf))\r\n return false;\r\n\r\n // Don't invert white pixels of textures...\r\n return !this.wantTextures(target, this.hasTexture);\r\n }\r\n\r\n public override get materialInfo(): MaterialInfo | undefined { return this.mesh.materialInfo; }\r\n\r\n public useTexture(params: ShaderProgramParams): boolean {\r\n return this.wantTextures(params.target, this.hasTexture);\r\n }\r\n\r\n public useNormalMap(params: ShaderProgramParams): boolean {\r\n return this.wantNormalMaps(params.target, this.hasNormalMap);\r\n }\r\n\r\n public computeSurfaceFlags(params: ShaderProgramParams, flags: Int32Array): void {\r\n const target = params.target;\r\n const vf = target.currentViewFlags;\r\n\r\n const useMaterial = wantMaterials(vf);\r\n flags[SurfaceBitIndex.IgnoreMaterial] = useMaterial ? 0 : 1;\r\n flags[SurfaceBitIndex.HasMaterialAtlas] = useMaterial && this.hasMaterialAtlas ? 1 : 0;\r\n\r\n flags[SurfaceBitIndex.ApplyLighting] = 0;\r\n flags[SurfaceBitIndex.HasColorAndNormal] = 0;\r\n if (this.isLit) {\r\n flags[SurfaceBitIndex.HasNormals] = 1;\r\n if (wantLighting(vf))\r\n flags[SurfaceBitIndex.ApplyLighting] = 1;\r\n\r\n // Textured meshes store normal in place of color index.\r\n // Untextured lit meshes store normal where textured meshes would store UV coords.\r\n // Tell shader where to find normal.\r\n if (!this.isTexturedType) {\r\n flags[SurfaceBitIndex.HasColorAndNormal] = 1;\r\n }\r\n } else {\r\n flags[SurfaceBitIndex.HasNormals] = 0;\r\n }\r\n\r\n flags[SurfaceBitIndex.HasTexture] = this.useTexture(params) ? 1 : 0;\r\n flags[SurfaceBitIndex.HasNormalMap] = this.useNormalMap(params) ? 1 : 0;\r\n flags[SurfaceBitIndex.UseConstantLodTextureMapping] = this.mesh.textureUsesConstantLod ? 1 : 0;\r\n flags[SurfaceBitIndex.UseConstantLodNormalMapMapping] = this.mesh.normalMapUsesConstantLod ? 1 : 0;\r\n\r\n // The transparency threshold controls how transparent a surface must be to allow light to pass through; more opaque surfaces cast shadows.\r\n flags[SurfaceBitIndex.TransparencyThreshold] = params.target.isDrawingShadowMap ? 1 : 0;\r\n flags[SurfaceBitIndex.BackgroundFill] = 0;\r\n switch (params.renderPass) {\r\n // NB: We need this for opaque pass due to SolidFill (must compute transparency, discard below threshold, render opaque at or above threshold)\r\n case RenderPass.OpaqueLinear:\r\n case RenderPass.OpaquePlanar:\r\n case RenderPass.OpaqueGeneral:\r\n case RenderPass.Translucent:\r\n case RenderPass.WorldOverlay:\r\n case RenderPass.OpaqueLayers:\r\n case RenderPass.TranslucentLayers:\r\n case RenderPass.OverlayLayers: {\r\n const mode = vf.renderMode;\r\n if (!this.isGlyph && (RenderMode.HiddenLine === mode || RenderMode.SolidFill === mode)) {\r\n flags[SurfaceBitIndex.TransparencyThreshold] = 1;\r\n if (RenderMode.HiddenLine === mode && FillFlags.Always !== (this.fillFlags & FillFlags.Always)) {\r\n // fill flags test for text - doesn't render with bg fill in hidden line mode.\r\n flags[SurfaceBitIndex.BackgroundFill] = 1;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private constructor(indices: BufferHandle, numIndices: number, mesh: MeshData) {\r\n super(mesh, numIndices);\r\n this._buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.Surface, false);\r\n assert(undefined !== attrPos);\r\n this._buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this._indices = indices;\r\n }\r\n\r\n private wantTextures(target: Target, surfaceTextureExists: boolean): boolean {\r\n if (this.hasScalarAnimation && undefined !== target.analysisTexture)\r\n return true;\r\n\r\n if (!surfaceTextureExists)\r\n return false;\r\n\r\n if (this.mesh.isTextureAlwaysDisplayed)\r\n return true;\r\n\r\n if (this.supportsThematicDisplay && target.wantThematicDisplay)\r\n return false;\r\n\r\n const fill = this.fillFlags;\r\n const flags = target.currentViewFlags;\r\n\r\n // ###TODO need to distinguish between gradient fill and actual textures...\r\n switch (flags.renderMode) {\r\n case RenderMode.SmoothShade:\r\n return flags.textures;\r\n case RenderMode.Wireframe:\r\n return FillFlags.Always === (fill & FillFlags.Always) || (flags.fill && FillFlags.ByView === (fill & FillFlags.ByView));\r\n default:\r\n return FillFlags.Always === (fill & FillFlags.Always);\r\n }\r\n }\r\n\r\n private wantNormalMaps(target: Target, normalMapExists: boolean): boolean {\r\n if (!normalMapExists || !target.displayNormalMaps)\r\n return false;\r\n\r\n const flags = target.currentViewFlags;\r\n\r\n switch (flags.renderMode) {\r\n case RenderMode.SmoothShade:\r\n return flags.textures;\r\n default:\r\n return false;\r\n }\r\n }\r\n}\r\n"]}
@@ -7,16 +7,16 @@ import { ClipVector, Point3d, Transform } from "@itwin/core-geometry";
7
7
  import { Capabilities, WebGLContext } from "@itwin/webgl-compatibility";
8
8
  import { IModelConnection } from "../../IModelConnection";
9
9
  import { MapTileTreeReference, TileTreeReference } from "../../tile/internal";
10
- import { MeshParams } from "../../common/render/primitives/MeshParams";
11
- import { PointStringParams } from "../../common/render/primitives/PointStringParams";
12
- import { PolylineParams } from "../../common/render/primitives/PolylineParams";
10
+ import { MeshParams } from "../../common/internal/render/MeshParams";
11
+ import { PointStringParams } from "../../common/internal/render/PointStringParams";
12
+ import { PolylineParams } from "../../common/internal/render/PolylineParams";
13
13
  import { TextureCacheKey } from "../../common/render/TextureParams";
14
14
  import { ViewRect } from "../../common/ViewRect";
15
15
  import { GraphicBranch, GraphicBranchOptions } from "../GraphicBranch";
16
- import { BatchOptions, CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from "../GraphicBuilder";
17
- import { InstancedGraphicParams, PatternGraphicParams } from "../InstancedGraphicParams";
16
+ import { CustomGraphicBuilderOptions, GraphicBuilder, ViewportGraphicBuilderOptions } from "../GraphicBuilder";
17
+ import { InstancedGraphicParams, PatternGraphicParams } from "../../common/render/InstancedGraphicParams";
18
18
  import { RealityMeshGraphicParams } from "../RealityMeshGraphicParams";
19
- import { PointCloudArgs } from "../primitives/PointCloudPrimitive";
19
+ import { PointCloudArgs } from "../../common/internal/render/PointCloudPrimitive";
20
20
  import { RenderClipVolume } from "../RenderClipVolume";
21
21
  import { RenderGraphic, RenderGraphicOwner } from "../RenderGraphic";
22
22
  import { CreateRenderMaterialArgs } from "../CreateRenderMaterialArgs";
@@ -43,6 +43,7 @@ import { ScreenSpaceEffects } from "./ScreenSpaceEffect";
43
43
  import { Techniques } from "./Technique";
44
44
  import { TextureHandle } from "./Texture";
45
45
  import { UniformHandle } from "./UniformHandle";
46
+ import { BatchOptions } from "../../common/render/BatchOptions";
46
47
  /** @internal */
47
48
  export declare const enum ContextState {
48
49
  Uninitialized = 0,
@@ -1 +1 @@
1
- {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/System.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"System.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/System.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { Capabilities } from "@itwin/webgl-compatibility";
11
11
  import { IModelApp } from "../../IModelApp";
12
12
  import { IModelConnection } from "../../IModelConnection";
13
13
  import { imageElementFromImageSource } from "../../common/ImageUtil";
14
- import { PrimitiveBuilder } from "../primitives/geometry/GeometryListBuilder";
14
+ import { PrimitiveBuilder } from "../../internal/render/PrimitiveBuilder";
15
15
  import { RenderDiagnostics, RenderSystem, } from "../RenderSystem";
16
16
  import { BackgroundMapDrape } from "./BackgroundMapDrape";
17
17
  import { SkyBoxQuadsGeometry, SkySphereViewportQuadGeometry } from "./CachedGeometry";