@itwin/core-frontend 4.3.2 → 4.4.0-dev.10

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 (30) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/extension/ExtensionRuntime.js +1 -0
  3. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  4. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +4 -1
  5. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  6. package/lib/cjs/render/ParticleCollectionBuilder.js +4 -1
  7. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  8. package/lib/cjs/tile/PrimaryTileTree.d.ts +5 -0
  9. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  10. package/lib/cjs/tile/PrimaryTileTree.js +15 -3
  11. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  12. package/lib/cjs/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  13. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +8 -6
  14. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  15. package/lib/esm/extension/ExtensionRuntime.js +2 -1
  16. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  17. package/lib/esm/render/ParticleCollectionBuilder.d.ts +4 -1
  18. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  19. package/lib/esm/render/ParticleCollectionBuilder.js +4 -1
  20. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  21. package/lib/esm/tile/PrimaryTileTree.d.ts +5 -0
  22. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  23. package/lib/esm/tile/PrimaryTileTree.js +13 -2
  24. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  25. package/lib/esm/tile/ThreeDTileFormatInterpreter.d.ts.map +1 -1
  26. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +9 -7
  27. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  28. package/lib/public/scripts/parse-imdl-worker.js +1 -1
  29. package/lib/workers/webpack/parse-imdl-worker.js +1 -1
  30. package/package.json +23 -23
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log - @itwin/core-frontend
2
2
 
3
- This log was last generated on Thu, 14 Dec 2023 20:23:02 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 14 Dec 2023 20:24:02 GMT and should not be manually modified.
4
4
 
5
5
  ## 4.3.2
6
6
  Thu, 14 Dec 2023 20:23:02 GMT
