@itwin/core-frontend 5.3.0-dev.8 → 5.4.0-dev.2

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 (200) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  3. package/lib/cjs/ElementLocateManager.js +2 -5
  4. package/lib/cjs/ElementLocateManager.js.map +1 -1
  5. package/lib/cjs/HitDetail.d.ts +1 -24
  6. package/lib/cjs/HitDetail.d.ts.map +1 -1
  7. package/lib/cjs/HitDetail.js +0 -5
  8. package/lib/cjs/HitDetail.js.map +1 -1
  9. package/lib/cjs/IModelApp.d.ts +4 -0
  10. package/lib/cjs/IModelApp.d.ts.map +1 -1
  11. package/lib/cjs/IModelApp.js +4 -0
  12. package/lib/cjs/IModelApp.js.map +1 -1
  13. package/lib/cjs/SubCategoriesCache.d.ts +1 -1
  14. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  15. package/lib/cjs/SubCategoriesCache.js +3 -3
  16. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  17. package/lib/cjs/ViewManager.d.ts +4 -2
  18. package/lib/cjs/ViewManager.d.ts.map +1 -1
  19. package/lib/cjs/ViewManager.js +3 -1
  20. package/lib/cjs/ViewManager.js.map +1 -1
  21. package/lib/cjs/Viewport.d.ts.map +1 -1
  22. package/lib/cjs/Viewport.js +9 -3
  23. package/lib/cjs/Viewport.js.map +1 -1
  24. package/lib/cjs/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  25. package/lib/cjs/common/imdl/ParseImdlDocument.js +1 -43
  26. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  27. package/lib/cjs/common/internal/Symbols.d.ts +1 -0
  28. package/lib/cjs/common/internal/Symbols.d.ts.map +1 -1
  29. package/lib/cjs/common/internal/Symbols.js +1 -0
  30. package/lib/cjs/common/internal/Symbols.js.map +1 -1
  31. package/lib/cjs/internal/cross-package.d.ts +4 -0
  32. package/lib/cjs/internal/cross-package.d.ts.map +1 -1
  33. package/lib/cjs/internal/cross-package.js +3 -1
  34. package/lib/cjs/internal/cross-package.js.map +1 -1
  35. package/lib/cjs/internal/render/RenderAreaPattern.d.ts +1 -0
  36. package/lib/cjs/internal/render/RenderAreaPattern.d.ts.map +1 -1
  37. package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
  38. package/lib/cjs/internal/render/RenderGeometry.d.ts +3 -1
  39. package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -1
  40. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  41. package/lib/cjs/internal/render/RenderPlan.d.ts +3 -1
  42. package/lib/cjs/internal/render/RenderPlan.d.ts.map +1 -1
  43. package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
  44. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts +0 -2
  45. package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  46. package/lib/cjs/internal/render/webgl/FrustumUniforms.js +0 -7
  47. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  48. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts +0 -9
  49. package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  50. package/lib/cjs/internal/render/webgl/SceneCompositor.js +4 -67
  51. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  52. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts +3 -4
  53. package/lib/cjs/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  54. package/lib/cjs/internal/render/webgl/ShaderBuilder.js +3 -3
  55. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  56. package/lib/cjs/internal/render/webgl/System.d.ts +1 -1
  57. package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
  58. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  59. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +1 -1
  60. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  61. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +1 -2
  62. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  63. package/lib/cjs/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
  64. package/lib/cjs/internal/render/webgl/glsl/Contours.js +1 -30
  65. package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
  66. package/lib/cjs/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
  67. package/lib/cjs/internal/render/webgl/glsl/Fragment.js +2 -7
  68. package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
  69. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +1 -1
  70. package/lib/cjs/internal/render/webgl/glsl/Surface.js +1 -1
  71. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts +2 -0
  72. package/lib/cjs/internal/tile/DynamicIModelTile.d.ts.map +1 -1
  73. package/lib/cjs/internal/tile/DynamicIModelTile.js +3 -0
  74. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
  75. package/lib/cjs/internal/tile/IModelTileTree.d.ts +2 -0
  76. package/lib/cjs/internal/tile/IModelTileTree.d.ts.map +1 -1
  77. package/lib/cjs/internal/tile/IModelTileTree.js +5 -0
  78. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  79. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  80. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -0
  81. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  82. package/lib/cjs/render/Pixel.d.ts +2 -13
  83. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  84. package/lib/cjs/render/Pixel.js +1 -9
  85. package/lib/cjs/render/Pixel.js.map +1 -1
  86. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +4 -0
  87. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  88. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  89. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +13 -1
  90. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  91. package/lib/cjs/tile/map/MapLayerImageryProvider.js +25 -1
  92. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  93. package/lib/cjs/tools/AccuDrawViewportUI.d.ts +82 -26
  94. package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -1
  95. package/lib/cjs/tools/AccuDrawViewportUI.js +171 -87
  96. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  97. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  98. package/lib/cjs/tools/ToolAdmin.js +3 -0
  99. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  100. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  101. package/lib/esm/ElementLocateManager.js +2 -5
  102. package/lib/esm/ElementLocateManager.js.map +1 -1
  103. package/lib/esm/HitDetail.d.ts +1 -24
  104. package/lib/esm/HitDetail.d.ts.map +1 -1
  105. package/lib/esm/HitDetail.js +0 -5
  106. package/lib/esm/HitDetail.js.map +1 -1
  107. package/lib/esm/IModelApp.d.ts +4 -0
  108. package/lib/esm/IModelApp.d.ts.map +1 -1
  109. package/lib/esm/IModelApp.js +4 -0
  110. package/lib/esm/IModelApp.js.map +1 -1
  111. package/lib/esm/SubCategoriesCache.d.ts +1 -1
  112. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  113. package/lib/esm/SubCategoriesCache.js +3 -3
  114. package/lib/esm/SubCategoriesCache.js.map +1 -1
  115. package/lib/esm/ViewManager.d.ts +4 -2
  116. package/lib/esm/ViewManager.d.ts.map +1 -1
  117. package/lib/esm/ViewManager.js +3 -1
  118. package/lib/esm/ViewManager.js.map +1 -1
  119. package/lib/esm/Viewport.d.ts.map +1 -1
  120. package/lib/esm/Viewport.js +9 -3
  121. package/lib/esm/Viewport.js.map +1 -1
  122. package/lib/esm/common/imdl/ParseImdlDocument.d.ts.map +1 -1
  123. package/lib/esm/common/imdl/ParseImdlDocument.js +1 -43
  124. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  125. package/lib/esm/common/internal/Symbols.d.ts +1 -0
  126. package/lib/esm/common/internal/Symbols.d.ts.map +1 -1
  127. package/lib/esm/common/internal/Symbols.js +1 -0
  128. package/lib/esm/common/internal/Symbols.js.map +1 -1
  129. package/lib/esm/internal/cross-package.d.ts +4 -0
  130. package/lib/esm/internal/cross-package.d.ts.map +1 -1
  131. package/lib/esm/internal/cross-package.js +1 -0
  132. package/lib/esm/internal/cross-package.js.map +1 -1
  133. package/lib/esm/internal/render/RenderAreaPattern.d.ts +1 -0
  134. package/lib/esm/internal/render/RenderAreaPattern.d.ts.map +1 -1
  135. package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
  136. package/lib/esm/internal/render/RenderGeometry.d.ts +3 -1
  137. package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -1
  138. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  139. package/lib/esm/internal/render/RenderPlan.d.ts +3 -1
  140. package/lib/esm/internal/render/RenderPlan.d.ts.map +1 -1
  141. package/lib/esm/internal/render/RenderPlan.js.map +1 -1
  142. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts +0 -2
  143. package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
  144. package/lib/esm/internal/render/webgl/FrustumUniforms.js +1 -8
  145. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  146. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts +0 -9
  147. package/lib/esm/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
  148. package/lib/esm/internal/render/webgl/SceneCompositor.js +4 -67
  149. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  150. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts +3 -4
  151. package/lib/esm/internal/render/webgl/ShaderBuilder.d.ts.map +1 -1
  152. package/lib/esm/internal/render/webgl/ShaderBuilder.js +3 -3
  153. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  154. package/lib/esm/internal/render/webgl/System.d.ts +1 -1
  155. package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
  156. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  157. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +1 -1
  158. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  159. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +1 -2
  160. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  161. package/lib/esm/internal/render/webgl/glsl/Contours.d.ts.map +1 -1
  162. package/lib/esm/internal/render/webgl/glsl/Contours.js +1 -30
  163. package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
  164. package/lib/esm/internal/render/webgl/glsl/Fragment.d.ts.map +1 -1
  165. package/lib/esm/internal/render/webgl/glsl/Fragment.js +2 -7
  166. package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
  167. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +1 -1
  168. package/lib/esm/internal/render/webgl/glsl/Surface.js +1 -1
  169. package/lib/esm/internal/tile/DynamicIModelTile.d.ts +2 -0
  170. package/lib/esm/internal/tile/DynamicIModelTile.d.ts.map +1 -1
  171. package/lib/esm/internal/tile/DynamicIModelTile.js +3 -0
  172. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
  173. package/lib/esm/internal/tile/IModelTileTree.d.ts +2 -0
  174. package/lib/esm/internal/tile/IModelTileTree.d.ts.map +1 -1
  175. package/lib/esm/internal/tile/IModelTileTree.js +5 -0
  176. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  177. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  178. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js +1 -0
  179. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  180. package/lib/esm/render/Pixel.d.ts +2 -13
  181. package/lib/esm/render/Pixel.d.ts.map +1 -1
  182. package/lib/esm/render/Pixel.js +1 -9
  183. package/lib/esm/render/Pixel.js.map +1 -1
  184. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +4 -0
  185. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  186. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  187. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +13 -1
  188. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  189. package/lib/esm/tile/map/MapLayerImageryProvider.js +25 -1
  190. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  191. package/lib/esm/tools/AccuDrawViewportUI.d.ts +82 -26
  192. package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -1
  193. package/lib/esm/tools/AccuDrawViewportUI.js +171 -87
  194. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  195. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  196. package/lib/esm/tools/ToolAdmin.js +3 -0
  197. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  198. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  199. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  200. package/package.json +22 -23
