@itwin/core-frontend 4.3.0-dev.23 → 4.3.0-dev.24

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 (49) hide show
  1. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  2. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  3. package/lib/cjs/render/webgl/ClipStack.d.ts +11 -1
  4. package/lib/cjs/render/webgl/ClipStack.d.ts.map +1 -1
  5. package/lib/cjs/render/webgl/ClipStack.js +23 -0
  6. package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
  7. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +2 -1
  8. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  9. package/lib/cjs/render/webgl/ShaderBuilder.js +9 -3
  10. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  11. package/lib/cjs/render/webgl/glsl/Clipping.d.ts.map +1 -1
  12. package/lib/cjs/render/webgl/glsl/Clipping.js +90 -33
  13. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  14. package/lib/cjs/render/webgl/glsl/Composite.d.ts.map +1 -1
  15. package/lib/cjs/render/webgl/glsl/Composite.js +8 -3
  16. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  17. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +1 -0
  18. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  19. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +2 -1
  20. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  21. package/lib/cjs/render/webgl/glsl/Translucency.d.ts +2 -0
  22. package/lib/cjs/render/webgl/glsl/Translucency.d.ts.map +1 -1
  23. package/lib/cjs/render/webgl/glsl/Translucency.js +6 -6
  24. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  25. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  26. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  27. package/lib/esm/render/webgl/ClipStack.d.ts +11 -1
  28. package/lib/esm/render/webgl/ClipStack.d.ts.map +1 -1
  29. package/lib/esm/render/webgl/ClipStack.js +23 -0
  30. package/lib/esm/render/webgl/ClipStack.js.map +1 -1
  31. package/lib/esm/render/webgl/ShaderBuilder.d.ts +2 -1
  32. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  33. package/lib/esm/render/webgl/ShaderBuilder.js +9 -3
  34. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  35. package/lib/esm/render/webgl/glsl/Clipping.d.ts.map +1 -1
  36. package/lib/esm/render/webgl/glsl/Clipping.js +91 -34
  37. package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
  38. package/lib/esm/render/webgl/glsl/Composite.d.ts.map +1 -1
  39. package/lib/esm/render/webgl/glsl/Composite.js +8 -3
  40. package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
  41. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +1 -0
  42. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  43. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -1
  44. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  45. package/lib/esm/render/webgl/glsl/Translucency.d.ts +2 -0
  46. package/lib/esm/render/webgl/glsl/Translucency.d.ts.map +1 -1
  47. package/lib/esm/render/webgl/glsl/Translucency.js +3 -3
  48. package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
  49. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @itwin/no-internal-barrel-imports */\r\n/* eslint-disable sort-imports */\r\n\r\nimport { ExtensionHost } from \"./ExtensionHost\";\r\n\r\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\r\nif ((globalThis as any)[globalSymbol])\r\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\r\n\r\n// BEGIN GENERATED CODE\r\nimport {\r\n // @public enum(s) from @itwin/core-frontend\r\n ACSDisplayOptions,\r\n ACSType,\r\n ActivityMessageEndReason,\r\n BeButton,\r\n BeModifierKeys,\r\n ClipEventType,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n EventHandled,\r\n FlashMode,\r\n FrontendLoggerCategory,\r\n GraphicType,\r\n HitDetailType,\r\n HitGeomType,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n InputSource,\r\n KeyinParseError,\r\n LocateAction,\r\n LocateFilterStatus,\r\n ManipulatorToolEvent,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSetEventType,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n StandardViewId,\r\n StartOrResume,\r\n TileBoundingBoxes,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileTreeLoadStatus,\r\n TileVisibility,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n UniformType,\r\n VaryingType,\r\n ViewStatus,\r\n // @public real(s) from @itwin/core-frontend\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n Cluster,\r\n ContextRealityModelState,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n EditManipulator,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n FeatureSymbology,\r\n FlashSettings,\r\n FrustumAnimator,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GlobeAnimator,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n HiliteSet,\r\n HitDetail,\r\n HitList,\r\n IModelConnection,\r\n IconSprites,\r\n InputCollector,\r\n InteractiveTool,\r\n IntersectDetail,\r\n LocateOptions,\r\n LocateResponse,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n ModelSelectorState,\r\n ModelState,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PrimitiveTool,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SelectionSet,\r\n SheetModelState,\r\n SheetViewState,\r\n SnapDetail,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n TentativePoint,\r\n Tile,\r\n TileAdmin,\r\n TileDrawArgs,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n} from \"../core-frontend\";\r\n\r\nimport {\r\n // @public enum(s) from @itwin/core-common\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n CommonLoggerCategory,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n ElementGeometryOpcode,\r\n FeatureOverrideType,\r\n FillDisplay,\r\n FillFlags,\r\n FontType,\r\n GeoCoordStatus,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeMode,\r\n GridOrientationType,\r\n HSVConstants,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n LinePixels,\r\n MassPropertiesOperation,\r\n MonochromeMode,\r\n Npc,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n QueryRowFormat,\r\n Rank,\r\n RenderMode,\r\n SectionType,\r\n SkyBoxImageType,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SyncMode,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n TxnAction,\r\n TypeOfChange,\r\n // @public real(s) from @itwin/core-common\r\n ColorByName,\r\n ColorDef,\r\n FrustumPlanes,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n} from \"@itwin/core-common\";\r\n\r\nconst extensionExports = {\r\n ACSDisplayOptions,\r\n ACSType,\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n ActivityMessageEndReason,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BeButton,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeModifierKeys,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n ClipEventType,\r\n Cluster,\r\n ColorByName,\r\n ColorDef,\r\n CommonLoggerCategory,\r\n ContextRealityModelState,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n EditManipulator,\r\n ElementGeometryOpcode,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n EventHandled,\r\n FeatureOverrideType,\r\n FeatureSymbology,\r\n FillDisplay,\r\n FillFlags,\r\n FlashMode,\r\n FlashSettings,\r\n FontType,\r\n FrontendLoggerCategory,\r\n FrustumAnimator,\r\n FrustumPlanes,\r\n GeoCoordStatus,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeAnimator,\r\n GlobeMode,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n GraphicType,\r\n GridOrientationType,\r\n HSVConstants,\r\n HiliteSet,\r\n HitDetail,\r\n HitDetailType,\r\n HitGeomType,\r\n HitList,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n IModelConnection,\r\n IconSprites,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n InputCollector,\r\n InputSource,\r\n InteractiveTool,\r\n IntersectDetail,\r\n KeyinParseError,\r\n LinePixels,\r\n LocateAction,\r\n LocateFilterStatus,\r\n LocateOptions,\r\n LocateResponse,\r\n ManipulatorToolEvent,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n MassPropertiesOperation,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n ModelSelectorState,\r\n ModelState,\r\n MonochromeMode,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n Npc,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n PrimitiveTool,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n QueryRowFormat,\r\n Rank,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderMode,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SectionType,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSet,\r\n SelectionSetEventType,\r\n SheetModelState,\r\n SheetViewState,\r\n SkyBoxImageType,\r\n SnapDetail,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n StandardViewId,\r\n StartOrResume,\r\n SyncMode,\r\n TentativePoint,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n Tile,\r\n TileAdmin,\r\n TileBoundingBoxes,\r\n TileDrawArgs,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeLoadStatus,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n TileVisibility,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n TxnAction,\r\n TypeOfChange,\r\n UniformType,\r\n VaryingType,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewStatus,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n};\r\n\r\n// END GENERATED CODE\r\n\r\nconst getExtensionApi = (_id: string) => {\r\n return {\r\n exports: {\r\n // exceptions\r\n ExtensionHost,\r\n // automated\r\n ...extensionExports,\r\n },\r\n };\r\n};\r\n\r\n(globalThis as any)[globalSymbol] = {\r\n getExtensionApi,\r\n};\r\n"]}