@@ -143,6 +143,7 @@ const extensionExports = {
143
143
  OutputMessagePriority: core_frontend_1.OutputMessagePriority,
144
144
  OutputMessageType: core_frontend_1.OutputMessageType,
145
145
  ParseAndRunResult: core_frontend_1.ParseAndRunResult,
146
+ ParticleCollectionBuilder: core_frontend_1.ParticleCollectionBuilder,
146
147
  PerModelCategoryVisibility: core_frontend_1.PerModelCategoryVisibility,
147
148
  PhysicalModelState: core_frontend_1.PhysicalModelState,
148
149
  Pixel: core_frontend_1.Pixel,
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Extensions\n */\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @itwin/no-internal-barrel-imports */\n/* eslint-disable sort-imports */\n\nimport { ExtensionHost } from \"./ExtensionHost\";\n\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\nif ((globalThis as any)[globalSymbol])\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\n\n// BEGIN GENERATED CODE\nimport {\n // @public enum(s) from @itwin/core-frontend\n ACSDisplayOptions,\n ACSType,\n ActivityMessageEndReason,\n BeButton,\n BeModifierKeys,\n ClipEventType,\n ContextRotationId,\n CoordSource,\n CoordSystem,\n CoordinateLockOverrides,\n EventHandled,\n FlashMode,\n FrontendLoggerCategory,\n GraphicType,\n HitDetailType,\n HitGeomType,\n HitParentGeomType,\n HitPriority,\n HitSource,\n InputSource,\n KeyinParseError,\n LocateAction,\n LocateFilterStatus,\n ManipulatorToolEvent,\n MessageBoxIconType,\n MessageBoxType,\n MessageBoxValue,\n OutputMessageAlert,\n OutputMessagePriority,\n OutputMessageType,\n ParseAndRunResult,\n SelectionMethod,\n SelectionMode,\n SelectionProcessing,\n SelectionSetEventType,\n SnapHeat,\n SnapMode,\n SnapStatus,\n StandardViewId,\n StartOrResume,\n TileBoundingBoxes,\n TileGraphicType,\n TileLoadPriority,\n TileLoadStatus,\n TileTreeLoadStatus,\n TileVisibility,\n ToolAssistanceImage,\n ToolAssistanceInputMethod,\n UniformType,\n VaryingType,\n ViewStatus,\n // @public real(s) from @itwin/core-frontend\n AccuDrawHintBuilder,\n AccuSnap,\n ActivityMessageDetails,\n AuxCoordSystem2dState,\n AuxCoordSystem3dState,\n AuxCoordSystemSpatialState,\n AuxCoordSystemState,\n BeButtonEvent,\n BeButtonState,\n BeTouchEvent,\n BeWheelEvent,\n BingElevationProvider,\n BingLocationProvider,\n CategorySelectorState,\n ChangeFlags,\n Cluster,\n ContextRealityModelState,\n DecorateContext,\n Decorations,\n DisclosedTileTreeSet,\n DisplayStyle2dState,\n DisplayStyle3dState,\n DisplayStyleState,\n DrawingModelState,\n DrawingViewState,\n EditManipulator,\n ElementLocateManager,\n ElementPicker,\n ElementState,\n EmphasizeElements,\n EntityState,\n EventController,\n FeatureSymbology,\n FlashSettings,\n FrustumAnimator,\n GeometricModel2dState,\n GeometricModel3dState,\n GeometricModelState,\n GlobeAnimator,\n GraphicBranch,\n GraphicBuilder,\n HiliteSet,\n HitDetail,\n HitList,\n IModelConnection,\n IconSprites,\n InputCollector,\n InteractiveTool,\n IntersectDetail,\n LocateOptions,\n LocateResponse,\n MarginPercent,\n Marker,\n MarkerSet,\n ModelSelectorState,\n ModelState,\n NotificationHandler,\n NotificationManager,\n NotifyMessageDetails,\n OffScreenViewport,\n OrthographicViewState,\n PerModelCategoryVisibility,\n PhysicalModelState,\n Pixel,\n PrimitiveTool,\n RenderClipVolume,\n RenderContext,\n RenderGraphic,\n RenderGraphicOwner,\n RenderSystem,\n Scene,\n ScreenViewport,\n SectionDrawingModelState,\n SelectionSet,\n SheetModelState,\n SheetViewState,\n SnapDetail,\n SpatialLocationModelState,\n SpatialModelState,\n SpatialViewState,\n Sprite,\n SpriteLocation,\n TentativePoint,\n Tile,\n TileAdmin,\n TileDrawArgs,\n TileRequest,\n TileRequestChannel,\n TileRequestChannelStatistics,\n TileRequestChannels,\n TileTree,\n TileTreeReference,\n TileUsageMarker,\n Tiles,\n Tool,\n ToolAdmin,\n ToolAssistance,\n ToolSettings,\n TwoWayViewportFrustumSync,\n TwoWayViewportSync,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n ViewClipTool,\n ViewCreator2d,\n ViewCreator3d,\n ViewManager,\n ViewManip,\n ViewPose,\n ViewPose2d,\n ViewPose3d,\n ViewRect,\n ViewState,\n ViewState2d,\n ViewState3d,\n ViewTool,\n ViewingSpace,\n Viewport,\n canvasToImageBuffer,\n canvasToResizedCanvasWithBars,\n connectViewportFrusta,\n connectViewportViews,\n connectViewports,\n extractImageSourceDimensions,\n getCompressedJpegFromCanvas,\n getImageSourceFormatForMimeType,\n getImageSourceMimeType,\n imageBufferToBase64EncodedPng,\n imageBufferToCanvas,\n imageBufferToPngDataUrl,\n imageElementFromImageSource,\n imageElementFromUrl,\n queryTerrainElevationOffset,\n readElementGraphics,\n readGltfGraphics,\n synchronizeViewportFrusta,\n synchronizeViewportViews,\n} from \"../core-frontend\";\n\nimport {\n // @public enum(s) from @itwin/core-common\n BackgroundFill,\n BackgroundMapType,\n BatchType,\n BisCodeSpec,\n BriefcaseIdValue,\n ChangeOpCode,\n ChangedValueState,\n ChangesetType,\n CommonLoggerCategory,\n ECSqlSystemProperty,\n ECSqlValueType,\n ElementGeometryOpcode,\n FeatureOverrideType,\n FillDisplay,\n FillFlags,\n FontType,\n GeoCoordStatus,\n GeometryClass,\n GeometryStreamFlags,\n GeometrySummaryVerbosity,\n GlobeMode,\n GridOrientationType,\n HSVConstants,\n ImageBufferFormat,\n ImageSourceFormat,\n LinePixels,\n MassPropertiesOperation,\n MonochromeMode,\n Npc,\n PlanarClipMaskMode,\n PlanarClipMaskPriority,\n QueryRowFormat,\n Rank,\n RenderMode,\n SectionType,\n SkyBoxImageType,\n SpatialClassifierInsideDisplay,\n SpatialClassifierOutsideDisplay,\n SyncMode,\n TerrainHeightOriginMode,\n TextureMapUnits,\n ThematicDisplayMode,\n ThematicGradientColorScheme,\n ThematicGradientMode,\n ThematicGradientTransparencyMode,\n TxnAction,\n TypeOfChange,\n // @public real(s) from @itwin/core-common\n ClipIntersectionStyle,\n ColorByName,\n ColorDef,\n FrustumPlanes,\n QParams2d,\n QParams3d,\n QPoint2d,\n QPoint2dBuffer,\n QPoint2dBufferBuilder,\n QPoint2dList,\n QPoint3d,\n QPoint3dBuffer,\n QPoint3dBufferBuilder,\n QPoint3dList,\n Quantization,\n} from \"@itwin/core-common\";\n\nconst extensionExports = {\n ACSDisplayOptions,\n ACSType,\n AccuDrawHintBuilder,\n AccuSnap,\n ActivityMessageDetails,\n ActivityMessageEndReason,\n AuxCoordSystem2dState,\n AuxCoordSystem3dState,\n AuxCoordSystemSpatialState,\n AuxCoordSystemState,\n BackgroundFill,\n BackgroundMapType,\n BatchType,\n BeButton,\n BeButtonEvent,\n BeButtonState,\n BeModifierKeys,\n BeTouchEvent,\n BeWheelEvent,\n BingElevationProvider,\n BingLocationProvider,\n BisCodeSpec,\n BriefcaseIdValue,\n CategorySelectorState,\n ChangeFlags,\n ChangeOpCode,\n ChangedValueState,\n ChangesetType,\n ClipEventType,\n ClipIntersectionStyle,\n Cluster,\n ColorByName,\n ColorDef,\n CommonLoggerCategory,\n ContextRealityModelState,\n ContextRotationId,\n CoordSource,\n CoordSystem,\n CoordinateLockOverrides,\n DecorateContext,\n Decorations,\n DisclosedTileTreeSet,\n DisplayStyle2dState,\n DisplayStyle3dState,\n DisplayStyleState,\n DrawingModelState,\n DrawingViewState,\n ECSqlSystemProperty,\n ECSqlValueType,\n EditManipulator,\n ElementGeometryOpcode,\n ElementLocateManager,\n ElementPicker,\n ElementState,\n EmphasizeElements,\n EntityState,\n EventController,\n EventHandled,\n FeatureOverrideType,\n FeatureSymbology,\n FillDisplay,\n FillFlags,\n FlashMode,\n FlashSettings,\n FontType,\n FrontendLoggerCategory,\n FrustumAnimator,\n FrustumPlanes,\n GeoCoordStatus,\n GeometricModel2dState,\n GeometricModel3dState,\n GeometricModelState,\n GeometryClass,\n GeometryStreamFlags,\n GeometrySummaryVerbosity,\n GlobeAnimator,\n GlobeMode,\n GraphicBranch,\n GraphicBuilder,\n GraphicType,\n GridOrientationType,\n HSVConstants,\n HiliteSet,\n HitDetail,\n HitDetailType,\n HitGeomType,\n HitList,\n HitParentGeomType,\n HitPriority,\n HitSource,\n IModelConnection,\n IconSprites,\n ImageBufferFormat,\n ImageSourceFormat,\n InputCollector,\n InputSource,\n InteractiveTool,\n IntersectDetail,\n KeyinParseError,\n LinePixels,\n LocateAction,\n LocateFilterStatus,\n LocateOptions,\n LocateResponse,\n ManipulatorToolEvent,\n MarginPercent,\n Marker,\n MarkerSet,\n MassPropertiesOperation,\n MessageBoxIconType,\n MessageBoxType,\n MessageBoxValue,\n ModelSelectorState,\n ModelState,\n MonochromeMode,\n NotificationHandler,\n NotificationManager,\n NotifyMessageDetails,\n Npc,\n OffScreenViewport,\n OrthographicViewState,\n OutputMessageAlert,\n OutputMessagePriority,\n OutputMessageType,\n ParseAndRunResult,\n PerModelCategoryVisibility,\n PhysicalModelState,\n Pixel,\n PlanarClipMaskMode,\n PlanarClipMaskPriority,\n PrimitiveTool,\n QParams2d,\n QParams3d,\n QPoint2d,\n QPoint2dBuffer,\n QPoint2dBufferBuilder,\n QPoint2dList,\n QPoint3d,\n QPoint3dBuffer,\n QPoint3dBufferBuilder,\n QPoint3dList,\n Quantization,\n QueryRowFormat,\n Rank,\n RenderClipVolume,\n RenderContext,\n RenderGraphic,\n RenderGraphicOwner,\n RenderMode,\n RenderSystem,\n Scene,\n ScreenViewport,\n SectionDrawingModelState,\n SectionType,\n SelectionMethod,\n SelectionMode,\n SelectionProcessing,\n SelectionSet,\n SelectionSetEventType,\n SheetModelState,\n SheetViewState,\n SkyBoxImageType,\n SnapDetail,\n SnapHeat,\n SnapMode,\n SnapStatus,\n SpatialClassifierInsideDisplay,\n SpatialClassifierOutsideDisplay,\n SpatialLocationModelState,\n SpatialModelState,\n SpatialViewState,\n Sprite,\n SpriteLocation,\n StandardViewId,\n StartOrResume,\n SyncMode,\n TentativePoint,\n TerrainHeightOriginMode,\n TextureMapUnits,\n ThematicDisplayMode,\n ThematicGradientColorScheme,\n ThematicGradientMode,\n ThematicGradientTransparencyMode,\n Tile,\n TileAdmin,\n TileBoundingBoxes,\n TileDrawArgs,\n TileGraphicType,\n TileLoadPriority,\n TileLoadStatus,\n TileRequest,\n TileRequestChannel,\n TileRequestChannelStatistics,\n TileRequestChannels,\n TileTree,\n TileTreeLoadStatus,\n TileTreeReference,\n TileUsageMarker,\n TileVisibility,\n Tiles,\n Tool,\n ToolAdmin,\n ToolAssistance,\n ToolAssistanceImage,\n ToolAssistanceInputMethod,\n ToolSettings,\n TwoWayViewportFrustumSync,\n TwoWayViewportSync,\n TxnAction,\n TypeOfChange,\n UniformType,\n VaryingType,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n ViewClipTool,\n ViewCreator2d,\n ViewCreator3d,\n ViewManager,\n ViewManip,\n ViewPose,\n ViewPose2d,\n ViewPose3d,\n ViewRect,\n ViewState,\n ViewState2d,\n ViewState3d,\n ViewStatus,\n ViewTool,\n ViewingSpace,\n Viewport,\n canvasToImageBuffer,\n canvasToResizedCanvasWithBars,\n connectViewportFrusta,\n connectViewportViews,\n connectViewports,\n extractImageSourceDimensions,\n getCompressedJpegFromCanvas,\n getImageSourceFormatForMimeType,\n getImageSourceMimeType,\n imageBufferToBase64EncodedPng,\n imageBufferToCanvas,\n imageBufferToPngDataUrl,\n imageElementFromImageSource,\n imageElementFromUrl,\n queryTerrainElevationOffset,\n readElementGraphics,\n readGltfGraphics,\n synchronizeViewportFrusta,\n synchronizeViewportViews,\n};\n\n// END GENERATED CODE\n\nconst getExtensionApi = (_id: string) => {\n return {\n exports: {\n // exceptions\n ExtensionHost,\n // automated\n ...extensionExports,\n },\n };\n};\n\n(globalThis as any)[globalSymbol] = {\n getExtensionApi,\n};\n"]}
1
+ {"version":3,"file":"ExtensionRuntime.js","sourceRoot":"","sources":["../../../src/extension/ExtensionRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Extensions\n */\n\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @itwin/no-internal-barrel-imports */\n/* eslint-disable sort-imports */\n\nimport { ExtensionHost } from \"./ExtensionHost\";\n\nconst globalSymbol = Symbol.for(\"itwin.core.frontend.globals\");\nif ((globalThis as any)[globalSymbol])\n throw new Error(\"Multiple @itwin/core-frontend imports detected!\");\n\n// BEGIN GENERATED CODE\nimport {\n // @public enum(s) from @itwin/core-frontend\n ACSDisplayOptions,\n ACSType,\n ActivityMessageEndReason,\n BeButton,\n BeModifierKeys,\n ClipEventType,\n ContextRotationId,\n CoordSource,\n CoordSystem,\n CoordinateLockOverrides,\n EventHandled,\n FlashMode,\n FrontendLoggerCategory,\n GraphicType,\n HitDetailType,\n HitGeomType,\n HitParentGeomType,\n HitPriority,\n HitSource,\n InputSource,\n KeyinParseError,\n LocateAction,\n LocateFilterStatus,\n ManipulatorToolEvent,\n MessageBoxIconType,\n MessageBoxType,\n MessageBoxValue,\n OutputMessageAlert,\n OutputMessagePriority,\n OutputMessageType,\n ParseAndRunResult,\n SelectionMethod,\n SelectionMode,\n SelectionProcessing,\n SelectionSetEventType,\n SnapHeat,\n SnapMode,\n SnapStatus,\n StandardViewId,\n StartOrResume,\n TileBoundingBoxes,\n TileGraphicType,\n TileLoadPriority,\n TileLoadStatus,\n TileTreeLoadStatus,\n TileVisibility,\n ToolAssistanceImage,\n ToolAssistanceInputMethod,\n UniformType,\n VaryingType,\n ViewStatus,\n // @public real(s) from @itwin/core-frontend\n AccuDrawHintBuilder,\n AccuSnap,\n ActivityMessageDetails,\n AuxCoordSystem2dState,\n AuxCoordSystem3dState,\n AuxCoordSystemSpatialState,\n AuxCoordSystemState,\n BeButtonEvent,\n BeButtonState,\n BeTouchEvent,\n BeWheelEvent,\n BingElevationProvider,\n BingLocationProvider,\n CategorySelectorState,\n ChangeFlags,\n Cluster,\n ContextRealityModelState,\n DecorateContext,\n Decorations,\n DisclosedTileTreeSet,\n DisplayStyle2dState,\n DisplayStyle3dState,\n DisplayStyleState,\n DrawingModelState,\n DrawingViewState,\n EditManipulator,\n ElementLocateManager,\n ElementPicker,\n ElementState,\n EmphasizeElements,\n EntityState,\n EventController,\n FeatureSymbology,\n FlashSettings,\n FrustumAnimator,\n GeometricModel2dState,\n GeometricModel3dState,\n GeometricModelState,\n GlobeAnimator,\n GraphicBranch,\n GraphicBuilder,\n HiliteSet,\n HitDetail,\n HitList,\n IModelConnection,\n IconSprites,\n InputCollector,\n InteractiveTool,\n IntersectDetail,\n LocateOptions,\n LocateResponse,\n MarginPercent,\n Marker,\n MarkerSet,\n ModelSelectorState,\n ModelState,\n NotificationHandler,\n NotificationManager,\n NotifyMessageDetails,\n OffScreenViewport,\n OrthographicViewState,\n ParticleCollectionBuilder,\n PerModelCategoryVisibility,\n PhysicalModelState,\n Pixel,\n PrimitiveTool,\n RenderClipVolume,\n RenderContext,\n RenderGraphic,\n RenderGraphicOwner,\n RenderSystem,\n Scene,\n ScreenViewport,\n SectionDrawingModelState,\n SelectionSet,\n SheetModelState,\n SheetViewState,\n SnapDetail,\n SpatialLocationModelState,\n SpatialModelState,\n SpatialViewState,\n Sprite,\n SpriteLocation,\n TentativePoint,\n Tile,\n TileAdmin,\n TileDrawArgs,\n TileRequest,\n TileRequestChannel,\n TileRequestChannelStatistics,\n TileRequestChannels,\n TileTree,\n TileTreeReference,\n TileUsageMarker,\n Tiles,\n Tool,\n ToolAdmin,\n ToolAssistance,\n ToolSettings,\n TwoWayViewportFrustumSync,\n TwoWayViewportSync,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n ViewClipTool,\n ViewCreator2d,\n ViewCreator3d,\n ViewManager,\n ViewManip,\n ViewPose,\n ViewPose2d,\n ViewPose3d,\n ViewRect,\n ViewState,\n ViewState2d,\n ViewState3d,\n ViewTool,\n ViewingSpace,\n Viewport,\n canvasToImageBuffer,\n canvasToResizedCanvasWithBars,\n connectViewportFrusta,\n connectViewportViews,\n connectViewports,\n extractImageSourceDimensions,\n getCompressedJpegFromCanvas,\n getImageSourceFormatForMimeType,\n getImageSourceMimeType,\n imageBufferToBase64EncodedPng,\n imageBufferToCanvas,\n imageBufferToPngDataUrl,\n imageElementFromImageSource,\n imageElementFromUrl,\n queryTerrainElevationOffset,\n readElementGraphics,\n readGltfGraphics,\n synchronizeViewportFrusta,\n synchronizeViewportViews,\n} from \"../core-frontend\";\n\nimport {\n // @public enum(s) from @itwin/core-common\n BackgroundFill,\n BackgroundMapType,\n BatchType,\n BisCodeSpec,\n BriefcaseIdValue,\n ChangeOpCode,\n ChangedValueState,\n ChangesetType,\n CommonLoggerCategory,\n ECSqlSystemProperty,\n ECSqlValueType,\n ElementGeometryOpcode,\n FeatureOverrideType,\n FillDisplay,\n FillFlags,\n FontType,\n GeoCoordStatus,\n GeometryClass,\n GeometryStreamFlags,\n GeometrySummaryVerbosity,\n GlobeMode,\n GridOrientationType,\n HSVConstants,\n ImageBufferFormat,\n ImageSourceFormat,\n LinePixels,\n MassPropertiesOperation,\n MonochromeMode,\n Npc,\n PlanarClipMaskMode,\n PlanarClipMaskPriority,\n QueryRowFormat,\n Rank,\n RenderMode,\n SectionType,\n SkyBoxImageType,\n SpatialClassifierInsideDisplay,\n SpatialClassifierOutsideDisplay,\n SyncMode,\n TerrainHeightOriginMode,\n TextureMapUnits,\n ThematicDisplayMode,\n ThematicGradientColorScheme,\n ThematicGradientMode,\n ThematicGradientTransparencyMode,\n TxnAction,\n TypeOfChange,\n // @public real(s) from @itwin/core-common\n ClipIntersectionStyle,\n ColorByName,\n ColorDef,\n FrustumPlanes,\n QParams2d,\n QParams3d,\n QPoint2d,\n QPoint2dBuffer,\n QPoint2dBufferBuilder,\n QPoint2dList,\n QPoint3d,\n QPoint3dBuffer,\n QPoint3dBufferBuilder,\n QPoint3dList,\n Quantization,\n} from \"@itwin/core-common\";\n\nconst extensionExports = {\n ACSDisplayOptions,\n ACSType,\n AccuDrawHintBuilder,\n AccuSnap,\n ActivityMessageDetails,\n ActivityMessageEndReason,\n AuxCoordSystem2dState,\n AuxCoordSystem3dState,\n AuxCoordSystemSpatialState,\n AuxCoordSystemState,\n BackgroundFill,\n BackgroundMapType,\n BatchType,\n BeButton,\n BeButtonEvent,\n BeButtonState,\n BeModifierKeys,\n BeTouchEvent,\n BeWheelEvent,\n BingElevationProvider,\n BingLocationProvider,\n BisCodeSpec,\n BriefcaseIdValue,\n CategorySelectorState,\n ChangeFlags,\n ChangeOpCode,\n ChangedValueState,\n ChangesetType,\n ClipEventType,\n ClipIntersectionStyle,\n Cluster,\n ColorByName,\n ColorDef,\n CommonLoggerCategory,\n ContextRealityModelState,\n ContextRotationId,\n CoordSource,\n CoordSystem,\n CoordinateLockOverrides,\n DecorateContext,\n Decorations,\n DisclosedTileTreeSet,\n DisplayStyle2dState,\n DisplayStyle3dState,\n DisplayStyleState,\n DrawingModelState,\n DrawingViewState,\n ECSqlSystemProperty,\n ECSqlValueType,\n EditManipulator,\n ElementGeometryOpcode,\n ElementLocateManager,\n ElementPicker,\n ElementState,\n EmphasizeElements,\n EntityState,\n EventController,\n EventHandled,\n FeatureOverrideType,\n FeatureSymbology,\n FillDisplay,\n FillFlags,\n FlashMode,\n FlashSettings,\n FontType,\n FrontendLoggerCategory,\n FrustumAnimator,\n FrustumPlanes,\n GeoCoordStatus,\n GeometricModel2dState,\n GeometricModel3dState,\n GeometricModelState,\n GeometryClass,\n GeometryStreamFlags,\n GeometrySummaryVerbosity,\n GlobeAnimator,\n GlobeMode,\n GraphicBranch,\n GraphicBuilder,\n GraphicType,\n GridOrientationType,\n HSVConstants,\n HiliteSet,\n HitDetail,\n HitDetailType,\n HitGeomType,\n HitList,\n HitParentGeomType,\n HitPriority,\n HitSource,\n IModelConnection,\n IconSprites,\n ImageBufferFormat,\n ImageSourceFormat,\n InputCollector,\n InputSource,\n InteractiveTool,\n IntersectDetail,\n KeyinParseError,\n LinePixels,\n LocateAction,\n LocateFilterStatus,\n LocateOptions,\n LocateResponse,\n ManipulatorToolEvent,\n MarginPercent,\n Marker,\n MarkerSet,\n MassPropertiesOperation,\n MessageBoxIconType,\n MessageBoxType,\n MessageBoxValue,\n ModelSelectorState,\n ModelState,\n MonochromeMode,\n NotificationHandler,\n NotificationManager,\n NotifyMessageDetails,\n Npc,\n OffScreenViewport,\n OrthographicViewState,\n OutputMessageAlert,\n OutputMessagePriority,\n OutputMessageType,\n ParseAndRunResult,\n ParticleCollectionBuilder,\n PerModelCategoryVisibility,\n PhysicalModelState,\n Pixel,\n PlanarClipMaskMode,\n PlanarClipMaskPriority,\n PrimitiveTool,\n QParams2d,\n QParams3d,\n QPoint2d,\n QPoint2dBuffer,\n QPoint2dBufferBuilder,\n QPoint2dList,\n QPoint3d,\n QPoint3dBuffer,\n QPoint3dBufferBuilder,\n QPoint3dList,\n Quantization,\n QueryRowFormat,\n Rank,\n RenderClipVolume,\n RenderContext,\n RenderGraphic,\n RenderGraphicOwner,\n RenderMode,\n RenderSystem,\n Scene,\n ScreenViewport,\n SectionDrawingModelState,\n SectionType,\n SelectionMethod,\n SelectionMode,\n SelectionProcessing,\n SelectionSet,\n SelectionSetEventType,\n SheetModelState,\n SheetViewState,\n SkyBoxImageType,\n SnapDetail,\n SnapHeat,\n SnapMode,\n SnapStatus,\n SpatialClassifierInsideDisplay,\n SpatialClassifierOutsideDisplay,\n SpatialLocationModelState,\n SpatialModelState,\n SpatialViewState,\n Sprite,\n SpriteLocation,\n StandardViewId,\n StartOrResume,\n SyncMode,\n TentativePoint,\n TerrainHeightOriginMode,\n TextureMapUnits,\n ThematicDisplayMode,\n ThematicGradientColorScheme,\n ThematicGradientMode,\n ThematicGradientTransparencyMode,\n Tile,\n TileAdmin,\n TileBoundingBoxes,\n TileDrawArgs,\n TileGraphicType,\n TileLoadPriority,\n TileLoadStatus,\n TileRequest,\n TileRequestChannel,\n TileRequestChannelStatistics,\n TileRequestChannels,\n TileTree,\n TileTreeLoadStatus,\n TileTreeReference,\n TileUsageMarker,\n TileVisibility,\n Tiles,\n Tool,\n ToolAdmin,\n ToolAssistance,\n ToolAssistanceImage,\n ToolAssistanceInputMethod,\n ToolSettings,\n TwoWayViewportFrustumSync,\n TwoWayViewportSync,\n TxnAction,\n TypeOfChange,\n UniformType,\n VaryingType,\n ViewClipClearTool,\n ViewClipDecoration,\n ViewClipDecorationProvider,\n ViewClipTool,\n ViewCreator2d,\n ViewCreator3d,\n ViewManager,\n ViewManip,\n ViewPose,\n ViewPose2d,\n ViewPose3d,\n ViewRect,\n ViewState,\n ViewState2d,\n ViewState3d,\n ViewStatus,\n ViewTool,\n ViewingSpace,\n Viewport,\n canvasToImageBuffer,\n canvasToResizedCanvasWithBars,\n connectViewportFrusta,\n connectViewportViews,\n connectViewports,\n extractImageSourceDimensions,\n getCompressedJpegFromCanvas,\n getImageSourceFormatForMimeType,\n getImageSourceMimeType,\n imageBufferToBase64EncodedPng,\n imageBufferToCanvas,\n imageBufferToPngDataUrl,\n imageElementFromImageSource,\n imageElementFromUrl,\n queryTerrainElevationOffset,\n readElementGraphics,\n readGltfGraphics,\n synchronizeViewportFrusta,\n synchronizeViewportViews,\n};\n\n// END GENERATED CODE\n\nconst getExtensionApi = (_id: string) => {\n return {\n exports: {\n // exceptions\n ExtensionHost,\n // automated\n ...extensionExports,\n },\n };\n};\n\n(globalThis as any)[globalSymbol] = {\n getExtensionApi,\n};\n"]}
@@ -83,7 +83,10 @@ export interface ParticleCollectionBuilder {
83
83
  */
84
84
  finish: () => RenderGraphic | undefined;
85
85
  }
