@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.
- package/lib/cjs/extension/ExtensionRuntime.js +1 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/render/webgl/ClipStack.d.ts +11 -1
- package/lib/cjs/render/webgl/ClipStack.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClipStack.js +23 -0
- package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +2 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +9 -3
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.js +90 -33
- package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.js +8 -3
- package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +1 -0
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +2 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.d.ts +2 -0
- package/lib/cjs/render/webgl/glsl/Translucency.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.js +6 -6
- package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +2 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/render/webgl/ClipStack.d.ts +11 -1
- package/lib/esm/render/webgl/ClipStack.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClipStack.js +23 -0
- package/lib/esm/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +2 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +9 -3
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.js +91 -34
- package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Composite.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Composite.js +8 -3
- package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +1 -0
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.d.ts +2 -0
- package/lib/esm/render/webgl/glsl/Translucency.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.js +3 -3
- package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
- package/package.json +18 -18
|
@@ -47,6 +47,7 @@ const extensionExports = {
|
|
|
47
47
|
ChangedValueState: core_common_1.ChangedValueState,
|
|
48
48
|
ChangesetType: core_common_1.ChangesetType,
|
|
49
49
|
ClipEventType: core_frontend_1.ClipEventType,
|
|
50
|
+
ClipIntersectionStyle: core_common_1.ClipIntersectionStyle,
|
|
50
51
|
Cluster: core_frontend_1.Cluster,
|
|
51
52
|
ColorByName: core_common_1.ColorByName,
|
|
52
53
|
ColorDef: core_common_1.ColorDef,
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ClipStack.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ClipStack.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,10 @@ class ClipStack {
|
|
|
44
44
|
this._outsideColor = FloatRGBA_1.FloatRgba.from(0, 0, 0, 0);
|
|
45
45
|
/** For detecting whether the transform changed from one invocation of setViewClip to the next. */
|
|
46
46
|
this._prevTransform = core_geometry_1.Transform.createZero();
|
|
47
|
+
/** True if we want to colorize geometry intersecting clip planes */
|
|
48
|
+
this._colorizeIntersection = false;
|
|
49
|
+
/** The style to colorize the geometry intersecting clip planes */
|
|
50
|
+
this._intersectionStyle = FloatRGBA_1.FloatRgba.from(0, 0, 0, 0);
|
|
47
51
|
this._getTransform = getTransform;
|
|
48
52
|
this._wantViewClip = wantViewClip;
|
|
49
53
|
this._numTotalRows = this._numRowsInUse = 0;
|
|
@@ -59,6 +63,15 @@ class ClipStack {
|
|
|
59
63
|
get hasOutsideColor() {
|
|
60
64
|
return this.outsideColor.alpha !== 0;
|
|
61
65
|
}
|
|
66
|
+
get colorizeIntersection() {
|
|
67
|
+
return this._colorizeIntersection;
|
|
68
|
+
}
|
|
69
|
+
set colorizeIntersection(b) {
|
|
70
|
+
this._colorizeIntersection = b;
|
|
71
|
+
}
|
|
72
|
+
get intersectionStyle() {
|
|
73
|
+
return this._intersectionStyle;
|
|
74
|
+
}
|
|
62
75
|
get bytesUsed() {
|
|
63
76
|
return this._texture ? this._texture.bytesUsed : 0;
|
|
64
77
|
}
|
|
@@ -66,6 +79,7 @@ class ClipStack {
|
|
|
66
79
|
(0, core_bentley_1.assert)(this._stack.length === 1);
|
|
67
80
|
this.updateColor(style.insideColor, this._insideColor);
|
|
68
81
|
this.updateColor(style.outsideColor, this._outsideColor);
|
|
82
|
+
this.updateIntersectionStyle(style.colorizeIntersection, style.intersectionStyle, this._intersectionStyle);
|
|
69
83
|
const transform = this._getTransform();
|
|
70
84
|
if (!transform.isAlmostEqual(this._prevTransform)) {
|
|
71
85
|
transform.clone(this._prevTransform);
|
|
@@ -202,6 +216,15 @@ class ClipStack {
|
|
|
202
216
|
if (rgb)
|
|
203
217
|
rgba.setRgbColor(rgb);
|
|
204
218
|
}
|
|
219
|
+
updateIntersectionStyle(colorizeIntersection, style, _thisStyle) {
|
|
220
|
+
this._colorizeIntersection = colorizeIntersection === true ? true : false;
|
|
221
|
+
if (style !== undefined) {
|
|
222
|
+
if (style.color !== undefined)
|
|
223
|
+
_thisStyle.setRgbColor(style.color);
|
|
224
|
+
if (style.width !== undefined)
|
|
225
|
+
_thisStyle.alpha = style.width;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
205
228
|
}
|
|
206
229
|
exports.ClipStack = ClipStack;
|
|
207
230
|
//# 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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD;;GAEG;AACH,0BAAkB,YAAY;IAC5B,OAAO,IAAA;IACP,GAAG,IAAA;IACH,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,WAAW,IAAA;IACX,IAAI,KAAA;
|
|
1
|
+
{"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ var Convert;
|
|
|
29
29
|
case 8 /* VariableType.Sampler2D */: return "sampler2D";
|
|
30
30
|
case 9 /* VariableType.SamplerCube */: return "samplerCube";
|
|
31
31
|
case 10 /* VariableType.Uint */: return "uint";
|
|
32
|
+
case 11 /* VariableType.BVec2 */: return "bvec2";
|
|
32
33
|
default:
|
|
33
34
|
(0, core_bentley_1.assert)(false);
|
|
34
35
|
return "undefined";
|
|
@@ -240,6 +241,7 @@ class ShaderVariables {
|
|
|
240
241
|
variableSize = 1;
|
|
241
242
|
break;
|
|
242
243
|
case 3 /* VariableType.Vec2 */:
|
|
244
|
+
case 11 /* VariableType.BVec2 */:
|
|
243
245
|
variableSize = 2;
|
|
244
246
|
break;
|
|
245
247
|
case 4 /* VariableType.Vec3 */:
|
|
@@ -306,6 +308,7 @@ class ShaderVariables {
|
|
|
306
308
|
variableSize = 1;
|
|
307
309
|
break;
|
|
308
310
|
case 3 /* VariableType.Vec2 */:
|
|
311
|
+
case 11 /* VariableType.BVec2 */:
|
|
309
312
|
variableSize = 2;
|
|
310
313
|
break;
|
|
311
314
|
case 4 /* VariableType.Vec3 */:
|
|
@@ -693,9 +696,9 @@ class FragmentShaderBuilder extends ShaderBuilder {
|
|
|
693
696
|
const applyClipping = this.get(10 /* FragmentShaderComponent.ApplyClipping */);
|
|
694
697
|
if (undefined !== applyClipping) {
|
|
695
698
|
prelude.addline("vec3 g_clipColor;\n");
|
|
696
|
-
prelude.addFunction("
|
|
697
|
-
main.addline("
|
|
698
|
-
main.addline(" if (
|
|
699
|
+
prelude.addFunction("bvec2 applyClipping(vec4 baseColor)", applyClipping);
|
|
700
|
+
main.addline(" g_hasClipColor = applyClipping(baseColor);");
|
|
701
|
+
main.addline(" if (g_hasClipColor.x) { baseColor.rgb = g_clipColor; } else {");
|
|
699
702
|
clipIndent = " ";
|
|
700
703
|
}
|
|
701
704
|
const applyMaterialOverrides = this.get(2 /* FragmentShaderComponent.ApplyMaterialOverrides */);
|
|
@@ -751,6 +754,9 @@ class FragmentShaderBuilder extends ShaderBuilder {
|
|
|
751
754
|
prelude.addFunction("vec4 applyLighting(vec4 baseColor)", applyLighting);
|
|
752
755
|
main.addline(" baseColor = applyLighting(baseColor);");
|
|
753
756
|
}
|
|
757
|
+
if (undefined !== applyClipping) {
|
|
758
|
+
main.addline(" if (g_hasClipColor.y) { baseColor.rgba = vec4(g_clipColor, 1.0); } ");
|
|
759
|
+
}
|
|
754
760
|
const reverseWoW = this.get(9 /* FragmentShaderComponent.ReverseWhiteOnWhite */);
|
|
755
761
|
if (undefined !== reverseWoW) {
|
|
756
762
|
prelude.addFunction("vec4 reverseWhiteOnWhite(vec4 baseColor)", reverseWoW);
|