@@ -1 +1 @@
1
- {"version":3,"file":"cross-package.js","sourceRoot":"","sources":["../../../src/internal/cross-package.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAA0B,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAsB,iBAAiB,EAAiC,MAAM,mCAAmC,CAAC;AACzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAiC,MAAM,mCAAmC,CAAC;AAEvG,iEAAiE;AACjE,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EAExB,qBAAqB,EAErB,eAAe,EAEf,eAAe,EACf,+BAA+B,EAC/B,kBAAkB,EAElB,2BAA2B,EAE3B,uBAAuB,EAGvB,UAAU,EAIV,kBAAkB,EAElB,UAAU,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EAEzB,YAAY,EACZ,oBAAoB,EAA4B,6BAA6B,EAC7E,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5E,qFAAqF;AACrF,mCAAmC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\nexport { _callIpcChannel, _scheduleScriptReference } from \"../common/internal/Symbols\";\nexport { AnimationNodeId } from \"../common/internal/render/AnimationNodeId\";\nexport { GltfDataType, type GltfMeshPrimitive } from \"../common/gltf/GltfSchema\";\nexport { OnScreenTarget, Target } from \"./render/webgl/Target\";\nexport { PerformanceMetrics } from \"./render/webgl/PerformanceMetrics\";\nexport { type GLTimerResult, RenderDiagnostics, type RenderSystemDebugControl } from \"./render/RenderSystemDebugControl\";\nexport { formatAnimationBranchId } from \"./render/AnimationBranchState\";\nexport { PrimitiveVisibility, type RenderTargetDebugControl } from \"./render/RenderTargetDebugControl\";\n\n// Used by frontend-tiles, map-layers-formats, frontend-dev-tools\nexport {\n acquireImdlDecoder,\n appendQueryParams,\n ArcGisErrorCode,\n ArcGisGeometryReaderJSON,\n type ArcGisGetServiceJsonArgs,\n ArcGISImageryProvider,\n type ArcGISServiceMetadata,\n ArcGisUtilities,\n type ArcGisValidateSourceArgs,\n collectMaskRefs,\n createSpatialTileTreeReferences,\n deflateCoordinates,\n type FeatureAttributeDrivenSymbology,\n FeatureGeometryBaseRenderer,\n type FeatureGeometryRenderer,\n FeatureGraphicsRenderer,\n type FeatureSymbolizedRenderer,\n type FeatureSymbologyRenderer,\n GltfReader,\n type GltfReaderArgs,\n type GltfReaderResult,\n type GraphicsGeometryRenderer,\n ImageryMapTileTree,\n type ImdlDecoder,\n ImdlReader,\n type MapLayerInfoFromTileTree,\n MapTileTreeReference,\n RealityModelTileUtils,\n RealityTileLoader,\n SpatialTileTreeReferences,\n type WGS84Extent,\n WmsUtilities,\n LayerTileTreeHandler, type MapLayerTreeSetting, LayerTileTreeReferenceHandler\n} from \"../tile/internal\";\nexport { GoogleMapsDecorator, LogoDecoration } from \"./GoogleMapsDecorator\";\n\n// Used by display-test-app which currently builds using both ESModules and CommonJS.\n// Remove once CommonJS is dropped.\nexport { DebugShaderFile } from \"./render/RenderSystemDebugControl\";\nexport { IModelTileTree } from \"./tile/IModelTileTree\";\n"]}
1
+ {"version":3,"file":"cross-package.js","sourceRoot":"","sources":["../../../src/internal/cross-package.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAA0B,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAsB,iBAAiB,EAAiC,MAAM,mCAAmC,CAAC;AACzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAiC,MAAM,mCAAmC,CAAC;AAEvG,iEAAiE;AACjE,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EAExB,qBAAqB,EAErB,eAAe,EAEf,eAAe,EACf,+BAA+B,EAC/B,kBAAkB,EAElB,2BAA2B,EAE3B,uBAAuB,EAGvB,UAAU,EAIV,kBAAkB,EAElB,UAAU,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EAEzB,YAAY,EACZ,oBAAoB,EAA4B,6BAA6B,EAC7E,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5E,qFAAqF;AACrF,mCAAmC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Utils\n */\n\nexport { _callIpcChannel, _scheduleScriptReference } from \"../common/internal/Symbols\";\nexport { AnimationNodeId } from \"../common/internal/render/AnimationNodeId\";\nexport { GltfDataType, type GltfMeshPrimitive } from \"../common/gltf/GltfSchema\";\nexport { OnScreenTarget, Target } from \"./render/webgl/Target\";\nexport { PerformanceMetrics } from \"./render/webgl/PerformanceMetrics\";\nexport { type GLTimerResult, RenderDiagnostics, type RenderSystemDebugControl } from \"./render/RenderSystemDebugControl\";\nexport { formatAnimationBranchId } from \"./render/AnimationBranchState\";\nexport { PrimitiveVisibility, type RenderTargetDebugControl } from \"./render/RenderTargetDebugControl\";\n\n// Used by frontend-tiles, map-layers-formats, frontend-dev-tools\nexport {\n acquireImdlDecoder,\n appendQueryParams,\n ArcGisErrorCode,\n ArcGisGeometryReaderJSON,\n type ArcGisGetServiceJsonArgs,\n ArcGISImageryProvider,\n type ArcGISServiceMetadata,\n ArcGisUtilities,\n type ArcGisValidateSourceArgs,\n collectMaskRefs,\n createSpatialTileTreeReferences,\n deflateCoordinates,\n type FeatureAttributeDrivenSymbology,\n FeatureGeometryBaseRenderer,\n type FeatureGeometryRenderer,\n FeatureGraphicsRenderer,\n type FeatureSymbolizedRenderer,\n type FeatureSymbologyRenderer,\n GltfReader,\n type GltfReaderArgs,\n type GltfReaderResult,\n type GraphicsGeometryRenderer,\n ImageryMapTileTree,\n type ImdlDecoder,\n ImdlReader,\n type MapLayerInfoFromTileTree,\n MapTileTreeReference,\n RealityModelTileUtils,\n RealityTileLoader,\n SpatialTileTreeReferences,\n type WGS84Extent,\n WmsUtilities,\n LayerTileTreeHandler, type MapLayerTreeSetting, LayerTileTreeReferenceHandler\n} from \"../tile/internal\";\nexport { GoogleMapsDecorator, LogoDecoration } from \"./GoogleMapsDecorator\";\n\n// Used by display-test-app which currently builds using both ESModules and CommonJS.\n// Remove once CommonJS is dropped.\nexport { DebugShaderFile } from \"./render/RenderSystemDebugControl\";\nexport { IModelTileTree } from \"./tile/IModelTileTree\";\n\n// Used by cesium-renderer\nexport { type RenderPlan } from \"./render/RenderPlan\";\nexport { type RenderAreaPattern } from \"./render/RenderAreaPattern\";\nexport { type RenderGeometry } from \"./render/RenderGeometry\";\nexport { _implementationProhibited } from \"../common/internal/Symbols\";\n"]}
@@ -5,6 +5,7 @@ import { _implementationProhibited } from "../../common/internal/Symbols";
5
5
  import { RenderMemory } from "../../render/RenderMemory";
6
6
  /** An opaque representation of instructions for repeatedly drawing a [[RenderGeometry]] to pattern a planar region,
7
7
  * to be supplied to [[RenderSystem.createRenderGraphic]].
8
+ * @internal
8
9
  */