1
+ {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\n/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @itwin/no-internal-barrel-imports */\r\n/* eslint-disable sort-imports */\r\n\r\nimport { ExtensionHost } from \"./ExtensionHost\";\r\n\r\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\r\nif ((globalThis as any)[globalSymbol])\r\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\r\n\r\n// BEGIN GENERATED CODE\r\nimport {\r\n // @public enum(s) from @itwin/core-frontend\r\n ACSDisplayOptions,\r\n ACSType,\r\n ActivityMessageEndReason,\r\n BeButton,\r\n BeModifierKeys,\r\n ClipEventType,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n EventHandled,\r\n FlashMode,\r\n FrontendLoggerCategory,\r\n GraphicType,\r\n HitDetailType,\r\n HitGeomType,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n InputSource,\r\n KeyinParseError,\r\n LocateAction,\r\n LocateFilterStatus,\r\n ManipulatorToolEvent,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSetEventType,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n StandardViewId,\r\n StartOrResume,\r\n TileBoundingBoxes,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileTreeLoadStatus,\r\n TileVisibility,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n UniformType,\r\n VaryingType,\r\n ViewStatus,\r\n // @public real(s) from @itwin/core-frontend\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n Cluster,\r\n ContextRealityModelState,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n EditManipulator,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n FeatureSymbology,\r\n FlashSettings,\r\n FrustumAnimator,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GlobeAnimator,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n HiliteSet,\r\n HitDetail,\r\n HitList,\r\n IModelConnection,\r\n IconSprites,\r\n InputCollector,\r\n InteractiveTool,\r\n IntersectDetail,\r\n LocateOptions,\r\n LocateResponse,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n ModelSelectorState,\r\n ModelState,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PrimitiveTool,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SelectionSet,\r\n SheetModelState,\r\n SheetViewState,\r\n SnapDetail,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n TentativePoint,\r\n Tile,\r\n TileAdmin,\r\n TileDrawArgs,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n} from \"../core-frontend\";\r\n\r\nimport {\r\n // @public enum(s) from @itwin/core-common\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n CommonLoggerCategory,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n ElementGeometryOpcode,\r\n FeatureOverrideType,\r\n FillDisplay,\r\n FillFlags,\r\n FontType,\r\n GeoCoordStatus,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeMode,\r\n GridOrientationType,\r\n HSVConstants,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n LinePixels,\r\n MassPropertiesOperation,\r\n MonochromeMode,\r\n Npc,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n QueryRowFormat,\r\n Rank,\r\n RenderMode,\r\n SectionType,\r\n SkyBoxImageType,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SyncMode,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n TxnAction,\r\n TypeOfChange,\r\n // @public real(s) from @itwin/core-common\r\n ClipIntersectionStyle,\r\n ColorByName,\r\n ColorDef,\r\n FrustumPlanes,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n} from \"@itwin/core-common\";\r\n\r\nconst extensionExports = {\r\n ACSDisplayOptions,\r\n ACSType,\r\n AccuDrawHintBuilder,\r\n AccuSnap,\r\n ActivityMessageDetails,\r\n ActivityMessageEndReason,\r\n AuxCoordSystem2dState,\r\n AuxCoordSystem3dState,\r\n AuxCoordSystemSpatialState,\r\n AuxCoordSystemState,\r\n BackgroundFill,\r\n BackgroundMapType,\r\n BatchType,\r\n BeButton,\r\n BeButtonEvent,\r\n BeButtonState,\r\n BeModifierKeys,\r\n BeTouchEvent,\r\n BeWheelEvent,\r\n BingElevationProvider,\r\n BingLocationProvider,\r\n BisCodeSpec,\r\n BriefcaseIdValue,\r\n CategorySelectorState,\r\n ChangeFlags,\r\n ChangeOpCode,\r\n ChangedValueState,\r\n ChangesetType,\r\n ClipEventType,\r\n ClipIntersectionStyle,\r\n Cluster,\r\n ColorByName,\r\n ColorDef,\r\n CommonLoggerCategory,\r\n ContextRealityModelState,\r\n ContextRotationId,\r\n CoordSource,\r\n CoordSystem,\r\n CoordinateLockOverrides,\r\n DecorateContext,\r\n Decorations,\r\n DisclosedTileTreeSet,\r\n DisplayStyle2dState,\r\n DisplayStyle3dState,\r\n DisplayStyleState,\r\n DrawingModelState,\r\n DrawingViewState,\r\n ECSqlSystemProperty,\r\n ECSqlValueType,\r\n EditManipulator,\r\n ElementGeometryOpcode,\r\n ElementLocateManager,\r\n ElementPicker,\r\n ElementState,\r\n EmphasizeElements,\r\n EntityState,\r\n EventController,\r\n EventHandled,\r\n FeatureOverrideType,\r\n FeatureSymbology,\r\n FillDisplay,\r\n FillFlags,\r\n FlashMode,\r\n FlashSettings,\r\n FontType,\r\n FrontendLoggerCategory,\r\n FrustumAnimator,\r\n FrustumPlanes,\r\n GeoCoordStatus,\r\n GeometricModel2dState,\r\n GeometricModel3dState,\r\n GeometricModelState,\r\n GeometryClass,\r\n GeometryStreamFlags,\r\n GeometrySummaryVerbosity,\r\n GlobeAnimator,\r\n GlobeMode,\r\n GraphicBranch,\r\n GraphicBuilder,\r\n GraphicType,\r\n GridOrientationType,\r\n HSVConstants,\r\n HiliteSet,\r\n HitDetail,\r\n HitDetailType,\r\n HitGeomType,\r\n HitList,\r\n HitParentGeomType,\r\n HitPriority,\r\n HitSource,\r\n IModelConnection,\r\n IconSprites,\r\n ImageBufferFormat,\r\n ImageSourceFormat,\r\n InputCollector,\r\n InputSource,\r\n InteractiveTool,\r\n IntersectDetail,\r\n KeyinParseError,\r\n LinePixels,\r\n LocateAction,\r\n LocateFilterStatus,\r\n LocateOptions,\r\n LocateResponse,\r\n ManipulatorToolEvent,\r\n MarginPercent,\r\n Marker,\r\n MarkerSet,\r\n MassPropertiesOperation,\r\n MessageBoxIconType,\r\n MessageBoxType,\r\n MessageBoxValue,\r\n ModelSelectorState,\r\n ModelState,\r\n MonochromeMode,\r\n NotificationHandler,\r\n NotificationManager,\r\n NotifyMessageDetails,\r\n Npc,\r\n OffScreenViewport,\r\n OrthographicViewState,\r\n OutputMessageAlert,\r\n OutputMessagePriority,\r\n OutputMessageType,\r\n ParseAndRunResult,\r\n PerModelCategoryVisibility,\r\n PhysicalModelState,\r\n Pixel,\r\n PlanarClipMaskMode,\r\n PlanarClipMaskPriority,\r\n PrimitiveTool,\r\n QParams2d,\r\n QParams3d,\r\n QPoint2d,\r\n QPoint2dBuffer,\r\n QPoint2dBufferBuilder,\r\n QPoint2dList,\r\n QPoint3d,\r\n QPoint3dBuffer,\r\n QPoint3dBufferBuilder,\r\n QPoint3dList,\r\n Quantization,\r\n QueryRowFormat,\r\n Rank,\r\n RenderClipVolume,\r\n RenderContext,\r\n RenderGraphic,\r\n RenderGraphicOwner,\r\n RenderMode,\r\n RenderSystem,\r\n Scene,\r\n ScreenViewport,\r\n SectionDrawingModelState,\r\n SectionType,\r\n SelectionMethod,\r\n SelectionMode,\r\n SelectionProcessing,\r\n SelectionSet,\r\n SelectionSetEventType,\r\n SheetModelState,\r\n SheetViewState,\r\n SkyBoxImageType,\r\n SnapDetail,\r\n SnapHeat,\r\n SnapMode,\r\n SnapStatus,\r\n SpatialClassifierInsideDisplay,\r\n SpatialClassifierOutsideDisplay,\r\n SpatialLocationModelState,\r\n SpatialModelState,\r\n SpatialViewState,\r\n Sprite,\r\n SpriteLocation,\r\n StandardViewId,\r\n StartOrResume,\r\n SyncMode,\r\n TentativePoint,\r\n TerrainHeightOriginMode,\r\n TextureMapUnits,\r\n ThematicDisplayMode,\r\n ThematicGradientColorScheme,\r\n ThematicGradientMode,\r\n Tile,\r\n TileAdmin,\r\n TileBoundingBoxes,\r\n TileDrawArgs,\r\n TileGraphicType,\r\n TileLoadPriority,\r\n TileLoadStatus,\r\n TileRequest,\r\n TileRequestChannel,\r\n TileRequestChannelStatistics,\r\n TileRequestChannels,\r\n TileTree,\r\n TileTreeLoadStatus,\r\n TileTreeReference,\r\n TileUsageMarker,\r\n TileVisibility,\r\n Tiles,\r\n Tool,\r\n ToolAdmin,\r\n ToolAssistance,\r\n ToolAssistanceImage,\r\n ToolAssistanceInputMethod,\r\n ToolSettings,\r\n TwoWayViewportFrustumSync,\r\n TwoWayViewportSync,\r\n TxnAction,\r\n TypeOfChange,\r\n UniformType,\r\n VaryingType,\r\n ViewClipClearTool,\r\n ViewClipDecoration,\r\n ViewClipDecorationProvider,\r\n ViewClipTool,\r\n ViewCreator2d,\r\n ViewCreator3d,\r\n ViewManager,\r\n ViewManip,\r\n ViewPose,\r\n ViewPose2d,\r\n ViewPose3d,\r\n ViewRect,\r\n ViewState,\r\n ViewState2d,\r\n ViewState3d,\r\n ViewStatus,\r\n ViewTool,\r\n ViewingSpace,\r\n Viewport,\r\n canvasToImageBuffer,\r\n canvasToResizedCanvasWithBars,\r\n connectViewportFrusta,\r\n connectViewportViews,\r\n connectViewports,\r\n extractImageSourceDimensions,\r\n getCompressedJpegFromCanvas,\r\n getImageSourceFormatForMimeType,\r\n getImageSourceMimeType,\r\n imageBufferToBase64EncodedPng,\r\n imageBufferToCanvas,\r\n imageBufferToPngDataUrl,\r\n imageElementFromImageSource,\r\n imageElementFromUrl,\r\n queryTerrainElevationOffset,\r\n readElementGraphics,\r\n readGltfGraphics,\r\n synchronizeViewportFrusta,\r\n synchronizeViewportViews,\r\n};\r\n\r\n// END GENERATED CODE\r\n\r\nconst getExtensionApi = (_id: string) => {\r\n return {\r\n exports: {\r\n // exceptions\r\n ExtensionHost,\r\n // automated\r\n ...extensionExports,\r\n },\r\n };\r\n};\r\n\r\n(globalThis as any)[globalSymbol] = {\r\n getExtensionApi,\r\n};\r\n"]}
@@ -2,7 +2,7 @@
2
2
  * @module WebGL