86
- /** @public */
86
+ /**
87
+ * @public
88
+ * @extensions
89
+ */
87
90
  export declare namespace ParticleCollectionBuilder {
88
91
  /** Creates a new ParticleCollectionBuilder.
89
92
  * @throws Error if size is not greater than zero.
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleCollectionBuilder.d.ts","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAkD,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAC8G,aAAa,EACjI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAErB,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,yDAAyD;IACzD,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAEtB,6KAA6K;IAC7K,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,sIAAsI;IACtI,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB,iIAAiI;IACjI,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;OAIG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAE/C;;;OAGG;IACH,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;CACzC;AAED,cAAc;AACd,yBAAiB,yBAAyB,CAAC;IACzC;;OAEG;IACH,SAAgB,MAAM,CAAC,MAAM,EAAE,+BAA+B,GAAG,yBAAyB,CAEzF;CACF"}
1
+ {"version":3,"file":"ParticleCollectionBuilder.d.ts","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAkD,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAC8G,aAAa,EACjI,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,OAAO,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IAErB,uGAAuG;IACvG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,yDAAyD;IACzD,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAEtB,6KAA6K;IAC7K,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,sIAAsI;IACtI,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB,iIAAiI;IACjI,IAAI,EAAE,KAAK,CAAC;IAEZ;;;;OAIG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAE/C;;;OAGG;IACH,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;CACzC;AAED;;;GAGG;AACH,yBAAiB,yBAAyB,CAAC;IACzC;;OAEG;IACH,SAAgB,MAAM,CAAC,MAAM,EAAE,+BAA+B,GAAG,yBAAyB,CAEzF;CACF"}
@@ -13,7 +13,10 @@ const core_common_1 = require("@itwin/core-common");
13
13
  const GraphicBranch_1 = require("./GraphicBranch");
14
14
  const DisplayParams_1 = require("../common/render/primitives/DisplayParams");
15
15
  const VertexTableBuilder_1 = require("./primitives/VertexTableBuilder");
16
- /** @public */
16
+ /**
17
+ * @public
18
+ * @extensions
19
+ */
17
20
  var ParticleCollectionBuilder;
18
21
  (function (ParticleCollectionBuilder) {
19
22
  /** Creates a new ParticleCollectionBuilder.
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleCollectionBuilder.js","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { Matrix3d, Point2d, Point3d, Range3d, Transform, Vector2d, XAndY, XYAndZ } from \"@itwin/core-geometry\";\nimport {\n ColorDef, ColorIndex, Feature, FeatureIndex, FeatureTable, FillFlags, PackedFeatureTable, QParams3d, QPoint3dList, RenderTexture,\n} from \"@itwin/core-common\";\nimport { Viewport } from \"../Viewport\";\nimport { RenderGraphic } from \"./RenderGraphic\";\nimport { GraphicBranch } from \"./GraphicBranch\";\nimport { MeshArgs } from \"./primitives/mesh/MeshPrimitives\";\nimport { DisplayParams } from \"../common/render/primitives/DisplayParams\";\nimport { MeshParams } from \"../common/render/primitives/MeshParams\";\nimport { createMeshParams } from \"./primitives/VertexTableBuilder\";\n\n/** Parameters used to construct a [[ParticleCollectionBuilder]].\n * @public\n * @extensions\n */\nexport interface ParticleCollectionBuilderParams {\n /** The image mapped to each particle quad.\n * @note The texture should be disposed of when no longer needed to free up WebGL resources. For example, if a [[Decorator]] creates the texture, the\n * texture should probably be disposed of when the decorator is removed from the [[ViewManager]].\n */\n texture: RenderTexture;\n\n /** The default extents of the particle quad. Individual particles may apply a scale to these extents to produce particles of varying dimensions.\n * Must be positive.\n */\n size: XAndY | number;\n\n /** The initial transparency of the particles as an integer in [0,255]. Defaults to zero if omitted. */\n transparency?: number;\n\n /** The origin of the particle collection in world coordinates. Defaults to (0, 0, 0). */\n origin?: XYAndZ;\n\n /** If the particles are to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\n * @see [[IModelConnection.transientIdSequence]] to obtain an Id that is unique within an iModel.\n */\n pickableId?: Id64String;\n\n /** The viewport in which the particles will be drawn. */\n viewport: Viewport;\n\n /** If true, the finished graphic will be defined in view coordinates, for use as a decoration of type [[GraphicType.ViewBackground]] or [[GraphicType.ViewOverlay]].\n * Defaults to false, indicating the graphic will be defined in world coordinates.\n * @see [[CoordSystem.View]] and [[CoordSystem.World]].\n */\n isViewCoords?: boolean;\n}\n\n/** Describes a particle to to add to a particle collection via [[ParticleCollectionBuilder.addParticle]].\n * The x, y, and z coordinates represent the centroid of the particle quad in the collection's coordinate space.\n * @public\n * @extensions\n */\nexport interface ParticleProps extends XYAndZ {\n /** The size of the particle, in the collection's coordinate space. If omitted, it defaults to the size supplied to the collection by [[ParticleCollectionBuilderParams.size]].\n * Supplying a `number` produces a square; supplying a non-uniform `XAndY` produces a rectangle. Must be positive.\n */\n size?: XAndY | number;\n\n /** The transparency with which to draw the particle as an integer in [0,255]. If omitted, it defaults to the current value of [[ParticleCollectionBuilder.transparency]]. */\n transparency?: number;\n\n /** A rotation matrix to orient the particle. If supplied then the particle will not be automatically oriented towards the camera. */\n rotationMatrix?: Matrix3d;\n}\n\n/** Interface for producing a collection of particles suitable for use in particle effects.\n * Particle effects involve animating hundreds or thousands of small particles to simulate phenomena like smoke, fire, snow, etc.\n * A particle collection represents each particle as a quad (rectangle) displaying an image. The position of each particle corresponds to the\n * centroid of its quad. The transparency and size of each particle can be specified individually. By default, the quads will always rotate to face the camera\n * such that the image is fully visible.\n *\n * Creating a particle collection using a ParticleCollectionBuilder is far more efficient (in both CPU and GPU usage) than doing so using a [[GraphicBuilder]].\n * @see interactive demonstrations of [Snow and Rain](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=snow-rain-sample&imodel=Villa) and\n * [Fire and Smoke](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=fire-sample&imodel=Villa) particle effects.\n * @see [SnowEffect]($frontend-devtools) for an example of a particle effect.\n * @public\n * @extensions\n */\nexport interface ParticleCollectionBuilder {\n /** The default transparency for newly-added particles as an integer in [0,255], used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.transparency]] is omitted.\n * Changing this value has no effect on the transparency of previously-added particles.\n */\n transparency: number;\n\n /** The default size of each particle, used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.size]] is omitted. */\n size: XAndY;\n\n /** Add a particle to the collection.\n * If `size` is omitted, `this.size` is used.\n * If `transparency` is omitted, `this.transparency` is used.\n * @throws Error if particle size is defined and not greater than zero.\n */\n addParticle: (particle: ParticleProps) => void;\n\n /** Produces a finished graphic from the accumulated particles.\n * It returns the finished graphic, or `undefined` if the collection contains no particles or the [[RenderSystem]] failed to produce the graphic.\n * @note After this method returns, the particle collection is empty.\n */\n finish: () => RenderGraphic | undefined;\n}\n\n/** @public */\nexport namespace ParticleCollectionBuilder {\n /** Creates a new ParticleCollectionBuilder.\n * @throws Error if size is not greater than zero.\n */\n export function create(params: ParticleCollectionBuilderParams): ParticleCollectionBuilder {\n return new Builder(params);\n }\n}\n\nclass Particle {\n public readonly centroid: Point3d;\n public readonly transparency: number;\n public readonly width: number;\n public readonly height: number;\n public readonly rotationMatrix?: Matrix3d;\n\n public constructor(centroid: XYAndZ, width: number, height: number, transparency: number, rotationMatrix?: Matrix3d) {\n this.centroid = Point3d.fromJSON(centroid);\n this.transparency = transparency;\n this.width = width;\n this.height = height;\n this.rotationMatrix = rotationMatrix;\n }\n}\n\nclass Builder implements ParticleCollectionBuilder {\n private readonly _viewport: Viewport;\n private readonly _isViewCoords: boolean;\n private readonly _pickableId?: Id64String;\n private readonly _texture: RenderTexture;\n private readonly _size: Vector2d;\n private _transparency: number;\n private _hasVaryingTransparency = false;\n private readonly _localToWorldTransform: Transform;\n private readonly _range = Range3d.createNull();\n private _particlesOpaque: Particle[] = [];\n private _particlesTranslucent: Particle[] = [];\n\n public constructor(params: ParticleCollectionBuilderParams) {\n this._viewport = params.viewport;\n this._isViewCoords = true === params.isViewCoords;\n this._pickableId = params.pickableId;\n this._texture = params.texture;\n this._transparency = undefined !== params.transparency ? clampTransparency(params.transparency) : 0;\n this._localToWorldTransform = params.origin ? Transform.createTranslationXYZ(params.origin.x, params.origin.y, params.origin.z) : Transform.createIdentity();\n\n if (\"number\" === typeof params.size)\n this._size = new Vector2d(params.size, params.size);\n else\n this._size = Vector2d.fromJSON(params.size);\n\n if (this._size.x <= 0 || this._size.y <= 0)\n throw new Error(\"Particle size must be greater than zero\");\n }\n\n public get size(): XAndY {\n return this._size;\n }\n\n public get transparency() {\n return this._transparency;\n }\n\n public set transparency(transparency: number) {\n transparency = clampTransparency(transparency);\n if (transparency !== this._transparency) {\n this._transparency = transparency;\n this._hasVaryingTransparency = this._particlesTranslucent.length > 0;\n }\n }\n\n public addParticle(props: ParticleProps): void {\n const size = props.size ?? this._size;\n let width, height;\n if (\"number\" === typeof size) {\n width = height = size;\n } else {\n width = size.x;\n height = size.y;\n }\n\n if (width <= 0 || height <= 0)\n throw new Error(\"A particle must have a size greater than zero\");\n\n const transparency = undefined !== props.transparency ? clampTransparency(props.transparency) : this.transparency;\n if (transparency !== this.transparency && this._particlesTranslucent.length > 0)\n this._hasVaryingTransparency = true;\n\n const particle = new Particle(props, width, height, transparency, props.rotationMatrix);\n if (transparency > 0)\n this._particlesTranslucent.push(particle);\n else\n this._particlesOpaque.push(particle);\n this._range.extendPoint(particle.centroid);\n }\n\n public finish(): RenderGraphic | undefined {\n if (0 === this._particlesTranslucent.length + this._particlesOpaque.length)\n return undefined;\n\n // Order-independent transparency doesn't work well with opaque geometry - it will look semi-transparent.\n // If we have a mix of opaque and transparent particles, put them in separate graphics to be rendered in separate passes.\n const opaque = this.createGraphic(this._particlesOpaque, 0);\n const transparent = this.createGraphic(this._particlesTranslucent, this._hasVaryingTransparency ? undefined : this._transparency);\n\n // Empty the collection before any return statements.\n const range = this._range.clone();\n this._range.setNull();\n this._particlesOpaque.length = 0;\n this._particlesTranslucent.length = 0;\n this._hasVaryingTransparency = false;\n\n if (!transparent && !opaque)\n return undefined;\n\n // Transform from origin to collection, then to world.\n const toCollection = Transform.createTranslation(range.center);\n const toWorld = toCollection.multiplyTransformTransform(this._localToWorldTransform);\n const branch = new GraphicBranch(true);\n if (opaque)\n branch.add(opaque);\n\n if (transparent)\n branch.add(transparent);\n\n let graphic = this._viewport.target.renderSystem.createGraphicBranch(branch, toWorld);\n\n // If we have a pickable Id, produce a batch.\n // NB: We pass this._pickableId as the FeatureTable's modelId so that it will be treated like a reality model or a map -\n // specifically, it can be located and display a tooltip, but can't be selected.\n const featureTable = this._pickableId ? new FeatureTable(1, this._pickableId) : undefined;\n if (featureTable) {\n this._localToWorldTransform.multiplyRange(range, range);\n featureTable.insert(new Feature(this._pickableId));\n graphic = this._viewport.target.renderSystem.createBatch(graphic, PackedFeatureTable.pack(featureTable), range);\n }\n\n return graphic;\n }\n\n private createGraphic(particles: Particle[], uniformTransparency: number | undefined): RenderGraphic | undefined {\n const numParticles = particles.length;\n if (numParticles <= 0)\n return undefined;\n\n // To keep scale values close to 1, compute mean size to use as size of quad.\n const meanSize = new Vector2d();\n let maxSize = 0;\n for (const particle of particles) {\n meanSize.x += particle.width;\n meanSize.y += particle.height;\n if (particle.width > maxSize)\n maxSize = particle.width;\n if (particle.height > maxSize)\n maxSize = particle.height;\n }\n meanSize.x /= numParticles;\n meanSize.y /= numParticles;\n\n // Define InstancedGraphicParams for particles.\n const rangeCenter = this._range.center;\n const floatsPerTransform = 12;\n const transforms = new Float32Array(floatsPerTransform * numParticles);\n const bytesPerOverride = 8;\n const symbologyOverrides = undefined === uniformTransparency ? new Uint8Array(bytesPerOverride * numParticles) : undefined;\n\n const viewToWorld = this._viewport.view.getRotation().transpose();\n let tfIndex = 0;\n let ovrIndex = 0;\n for (const particle of particles) {\n const scaleX = particle.width / meanSize.x;\n const scaleY = particle.height / meanSize.y;\n if (this._isViewCoords) {\n // Particles already face the camera in view coords - just apply the scale.\n transforms[tfIndex + 0] = scaleX;\n transforms[tfIndex + 5] = scaleY;\n transforms[tfIndex + 10] = 1;\n } else if (undefined !== particle.rotationMatrix) {\n // Scale rotation matrix relative to size of quad.\n transforms[tfIndex + 0] = particle.rotationMatrix.coffs[0] * scaleX;\n transforms[tfIndex + 1] = particle.rotationMatrix.coffs[1] * scaleY;\n transforms[tfIndex + 2] = particle.rotationMatrix.coffs[2];\n transforms[tfIndex + 4] = particle.rotationMatrix.coffs[3] * scaleX;\n transforms[tfIndex + 5] = particle.rotationMatrix.coffs[4] * scaleY;\n transforms[tfIndex + 6] = particle.rotationMatrix.coffs[5];\n transforms[tfIndex + 8] = particle.rotationMatrix.coffs[6] * scaleX;\n transforms[tfIndex + 9] = particle.rotationMatrix.coffs[7] * scaleY;\n transforms[tfIndex + 10] = particle.rotationMatrix.coffs[8];\n } else {\n // Rotate about origin by inverse view matrix so quads always face the camera and scale relative to size of quad.\n transforms[tfIndex + 0] = viewToWorld.coffs[0] * scaleX;\n transforms[tfIndex + 1] = viewToWorld.coffs[1] * scaleY;\n transforms[tfIndex + 2] = viewToWorld.coffs[2];\n transforms[tfIndex + 4] = viewToWorld.coffs[3] * scaleX;\n transforms[tfIndex + 5] = viewToWorld.coffs[4] * scaleY;\n transforms[tfIndex + 6] = viewToWorld.coffs[5];\n transforms[tfIndex + 8] = viewToWorld.coffs[6] * scaleX;\n transforms[tfIndex + 9] = viewToWorld.coffs[7] * scaleY;\n transforms[tfIndex + 10] = viewToWorld.coffs[8];\n }\n\n // Translate relative to center of particles range.\n transforms[tfIndex + 3] = particle.centroid.x - rangeCenter.x;\n transforms[tfIndex + 7] = particle.centroid.y - rangeCenter.y;\n transforms[tfIndex + 11] = particle.centroid.z - rangeCenter.z;\n\n tfIndex += floatsPerTransform;\n\n if (symbologyOverrides) {\n // See FeatureOverrides.buildLookupTable() for layout.\n symbologyOverrides[ovrIndex + 0] = 1 << 2; // OvrFlags.Alpha\n symbologyOverrides[ovrIndex + 7] = 0xff - particle.transparency;\n\n ovrIndex += bytesPerOverride;\n }\n }\n\n // Produce instanced quads.\n // Note: We do not need to allocate an array of featureIds. If we have a pickableId, all particles refer to the same Feature, with index 0.\n // So we leave the vertex attribute disabled causing the shader to receive the default (0, 0, 0) which happens to correspond to our feature index.\n const quad = createQuad(meanSize, this._texture, uniformTransparency ?? 0x7f, this._viewport);\n const transformCenter = new Point3d(0, 0, 0);\n const range = computeRange(this._range, rangeCenter, maxSize);\n const instances = { count: numParticles, transforms, transformCenter, symbologyOverrides, range };\n return this._viewport.target.renderSystem.createMesh(quad, instances);\n }\n}\n\nfunction createQuad(size: XAndY, texture: RenderTexture, transparency: number, viewport: Viewport): MeshParams {\n const halfWidth = size.x / 2;\n const halfHeight = size.y / 2;\n const corners = [\n new Point3d(-halfWidth, -halfHeight, 0), new Point3d(halfWidth, -halfHeight, 0),\n new Point3d(-halfWidth, halfHeight, 0), new Point3d(halfWidth, halfHeight, 0),\n ];\n\n const range = new Range3d();\n range.low = corners[0];\n range.high = corners[3];\n\n const points = new QPoint3dList(QParams3d.fromRange(range));\n for (const corner of corners)\n points.add(corner);\n\n const colors = new ColorIndex();\n colors.initUniform(ColorDef.white.withTransparency(transparency));\n\n const quadArgs: MeshArgs = {\n points,\n vertIndices: [0, 1, 2, 2, 1, 3],\n fillFlags: FillFlags.None,\n isPlanar: true,\n colors,\n features: new FeatureIndex(),\n textureMapping: {\n texture,\n uvParams: [new Point2d(0, 1), new Point2d(1, 1), new Point2d(0, 0), new Point2d(1, 0)],\n },\n };\n\n return createMeshParams(quadArgs, viewport.target.renderSystem.maxTextureSize);\n}\n\nfunction clampTransparency(transparency: number): number {\n transparency = Math.min(255, transparency, Math.max(0, transparency));\n transparency = Math.floor(transparency);\n if (transparency < DisplayParams.minTransparency)\n transparency = 0;\n\n return transparency;\n}\n\nfunction computeRange(centroidRange: Range3d, center: Point3d, maxSize: number): Range3d {\n const range2 = centroidRange.clone();\n range2.low.subtractInPlace(center);\n range2.high.subtractInPlace(center);\n const halfSize = maxSize * 0.5;\n range2.low.x -= halfSize;\n range2.low.y -= halfSize;\n range2.low.z -= halfSize;\n range2.high.x += halfSize;\n range2.high.y += halfSize;\n range2.high.z += halfSize;\n return range2;\n}\n"]}
1
+ {"version":3,"file":"ParticleCollectionBuilder.js","sourceRoot":"","sources":["../../../src/render/ParticleCollectionBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { Id64String } from \"@itwin/core-bentley\";\nimport { Matrix3d, Point2d, Point3d, Range3d, Transform, Vector2d, XAndY, XYAndZ } from \"@itwin/core-geometry\";\nimport {\n ColorDef, ColorIndex, Feature, FeatureIndex, FeatureTable, FillFlags, PackedFeatureTable, QParams3d, QPoint3dList, RenderTexture,\n} from \"@itwin/core-common\";\nimport { Viewport } from \"../Viewport\";\nimport { RenderGraphic } from \"./RenderGraphic\";\nimport { GraphicBranch } from \"./GraphicBranch\";\nimport { MeshArgs } from \"./primitives/mesh/MeshPrimitives\";\nimport { DisplayParams } from \"../common/render/primitives/DisplayParams\";\nimport { MeshParams } from \"../common/render/primitives/MeshParams\";\nimport { createMeshParams } from \"./primitives/VertexTableBuilder\";\n\n/** Parameters used to construct a [[ParticleCollectionBuilder]].\n * @public\n * @extensions\n */\nexport interface ParticleCollectionBuilderParams {\n /** The image mapped to each particle quad.\n * @note The texture should be disposed of when no longer needed to free up WebGL resources. For example, if a [[Decorator]] creates the texture, the\n * texture should probably be disposed of when the decorator is removed from the [[ViewManager]].\n */\n texture: RenderTexture;\n\n /** The default extents of the particle quad. Individual particles may apply a scale to these extents to produce particles of varying dimensions.\n * Must be positive.\n */\n size: XAndY | number;\n\n /** The initial transparency of the particles as an integer in [0,255]. Defaults to zero if omitted. */\n transparency?: number;\n\n /** The origin of the particle collection in world coordinates. Defaults to (0, 0, 0). */\n origin?: XYAndZ;\n\n /** If the particles are to be pickable, a unique identifier to associate with the resultant [[RenderGraphic]].\n * @see [[IModelConnection.transientIdSequence]] to obtain an Id that is unique within an iModel.\n */\n pickableId?: Id64String;\n\n /** The viewport in which the particles will be drawn. */\n viewport: Viewport;\n\n /** If true, the finished graphic will be defined in view coordinates, for use as a decoration of type [[GraphicType.ViewBackground]] or [[GraphicType.ViewOverlay]].\n * Defaults to false, indicating the graphic will be defined in world coordinates.\n * @see [[CoordSystem.View]] and [[CoordSystem.World]].\n */\n isViewCoords?: boolean;\n}\n\n/** Describes a particle to to add to a particle collection via [[ParticleCollectionBuilder.addParticle]].\n * The x, y, and z coordinates represent the centroid of the particle quad in the collection's coordinate space.\n * @public\n * @extensions\n */\nexport interface ParticleProps extends XYAndZ {\n /** The size of the particle, in the collection's coordinate space. If omitted, it defaults to the size supplied to the collection by [[ParticleCollectionBuilderParams.size]].\n * Supplying a `number` produces a square; supplying a non-uniform `XAndY` produces a rectangle. Must be positive.\n */\n size?: XAndY | number;\n\n /** The transparency with which to draw the particle as an integer in [0,255]. If omitted, it defaults to the current value of [[ParticleCollectionBuilder.transparency]]. */\n transparency?: number;\n\n /** A rotation matrix to orient the particle. If supplied then the particle will not be automatically oriented towards the camera. */\n rotationMatrix?: Matrix3d;\n}\n\n/** Interface for producing a collection of particles suitable for use in particle effects.\n * Particle effects involve animating hundreds or thousands of small particles to simulate phenomena like smoke, fire, snow, etc.\n * A particle collection represents each particle as a quad (rectangle) displaying an image. The position of each particle corresponds to the\n * centroid of its quad. The transparency and size of each particle can be specified individually. By default, the quads will always rotate to face the camera\n * such that the image is fully visible.\n *\n * Creating a particle collection using a ParticleCollectionBuilder is far more efficient (in both CPU and GPU usage) than doing so using a [[GraphicBuilder]].\n * @see interactive demonstrations of [Snow and Rain](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=snow-rain-sample&imodel=Villa) and\n * [Fire and Smoke](https://www.itwinjs.org/sample-showcase/?group=Viewer+Features&sample=fire-sample&imodel=Villa) particle effects.\n * @see [SnowEffect]($frontend-devtools) for an example of a particle effect.\n * @public\n * @extensions\n */\nexport interface ParticleCollectionBuilder {\n /** The default transparency for newly-added particles as an integer in [0,255], used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.transparency]] is omitted.\n * Changing this value has no effect on the transparency of previously-added particles.\n */\n transparency: number;\n\n /** The default size of each particle, used by [[ParticleCollectionBuilder.addParticle]] if [[ParticleProps.size]] is omitted. */\n size: XAndY;\n\n /** Add a particle to the collection.\n * If `size` is omitted, `this.size` is used.\n * If `transparency` is omitted, `this.transparency` is used.\n * @throws Error if particle size is defined and not greater than zero.\n */\n addParticle: (particle: ParticleProps) => void;\n\n /** Produces a finished graphic from the accumulated particles.\n * It returns the finished graphic, or `undefined` if the collection contains no particles or the [[RenderSystem]] failed to produce the graphic.\n * @note After this method returns, the particle collection is empty.\n */\n finish: () => RenderGraphic | undefined;\n}\n\n/**\n * @public\n * @extensions\n */\nexport namespace ParticleCollectionBuilder {\n /** Creates a new ParticleCollectionBuilder.\n * @throws Error if size is not greater than zero.\n */\n export function create(params: ParticleCollectionBuilderParams): ParticleCollectionBuilder {\n return new Builder(params);\n }\n}\n\nclass Particle {\n public readonly centroid: Point3d;\n public readonly transparency: number;\n public readonly width: number;\n public readonly height: number;\n public readonly rotationMatrix?: Matrix3d;\n\n public constructor(centroid: XYAndZ, width: number, height: number, transparency: number, rotationMatrix?: Matrix3d) {\n this.centroid = Point3d.fromJSON(centroid);\n this.transparency = transparency;\n this.width = width;\n this.height = height;\n this.rotationMatrix = rotationMatrix;\n }\n}\n\nclass Builder implements ParticleCollectionBuilder {\n private readonly _viewport: Viewport;\n private readonly _isViewCoords: boolean;\n private readonly _pickableId?: Id64String;\n private readonly _texture: RenderTexture;\n private readonly _size: Vector2d;\n private _transparency: number;\n private _hasVaryingTransparency = false;\n private readonly _localToWorldTransform: Transform;\n private readonly _range = Range3d.createNull();\n private _particlesOpaque: Particle[] = [];\n private _particlesTranslucent: Particle[] = [];\n\n public constructor(params: ParticleCollectionBuilderParams) {\n this._viewport = params.viewport;\n this._isViewCoords = true === params.isViewCoords;\n this._pickableId = params.pickableId;\n this._texture = params.texture;\n this._transparency = undefined !== params.transparency ? clampTransparency(params.transparency) : 0;\n this._localToWorldTransform = params.origin ? Transform.createTranslationXYZ(params.origin.x, params.origin.y, params.origin.z) : Transform.createIdentity();\n\n if (\"number\" === typeof params.size)\n this._size = new Vector2d(params.size, params.size);\n else\n this._size = Vector2d.fromJSON(params.size);\n\n if (this._size.x <= 0 || this._size.y <= 0)\n throw new Error(\"Particle size must be greater than zero\");\n }\n\n public get size(): XAndY {\n return this._size;\n }\n\n public get transparency() {\n return this._transparency;\n }\n\n public set transparency(transparency: number) {\n transparency = clampTransparency(transparency);\n if (transparency !== this._transparency) {\n this._transparency = transparency;\n this._hasVaryingTransparency = this._particlesTranslucent.length > 0;\n }\n }\n\n public addParticle(props: ParticleProps): void {\n const size = props.size ?? this._size;\n let width, height;\n if (\"number\" === typeof size) {\n width = height = size;\n } else {\n width = size.x;\n height = size.y;\n }\n\n if (width <= 0 || height <= 0)\n throw new Error(\"A particle must have a size greater than zero\");\n\n const transparency = undefined !== props.transparency ? clampTransparency(props.transparency) : this.transparency;\n if (transparency !== this.transparency && this._particlesTranslucent.length > 0)\n this._hasVaryingTransparency = true;\n\n const particle = new Particle(props, width, height, transparency, props.rotationMatrix);\n if (transparency > 0)\n this._particlesTranslucent.push(particle);\n else\n this._particlesOpaque.push(particle);\n this._range.extendPoint(particle.centroid);\n }\n\n public finish(): RenderGraphic | undefined {\n if (0 === this._particlesTranslucent.length + this._particlesOpaque.length)\n return undefined;\n\n // Order-independent transparency doesn't work well with opaque geometry - it will look semi-transparent.\n // If we have a mix of opaque and transparent particles, put them in separate graphics to be rendered in separate passes.\n const opaque = this.createGraphic(this._particlesOpaque, 0);\n const transparent = this.createGraphic(this._particlesTranslucent, this._hasVaryingTransparency ? undefined : this._transparency);\n\n // Empty the collection before any return statements.\n const range = this._range.clone();\n this._range.setNull();\n this._particlesOpaque.length = 0;\n this._particlesTranslucent.length = 0;\n this._hasVaryingTransparency = false;\n\n if (!transparent && !opaque)\n return undefined;\n\n // Transform from origin to collection, then to world.\n const toCollection = Transform.createTranslation(range.center);\n const toWorld = toCollection.multiplyTransformTransform(this._localToWorldTransform);\n const branch = new GraphicBranch(true);\n if (opaque)\n branch.add(opaque);\n\n if (transparent)\n branch.add(transparent);\n\n let graphic = this._viewport.target.renderSystem.createGraphicBranch(branch, toWorld);\n\n // If we have a pickable Id, produce a batch.\n // NB: We pass this._pickableId as the FeatureTable's modelId so that it will be treated like a reality model or a map -\n // specifically, it can be located and display a tooltip, but can't be selected.\n const featureTable = this._pickableId ? new FeatureTable(1, this._pickableId) : undefined;\n if (featureTable) {\n this._localToWorldTransform.multiplyRange(range, range);\n featureTable.insert(new Feature(this._pickableId));\n graphic = this._viewport.target.renderSystem.createBatch(graphic, PackedFeatureTable.pack(featureTable), range);\n }\n\n return graphic;\n }\n\n private createGraphic(particles: Particle[], uniformTransparency: number | undefined): RenderGraphic | undefined {\n const numParticles = particles.length;\n if (numParticles <= 0)\n return undefined;\n\n // To keep scale values close to 1, compute mean size to use as size of quad.\n const meanSize = new Vector2d();\n let maxSize = 0;\n for (const particle of particles) {\n meanSize.x += particle.width;\n meanSize.y += particle.height;\n if (particle.width > maxSize)\n maxSize = particle.width;\n if (particle.height > maxSize)\n maxSize = particle.height;\n }\n meanSize.x /= numParticles;\n meanSize.y /= numParticles;\n\n // Define InstancedGraphicParams for particles.\n const rangeCenter = this._range.center;\n const floatsPerTransform = 12;\n const transforms = new Float32Array(floatsPerTransform * numParticles);\n const bytesPerOverride = 8;\n const symbologyOverrides = undefined === uniformTransparency ? new Uint8Array(bytesPerOverride * numParticles) : undefined;\n\n const viewToWorld = this._viewport.view.getRotation().transpose();\n let tfIndex = 0;\n let ovrIndex = 0;\n for (const particle of particles) {\n const scaleX = particle.width / meanSize.x;\n const scaleY = particle.height / meanSize.y;\n if (this._isViewCoords) {\n // Particles already face the camera in view coords - just apply the scale.\n transforms[tfIndex + 0] = scaleX;\n transforms[tfIndex + 5] = scaleY;\n transforms[tfIndex + 10] = 1;\n } else if (undefined !== particle.rotationMatrix) {\n // Scale rotation matrix relative to size of quad.\n transforms[tfIndex + 0] = particle.rotationMatrix.coffs[0] * scaleX;\n transforms[tfIndex + 1] = particle.rotationMatrix.coffs[1] * scaleY;\n transforms[tfIndex + 2] = particle.rotationMatrix.coffs[2];\n transforms[tfIndex + 4] = particle.rotationMatrix.coffs[3] * scaleX;\n transforms[tfIndex + 5] = particle.rotationMatrix.coffs[4] * scaleY;\n transforms[tfIndex + 6] = particle.rotationMatrix.coffs[5];\n transforms[tfIndex + 8] = particle.rotationMatrix.coffs[6] * scaleX;\n transforms[tfIndex + 9] = particle.rotationMatrix.coffs[7] * scaleY;\n transforms[tfIndex + 10] = particle.rotationMatrix.coffs[8];\n } else {\n // Rotate about origin by inverse view matrix so quads always face the camera and scale relative to size of quad.\n transforms[tfIndex + 0] = viewToWorld.coffs[0] * scaleX;\n transforms[tfIndex + 1] = viewToWorld.coffs[1] * scaleY;\n transforms[tfIndex + 2] = viewToWorld.coffs[2];\n transforms[tfIndex + 4] = viewToWorld.coffs[3] * scaleX;\n transforms[tfIndex + 5] = viewToWorld.coffs[4] * scaleY;\n transforms[tfIndex + 6] = viewToWorld.coffs[5];\n transforms[tfIndex + 8] = viewToWorld.coffs[6] * scaleX;\n transforms[tfIndex + 9] = viewToWorld.coffs[7] * scaleY;\n transforms[tfIndex + 10] = viewToWorld.coffs[8];\n }\n\n // Translate relative to center of particles range.\n transforms[tfIndex + 3] = particle.centroid.x - rangeCenter.x;\n transforms[tfIndex + 7] = particle.centroid.y - rangeCenter.y;\n transforms[tfIndex + 11] = particle.centroid.z - rangeCenter.z;\n\n tfIndex += floatsPerTransform;\n\n if (symbologyOverrides) {\n // See FeatureOverrides.buildLookupTable() for layout.\n symbologyOverrides[ovrIndex + 0] = 1 << 2; // OvrFlags.Alpha\n symbologyOverrides[ovrIndex + 7] = 0xff - particle.transparency;\n\n ovrIndex += bytesPerOverride;\n }\n }\n\n // Produce instanced quads.\n // Note: We do not need to allocate an array of featureIds. If we have a pickableId, all particles refer to the same Feature, with index 0.\n // So we leave the vertex attribute disabled causing the shader to receive the default (0, 0, 0) which happens to correspond to our feature index.\n const quad = createQuad(meanSize, this._texture, uniformTransparency ?? 0x7f, this._viewport);\n const transformCenter = new Point3d(0, 0, 0);\n const range = computeRange(this._range, rangeCenter, maxSize);\n const instances = { count: numParticles, transforms, transformCenter, symbologyOverrides, range };\n return this._viewport.target.renderSystem.createMesh(quad, instances);\n }\n}\n\nfunction createQuad(size: XAndY, texture: RenderTexture, transparency: number, viewport: Viewport): MeshParams {\n const halfWidth = size.x / 2;\n const halfHeight = size.y / 2;\n const corners = [\n new Point3d(-halfWidth, -halfHeight, 0), new Point3d(halfWidth, -halfHeight, 0),\n new Point3d(-halfWidth, halfHeight, 0), new Point3d(halfWidth, halfHeight, 0),\n ];\n\n const range = new Range3d();\n range.low = corners[0];\n range.high = corners[3];\n\n const points = new QPoint3dList(QParams3d.fromRange(range));\n for (const corner of corners)\n points.add(corner);\n\n const colors = new ColorIndex();\n colors.initUniform(ColorDef.white.withTransparency(transparency));\n\n const quadArgs: MeshArgs = {\n points,\n vertIndices: [0, 1, 2, 2, 1, 3],\n fillFlags: FillFlags.None,\n isPlanar: true,\n colors,\n features: new FeatureIndex(),\n textureMapping: {\n texture,\n uvParams: [new Point2d(0, 1), new Point2d(1, 1), new Point2d(0, 0), new Point2d(1, 0)],\n },\n };\n\n return createMeshParams(quadArgs, viewport.target.renderSystem.maxTextureSize);\n}\n\nfunction clampTransparency(transparency: number): number {\n transparency = Math.min(255, transparency, Math.max(0, transparency));\n transparency = Math.floor(transparency);\n if (transparency < DisplayParams.minTransparency)\n transparency = 0;\n\n return transparency;\n}\n\nfunction computeRange(centroidRange: Range3d, center: Point3d, maxSize: number): Range3d {\n const range2 = centroidRange.clone();\n range2.low.subtractInPlace(center);\n range2.high.subtractInPlace(center);\n const halfSize = maxSize * 0.5;\n range2.low.x -= halfSize;\n range2.low.y -= halfSize;\n range2.low.z -= halfSize;\n range2.high.x += halfSize;\n range2.high.y += halfSize;\n range2.high.z += halfSize;\n return range2;\n}\n"]}
@@ -91,6 +91,11 @@ export interface SpatialTileTreeReferences extends Iterable<TileTreeReference> {
91
91
  /** See SpatialViewState.detachFromViewport. */
92
92
  detachFromViewport(): void;
93
93
  }
94
+ /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]] and
95
+ * not present in the optionally-supplied exclusion list.
96
+ * @internal
97
+ */
98
+ export declare function createSpatialTileTreeReferences(view: SpatialViewState, excludedModels?: Set<Id64String>): SpatialTileTreeReferences;
94
99
  /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]].