9
10
  export interface RenderAreaPattern extends Disposable, RenderMemory.Consumer {
10
11
  readonly [_implementationProhibited]: "renderAreaPattern";
@@ -1 +1 @@
1
- {"version":3,"file":"RenderAreaPattern.d.ts","sourceRoot":"","sources":["../../../../src/internal/render/RenderAreaPattern.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU,EAAE,YAAY,CAAC,QAAQ;IAC1E,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,CAAC;CAC3D"}
1
+ {"version":3,"file":"RenderAreaPattern.d.ts","sourceRoot":"","sources":["../../../../src/internal/render/RenderAreaPattern.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU,EAAE,YAAY,CAAC,QAAQ;IAC1E,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,mBAAmB,CAAC;CAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderAreaPattern.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderAreaPattern.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { _implementationProhibited } from \"../../common/internal/Symbols\";\nimport { RenderMemory } from \"../../render/RenderMemory\";\n\n/** An opaque representation of instructions for repeatedly drawing a [[RenderGeometry]] to pattern a planar region,\n * to be supplied to [[RenderSystem.createRenderGraphic]].\n */\nexport interface RenderAreaPattern extends Disposable, RenderMemory.Consumer {\n readonly [_implementationProhibited]: \"renderAreaPattern\";\n}\n\n"]}
1
+ {"version":3,"file":"RenderAreaPattern.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderAreaPattern.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { _implementationProhibited } from \"../../common/internal/Symbols\";\nimport { RenderMemory } from \"../../render/RenderMemory\";\n\n/** An opaque representation of instructions for repeatedly drawing a [[RenderGeometry]] to pattern a planar region,\n * to be supplied to [[RenderSystem.createRenderGraphic]].\n * @internal\n */\nexport interface RenderAreaPattern extends Disposable, RenderMemory.Consumer {\n readonly [_implementationProhibited]: \"renderAreaPattern\";\n}\n\n"]}
@@ -3,7 +3,9 @@
3
3
  */
4
4
  import { RenderMemory } from "../../render/RenderMemory";
5
5
  import { Range3d } from "@itwin/core-geometry";
6
- /** An opaque representation of geometry allocated by a [[RenderSystem]] to be supplied to [[RenderSystem.createRenderGraphic]]. */
6
+ /** An opaque representation of geometry allocated by a [[RenderSystem]] to be supplied to [[RenderSystem.createRenderGraphic]].
7
+ * @internal
8
+ */
7
9
  export interface RenderGeometry extends Disposable, RenderMemory.Consumer {
8
10
  readonly renderGeometryType: "mesh" | "polyline" | "point-string" | "point-cloud" | "reality-mesh";
9
11
  readonly isInstanceable: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderGeometry.d.ts","sourceRoot":"","sources":["../../../../src/internal/render/RenderGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,mIAAmI;AACnI,MAAM,WAAW,cAAe,SAAQ,UAAU,EAAE,YAAY,CAAC,QAAQ;IACvE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;IACnG,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACtC"}
1
+ {"version":3,"file":"RenderGeometry.d.ts","sourceRoot":"","sources":["../../../../src/internal/render/RenderGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU,EAAE,YAAY,CAAC,QAAQ;IACvE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;IACnG,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB;IAChB,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderGeometry.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderGeometry.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { RenderMemory } from \"../../render/RenderMemory\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\n/** An opaque representation of geometry allocated by a [[RenderSystem]] to be supplied to [[RenderSystem.createRenderGraphic]]. */\nexport interface RenderGeometry extends Disposable, RenderMemory.Consumer {\n readonly renderGeometryType: \"mesh\" | \"polyline\" | \"point-string\" | \"point-cloud\" | \"reality-mesh\";\n readonly isInstanceable: boolean;\n readonly isDisposed: boolean;\n /** If true, this geometry is intended for reuse. Its `dispose` method will do nothing. Instead, we will rely on the JS garbage collector\n * to dispose of any WebGL resources it contains.\n * When creating a reusable `GraphicTemplate`, we set this to `true` for all geometry in the template. We never set it to `false`.\n */\n noDispose: boolean;\n /** @internal */\n computeRange(out?: Range3d): Range3d;\n}\n\n"]}
1
+ {"version":3,"file":"RenderGeometry.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderGeometry.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { RenderMemory } from \"../../render/RenderMemory\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\n/** An opaque representation of geometry allocated by a [[RenderSystem]] to be supplied to [[RenderSystem.createRenderGraphic]].\n * @internal\n */\nexport interface RenderGeometry extends Disposable, RenderMemory.Consumer {\n readonly renderGeometryType: \"mesh\" | \"polyline\" | \"point-string\" | \"point-cloud\" | \"reality-mesh\";\n readonly isInstanceable: boolean;\n readonly isDisposed: boolean;\n /** If true, this geometry is intended for reuse. Its `dispose` method will do nothing. Instead, we will rely on the JS garbage collector\n * to dispose of any WebGL resources it contains.\n * When creating a reusable `GraphicTemplate`, we set this to `true` for all geometry in the template. We never set it to `false`.\n */\n noDispose: boolean;\n /** @internal */\n computeRange(out?: Range3d): Range3d;\n}\n\n"]}
@@ -12,7 +12,9 @@ export declare class RenderPlanEllipsoid {
12
12
  constructor(ellipsoidCenter: Point3d, ellipsoidRotation: Matrix3d, ellipsoidRadii: Point3d);
13
13
  equals(other: RenderPlanEllipsoid): boolean;
14
14
  }
15
- /** A RenderPlan holds a Frustum and the render settings for displaying a RenderScene into a RenderTarget. */
15
+ /** A RenderPlan holds a Frustum and the render settings for displaying a RenderScene into a RenderTarget.
16
+ * @internal
17
+ */
16
18
  export interface RenderPlan {
17
19
  readonly is3d: boolean;
18
20
  readonly viewFlags: ViewFlags;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPlan.d.ts","sourceRoot":"","sources":["../../../../src/internal/render/RenderPlan.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAa,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EACvJ,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,4BAA4B,EACxE,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAY,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,qBAAa,mBAAmB;IAC9B,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAE5B,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO;IAMnF,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;CASnD;AAED,6GAA6G;AAC7G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED,wBAAgB,qBAAqB,IAAI,UAAU,CAoBlD;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,CAsFrE"}
1
+ {"version":3,"file":"RenderPlan.d.ts","sourceRoot":"","sources":["../../../../src/internal/render/RenderPlan.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAa,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EACvJ,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,4BAA4B,EACxE,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAY,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,qBAAa,mBAAmB;IAC9B,SAAgB,eAAe,EAAE,OAAO,CAAC;IACzC,SAAgB,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,SAAgB,cAAc,EAAE,OAAO,CAAC;gBAE5B,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO;IAMnF,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;CASnD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,CAAC;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED,wBAAgB,qBAAqB,IAAI,UAAU,CAoBlD;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,GAAG,UAAU,CAsFrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPlan.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderPlan.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EACwC,SAAS,EAAE,QAAQ,EAAkB,OAAO,EAAE,SAAS,EAAc,MAAM,EAAiB,cAAc,EAAE,GAAG,EAC5H,SAAS,EAAE,4BAA4B,GACxE,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,QAAQ,EAAY,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,MAAM,OAAO,mBAAmB;IACd,eAAe,CAAU;IACzB,iBAAiB,CAAW;IAC5B,cAAc,CAAU;IAExC,YAAY,eAAwB,EAAE,iBAA2B,EAAE,cAAuB;QACxF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,KAA0B;QACtC,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAiCD,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI,SAAS,EAAE;QAC1B,OAAO,EAAE,QAAQ,CAAC,KAAK;QACvB,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,cAAc,EAAE,cAAc,CAAC,MAAM;QACrC,cAAc,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;QACrC,gBAAgB,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;QACvC,aAAa,EAAE,IAAI,aAAa,EAAE;QAClC,SAAS,EAAE,SAAS,CAAC,QAAQ;QAC7B,OAAO,EAAE,IAAI,OAAO,EAAE;QACtB,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,KAAK;QACtB,oBAAoB,EAAE,CAAC;QACvB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE;QAC1B,oBAAoB,EAAE,4BAA4B,CAAC,QAAQ,EAAE;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAAY;IACvD,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7E,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;IAErD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;IACjC,MAAM,gBAAgB,GAAG,EAAE,CAAC,gBAAgB,CAAC;IAC7C,MAAM,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;IACvC,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC;IAEhC,MAAM,eAAe,GAAG,EAAE,CAAC,eAAe,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACnD,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACrH,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnH,MAAM,uBAAuB,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,IAAoB,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;IACzO,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,CAAE,EAAE,CAAC,IAAoB,CAAC,iBAAiB,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7H,IAAI,QAAQ,CAAC;IACb,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;QAC1H,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;QACtH,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACrD,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,eAAe,CAAC;IACpB,IAAI,aAAa,EAAE,QAAQ;QACzB,eAAe,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAE1G,IAAI,SAA0C,CAAC;IAC/C,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,mBAAmB,CACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EACpC,WAAW,CAAC,MAAM,EAClB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CACrI,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,SAAS;QACT,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,IAAI;QACJ,SAAS;QACT,KAAK;QACL,aAAa;QACb,EAAE;QACF,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,eAAe;QACf,eAAe;QACf,OAAO;QACP,QAAQ;QACR,oBAAoB;QACpB,aAAa;QACb,eAAe;QACf,QAAQ;QACR,MAAM;QACN,oBAAoB,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB;QACnE,SAAS;KACV,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport {\n AmbientOcclusion, AnalysisStyle, Atmosphere, ClipStyle, ColorDef, ContourDisplay, Frustum, GlobeMode, HiddenLine, Hilite, LightSettings, MonochromeMode, Npc,\n RenderTexture, ThematicDisplay, ViewFlags, WhiteOnWhiteReversalSettings,\n} from \"@itwin/core-common\";\nimport { ClipVector, Constant, Matrix3d, Point3d, Vector3d } from \"@itwin/core-geometry\";\nimport { FlashSettings } from \"../../FlashSettings\";\nimport { Viewport } from \"../../Viewport\";\nimport { ViewState3d } from \"../../ViewState\";\n\nconst scratchPoint3a = new Point3d();\nconst scratchPoint3b = new Point3d();\nconst scratchPoint3c = new Point3d();\n\nexport class RenderPlanEllipsoid {\n public readonly ellipsoidCenter: Point3d;\n public readonly ellipsoidRotation: Matrix3d;\n public readonly ellipsoidRadii: Point3d;\n\n constructor(ellipsoidCenter: Point3d, ellipsoidRotation: Matrix3d, ellipsoidRadii: Point3d) {\n this.ellipsoidCenter = ellipsoidCenter;\n this.ellipsoidRotation = ellipsoidRotation;\n this.ellipsoidRadii = ellipsoidRadii;\n }\n\n public equals(other: RenderPlanEllipsoid): boolean {\n if (this.ellipsoidCenter.isAlmostEqual(other.ellipsoidCenter))\n return false;\n if (this.ellipsoidRotation.isAlmostEqual(other.ellipsoidRotation))\n return false;\n if (this.ellipsoidRadii.isAlmostEqual(other.ellipsoidRadii))\n return false;\n return true;\n }\n}\n\n/** A RenderPlan holds a Frustum and the render settings for displaying a RenderScene into a RenderTarget. */\nexport interface RenderPlan {\n readonly is3d: boolean;\n readonly viewFlags: ViewFlags;\n readonly bgColor: ColorDef;\n readonly monoColor: ColorDef;\n readonly monochromeMode: MonochromeMode;\n readonly hiliteSettings: Hilite.Settings;\n readonly emphasisSettings: Hilite.Settings;\n readonly flashSettings: FlashSettings;\n readonly clip?: ClipVector;\n readonly clipStyle: ClipStyle;\n readonly hline?: HiddenLine.Settings;\n readonly analysisStyle?: AnalysisStyle;\n readonly ao?: AmbientOcclusion.Settings;\n readonly thematic?: ThematicDisplay;\n readonly contours?: ContourDisplay;\n readonly atmosphere?: Atmosphere.Settings;\n readonly isFadeOutActive: boolean;\n readonly analysisTexture?: RenderTexture;\n readonly frustum: Frustum;\n readonly fraction: number;\n readonly globalViewTransition: number;\n readonly isGlobeMode3D: boolean;\n readonly backgroundMapOn: boolean;\n readonly upVector: Vector3d;\n readonly lights?: LightSettings;\n readonly whiteOnWhiteReversal: WhiteOnWhiteReversalSettings;\n readonly ellipsoid?: RenderPlanEllipsoid;\n}\n\nexport function createEmptyRenderPlan(): RenderPlan {\n return {\n is3d: true,\n viewFlags: new ViewFlags(),\n bgColor: ColorDef.white,\n monoColor: ColorDef.white,\n monochromeMode: MonochromeMode.Scaled,\n hiliteSettings: new Hilite.Settings(),\n emphasisSettings: new Hilite.Settings(),\n flashSettings: new FlashSettings(),\n clipStyle: ClipStyle.defaults,\n frustum: new Frustum(),\n fraction: 0,\n isFadeOutActive: false,\n globalViewTransition: 0,\n isGlobeMode3D: false,\n backgroundMapOn: false,\n upVector: Vector3d.unitZ(),\n whiteOnWhiteReversal: WhiteOnWhiteReversalSettings.fromJSON(),\n };\n}\n\nexport function createRenderPlanFromViewport(vp: Viewport): RenderPlan {\n const view = vp.view;\n const style = view.displayStyle;\n\n const is3d = view.is3d();\n\n const globalViewTransition = view.is3d() ? view.globalViewTransition() : 0.0;\n const isGlobeMode3D = GlobeMode.Ellipsoid === view.globeMode;\n const backgroundMapOn = view.displayStyle.viewFlags.backgroundMap;\n const frustum = vp.viewingSpace.getFrustum();\n const fraction = vp.viewingSpace.frustFraction;\n const viewFlags = style.viewFlags;\n\n const bgColor = view.backgroundColor;\n const monoColor = style.monochromeColor;\n const monochromeMode = style.settings.monochromeMode;\n\n const hiliteSettings = vp.hilite;\n const emphasisSettings = vp.emphasisSettings;\n const flashSettings = vp.flashSettings;\n const lights = vp.lightSettings;\n\n const isFadeOutActive = vp.isFadeOutActive;\n const clip = view.getViewClip();\n const clipStyle = view.displayStyle.settings.clipStyle;\n const hline = style.is3d() ? style.settings.hiddenLineSettings : undefined;\n const ao = style.is3d() ? style.settings.ambientOcclusionSettings : undefined;\n const analysisStyle = style.settings.analysisStyle;\n const thematic = (style.is3d() && view.displayStyle.viewFlags.thematicDisplay) ? style.settings.thematic : undefined;\n const contours = (style.is3d() && style.settings.contours.groups.length > 0) ? style.settings.contours : undefined;\n const shouldDisplayAtmosphere = (style.is3d() && GlobeMode.Ellipsoid === view.globeMode && vp.iModel.isGeoLocated && style.viewFlags.backgroundMap) ? (vp.view as ViewState3d).getDisplayStyle3d().environment.displayAtmosphere : false;\n const atmosphere = shouldDisplayAtmosphere ? (vp.view as ViewState3d).getDisplayStyle3d().environment.atmosphere : undefined;\n\n let upVector;\n if (GlobeMode.Ellipsoid === view.globeMode) {\n const lb = frustum.getCorner(Npc.LeftBottomRear).interpolate(0.5, frustum.getCorner(Npc.LeftBottomFront), scratchPoint3a);\n const rt = frustum.getCorner(Npc.RightTopRear).interpolate(0.5, frustum.getCorner(Npc.RightTopFront), scratchPoint3b);\n const cntr = lb.interpolate(0.5, rt, scratchPoint3c);\n upVector = view.getUpVector(cntr);\n } else {\n upVector = Vector3d.unitZ();\n }\n\n let analysisTexture;\n if (analysisStyle?.thematic)\n analysisTexture = vp.target.renderSystem.getGradientTexture(analysisStyle.thematic.gradient, vp.iModel);\n\n let ellipsoid: RenderPlanEllipsoid | undefined;\n if (GlobeMode.Ellipsoid === view.globeMode) {\n const mapEcefToDb = view.iModel.getMapEcefToDb(0);\n ellipsoid = new RenderPlanEllipsoid(\n Point3d.fromJSON(mapEcefToDb.origin),\n mapEcefToDb.matrix,\n Point3d.fromJSON({ x: Constant.earthRadiusWGS84.equator, y: Constant.earthRadiusWGS84.equator, z: Constant.earthRadiusWGS84.polar }),\n );\n }\n\n return {\n is3d,\n viewFlags,\n bgColor,\n monoColor,\n monochromeMode,\n hiliteSettings,\n emphasisSettings,\n flashSettings,\n clip,\n clipStyle,\n hline,\n analysisStyle,\n ao,\n thematic,\n contours,\n atmosphere,\n isFadeOutActive,\n analysisTexture,\n frustum,\n fraction,\n globalViewTransition,\n isGlobeMode3D,\n backgroundMapOn,\n upVector,\n lights,\n whiteOnWhiteReversal: vp.displayStyle.settings.whiteOnWhiteReversal,\n ellipsoid,\n };\n}\n"]}
1
+ {"version":3,"file":"RenderPlan.js","sourceRoot":"","sources":["../../../../src/internal/render/RenderPlan.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport {\n AmbientOcclusion, AnalysisStyle, Atmosphere, ClipStyle, ColorDef, ContourDisplay, Frustum, GlobeMode, HiddenLine, Hilite, LightSettings, MonochromeMode, Npc,\n RenderTexture, ThematicDisplay, ViewFlags, WhiteOnWhiteReversalSettings,\n} from \"@itwin/core-common\";\nimport { ClipVector, Constant, Matrix3d, Point3d, Vector3d } from \"@itwin/core-geometry\";\nimport { FlashSettings } from \"../../FlashSettings\";\nimport { Viewport } from \"../../Viewport\";\nimport { ViewState3d } from \"../../ViewState\";\n\nconst scratchPoint3a = new Point3d();\nconst scratchPoint3b = new Point3d();\nconst scratchPoint3c = new Point3d();\n\nexport class RenderPlanEllipsoid {\n public readonly ellipsoidCenter: Point3d;\n public readonly ellipsoidRotation: Matrix3d;\n public readonly ellipsoidRadii: Point3d;\n\n constructor(ellipsoidCenter: Point3d, ellipsoidRotation: Matrix3d, ellipsoidRadii: Point3d) {\n this.ellipsoidCenter = ellipsoidCenter;\n this.ellipsoidRotation = ellipsoidRotation;\n this.ellipsoidRadii = ellipsoidRadii;\n }\n\n public equals(other: RenderPlanEllipsoid): boolean {\n if (this.ellipsoidCenter.isAlmostEqual(other.ellipsoidCenter))\n return false;\n if (this.ellipsoidRotation.isAlmostEqual(other.ellipsoidRotation))\n return false;\n if (this.ellipsoidRadii.isAlmostEqual(other.ellipsoidRadii))\n return false;\n return true;\n }\n}\n\n/** A RenderPlan holds a Frustum and the render settings for displaying a RenderScene into a RenderTarget.\n * @internal\n */\nexport interface RenderPlan {\n readonly is3d: boolean;\n readonly viewFlags: ViewFlags;\n readonly bgColor: ColorDef;\n readonly monoColor: ColorDef;\n readonly monochromeMode: MonochromeMode;\n readonly hiliteSettings: Hilite.Settings;\n readonly emphasisSettings: Hilite.Settings;\n readonly flashSettings: FlashSettings;\n readonly clip?: ClipVector;\n readonly clipStyle: ClipStyle;\n readonly hline?: HiddenLine.Settings;\n readonly analysisStyle?: AnalysisStyle;\n readonly ao?: AmbientOcclusion.Settings;\n readonly thematic?: ThematicDisplay;\n readonly contours?: ContourDisplay;\n readonly atmosphere?: Atmosphere.Settings;\n readonly isFadeOutActive: boolean;\n readonly analysisTexture?: RenderTexture;\n readonly frustum: Frustum;\n readonly fraction: number;\n readonly globalViewTransition: number;\n readonly isGlobeMode3D: boolean;\n readonly backgroundMapOn: boolean;\n readonly upVector: Vector3d;\n readonly lights?: LightSettings;\n readonly whiteOnWhiteReversal: WhiteOnWhiteReversalSettings;\n readonly ellipsoid?: RenderPlanEllipsoid;\n}\n\nexport function createEmptyRenderPlan(): RenderPlan {\n return {\n is3d: true,\n viewFlags: new ViewFlags(),\n bgColor: ColorDef.white,\n monoColor: ColorDef.white,\n monochromeMode: MonochromeMode.Scaled,\n hiliteSettings: new Hilite.Settings(),\n emphasisSettings: new Hilite.Settings(),\n flashSettings: new FlashSettings(),\n clipStyle: ClipStyle.defaults,\n frustum: new Frustum(),\n fraction: 0,\n isFadeOutActive: false,\n globalViewTransition: 0,\n isGlobeMode3D: false,\n backgroundMapOn: false,\n upVector: Vector3d.unitZ(),\n whiteOnWhiteReversal: WhiteOnWhiteReversalSettings.fromJSON(),\n };\n}\n\nexport function createRenderPlanFromViewport(vp: Viewport): RenderPlan {\n const view = vp.view;\n const style = view.displayStyle;\n\n const is3d = view.is3d();\n\n const globalViewTransition = view.is3d() ? view.globalViewTransition() : 0.0;\n const isGlobeMode3D = GlobeMode.Ellipsoid === view.globeMode;\n const backgroundMapOn = view.displayStyle.viewFlags.backgroundMap;\n const frustum = vp.viewingSpace.getFrustum();\n const fraction = vp.viewingSpace.frustFraction;\n const viewFlags = style.viewFlags;\n\n const bgColor = view.backgroundColor;\n const monoColor = style.monochromeColor;\n const monochromeMode = style.settings.monochromeMode;\n\n const hiliteSettings = vp.hilite;\n const emphasisSettings = vp.emphasisSettings;\n const flashSettings = vp.flashSettings;\n const lights = vp.lightSettings;\n\n const isFadeOutActive = vp.isFadeOutActive;\n const clip = view.getViewClip();\n const clipStyle = view.displayStyle.settings.clipStyle;\n const hline = style.is3d() ? style.settings.hiddenLineSettings : undefined;\n const ao = style.is3d() ? style.settings.ambientOcclusionSettings : undefined;\n const analysisStyle = style.settings.analysisStyle;\n const thematic = (style.is3d() && view.displayStyle.viewFlags.thematicDisplay) ? style.settings.thematic : undefined;\n const contours = (style.is3d() && style.settings.contours.groups.length > 0) ? style.settings.contours : undefined;\n const shouldDisplayAtmosphere = (style.is3d() && GlobeMode.Ellipsoid === view.globeMode && vp.iModel.isGeoLocated && style.viewFlags.backgroundMap) ? (vp.view as ViewState3d).getDisplayStyle3d().environment.displayAtmosphere : false;\n const atmosphere = shouldDisplayAtmosphere ? (vp.view as ViewState3d).getDisplayStyle3d().environment.atmosphere : undefined;\n\n let upVector;\n if (GlobeMode.Ellipsoid === view.globeMode) {\n const lb = frustum.getCorner(Npc.LeftBottomRear).interpolate(0.5, frustum.getCorner(Npc.LeftBottomFront), scratchPoint3a);\n const rt = frustum.getCorner(Npc.RightTopRear).interpolate(0.5, frustum.getCorner(Npc.RightTopFront), scratchPoint3b);\n const cntr = lb.interpolate(0.5, rt, scratchPoint3c);\n upVector = view.getUpVector(cntr);\n } else {\n upVector = Vector3d.unitZ();\n }\n\n let analysisTexture;\n if (analysisStyle?.thematic)\n analysisTexture = vp.target.renderSystem.getGradientTexture(analysisStyle.thematic.gradient, vp.iModel);\n\n let ellipsoid: RenderPlanEllipsoid | undefined;\n if (GlobeMode.Ellipsoid === view.globeMode) {\n const mapEcefToDb = view.iModel.getMapEcefToDb(0);\n ellipsoid = new RenderPlanEllipsoid(\n Point3d.fromJSON(mapEcefToDb.origin),\n mapEcefToDb.matrix,\n Point3d.fromJSON({ x: Constant.earthRadiusWGS84.equator, y: Constant.earthRadiusWGS84.equator, z: Constant.earthRadiusWGS84.polar }),\n );\n }\n\n return {\n is3d,\n viewFlags,\n bgColor,\n monoColor,\n monochromeMode,\n hiliteSettings,\n emphasisSettings,\n flashSettings,\n clip,\n clipStyle,\n hline,\n analysisStyle,\n ao,\n thematic,\n contours,\n atmosphere,\n isFadeOutActive,\n analysisTexture,\n frustum,\n fraction,\n globalViewTransition,\n isGlobeMode3D,\n backgroundMapOn,\n upVector,\n lights,\n whiteOnWhiteReversal: vp.displayStyle.settings.whiteOnWhiteReversal,\n ellipsoid,\n };\n}\n"]}
@@ -32,7 +32,6 @@ export declare class FrustumUniforms {
32
32
  private readonly _viewUpVector;
33
33
  private readonly _planeData;
34
34
  private readonly _frustumData;
35
- private readonly _worldFrustumZRange;
36
35
  readonly projectionMatrix32: Matrix4;
37
36
  private readonly _logZData;
38
37
  private readonly _viewUpVector32;
@@ -43,7 +42,6 @@ export declare class FrustumUniforms {
43
42
  bindUpVector(uniform: UniformHandle): void;
44
43
  get planes(): Float32Array;
45
44
  get frustum(): Float32Array;
46
- get worldFrustumZRange(): Float32Array;
47
45
  get nearPlane(): number;
48
46
  get farPlane(): number;
49
47
  get type(): FrustumUniformType;
@@ -1 +1 @@
1
- {"version":3,"file":"FrustumUniforms.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/FrustumUniforms.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAW,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAO,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,gBAAgB;AAChB,0BAAkB,kBAAkB;IAClC,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,WAAW,IAAA;CACZ;AAED,gBAAgB;AAChB,0BAAkB,KAAK;IACrB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,KAAK,IAAA;IACL,MAAM,IAAA;CACP;AAQD;;;GAGG;AACH,qBAAa,eAAe;IAE1B,SAAgB,WAAW,UAAiB;IAC5C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,SAAgB,UAAU,YAA8B;IACxD,SAAgB,gBAAgB,WAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAGlD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqC;IACzE,SAAgB,kBAAkB,UAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAGhD,OAAO,SAAK;IAGnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAOvB;;IAKK,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKlD,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMjD,IAAW,MAAM,IAAI,YAAY,CAA4B;IAG7D,IAAW,OAAO,IAAI,YAAY,CAA8B;IAGhE,IAAW,kBAAkB,IAAI,YAAY,CAAqC;IAElF,IAAW,SAAS,IAAI,MAAM,CAAiD;IAC/E,IAAW,QAAQ,IAAI,MAAM,CAAgD;IAC7E,IAAW,IAAI,IAAI,kBAAkB,CAAkE;IACvG,IAAW,IAAI,IAAI,OAAO,CAAoD;IAC9E,IAAW,YAAY,IAAI,MAAM,CAA+B;IAGhE,IAAW,IAAI,IAAI,YAAY,CAA2B;IAEnD,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IA2F5E,sBAAsB,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAMxD,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOnF,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAS1F;AAWD,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,WAM9E"}
1
+ {"version":3,"file":"FrustumUniforms.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/FrustumUniforms.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAsB,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAO,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,gBAAgB;AAChB,0BAAkB,kBAAkB;IAClC,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,WAAW,IAAA;CACZ;AAED,gBAAgB;AAChB,0BAAkB,KAAK;IACrB,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,KAAK,IAAA;IACL,MAAM,IAAA;CACP;AAQD;;;GAGG;AACH,qBAAa,eAAe;IAE1B,SAAgB,WAAW,UAAiB;IAC5C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,SAAgB,UAAU,YAA8B;IACxD,SAAgB,gBAAgB,WAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAGlD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAClE,SAAgB,kBAAkB,UAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAGhD,OAAO,SAAK;IAGnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMvB;;IAKK,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKlD,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAMjD,IAAW,MAAM,IAAI,YAAY,CAA4B;IAG7D,IAAW,OAAO,IAAI,YAAY,CAA8B;IAEhE,IAAW,SAAS,IAAI,MAAM,CAAiD;IAC/E,IAAW,QAAQ,IAAI,MAAM,CAAgD;IAC7E,IAAW,IAAI,IAAI,kBAAkB,CAAkE;IACvG,IAAW,IAAI,IAAI,OAAO,CAAoD;IAC9E,IAAW,YAAY,IAAI,MAAM,CAA+B;IAGhE,IAAW,IAAI,IAAI,YAAY,CAA2B;IAEnD,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAuF5E,sBAAsB,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAMxD,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOnF,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAS1F;AAWD,gBAAgB;AAChB,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,WAM9E"}
@@ -6,7 +6,7 @@
6
6
  * @module WebGL
7
7
  */
8
8
  import { expectDefined } from "@itwin/core-bentley";
9
- import { InverseMatrixState, Matrix4d, Point3d, Range3d, Transform, Vector3d } from "@itwin/core-geometry";
9
+ import { InverseMatrixState, Matrix4d, Point3d, Transform, Vector3d } from "@itwin/core-geometry";
10
10
  import { Frustum, Npc } from "@itwin/core-common";
11
11
  import { IModelFrameLifecycle } from "./IModelFrameLifecycle";
12
12
  import { Matrix4 } from "./Matrix";
@@ -27,7 +27,6 @@ export class FrustumUniforms {
27
27
  // GPU state
28
28
  _planeData = new Float32Array(4);
29
29
  _frustumData = new Float32Array(3);
30
- _worldFrustumZRange = new Float32Array(2);
31
30
  projectionMatrix32 = new Matrix4();
32
31
  _logZData = new Float32Array(2);
33
32
  _viewUpVector32 = new Float32Array(3);
@@ -40,7 +39,6 @@ export class FrustumUniforms {
40
39
  viewX: new Vector3d(),
41
40
  viewY: new Vector3d(),
42
41
  viewZ: new Vector3d(),
43
- range: new Range3d(),
44
42
  };
45
43
  constructor() {
46
44
  }
@@ -56,8 +54,6 @@ export class FrustumUniforms {
56
54
  get planes() { return this._planeData; }
57
55
  // uniform vec3 u_frustum; // { near, far, type }
58
56
  get frustum() { return this._frustumData; }
59
- // uniform vec2 u_worldFrustumZRange // { min, max }
60
- get worldFrustumZRange() { return this._worldFrustumZRange; }
61
57
  get nearPlane() { return this._frustumData[0 /* FrustumData.kNear */]; }
62
58
  get farPlane() { return this._frustumData[1 /* FrustumData.kFar */]; }
63
59
  get type() { return this.frustum[2 /* FrustumData.kType */]; }
@@ -70,9 +66,6 @@ export class FrustumUniforms {
70
66
  return;
71
67
  desync(this);
72
68
  newFrustum.clone(this.planFrustum);
73
- const range = newFrustum.toRange(this._scratch.range);
74
- this._worldFrustumZRange[0] = range.low.z;
75
- this._worldFrustumZRange[1] = range.high.z;
76
69
  const farLowerLeft = newFrustum.getCorner(Npc.LeftBottomRear);
77
70
  const farLowerRight = newFrustum.getCorner(Npc.RightBottomRear);
78
71
  const farUpperLeft = newFrustum.getCorner(Npc.LeftTopRear);
@@ -1 +1 @@
1
- {"version":3,"file":"FrustumUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/FrustumUniforms.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { expectDefined } from \"@itwin/core-bentley\";\nimport { InverseMatrixState, Matrix4d, Point3d, Range3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { Frustum, Npc } from \"@itwin/core-common\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { IModelFrameLifecycle } from \"./IModelFrameLifecycle\";\nimport { Matrix4 } from \"./Matrix\";\nimport { desync, sync } from \"./Sync\";\n\n/** @internal */\nexport const enum FrustumUniformType { // eslint-disable-line no-restricted-syntax\n TwoDee,\n Orthographic,\n Perspective,\n}\n\n/** @internal */\nexport const enum Plane { // eslint-disable-line no-restricted-syntax\n kTop,\n kBottom,\n kLeft,\n kRight,\n}\n\nconst enum FrustumData { // eslint-disable-line no-restricted-syntax\n kNear,\n kFar,\n kType,\n}\n\n/** Represents a Target's frustum for use in glsl as a pair of uniforms.\n * Do not modify fields of exposed objects directly. e.g., do not directly manipulate the projection or view matrices - use the appropriate APIs.\n * @internal\n */\nexport class FrustumUniforms {\n // CPU state. Do not modify - use APIs.\n public readonly planFrustum = new Frustum();\n private _planFraction = 0;\n private readonly _nearPlaneCenter = new Point3d();\n public readonly viewMatrix = Transform.createIdentity();\n public readonly projectionMatrix = Matrix4d.createIdentity();\n private readonly _worldUpVector = Vector3d.unitZ();\n private readonly _viewUpVector = Vector3d.unitZ();\n\n // GPU state\n private readonly _planeData: Float32Array = new Float32Array(4);\n private readonly _frustumData: Float32Array = new Float32Array(3);\n private readonly _worldFrustumZRange: Float32Array = new Float32Array(2);\n public readonly projectionMatrix32 = new Matrix4();\n private readonly _logZData = new Float32Array(2);\n private readonly _viewUpVector32 = new Float32Array(3);\n\n // SyncTarget\n public syncKey = 0;\n\n // Scratch variables\n private readonly _scratch = {\n point3d: new Point3d(),\n vec3d: new Vector3d(),\n viewX: new Vector3d(),\n viewY: new Vector3d(),\n viewZ: new Vector3d(),\n range: new Range3d(),\n };\n\n public constructor() {\n }\n\n public bindProjectionMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix4(this.projectionMatrix32);\n }\n\n public bindUpVector(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setUniform3fv(this._viewUpVector32);\n }\n\n // uniform vec4 u_frustumPlanes; // { top, bottom, left, right }\n public get planes(): Float32Array { return this._planeData; }\n\n // uniform vec3 u_frustum; // { near, far, type }\n public get frustum(): Float32Array { return this._frustumData; }\n\n // uniform vec2 u_worldFrustumZRange // { min, max }\n public get worldFrustumZRange(): Float32Array { return this._worldFrustumZRange; }\n\n public get nearPlane(): number { return this._frustumData[FrustumData.kNear]; }\n public get farPlane(): number { return this._frustumData[FrustumData.kFar]; }\n public get type(): FrustumUniformType { return this.frustum[FrustumData.kType] as FrustumUniformType; }\n public get is2d(): boolean { return FrustumUniformType.TwoDee === this.type; }\n public get planFraction(): number { return this._planFraction; }\n\n // uniform vec2 u_logZ where x = 1/near and y = log(far/near)\n public get logZ(): Float32Array { return this._logZData; }\n\n public changeFrustum(newFrustum: Frustum, newFraction: number, is3d: boolean): void {\n if (newFraction === this._planFraction && is3d !== this.is2d && newFrustum.equals(this.planFrustum))\n return;\n\n desync(this);\n\n newFrustum.clone(this.planFrustum);\n\n const range = newFrustum.toRange(this._scratch.range);\n this._worldFrustumZRange[0] = range.low.z;\n this._worldFrustumZRange[1] = range.high.z;\n\n const farLowerLeft = newFrustum.getCorner(Npc.LeftBottomRear);\n const farLowerRight = newFrustum.getCorner(Npc.RightBottomRear);\n const farUpperLeft = newFrustum.getCorner(Npc.LeftTopRear);\n const farUpperRight = newFrustum.getCorner(Npc.RightTopRear);\n const nearLowerLeft = newFrustum.getCorner(Npc.LeftBottomFront);\n const nearLowerRight = newFrustum.getCorner(Npc.RightBottomFront);\n const nearUpperLeft = newFrustum.getCorner(Npc.LeftTopFront);\n const nearUpperRight = newFrustum.getCorner(Npc.RightTopFront);\n\n const nearCenter = nearLowerLeft.interpolate(0.5, nearUpperRight, this._scratch.point3d);\n\n const viewX = normalizedDifference(nearLowerRight, nearLowerLeft, this._scratch.viewX);\n const viewY = normalizedDifference(nearUpperLeft, nearLowerLeft, this._scratch.viewY);\n const viewZ = expectDefined(viewX.crossProduct(viewY, this._scratch.viewZ).normalize());\n\n this._planFraction = newFraction;\n\n if (!is3d || newFraction > 0.999) { // ortho or 2d\n const halfWidth = Vector3d.createStartEnd(farLowerRight, farLowerLeft, this._scratch.vec3d).magnitude() * 0.5;\n const halfHeight = Vector3d.createStartEnd(farLowerRight, farUpperRight).magnitude() * 0.5;\n const depth = Vector3d.createStartEnd(farLowerLeft, nearLowerLeft, this._scratch.vec3d).magnitude();\n\n lookIn(nearCenter, viewX, viewY, viewZ, this.viewMatrix);\n ortho(-halfWidth, halfWidth, -halfHeight, halfHeight, 0, depth, this.projectionMatrix);\n\n this._nearPlaneCenter.setFrom(nearLowerLeft);\n this._nearPlaneCenter.interpolate(0.5, nearUpperRight, this._nearPlaneCenter);\n\n this.setPlanes(halfHeight, -halfHeight, -halfWidth, halfWidth);\n this.setFrustum(0, depth, is3d ? FrustumUniformType.Orthographic : FrustumUniformType.TwoDee);\n } else { // perspective\n const scale = 1.0 / (1.0 - newFraction);\n const zVec = Vector3d.createStartEnd(farLowerLeft, nearLowerLeft, this._scratch.vec3d);\n const cameraPosition = fromSumOf(farLowerLeft, zVec, scale, this._scratch.point3d);\n\n const frustumLeft = dotDifference(farLowerLeft, cameraPosition, viewX) * newFraction;\n const frustumRight = dotDifference(farLowerRight, cameraPosition, viewX) * newFraction;\n const frustumBottom = dotDifference(farLowerLeft, cameraPosition, viewY) * newFraction;\n const frustumTop = dotDifference(farUpperLeft, cameraPosition, viewY) * newFraction;\n const frustumFront = -dotDifference(nearLowerLeft, cameraPosition, viewZ);\n const frustumBack = -dotDifference(farLowerLeft, cameraPosition, viewZ);\n\n lookIn(cameraPosition, viewX, viewY, viewZ, this.viewMatrix);\n frustum(frustumLeft, frustumRight, frustumBottom, frustumTop, frustumFront, frustumBack, this.projectionMatrix);\n\n IModelFrameLifecycle.onChangeCameraView.raiseEvent({\n cameraPosition,\n viewX,\n viewY,\n viewZ,\n });\n IModelFrameLifecycle.onChangeCameraFrustum.raiseEvent({\n type: FrustumUniformType.Perspective,\n left: frustumLeft,\n right: frustumRight,\n bottom: frustumBottom,\n top: frustumTop,\n front: frustumFront,\n back: frustumBack,\n });\n\n this._nearPlaneCenter.setFrom(nearLowerLeft);\n this._nearPlaneCenter.interpolate(0.5, nearUpperRight, this._nearPlaneCenter);\n\n this.setPlanes(frustumTop, frustumBottom, frustumLeft, frustumRight);\n this.setFrustum(frustumFront, frustumBack, FrustumUniformType.Perspective);\n }\n\n this.viewMatrix.matrix.inverseState = InverseMatrixState.unknown;\n\n this.viewMatrix.matrix.multiplyVector(this._worldUpVector, this._viewUpVector);\n this._viewUpVector.normalizeInPlace();\n this._viewUpVector32[0] = this._viewUpVector.x;\n this._viewUpVector32[1] = this._viewUpVector.y;\n this._viewUpVector32[2] = this._viewUpVector.z;\n\n this.projectionMatrix32.initFromMatrix4d(this.projectionMatrix);\n }\n\n public changeProjectionMatrix(newMatrix: Matrix4d): void {\n desync(this);\n this.projectionMatrix.setFrom(newMatrix);\n this.projectionMatrix32.initFromMatrix4d(this.projectionMatrix);\n }\n\n protected setPlanes(top: number, bottom: number, left: number, right: number): void {\n this._planeData[Plane.kTop] = top;\n this._planeData[Plane.kBottom] = bottom;\n this._planeData[Plane.kLeft] = left;\n this._planeData[Plane.kRight] = right;\n }\n\n protected setFrustum(nearPlane: number, farPlane: number, type: FrustumUniformType): void {\n this._frustumData[FrustumData.kNear] = nearPlane;\n this._frustumData[FrustumData.kFar] = farPlane;\n this._frustumData[FrustumData.kType] = type as number;\n\n // If nearPlane is zero, we don't have a camera (or got very unlucky); in that case shader will compute linear depth.\n this._logZData[0] = 0 !== nearPlane ? 1 / nearPlane : 0;\n this._logZData[1] = 0 !== nearPlane ? Math.log(farPlane / nearPlane) : farPlane;\n }\n}\n\nfunction normalizedDifference(p0: Point3d, p1: Point3d, out?: Vector3d): Vector3d {\n const result = undefined !== out ? out : new Vector3d();\n result.x = p0.x - p1.x;\n result.y = p0.y - p1.y;\n result.z = p0.z - p1.z;\n result.normalizeInPlace();\n return result;\n}\n\n/** @internal */\nexport function fromSumOf(p: Point3d, v: Vector3d, scale: number, out?: Point3d) {\n const result = undefined !== out ? out : new Point3d();\n result.x = p.x + v.x * scale;\n result.y = p.y + v.y * scale;\n result.z = p.z + v.z * scale;\n return result;\n}\n\nfunction dotDifference(pt: Point3d, origin: Point3d, vec: Vector3d): number {\n return (pt.x - origin.x) * vec.x + (pt.y - origin.y) * vec.y + (pt.z - origin.z) * vec.z;\n}\n\nfunction lookIn(eye: Point3d, viewX: Vector3d, viewY: Vector3d, viewZ: Vector3d, result: Transform) {\n const rot = result.matrix.coffs;\n rot[0] = viewX.x;\n rot[1] = viewX.y;\n rot[2] = viewX.z;\n rot[3] = viewY.x;\n rot[4] = viewY.y;\n rot[5] = viewY.z;\n rot[6] = viewZ.x;\n rot[7] = viewZ.y;\n rot[8] = viewZ.z;\n\n result.origin.x = -viewX.dotProduct(eye);\n result.origin.y = -viewY.dotProduct(eye);\n result.origin.z = -viewZ.dotProduct(eye);\n}\n\nfunction ortho(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4d) {\n Matrix4d.createRowValues(\n 2.0 / (right - left), 0.0, 0.0, -(right + left) / (right - left),\n 0.0, 2.0 / (top - bottom), 0.0, -(top + bottom) / (top - bottom),\n 0.0, 0.0, -2.0 / (far - near), -(far + near) / (far - near),\n 0.0, 0.0, 0.0, 1.0,\n result);\n}\n\nfunction frustum(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4d) {\n Matrix4d.createRowValues(\n (2.0 * near) / (right - left), 0.0, (right + left) / (right - left), 0.0,\n 0.0, (2.0 * near) / (top - bottom), (top + bottom) / (top - bottom), 0.0,\n 0.0, 0.0, -(far + near) / (far - near), -(2.0 * far * near) / (far - near),\n 0.0, 0.0, -1.0, 0.0,\n result);\n}\n"]}
1
+ {"version":3,"file":"FrustumUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/FrustumUniforms.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { expectDefined } from \"@itwin/core-bentley\";\nimport { InverseMatrixState, Matrix4d, Point3d, Transform, Vector3d } from \"@itwin/core-geometry\";\nimport { Frustum, Npc } from \"@itwin/core-common\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { IModelFrameLifecycle } from \"./IModelFrameLifecycle\";\nimport { Matrix4 } from \"./Matrix\";\nimport { desync, sync } from \"./Sync\";\n\n/** @internal */\nexport const enum FrustumUniformType { // eslint-disable-line no-restricted-syntax\n TwoDee,\n Orthographic,\n Perspective,\n}\n\n/** @internal */\nexport const enum Plane { // eslint-disable-line no-restricted-syntax\n kTop,\n kBottom,\n kLeft,\n kRight,\n}\n\nconst enum FrustumData { // eslint-disable-line no-restricted-syntax\n kNear,\n kFar,\n kType,\n}\n\n/** Represents a Target's frustum for use in glsl as a pair of uniforms.\n * Do not modify fields of exposed objects directly. e.g., do not directly manipulate the projection or view matrices - use the appropriate APIs.\n * @internal\n */\nexport class FrustumUniforms {\n // CPU state. Do not modify - use APIs.\n public readonly planFrustum = new Frustum();\n private _planFraction = 0;\n private readonly _nearPlaneCenter = new Point3d();\n public readonly viewMatrix = Transform.createIdentity();\n public readonly projectionMatrix = Matrix4d.createIdentity();\n private readonly _worldUpVector = Vector3d.unitZ();\n private readonly _viewUpVector = Vector3d.unitZ();\n\n // GPU state\n private readonly _planeData: Float32Array = new Float32Array(4);\n private readonly _frustumData: Float32Array = new Float32Array(3);\n public readonly projectionMatrix32 = new Matrix4();\n private readonly _logZData = new Float32Array(2);\n private readonly _viewUpVector32 = new Float32Array(3);\n\n // SyncTarget\n public syncKey = 0;\n\n // Scratch variables\n private readonly _scratch = {\n point3d: new Point3d(),\n vec3d: new Vector3d(),\n viewX: new Vector3d(),\n viewY: new Vector3d(),\n viewZ: new Vector3d(),\n };\n\n public constructor() {\n }\n\n public bindProjectionMatrix(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setMatrix4(this.projectionMatrix32);\n }\n\n public bindUpVector(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n uniform.setUniform3fv(this._viewUpVector32);\n }\n\n // uniform vec4 u_frustumPlanes; // { top, bottom, left, right }\n public get planes(): Float32Array { return this._planeData; }\n\n // uniform vec3 u_frustum; // { near, far, type }\n public get frustum(): Float32Array { return this._frustumData; }\n\n public get nearPlane(): number { return this._frustumData[FrustumData.kNear]; }\n public get farPlane(): number { return this._frustumData[FrustumData.kFar]; }\n public get type(): FrustumUniformType { return this.frustum[FrustumData.kType] as FrustumUniformType; }\n public get is2d(): boolean { return FrustumUniformType.TwoDee === this.type; }\n public get planFraction(): number { return this._planFraction; }\n\n // uniform vec2 u_logZ where x = 1/near and y = log(far/near)\n public get logZ(): Float32Array { return this._logZData; }\n\n public changeFrustum(newFrustum: Frustum, newFraction: number, is3d: boolean): void {\n if (newFraction === this._planFraction && is3d !== this.is2d && newFrustum.equals(this.planFrustum))\n return;\n\n desync(this);\n\n newFrustum.clone(this.planFrustum);\n\n const farLowerLeft = newFrustum.getCorner(Npc.LeftBottomRear);\n const farLowerRight = newFrustum.getCorner(Npc.RightBottomRear);\n const farUpperLeft = newFrustum.getCorner(Npc.LeftTopRear);\n const farUpperRight = newFrustum.getCorner(Npc.RightTopRear);\n const nearLowerLeft = newFrustum.getCorner(Npc.LeftBottomFront);\n const nearLowerRight = newFrustum.getCorner(Npc.RightBottomFront);\n const nearUpperLeft = newFrustum.getCorner(Npc.LeftTopFront);\n const nearUpperRight = newFrustum.getCorner(Npc.RightTopFront);\n\n const nearCenter = nearLowerLeft.interpolate(0.5, nearUpperRight, this._scratch.point3d);\n\n const viewX = normalizedDifference(nearLowerRight, nearLowerLeft, this._scratch.viewX);\n const viewY = normalizedDifference(nearUpperLeft, nearLowerLeft, this._scratch.viewY);\n const viewZ = expectDefined(viewX.crossProduct(viewY, this._scratch.viewZ).normalize());\n\n this._planFraction = newFraction;\n\n if (!is3d || newFraction > 0.999) { // ortho or 2d\n const halfWidth = Vector3d.createStartEnd(farLowerRight, farLowerLeft, this._scratch.vec3d).magnitude() * 0.5;\n const halfHeight = Vector3d.createStartEnd(farLowerRight, farUpperRight).magnitude() * 0.5;\n const depth = Vector3d.createStartEnd(farLowerLeft, nearLowerLeft, this._scratch.vec3d).magnitude();\n\n lookIn(nearCenter, viewX, viewY, viewZ, this.viewMatrix);\n ortho(-halfWidth, halfWidth, -halfHeight, halfHeight, 0, depth, this.projectionMatrix);\n\n this._nearPlaneCenter.setFrom(nearLowerLeft);\n this._nearPlaneCenter.interpolate(0.5, nearUpperRight, this._nearPlaneCenter);\n\n this.setPlanes(halfHeight, -halfHeight, -halfWidth, halfWidth);\n this.setFrustum(0, depth, is3d ? FrustumUniformType.Orthographic : FrustumUniformType.TwoDee);\n } else { // perspective\n const scale = 1.0 / (1.0 - newFraction);\n const zVec = Vector3d.createStartEnd(farLowerLeft, nearLowerLeft, this._scratch.vec3d);\n const cameraPosition = fromSumOf(farLowerLeft, zVec, scale, this._scratch.point3d);\n\n const frustumLeft = dotDifference(farLowerLeft, cameraPosition, viewX) * newFraction;\n const frustumRight = dotDifference(farLowerRight, cameraPosition, viewX) * newFraction;\n const frustumBottom = dotDifference(farLowerLeft, cameraPosition, viewY) * newFraction;\n const frustumTop = dotDifference(farUpperLeft, cameraPosition, viewY) * newFraction;\n const frustumFront = -dotDifference(nearLowerLeft, cameraPosition, viewZ);\n const frustumBack = -dotDifference(farLowerLeft, cameraPosition, viewZ);\n\n lookIn(cameraPosition, viewX, viewY, viewZ, this.viewMatrix);\n frustum(frustumLeft, frustumRight, frustumBottom, frustumTop, frustumFront, frustumBack, this.projectionMatrix);\n\n IModelFrameLifecycle.onChangeCameraView.raiseEvent({\n cameraPosition,\n viewX,\n viewY,\n viewZ,\n });\n IModelFrameLifecycle.onChangeCameraFrustum.raiseEvent({\n type: FrustumUniformType.Perspective,\n left: frustumLeft,\n right: frustumRight,\n bottom: frustumBottom,\n top: frustumTop,\n front: frustumFront,\n back: frustumBack,\n });\n\n this._nearPlaneCenter.setFrom(nearLowerLeft);\n this._nearPlaneCenter.interpolate(0.5, nearUpperRight, this._nearPlaneCenter);\n\n this.setPlanes(frustumTop, frustumBottom, frustumLeft, frustumRight);\n this.setFrustum(frustumFront, frustumBack, FrustumUniformType.Perspective);\n }\n\n this.viewMatrix.matrix.inverseState = InverseMatrixState.unknown;\n\n this.viewMatrix.matrix.multiplyVector(this._worldUpVector, this._viewUpVector);\n this._viewUpVector.normalizeInPlace();\n this._viewUpVector32[0] = this._viewUpVector.x;\n this._viewUpVector32[1] = this._viewUpVector.y;\n this._viewUpVector32[2] = this._viewUpVector.z;\n\n this.projectionMatrix32.initFromMatrix4d(this.projectionMatrix);\n }\n\n public changeProjectionMatrix(newMatrix: Matrix4d): void {\n desync(this);\n this.projectionMatrix.setFrom(newMatrix);\n this.projectionMatrix32.initFromMatrix4d(this.projectionMatrix);\n }\n\n protected setPlanes(top: number, bottom: number, left: number, right: number): void {\n this._planeData[Plane.kTop] = top;\n this._planeData[Plane.kBottom] = bottom;\n this._planeData[Plane.kLeft] = left;\n this._planeData[Plane.kRight] = right;\n }\n\n protected setFrustum(nearPlane: number, farPlane: number, type: FrustumUniformType): void {\n this._frustumData[FrustumData.kNear] = nearPlane;\n this._frustumData[FrustumData.kFar] = farPlane;\n this._frustumData[FrustumData.kType] = type as number;\n\n // If nearPlane is zero, we don't have a camera (or got very unlucky); in that case shader will compute linear depth.\n this._logZData[0] = 0 !== nearPlane ? 1 / nearPlane : 0;\n this._logZData[1] = 0 !== nearPlane ? Math.log(farPlane / nearPlane) : farPlane;\n }\n}\n\nfunction normalizedDifference(p0: Point3d, p1: Point3d, out?: Vector3d): Vector3d {\n const result = undefined !== out ? out : new Vector3d();\n result.x = p0.x - p1.x;\n result.y = p0.y - p1.y;\n result.z = p0.z - p1.z;\n result.normalizeInPlace();\n return result;\n}\n\n/** @internal */\nexport function fromSumOf(p: Point3d, v: Vector3d, scale: number, out?: Point3d) {\n const result = undefined !== out ? out : new Point3d();\n result.x = p.x + v.x * scale;\n result.y = p.y + v.y * scale;\n result.z = p.z + v.z * scale;\n return result;\n}\n\nfunction dotDifference(pt: Point3d, origin: Point3d, vec: Vector3d): number {\n return (pt.x - origin.x) * vec.x + (pt.y - origin.y) * vec.y + (pt.z - origin.z) * vec.z;\n}\n\nfunction lookIn(eye: Point3d, viewX: Vector3d, viewY: Vector3d, viewZ: Vector3d, result: Transform) {\n const rot = result.matrix.coffs;\n rot[0] = viewX.x;\n rot[1] = viewX.y;\n rot[2] = viewX.z;\n rot[3] = viewY.x;\n rot[4] = viewY.y;\n rot[5] = viewY.z;\n rot[6] = viewZ.x;\n rot[7] = viewZ.y;\n rot[8] = viewZ.z;\n\n result.origin.x = -viewX.dotProduct(eye);\n result.origin.y = -viewY.dotProduct(eye);\n result.origin.z = -viewZ.dotProduct(eye);\n}\n\nfunction ortho(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4d) {\n Matrix4d.createRowValues(\n 2.0 / (right - left), 0.0, 0.0, -(right + left) / (right - left),\n 0.0, 2.0 / (top - bottom), 0.0, -(top + bottom) / (top - bottom),\n 0.0, 0.0, -2.0 / (far - near), -(far + near) / (far - near),\n 0.0, 0.0, 0.0, 1.0,\n result);\n}\n\nfunction frustum(left: number, right: number, bottom: number, top: number, near: number, far: number, result: Matrix4d) {\n Matrix4d.createRowValues(\n (2.0 * near) / (right - left), 0.0, (right + left) / (right - left), 0.0,\n 0.0, (2.0 * near) / (top - bottom), (top + bottom) / (top - bottom), 0.0,\n 0.0, 0.0, -(far + near) / (far - near), -(2.0 * far * near) / (far - near),\n 0.0, 0.0, -1.0, 0.0,\n result);\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  /** @packageDocumentation
2
2
  * @module WebGL
3
3
  */
4
- import { ContourDisplay } from "@itwin/core-common";
5
4
  import { SceneContext } from "../../../ViewContext";
6
5
  import { ViewRect } from "../../../common/ViewRect";
7
6
  import { Pixel } from "../../../render/Pixel";
@@ -19,12 +18,6 @@ import { ShaderProgramExecutor } from "./ShaderProgram";
19
18
  import { EyeDomeLighting } from "./EDL";
20
19
  export declare function collectTextureStatistics(texture: TextureHandle | undefined, stats: RenderMemory.Statistics): void;
21
20
  export declare function collectGeometryStatistics(geom: CachedGeometry | undefined, stats: RenderMemory.Statistics): void;
22
- interface ContourPixels {
23
- display: ContourDisplay;
24
- data: Uint32Array;
25
- zLow: number;
26
- zHigh: number;
27
- }
28
21
  /** Orchestrates rendering of the scene on behalf of a Target.
29
22
  * This base class exists only so we don't have to export all the types of the shared Compositor members like Textures, FrameBuffers, etc.
30
23
  * @internal
@@ -41,7 +34,6 @@ export declare abstract class SceneCompositor implements WebGLDisposable, Render
41
34
  abstract drawForReadPixels(_commands: RenderCommands, sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void;
42
35
  abstract readPixels(rect: ViewRect, selector: Pixel.Selector): Pixel.Buffer | undefined;
43
36
  abstract readDepthAndOrder(rect: ViewRect): Uint8Array | undefined;
44
- abstract readContours(rect: ViewRect): ContourPixels | undefined;
45
37
  abstract readFeatureIds(rect: ViewRect): Uint8Array | undefined;
46
38
  abstract updateSolarShadows(context: SceneContext | undefined): void;
47
39
  abstract drawPrimitive(primitive: Primitive, exec: ShaderProgramExecutor, outputsToPick: boolean): void;
@@ -56,5 +48,4 @@ export declare abstract class SceneCompositor implements WebGLDisposable, Render
56
48
  static create(target: Target): SceneCompositor;
57
49
  abstract collectStatistics(stats: RenderMemory.Statistics): void;
58
50
  }
59
- export {};
60
51
  //# sourceMappingURL=SceneCompositor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneCompositor.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/SceneCompositor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneCompositor.d.ts","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/SceneCompositor.ts"],"names":[],"mappings":"AAIA;;GAEG;AASH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAC2D,cAAc,EAE/E,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAe,WAAW,EAAE,MAAM,eAAe,CAAC;AAIzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAW,eAAe,EAAE,MAAM,OAAO,CAAC;AAGjD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAGjH;AA6cD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAGhH;AAgTD;;;GAGG;AACH,8BAAsB,eAAgB,YAAW,eAAe,EAAE,YAAY,CAAC,QAAQ;IACrF,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEpC,aAAoB,UAAU,IAAI,OAAO,CAAC;aAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;aACxB,OAAO,IAAI,IAAI;aACf,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;aACrC,iBAAiB,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,WAAW,GAAG,SAAS,EAAE,sBAAsB,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;aACjL,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS;aAC9E,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;aACzD,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS;aACtD,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;aAC3D,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI;aAC9F,iBAAiB,IAAI,IAAI;IAEzC,8GAA8G;IAC9G,aAAoB,oBAAoB,IAAI,WAAW,CAAC;IAExD,aAAoB,UAAU,IAAI,aAAa,CAAC;IAChD,aAAoB,aAAa,IAAI,aAAa,CAAC;IACnD,aAAoB,gBAAgB,IAAI,MAAM,CAAC;IAE/C,IAAW,eAAe,IAAI,OAAO,CAAkC;IAEvE,SAAS,aAAa,MAAM,EAAE,MAAM;WAOtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;aAIrC,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CACxE"}
@@ -42,8 +42,6 @@ class Textures {
42
42
  featureId;
43
43
  depthAndOrder;
44
44
  depthAndOrderHidden; // only used if AO and multisampling
45
- contours;
46
- contoursMsBuff;
47
45
  hilite;
48
46
  occlusion;
49
47
  occlusionBlur;
@@ -61,8 +59,6 @@ class Textures {
61
59
  && undefined === this.color
62
60
  && undefined === this.featureId
63
61
  && undefined === this.depthAndOrder
64
- && undefined === this.contours
65
- && undefined === this.contoursMsBuff
66
62
  && undefined === this.depthAndOrderHidden
67
63
  && undefined === this.hilite
68
64
  && undefined === this.occlusion
@@ -82,8 +78,6 @@ class Textures {
82
78
  this.color = dispose(this.color);
83
79
  this.featureId = dispose(this.featureId);
84
80
  this.depthAndOrder = dispose(this.depthAndOrder);
85
- this.contours = dispose(this.contours);
86
- this.contoursMsBuff = dispose(this.contoursMsBuff);
87
81
  this.depthAndOrderHidden = dispose(this.depthAndOrderHidden);
88
82
  this.hilite = dispose(this.hilite);
89
83
  this.occlusion = dispose(this.occlusion);
@@ -103,8 +97,6 @@ class Textures {
103
97
  collectTextureStatistics(this.color, stats);
104
98
  collectTextureStatistics(this.featureId, stats);
105
99
  collectTextureStatistics(this.depthAndOrder, stats);
106
- collectTextureStatistics(this.contours, stats);
107
- collectMsBufferStatistics(this.contoursMsBuff, stats);
108
100
  collectTextureStatistics(this.depthAndOrderHidden, stats);
109
101
  collectTextureStatistics(this.hilite, stats);
110
102
  collectTextureStatistics(this.occlusion, stats);
@@ -143,13 +135,11 @@ class Textures {
143
135
  this.color = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
144
136
  this.featureId = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
145
137
  this.depthAndOrder = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
146
- this.contours = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);
147
138
  let rVal = undefined !== this.accumulation
148
139
  && undefined !== this.revealage
149
140
  && undefined !== this.color
150
141
  && undefined !== this.featureId
151
142
  && undefined !== this.depthAndOrder
152
- && undefined !== this.contours
153
143
  && undefined !== this.hilite;
154
144
  if (rVal && numSamples > 1) {
155
145
  rVal = this.enableMultiSampling(width, height, numSamples);
@@ -194,14 +184,12 @@ class Textures {
194
184
  this.featureIdMsBuffHidden = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
195
185
  this.depthAndOrderMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
196
186
  this.depthAndOrderMsBuffHidden = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
197
- this.contoursMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
198
187
  this.hiliteMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);
199
188
  return undefined !== this.colorMsBuff
200
189
  && undefined !== this.featureIdMsBuff
201
190
  && undefined !== this.featureIdMsBuffHidden
202
191
  && undefined !== this.depthAndOrderMsBuff
203
192
  && undefined !== this.depthAndOrderMsBuffHidden
204
- && undefined !== this.contoursMsBuff
205
193
  && undefined !== this.hiliteMsBuff;
206
194
  }
207
195
  disableMultiSampling() {
@@ -210,7 +198,6 @@ class Textures {
210
198
  this.featureIdMsBuffHidden = dispose(this.featureIdMsBuffHidden);
211
199
  this.depthAndOrderMsBuff = dispose(this.depthAndOrderMsBuff);
212
200
  this.depthAndOrderMsBuffHidden = dispose(this.depthAndOrderMsBuffHidden);
213
- this.contoursMsBuff = dispose(this.contoursMsBuff);
214
201
  this.hiliteMsBuff = dispose(this.hiliteMsBuff);
215
202
  return true;
216
203
  }
@@ -220,7 +207,6 @@ class FrameBuffers {
220
207
  opaqueColor;
221
208
  opaqueAndCompositeColor;
222
209
  depthAndOrder;
223
- contours;
224
210
  hilite;
225
211
  hiliteUsingStencil;
226
212
  stencilSet;
@@ -245,10 +231,9 @@ class FrameBuffers {
245
231
  if (!this.initPotentialMSFbos(textures, depth, depthMS))
246
232
  return false;
247
233
  this.depthAndOrder = FrameBuffer.create([expectDefined(textures.depthAndOrder)], depth);
248
- this.contours = FrameBuffer.create([expectDefined(textures.contours)], depth);
249
234
  this.hilite = FrameBuffer.create([expectDefined(textures.hilite)], depth);
250
235
  this.hiliteUsingStencil = FrameBuffer.create([expectDefined(textures.hilite)], depth);
251
- if (!this.depthAndOrder || !this.contours || !this.hilite || !this.hiliteUsingStencil)
236
+ if (!this.depthAndOrder || !this.hilite || !this.hiliteUsingStencil)
252
237
  return false;
253
238
  assert(undefined === this.opaqueAll);
254
239
  if (!this.initPotentialMSMRTFbos(textures, depth, depthMS))
@@ -289,10 +274,9 @@ class FrameBuffers {
289
274
  undefined !== textures.color &&
290
275
  undefined !== textures.featureId &&
291
276
  undefined !== textures.depthAndOrder &&
292
- undefined !== textures.contours &&
293
277
  undefined !== textures.accumulation &&
294
278
  undefined !== textures.revealage);
295
- const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder, textures.contours];
279
+ const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder];
296
280
  if (undefined === depthMs) {
297
281
  this.opaqueAll = FrameBuffer.create(colorAndPick, depth);
298
282
  colorAndPick[0] = textures.color;
@@ -302,10 +286,9 @@ class FrameBuffers {
302
286
  assert(undefined !== textures.colorMsBuff &&
303
287
  undefined !== textures.featureIdMsBuff &&
304
288
  undefined !== textures.featureIdMsBuffHidden &&
305
- undefined !== textures.contoursMsBuff &&
306
289
  undefined !== textures.depthAndOrderMsBuff &&
307
290
  undefined !== textures.depthAndOrderMsBuffHidden);
308
- const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff, textures.contoursMsBuff];
291
+ const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff];
309
292
  const colorAndPickFilters = [GL.MultiSampling.Filter.Linear, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest];
310
293
  this.opaqueAll = FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);
311
294
  colorAndPick[0] = textures.color;
@@ -421,7 +404,7 @@ class FrameBuffers {
421
404
  return this.initPotentialMSFbos(textures, depth, undefined);
422
405
  }
423
406
  get isDisposed() {
424
- return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder && undefined === this.contours
407
+ return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder
425
408
  && undefined === this.hilite && undefined === this.hiliteUsingStencil && undefined === this.occlusion
426
409
  && undefined === this.occlusionBlur && undefined === this.stencilSet && undefined === this.altZOnly
427
410
  && undefined === this.volClassCreateBlend && undefined === this.volClassCreateBlendAltZ && undefined === this.opaqueAll
@@ -434,7 +417,6 @@ class FrameBuffers {
434
417
  this.opaqueColor = dispose(this.opaqueColor);
435
418
  this.opaqueAndCompositeColor = dispose(this.opaqueAndCompositeColor);
436
419
  this.depthAndOrder = dispose(this.depthAndOrder);
437
- this.contours = dispose(this.contours);
438
420
  this.hilite = dispose(this.hilite);
439
421
  this.hiliteUsingStencil = dispose(this.hiliteUsingStencil);
440
422
  this.occlusion = dispose(this.occlusion);
@@ -551,7 +533,6 @@ class PixelBuffer {
551
533
  _selector;
552
534
  _featureId;
553
535
  _depthAndOrder;
554
- _contours;
555
536
  _batchState;
556
537
  _scratchModelFeature = ModelFeature.create();
557
538
  get _numPixels() { return this._rect.width * this._rect.height; }
@@ -665,28 +646,6 @@ class PixelBuffer {
665
646
  }
666
647
  }
667
648
  }
668
- let contour;
669
- if (this._contours) {
670
- const contour32 = this.getPixel32(this._contours.data, index);
671
- if (contour32) { // undefined means out of bounds; zero means not a contour.
672
- const groupIndexAndType = this.decodeUint8(contour32, 32);
673
- const groupIndex = groupIndexAndType & ~(8 | 16);
674
- const group = this._contours.display.groups[groupIndex];
675
- if (group) {
676
- const elevationFraction = this.decodeDepthRgba(contour32);
677
- let elevation = elevationFraction * (this._contours.zHigh - this._contours.zLow) + this._contours.zLow;
678
- // The shader rounds to the nearest contour elevation using single-precision arithmetic.
679
- // Re-round here using double-precision to get closer.
680
- const interval = group.contourDef.minorInterval;
681
- elevation = (elevation >= 0 ? Math.floor((elevation + interval / 2) / interval) : Math.ceil((elevation - interval / 2) / interval)) * interval;
682
- contour = {
683
- group,
684
- elevation,
685
- isMajor: groupIndexAndType > 15,
686
- };
687
- }
688
- }
689
- }
690
649
  let featureTable, iModel, transformToIModel, tileId, viewAttachmentId, inSectionDrawingAttachment;
691
650
  if (undefined !== batchInfo) {
692
651
  featureTable = batchInfo.featureTable;
@@ -707,7 +666,6 @@ class PixelBuffer {
707
666
  tileId,
708
667
  viewAttachmentId,
709
668
  inSectionDrawingAttachment,
710
- contour,
711
669
  });
712
670
  }
713
671
  constructor(rect, selector, compositor) {
@@ -728,10 +686,6 @@ class PixelBuffer {
728
686
  else
729
687
  this._selector &= ~Pixel.Selector.Feature;
730
688
  }
731
- // Note: readContours is a no-op unless contours are actually being drawn.
732
- if (Pixel.Selector.None !== (selector & Pixel.Selector.Contours)) {
733
- this._contours = compositor.readContours(rect);
734
- }
735
689
  }
736
690
  get isEmpty() { return Pixel.Selector.None === this._selector; }
737
691
  static create(rect, selector, compositor) {
@@ -1418,23 +1372,6 @@ class Compositor extends SceneCompositor {
1418
1372
  readDepthAndOrder(rect) {
1419
1373
  return this.readFrameBuffer(rect, this._fbos.depthAndOrder);
1420
1374
  }
1421
- readContours(rect) {
1422
- // Are we actually drawing any contours? If not, don't bother reading an array of all zeroes off the GPU.
1423
- const contours = this.target.currentContours;
1424
- if (!contours || !contours.displayContours || contours.groups.length === 0) {
1425
- return undefined;
1426
- }
1427
- const info = this.readFrameBuffer(rect, this._fbos.contours);
1428
- if (!info) {
1429
- return undefined;
1430
- }
1431
- return {
1432
- data: new Uint32Array(info.buffer),
1433
- display: contours,
1434
- zLow: this.target.uniforms.frustum.worldFrustumZRange[0],
1435
- zHigh: this.target.uniforms.frustum.worldFrustumZRange[1],
1436
- };
1437
- }
1438
1375
  readFeatureIds(rect) {
1439
1376
  const tex = this._textures.featureId;
1440
1377
  if (undefined === tex)