3
3
  */
4
4
  import { ClipVector, Range3d, Transform } from "@itwin/core-geometry";
5
- import { RgbColor } from "@itwin/core-common";
5
+ import { ClipIntersectionStyle, RgbColor } from "@itwin/core-common";
6
6
  import { RenderClipVolume } from "../RenderClipVolume";
7
7
  import { FloatRgba } from "./FloatRGBA";
8
8
  import { Texture2DData, Texture2DHandle, TextureHandle } from "./Texture";
@@ -39,14 +39,23 @@ export declare class ClipStack {
39
39
  protected readonly _outsideColor: FloatRgba;
40
40
  /** For detecting whether the transform changed from one invocation of setViewClip to the next. */
41
41
  protected readonly _prevTransform: Transform;
42
+ /** True if we want to colorize geometry intersecting clip planes */
43
+ protected _colorizeIntersection: boolean;
44
+ /** The style to colorize the geometry intersecting clip planes */
45
+ protected readonly _intersectionStyle: FloatRgba;
42
46
  constructor(getTransform: () => Transform, wantViewClip: () => boolean);
43
47
  get insideColor(): FloatRgba;
44
48
  get outsideColor(): FloatRgba;
45
49
  get hasOutsideColor(): boolean;
50
+ get colorizeIntersection(): boolean;
51
+ set colorizeIntersection(b: boolean);
52
+ get intersectionStyle(): FloatRgba;
46
53
  get bytesUsed(): number;
47
54
  setViewClip(clip: ClipVector | undefined, style: {
48
55
  insideColor?: RgbColor;
49
56
  outsideColor?: RgbColor;
57
+ colorizeIntersection?: boolean;
58
+ intersectionStyle?: ClipIntersectionStyle;
50
59
  }): void;
51
60
  push(clip: RenderClipVolume): void;
52
61
  pop(): void;
@@ -71,6 +80,7 @@ export declare class ClipStack {
71
80
  protected uploadTexture(): void;
72
81
  protected allocateGpuBuffer(): Texture2DData;
73
82
  protected updateColor(rgb: RgbColor | undefined, rgba: FloatRgba): void;
83
+ protected updateIntersectionStyle(colorizeIntersection: boolean | undefined, style: ClipIntersectionStyle | undefined, _thisStyle: FloatRgba): void;
74
84
  }
75
85
  export {};
76
86
  //# sourceMappingURL=ClipStack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClipStack.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ClipStack.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAwB,UAAU,EAAW,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI1E,UAAU,IAAI;IACZ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,UAAU,CAAC;CACxD;AAiBD;;;;GAIG;AACH,qBAAa,SAAS;IACpB,+FAA+F;IAC/F,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,sEAAsE;IACtE,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACrC,0JAA0J;IAC1J,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,uGAAuG;IACvG,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,4GAA4G;IAC5G,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAe;IAChD,gDAAgD;IAChD,SAAS,CAAC,aAAa,UAAS;IAChC,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,SAAS,CAAC;IAClD,6EAA6E;IAC7E,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC;IAChD,+EAA+E;IAC/E,SAAS,CAAC,QAAQ,CAAC,YAAY,YAA8B;IAC7D,gFAAgF;IAChF,SAAS,CAAC,QAAQ,CAAC,aAAa,YAA8B;IAC9D,kGAAkG;IAClG,SAAS,CAAC,QAAQ,CAAC,cAAc,YAA0B;gBAExC,YAAY,EAAE,MAAM,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO;IAS7E,IAAW,WAAW,IAAI,SAAS,CAElC;IAED,IAAW,YAAY,IAAI,SAAS,CAEnC;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAEM,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE;QAAE,WAAW,CAAC,EAAE,QAAQ,CAAC;QAAC,YAAY,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI;IAyC3G,IAAI,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IASlC,GAAG,IAAI,IAAI;IAMlB,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,UAAU,IAAI,MAAM,CAG9B;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED,IAAW,OAAO,IAAI,aAAa,GAAG,SAAS,CAG9C;IAEM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO;IAiBpE,kCAAkC;IAClC,IAAW,KAAK,IAAI,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAErD;IAED,kCAAkC;IAClC,WAAkB,aAAa;;;MAE9B;IAED,SAAS,CAAC,aAAa,IAAI,IAAI;IAgB/B,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAoBlC,SAAS,CAAC,aAAa,IAAI,IAAI;IAS/B,SAAS,CAAC,iBAAiB,IAAI,aAAa;IAI5C,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;CAKxE"}
1
+ {"version":3,"file":"ClipStack.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ClipStack.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,10 @@ export class ClipStack {
41
41
  this._outsideColor = FloatRgba.from(0, 0, 0, 0);
42
42
  /** For detecting whether the transform changed from one invocation of setViewClip to the next. */
43
43
  this._prevTransform = Transform.createZero();
44
+ /** True if we want to colorize geometry intersecting clip planes */
45
+ this._colorizeIntersection = false;
46
+ /** The style to colorize the geometry intersecting clip planes */
47
+ this._intersectionStyle = FloatRgba.from(0, 0, 0, 0);
44
48
  this._getTransform = getTransform;
45
49
  this._wantViewClip = wantViewClip;
46
50
  this._numTotalRows = this._numRowsInUse = 0;
@@ -56,6 +60,15 @@ export class ClipStack {
56
60
  get hasOutsideColor() {
57
61
  return this.outsideColor.alpha !== 0;
58
62
  }
63
+ get colorizeIntersection() {
64
+ return this._colorizeIntersection;
65
+ }
66
+ set colorizeIntersection(b) {
67
+ this._colorizeIntersection = b;
68
+ }
69
+ get intersectionStyle() {
70
+ return this._intersectionStyle;
71
+ }
59
72
  get bytesUsed() {
60
73
  return this._texture ? this._texture.bytesUsed : 0;
61
74
  }
@@ -63,6 +76,7 @@ export class ClipStack {
63
76
  assert(this._stack.length === 1);
64
77
  this.updateColor(style.insideColor, this._insideColor);
65
78
  this.updateColor(style.outsideColor, this._outsideColor);
79
+ this.updateIntersectionStyle(style.colorizeIntersection, style.intersectionStyle, this._intersectionStyle);
66
80
  const transform = this._getTransform();
67
81
  if (!transform.isAlmostEqual(this._prevTransform)) {
68
82
  transform.clone(this._prevTransform);
@@ -199,5 +213,14 @@ export class ClipStack {
199
213
  if (rgb)
200
214
  rgba.setRgbColor(rgb);
201
215
  }
216
+ updateIntersectionStyle(colorizeIntersection, style, _thisStyle) {
217
+ this._colorizeIntersection = colorizeIntersection === true ? true : false;
218
+ if (style !== undefined) {
219
+ if (style.color !== undefined)
220
+ _thisStyle.setRgbColor(style.color);
221
+ if (style.width !== undefined)
222
+ _thisStyle.alpha = style.width;
223
+ }
224
+ }
202
225
  }
203
226
  //# sourceMappingURL=ClipStack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClipStack.js","sourceRoot":"","sources":["../../../../src/render/webgl/ClipStack.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { ClipPlaneContainment, ClipVector, Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { RgbColor } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { RenderClipVolume } from \"../RenderClipVolume\";\r\nimport { FloatRgba } from \"./FloatRGBA\";\r\nimport { Texture2DData, Texture2DHandle, TextureHandle } from \"./Texture\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { GL } from \"./GL\";\r\n\r\ninterface Clip {\r\n readonly numRows: number;\r\n readonly getData: (transform: Transform) => Uint8Array;\r\n}\r\n\r\nconst emptyClipData = new Uint8Array(0);\r\nconst emptyClip = {\r\n numRows: 0,\r\n getData: () => emptyClipData,\r\n};\r\n\r\nconst scratchRangeCorners = [\r\n new Point3d(), new Point3d(), new Point3d(), new Point3d(),\r\n new Point3d(), new Point3d(), new Point3d(), new Point3d(),\r\n];\r\n\r\nfunction getRangeCorners(r: Range3d): Point3d[] {\r\n return r.corners(scratchRangeCorners);\r\n}\r\n\r\n/** Maintains a stack of ClipVolumes. The volumes nest such that the stack represents the intersection of all the volumes.\r\n * The bottom of the stack represents the view's clip volume and is always present even if the view has no clip.\r\n * It also maintains the inside/outside clip colors, where the alpha component is 1 if the color should be applied and 0 if not.\r\n * @internal\r\n */\r\nexport class ClipStack {\r\n /** Encoded data for all clips on the stack, update when the stack or the transform changes. */\r\n protected _cpuBuffer: Uint8Array;\r\n /** A view of the encoded buffer in the format expected by the GPU. */\r\n protected _gpuBuffer: Texture2DData;\r\n protected _texture?: Texture2DHandle;\r\n /** The maximum number of rows we have ever required. Determines the texture height. Grows as needed, reallocating a larger texture, but never shrinks. */\r\n protected _numTotalRows: number;\r\n /** The number of rows in the texture actually required to encode the current contents of the stack. */\r\n protected _numRowsInUse: number;\r\n /** The first entry always represents the view clip. The rest are pushed and popped with GraphicBranches. */\r\n protected readonly _stack: Clip[] = [emptyClip];\r\n /** True if we need to recompute the texture. */\r\n protected _isStackDirty = false;\r\n /** Obtain the transform to be applied to the clips - i.e., the view matrix. */\r\n protected readonly _getTransform: () => Transform;\r\n /** If this returns false, the clip at the bottom of the stack is ignored. */\r\n protected readonly _wantViewClip: () => boolean;\r\n /** If alpha is 1 then geometry inside the clip will be drawn in this color. */\r\n protected readonly _insideColor = FloatRgba.from(0, 0, 0, 0);\r\n /** If alpha is 1 then geometry outside the clip will be drawn in this color. */\r\n protected readonly _outsideColor = FloatRgba.from(0, 0, 0, 0);\r\n /** For detecting whether the transform changed from one invocation of setViewClip to the next. */\r\n protected readonly _prevTransform = Transform.createZero();\r\n\r\n public constructor(getTransform: () => Transform, wantViewClip: () => boolean) {\r\n this._getTransform = getTransform;\r\n this._wantViewClip = wantViewClip;\r\n\r\n this._numTotalRows = this._numRowsInUse = 0;\r\n this._cpuBuffer = new Uint8Array(this._numTotalRows);\r\n this._gpuBuffer = this.allocateGpuBuffer();\r\n }\r\n\r\n public get insideColor(): FloatRgba {\r\n return this._insideColor;\r\n }\r\n\r\n public get outsideColor(): FloatRgba {\r\n return this._outsideColor;\r\n }\r\n\r\n public get hasOutsideColor(): boolean {\r\n return this.outsideColor.alpha !== 0;\r\n }\r\n\r\n public get bytesUsed(): number {\r\n return this._texture ? this._texture.bytesUsed : 0;\r\n }\r\n\r\n public setViewClip(clip: ClipVector | undefined, style: { insideColor?: RgbColor, outsideColor?: RgbColor }): void {\r\n assert(this._stack.length === 1);\r\n\r\n this.updateColor(style.insideColor, this._insideColor);\r\n this.updateColor(style.outsideColor, this._outsideColor);\r\n\r\n const transform = this._getTransform();\r\n if (!transform.isAlmostEqual(this._prevTransform)) {\r\n transform.clone(this._prevTransform);\r\n this._isStackDirty = true;\r\n }\r\n\r\n const cur = this._stack[0];\r\n if (cur === emptyClip) {\r\n if (!clip)\r\n return; // no change.\r\n } else if (!clip) {\r\n this._stack[0] = emptyClip;\r\n this._numRowsInUse = 0;\r\n this._isStackDirty = true;\r\n return;\r\n } else {\r\n assert(cur instanceof ClipVolume);\r\n if (cur.clipVector === clip) {\r\n // We assume that the active view's ClipVector is never mutated in place, so if we are given the same ClipVector, we expect our RenderClipVolume to match it.\r\n return;\r\n }\r\n }\r\n\r\n // ClipVector has changed.\r\n const newClip = IModelApp.renderSystem.createClipVolume(clip);\r\n if (!newClip) {\r\n this._isStackDirty = this._stack[0] !== emptyClip;\r\n this._stack[0] = emptyClip;\r\n this._numRowsInUse = 0;\r\n } else {\r\n this.pop();\r\n this.push(newClip);\r\n }\r\n }\r\n\r\n public push(clip: RenderClipVolume): void {\r\n assert(clip instanceof ClipVolume);\r\n\r\n this._stack.push(clip);\r\n this._numRowsInUse += clip.numRows;\r\n this._numTotalRows = Math.max(this._numRowsInUse, this._numTotalRows);\r\n this._isStackDirty = true;\r\n }\r\n\r\n public pop(): void {\r\n assert(this._stack.length > 0);\r\n const clip = this._stack.pop();\r\n this._numRowsInUse -= (clip ? clip.numRows : 0);\r\n }\r\n\r\n public get hasClip(): boolean {\r\n return this.startIndex < this.endIndex;\r\n }\r\n\r\n public get hasViewClip(): boolean {\r\n return emptyClip !== this._stack[0] && this._wantViewClip();\r\n }\r\n\r\n public get startIndex(): number {\r\n assert(this._stack.length > 0);\r\n return this._wantViewClip() ? 0 : this._stack[0].numRows;\r\n }\r\n\r\n public get endIndex(): number {\r\n return this._numRowsInUse;\r\n }\r\n\r\n public get textureHeight(): number {\r\n return this._numTotalRows;\r\n }\r\n\r\n public get texture(): TextureHandle | undefined {\r\n this.updateTexture();\r\n return this._texture;\r\n }\r\n\r\n public isRangeClipped(range: Range3d, transform: Transform): boolean {\r\n if (this.hasOutsideColor || !this.hasClip)\r\n return false;\r\n\r\n range = transform.multiplyRange(range, range);\r\n const corners = getRangeCorners(range);\r\n const startIndex = this._wantViewClip() && emptyClip !== this._stack[0] ? 0 : 1;\r\n for (let i = startIndex; i < this._stack.length; i++) {\r\n const clip = this._stack[i];\r\n assert(clip instanceof ClipVolume);\r\n if (ClipPlaneContainment.StronglyOutside === clip.clipVector.classifyPointContainment(corners))\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get clips(): ReadonlyArray<{ numRows: number }> {\r\n return this._stack;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public static get emptyViewClip() {\r\n return emptyClip;\r\n }\r\n\r\n protected updateTexture(): void {\r\n if (this._numTotalRows > 0 && (!this._texture || this._texture.height < this._numTotalRows)) {\r\n // We need to resize the texture.\r\n assert(this._isStackDirty);\r\n this._isStackDirty = true;\r\n this._texture = dispose(this._texture);\r\n this._cpuBuffer = new Uint8Array(this._numTotalRows * 4 * 4);\r\n this._gpuBuffer = this.allocateGpuBuffer();\r\n }\r\n\r\n if (this._isStackDirty) {\r\n this._isStackDirty = false;\r\n this.recomputeTexture();\r\n }\r\n }\r\n\r\n protected recomputeTexture(): void {\r\n // Copy each clip's data to the buffer, recording whether the buffer's contents actually changed.\r\n let bufferDirty = false;\r\n const transform = this._getTransform();\r\n let bufferIndex = 0;\r\n for (const clip of this._stack) {\r\n const data = clip.getData(transform);\r\n for (let i = 0; i < data.byteLength; i++) {\r\n const byte = data[i];\r\n bufferDirty = bufferDirty || byte !== this._cpuBuffer[bufferIndex];\r\n this._cpuBuffer[bufferIndex++] = byte;\r\n }\r\n }\r\n\r\n // If the contents have changed, upload the new texture data to the GPU.\r\n if (bufferDirty) {\r\n this.uploadTexture();\r\n }\r\n }\r\n\r\n protected uploadTexture(): void {\r\n if (this._texture)\r\n this._texture.replaceTextureData(this._gpuBuffer);\r\n else\r\n this._texture = Texture2DHandle.createForData(1, this._numTotalRows, this._gpuBuffer, false, GL.Texture.WrapMode.ClampToEdge, GL.Texture.Format.Rgba);\r\n\r\n assert(this._texture!.height === this._numTotalRows);\r\n }\r\n\r\n protected allocateGpuBuffer(): Texture2DData {\r\n return new Float32Array(this._cpuBuffer.buffer);\r\n }\r\n\r\n protected updateColor(rgb: RgbColor | undefined, rgba: FloatRgba): void {\r\n rgba.alpha = undefined !== rgb ? 1 : 0;\r\n if (rgb)\r\n rgba.setRgbColor(rgb);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ClipStack.js","sourceRoot":"","sources":["../../../../src/render/webgl/ClipStack.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { ClipPlaneContainment, ClipVector, Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport { ClipIntersectionStyle, RgbColor } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"../../IModelApp\";\r\nimport { RenderClipVolume } from \"../RenderClipVolume\";\r\nimport { FloatRgba } from \"./FloatRGBA\";\r\nimport { Texture2DData, Texture2DHandle, TextureHandle } from \"./Texture\";\r\nimport { ClipVolume } from \"./ClipVolume\";\r\nimport { GL } from \"./GL\";\r\n\r\ninterface Clip {\r\n readonly numRows: number;\r\n readonly getData: (transform: Transform) => Uint8Array;\r\n}\r\n\r\nconst emptyClipData = new Uint8Array(0);\r\nconst emptyClip = {\r\n numRows: 0,\r\n getData: () => emptyClipData,\r\n};\r\n\r\nconst scratchRangeCorners = [\r\n new Point3d(), new Point3d(), new Point3d(), new Point3d(),\r\n new Point3d(), new Point3d(), new Point3d(), new Point3d(),\r\n];\r\n\r\nfunction getRangeCorners(r: Range3d): Point3d[] {\r\n return r.corners(scratchRangeCorners);\r\n}\r\n\r\n/** Maintains a stack of ClipVolumes. The volumes nest such that the stack represents the intersection of all the volumes.\r\n * The bottom of the stack represents the view's clip volume and is always present even if the view has no clip.\r\n * It also maintains the inside/outside clip colors, where the alpha component is 1 if the color should be applied and 0 if not.\r\n * @internal\r\n */\r\nexport class ClipStack {\r\n /** Encoded data for all clips on the stack, update when the stack or the transform changes. */\r\n protected _cpuBuffer: Uint8Array;\r\n /** A view of the encoded buffer in the format expected by the GPU. */\r\n protected _gpuBuffer: Texture2DData;\r\n protected _texture?: Texture2DHandle;\r\n /** The maximum number of rows we have ever required. Determines the texture height. Grows as needed, reallocating a larger texture, but never shrinks. */\r\n protected _numTotalRows: number;\r\n /** The number of rows in the texture actually required to encode the current contents of the stack. */\r\n protected _numRowsInUse: number;\r\n /** The first entry always represents the view clip. The rest are pushed and popped with GraphicBranches. */\r\n protected readonly _stack: Clip[] = [emptyClip];\r\n /** True if we need to recompute the texture. */\r\n protected _isStackDirty = false;\r\n /** Obtain the transform to be applied to the clips - i.e., the view matrix. */\r\n protected readonly _getTransform: () => Transform;\r\n /** If this returns false, the clip at the bottom of the stack is ignored. */\r\n protected readonly _wantViewClip: () => boolean;\r\n /** If alpha is 1 then geometry inside the clip will be drawn in this color. */\r\n protected readonly _insideColor = FloatRgba.from(0, 0, 0, 0);\r\n /** If alpha is 1 then geometry outside the clip will be drawn in this color. */\r\n protected readonly _outsideColor = FloatRgba.from(0, 0, 0, 0);\r\n /** For detecting whether the transform changed from one invocation of setViewClip to the next. */\r\n protected readonly _prevTransform = Transform.createZero();\r\n /** True if we want to colorize geometry intersecting clip planes */\r\n protected _colorizeIntersection: boolean = false;\r\n /** The style to colorize the geometry intersecting clip planes */\r\n protected readonly _intersectionStyle = FloatRgba.from(0, 0, 0, 0);\r\n\r\n public constructor(getTransform: () => Transform, wantViewClip: () => boolean) {\r\n this._getTransform = getTransform;\r\n this._wantViewClip = wantViewClip;\r\n\r\n this._numTotalRows = this._numRowsInUse = 0;\r\n this._cpuBuffer = new Uint8Array(this._numTotalRows);\r\n this._gpuBuffer = this.allocateGpuBuffer();\r\n }\r\n\r\n public get insideColor(): FloatRgba {\r\n return this._insideColor;\r\n }\r\n\r\n public get outsideColor(): FloatRgba {\r\n return this._outsideColor;\r\n }\r\n\r\n public get hasOutsideColor(): boolean {\r\n return this.outsideColor.alpha !== 0;\r\n }\r\n\r\n public get colorizeIntersection(): boolean {\r\n return this._colorizeIntersection;\r\n }\r\n\r\n public set colorizeIntersection(b: boolean) {\r\n this._colorizeIntersection = b;\r\n }\r\n public get intersectionStyle(): FloatRgba {\r\n return this._intersectionStyle;\r\n }\r\n\r\n public get bytesUsed(): number {\r\n return this._texture ? this._texture.bytesUsed : 0;\r\n }\r\n\r\n public setViewClip(clip: ClipVector | undefined, style: { insideColor?: RgbColor, outsideColor?: RgbColor, colorizeIntersection?: boolean, intersectionStyle?: ClipIntersectionStyle }): void {\r\n assert(this._stack.length === 1);\r\n\r\n this.updateColor(style.insideColor, this._insideColor);\r\n this.updateColor(style.outsideColor, this._outsideColor);\r\n this.updateIntersectionStyle(style.colorizeIntersection, style.intersectionStyle, this._intersectionStyle);\r\n\r\n const transform = this._getTransform();\r\n if (!transform.isAlmostEqual(this._prevTransform)) {\r\n transform.clone(this._prevTransform);\r\n this._isStackDirty = true;\r\n }\r\n\r\n const cur = this._stack[0];\r\n if (cur === emptyClip) {\r\n if (!clip)\r\n return; // no change.\r\n } else if (!clip) {\r\n this._stack[0] = emptyClip;\r\n this._numRowsInUse = 0;\r\n this._isStackDirty = true;\r\n return;\r\n } else {\r\n assert(cur instanceof ClipVolume);\r\n if (cur.clipVector === clip) {\r\n // We assume that the active view's ClipVector is never mutated in place, so if we are given the same ClipVector, we expect our RenderClipVolume to match it.\r\n return;\r\n }\r\n }\r\n\r\n // ClipVector has changed.\r\n const newClip = IModelApp.renderSystem.createClipVolume(clip);\r\n if (!newClip) {\r\n this._isStackDirty = this._stack[0] !== emptyClip;\r\n this._stack[0] = emptyClip;\r\n this._numRowsInUse = 0;\r\n } else {\r\n this.pop();\r\n this.push(newClip);\r\n }\r\n }\r\n\r\n public push(clip: RenderClipVolume): void {\r\n assert(clip instanceof ClipVolume);\r\n\r\n this._stack.push(clip);\r\n this._numRowsInUse += clip.numRows;\r\n this._numTotalRows = Math.max(this._numRowsInUse, this._numTotalRows);\r\n this._isStackDirty = true;\r\n }\r\n\r\n public pop(): void {\r\n assert(this._stack.length > 0);\r\n const clip = this._stack.pop();\r\n this._numRowsInUse -= (clip ? clip.numRows : 0);\r\n }\r\n\r\n public get hasClip(): boolean {\r\n return this.startIndex < this.endIndex;\r\n }\r\n\r\n public get hasViewClip(): boolean {\r\n return emptyClip !== this._stack[0] && this._wantViewClip();\r\n }\r\n\r\n public get startIndex(): number {\r\n assert(this._stack.length > 0);\r\n return this._wantViewClip() ? 0 : this._stack[0].numRows;\r\n }\r\n\r\n public get endIndex(): number {\r\n return this._numRowsInUse;\r\n }\r\n\r\n public get textureHeight(): number {\r\n return this._numTotalRows;\r\n }\r\n\r\n public get texture(): TextureHandle | undefined {\r\n this.updateTexture();\r\n return this._texture;\r\n }\r\n\r\n public isRangeClipped(range: Range3d, transform: Transform): boolean {\r\n if (this.hasOutsideColor || !this.hasClip)\r\n return false;\r\n\r\n range = transform.multiplyRange(range, range);\r\n const corners = getRangeCorners(range);\r\n const startIndex = this._wantViewClip() && emptyClip !== this._stack[0] ? 0 : 1;\r\n for (let i = startIndex; i < this._stack.length; i++) {\r\n const clip = this._stack[i];\r\n assert(clip instanceof ClipVolume);\r\n if (ClipPlaneContainment.StronglyOutside === clip.clipVector.classifyPointContainment(corners))\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public get clips(): ReadonlyArray<{ numRows: number }> {\r\n return this._stack;\r\n }\r\n\r\n /** Exposed strictly for tests. */\r\n public static get emptyViewClip() {\r\n return emptyClip;\r\n }\r\n\r\n protected updateTexture(): void {\r\n if (this._numTotalRows > 0 && (!this._texture || this._texture.height < this._numTotalRows)) {\r\n // We need to resize the texture.\r\n assert(this._isStackDirty);\r\n this._isStackDirty = true;\r\n this._texture = dispose(this._texture);\r\n this._cpuBuffer = new Uint8Array(this._numTotalRows * 4 * 4);\r\n this._gpuBuffer = this.allocateGpuBuffer();\r\n }\r\n\r\n if (this._isStackDirty) {\r\n this._isStackDirty = false;\r\n this.recomputeTexture();\r\n }\r\n }\r\n\r\n protected recomputeTexture(): void {\r\n // Copy each clip's data to the buffer, recording whether the buffer's contents actually changed.\r\n let bufferDirty = false;\r\n const transform = this._getTransform();\r\n let bufferIndex = 0;\r\n for (const clip of this._stack) {\r\n const data = clip.getData(transform);\r\n for (let i = 0; i < data.byteLength; i++) {\r\n const byte = data[i];\r\n bufferDirty = bufferDirty || byte !== this._cpuBuffer[bufferIndex];\r\n this._cpuBuffer[bufferIndex++] = byte;\r\n }\r\n }\r\n\r\n // If the contents have changed, upload the new texture data to the GPU.\r\n if (bufferDirty) {\r\n this.uploadTexture();\r\n }\r\n }\r\n\r\n protected uploadTexture(): void {\r\n if (this._texture)\r\n this._texture.replaceTextureData(this._gpuBuffer);\r\n else\r\n this._texture = Texture2DHandle.createForData(1, this._numTotalRows, this._gpuBuffer, false, GL.Texture.WrapMode.ClampToEdge, GL.Texture.Format.Rgba);\r\n\r\n assert(this._texture!.height === this._numTotalRows);\r\n }\r\n\r\n protected allocateGpuBuffer(): Texture2DData {\r\n return new Float32Array(this._cpuBuffer.buffer);\r\n }\r\n\r\n protected updateColor(rgb: RgbColor | undefined, rgba: FloatRgba): void {\r\n rgba.alpha = undefined !== rgb ? 1 : 0;\r\n if (rgb)\r\n rgba.setRgbColor(rgb);\r\n }\r\n\r\n protected updateIntersectionStyle(colorizeIntersection: boolean | undefined, style: ClipIntersectionStyle | undefined, _thisStyle: FloatRgba): void {\r\n this._colorizeIntersection = colorizeIntersection === true ? true : false;\r\n\r\n if (style !== undefined) {\r\n if (style.color !== undefined)\r\n _thisStyle.setRgbColor(style.color);\r\n if (style.width !== undefined)\r\n _thisStyle.alpha = style.width;\r\n }\r\n }\r\n}\r\n"]}
@@ -19,7 +19,8 @@ export declare const enum VariableType {
19
19
  Sampler2D = 8,
20
20
  SamplerCube = 9,
21
21
  Uint = 10,
22
- COUNT = 11
22
+ BVec2 = 11,
23
+ COUNT = 12
23
24
  }
24
25
  /** Describes the qualifier associated with a shader program variable.
25
26
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ var Convert;
26
26
  case 8 /* VariableType.Sampler2D */: return "sampler2D";
27
27
  case 9 /* VariableType.SamplerCube */: return "samplerCube";
28
28
  case 10 /* VariableType.Uint */: return "uint";
29
+ case 11 /* VariableType.BVec2 */: return "bvec2";
29
30
  default:
30
31
  assert(false);
31
32
  return "undefined";
@@ -236,6 +237,7 @@ export class ShaderVariables {
236
237
  variableSize = 1;
237
238
  break;
238
239
  case 3 /* VariableType.Vec2 */:
240
+ case 11 /* VariableType.BVec2 */:
239
241
  variableSize = 2;
240
242
  break;
241
243
  case 4 /* VariableType.Vec3 */:
@@ -302,6 +304,7 @@ export class ShaderVariables {
302
304
  variableSize = 1;
303
305
  break;
304
306
  case 3 /* VariableType.Vec2 */:
307
+ case 11 /* VariableType.BVec2 */:
305
308
  variableSize = 2;
306
309
  break;
307
310
  case 4 /* VariableType.Vec3 */:
@@ -685,9 +688,9 @@ export class FragmentShaderBuilder extends ShaderBuilder {
685
688
  const applyClipping = this.get(10 /* FragmentShaderComponent.ApplyClipping */);
686
689
  if (undefined !== applyClipping) {
687
690
  prelude.addline("vec3 g_clipColor;\n");
688
- prelude.addFunction("bool applyClipping(vec4 baseColor)", applyClipping);
689
- main.addline(" bool hasClipColor = applyClipping(baseColor);");
690
- main.addline(" if (hasClipColor) { baseColor.rgb = g_clipColor; } else {");
691
+ prelude.addFunction("bvec2 applyClipping(vec4 baseColor)", applyClipping);
692
+ main.addline(" g_hasClipColor = applyClipping(baseColor);");
693
+ main.addline(" if (g_hasClipColor.x) { baseColor.rgb = g_clipColor; } else {");
691
694
  clipIndent = " ";
692
695
  }
693
696
  const applyMaterialOverrides = this.get(2 /* FragmentShaderComponent.ApplyMaterialOverrides */);
@@ -743,6 +746,9 @@ export class FragmentShaderBuilder extends ShaderBuilder {
743
746
  prelude.addFunction("vec4 applyLighting(vec4 baseColor)", applyLighting);
744
747
  main.addline(" baseColor = applyLighting(baseColor);");
745
748
  }
749
+ if (undefined !== applyClipping) {
750
+ main.addline(" if (g_hasClipColor.y) { baseColor.rgba = vec4(g_clipColor, 1.0); } ");
751
+ }
746
752
  const reverseWoW = this.get(9 /* FragmentShaderComponent.ReverseWhiteOnWhite */);
747
753
  if (undefined !== reverseWoW) {
748
754
  prelude.addFunction("vec4 reverseWhiteOnWhite(vec4 baseColor)", reverseWoW);