95
100
  * @internal
96
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PrimaryTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/PrimaryTileTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrimaryTileTree.d.ts","sourceRoot":"","sources":["../../../src/tile/PrimaryTileTree.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * @module Tiles
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SpatialTileTreeReferences = exports.createModelMapLayerTileTreeReference = exports.ModelMapLayerTileTreeReference = exports.createMaskTreeReference = exports.createPrimaryTileTreeReference = exports.AnimatedTreeReference = exports.disposeTileTreesForGeometricModels = void 0;
10
+ exports.SpatialTileTreeReferences = exports.createSpatialTileTreeReferences = exports.createModelMapLayerTileTreeReference = exports.ModelMapLayerTileTreeReference = exports.createMaskTreeReference = exports.createPrimaryTileTreeReference = exports.AnimatedTreeReference = exports.disposeTileTreesForGeometricModels = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_common_1 = require("@itwin/core-common");
13
13
  const core_geometry_1 = require("@itwin/core-geometry");
@@ -388,6 +388,14 @@ function createModelMapLayerTileTreeReference(layerSettings, layerIndex, iModel)
388
388
  return classifier ? new ModelMapLayerTileTreeReference(layerSettings, classifier, layerIndex, iModel) : undefined;
389
389
  }
390
390
  exports.createModelMapLayerTileTreeReference = createModelMapLayerTileTreeReference;
391
+ /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]] and
392
+ * not present in the optionally-supplied exclusion list.
393
+ * @internal
394
+ */
395
+ function createSpatialTileTreeReferences(view, excludedModels) {
396
+ return new SpatialRefs(view, excludedModels);
397
+ }
398
+ exports.createSpatialTileTreeReferences = createSpatialTileTreeReferences;
391
399
  /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]].
392
400
  * @internal
393
401
  */
@@ -395,7 +403,7 @@ var SpatialTileTreeReferences;
395
403
  (function (SpatialTileTreeReferences) {
396
404
  /** Create a SpatialTileTreeReferences object reflecting the contents of the specified view. */
397
405
  function create(view) {
398
- return new SpatialRefs(view);
406
+ return createSpatialTileTreeReferences(view);
399
407
  }
400
408
  SpatialTileTreeReferences.create = create;
401
409
  })(SpatialTileTreeReferences = exports.SpatialTileTreeReferences || (exports.SpatialTileTreeReferences = {}));
@@ -463,13 +471,15 @@ class SpatialModelRefs {
463
471
  }
464
472
  /** Provides [[TileTreeReference]]s for the loaded models present in a [[SpatialViewState]]'s [[ModelSelectorState]]. */
465
473
  class SpatialRefs {
466
- constructor(view) {
474
+ constructor(view, excludedModels) {
467
475
  this._allLoaded = false;
468
476
  this._refs = new Map();
469
477
  this._swapRefs = new Map();
470
478
  this._view = view;
471
479
  this._scheduleScript = view.displayStyle.scheduleScriptReference; // eslint-disable-line deprecation/deprecation
472
480
  this._sectionCut = this.getSectionCutFromView();
481
+ if (excludedModels)
482
+ this._excludedModels = new Set(excludedModels);
473
483
  }
474
484
  update() {
475
485
  this._allLoaded = false;
@@ -526,6 +536,8 @@ class SpatialRefs {
526
536
  this._swapRefs = prev;
527
537
  cur.clear();
528
538
  for (const modelId of this._view.modelSelector.models) {
539
+ if (this._excludedModels && this._excludedModels.has(modelId))
540
+ continue;
529
541
  let modelRefs = prev.get(modelId);
530
542
  if (!modelRefs) {
531
543
  const model = this._view.iModel.models.getLoaded(modelId)?.asGeometricModel3d;