UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

589 lines • 35 kB
/** @packageDocumentation * @module DisplayStyles */ import { BeEvent, CompressedId64Set, Id64Array, Id64String, OrderedId64Iterable } from "@itwin/core-bentley"; import { XYZProps } from "@itwin/core-geometry"; import { AmbientOcclusion } from "./AmbientOcclusion"; import { AnalysisStyle, AnalysisStyleProps } from "./AnalysisStyle"; import { BackgroundMapSettings, PersistentBackgroundMapProps } from "./BackgroundMapSettings"; import { ClipStyle, ClipStyleProps } from "./ClipStyle"; import { ColorDef, ColorDefProps } from "./ColorDef"; import { DefinitionElementProps } from "./ElementProps"; import { HiddenLine } from "./HiddenLine"; import { FeatureAppearance, FeatureAppearanceProps } from "./FeatureSymbology"; import { PlanarClipMaskProps, PlanarClipMaskSettings } from "./PlanarClipMask"; import { SubCategoryOverride } from "./SubCategoryOverride"; import { LightSettings, LightSettingsProps } from "./LightSettings"; import { MapImageryProps, MapImagerySettings } from "./MapImagerySettings"; import { PlanProjectionSettings, PlanProjectionSettingsProps } from "./PlanProjectionSettings"; import { RenderSchedule } from "./RenderSchedule"; import { Environment, EnvironmentProps } from "./Environment"; import { SolarShadowSettings, SolarShadowSettingsProps } from "./SolarShadows"; import { SubCategoryAppearance } from "./SubCategoryAppearance"; import { ThematicDisplay, ThematicDisplayProps } from "./ThematicDisplay"; import { ViewFlagProps, ViewFlags } from "./ViewFlags"; import { Cartographic } from "./geometry/Cartographic"; import { IModel } from "./IModel"; import { ContextRealityModel, ContextRealityModelProps, ContextRealityModels } from "./ContextRealityModel"; import { RealityModelDisplayProps, RealityModelDisplaySettings } from "./RealityModelDisplaySettings"; import { WhiteOnWhiteReversalProps, WhiteOnWhiteReversalSettings } from "./WhiteOnWhiteReversalSettings"; import { ContourDisplay, ContourDisplayProps } from "./ContourDisplay"; /** Describes the [[SubCategoryOverride]]s applied to a [[SubCategory]] by a [[DisplayStyle]]. * @see [[DisplayStyleSettingsProps]] * @public * @extensions */ export interface DisplayStyleSubCategoryProps extends SubCategoryAppearance.Props { /** The Id of the [[SubCategory]] whose appearance is to be overridden. */ subCategory?: Id64String; } /** A [[FeatureAppearanceProps]] applied to a specific model to override its appearance within the context of a [DisplayStyle]($backend). * @see [[DisplayStyleSettingsProps.modelOvr]]. * @public * @extensions */ export interface DisplayStyleModelAppearanceProps extends FeatureAppearanceProps { /** The Id of the model whose appearance is to be overridden. */ modelId: Id64String; } /** [[RealityModelDisplaySettings]] applied to a reality [Model]($backend) to change how it is rendered within the context of a [DisplayStyle]($backend). * @see [[DisplayStyleSettingsProps.realityModelDisplay]]. * @beta */ export interface DisplayStyleRealityModelDisplayProps extends RealityModelDisplayProps { /** The Id of the reality [Model]($backend) to which the settings apply. */ modelId?: Id64String; } /** A [[PlanarClipMaskProps]] associated with a specific reality model. * @see [[DisplayStyleSettingsProps.planarClipOvr]]. * @public * @extensions */ export interface DisplayStylePlanarClipMaskProps extends PlanarClipMaskProps { /** The Id of the model to mask. */ modelId?: Id64String; } /** Describes the style in which monochrome color is applied by a [[DisplayStyleSettings]]. * @public * @extensions */ export declare enum MonochromeMode { /** The color of the geometry is replaced with the monochrome color. e.g., if monochrome color is white, the geometry will be white. */ Flat = 0, /** The color of surfaces is computed as normal, then scaled to a shade of the monochrome color based on the surface color's intensity. * For example, if the monochrome color is white, this results in a greyscale effect. * Geometry other than surfaces is treated the same as [[MonochromeMode.Flat]]. */ Scaled = 1 } /** JSON representation of the [[DisplayStyleSettings]] associated with a [[DisplayStyleProps]]. * These settings are not stored directly as members of the [[DisplayStyleProps]]. Instead, they are stored * as members of [[DisplayStyleProps.jsonProperties.styles]]. * @public * @extensions */ export interface DisplayStyleSettingsProps { /** See [[DisplayStyleSettings.viewFlags]]. * @note Be careful with the case of this field - it is spelled in all lower-case letters, while [[DisplayStyleSettings.viewFlags]] is spelled `viewFlags`. */ viewflags?: ViewFlagProps; /** See [[DisplayStyleSettings.backgroundColor]]. */ backgroundColor?: ColorDefProps; /** See [[DisplayStyleSettings.monochromeColor]]. */ monochromeColor?: ColorDefProps; /** See [[DisplayStyleSettings.monochromeMode]]. */ monochromeMode?: MonochromeMode; /** See [[DisplayStyleSettings.analysisStyle]]. */ analysisStyle?: AnalysisStyleProps; /** See [[DisplayStyleSettings.analysisFraction]]. */ analysisFraction?: number; /** See [[DisplayStyleSettings.scheduleScriptProps]]. */ scheduleScript?: RenderSchedule.ScriptProps; /** See [[DisplayStyleSettings.renderTimeline]]. */ renderTimeline?: Id64String; /** See [[DisplayStyleSettings.timePoint]]. */ timePoint?: number; /** Overrides applied to the appearances of subcategories in the view. * See [[DisplayStyleSettings.overrideSubCategory]]. */ subCategoryOvr?: DisplayStyleSubCategoryProps[]; /** See [[DisplayStyleSettings.backgroundMap]]. */ backgroundMap?: PersistentBackgroundMapProps; /** See [[DisplayStyleSettings.contextRealityModels]]. */ contextRealityModels?: ContextRealityModelProps[]; /** Ids of elements not to be displayed in the view. Prefer the compressed format, especially when sending between frontend and backend - the number of Ids may be quite large. * See [[DisplayStyleSettings.excludedElements]]. */ excludedElements?: Id64Array | CompressedId64Set; /** See [[DisplayStyleSettings.mapImagery]]. * @beta */ mapImagery?: MapImageryProps; /** Overrides applied to the appearance of models in the view. * See [[DisplayStyleSettings.overrideModelAppearance]]. */ modelOvr?: DisplayStyleModelAppearanceProps[]; /** Display settings applied to specific reality models in the view. * @see [[DisplayStyleSettings.setRealityModelDisplaySettings]]. * @beta */ realityModelDisplay?: DisplayStyleRealityModelDisplayProps[]; /** See [[DisplayStyleSettings.clipStyle]]. */ clipStyle?: ClipStyleProps; /** See [[DisplayStyleSettings.planarClipMasks]]. */ planarClipOvr?: DisplayStylePlanarClipMaskProps[]; /** See [[DisplayStyleSettings.whiteOnWhiteReversal]]. */ whiteOnWhiteReversal?: WhiteOnWhiteReversalProps; } /** JSON representation of [[DisplayStyle3dSettings]] associated with a [[DisplayStyle3dProps]]. * @public * @extensions */ export interface DisplayStyle3dSettingsProps extends DisplayStyleSettingsProps { /** See [[DisplayStyle3dSettings.environment]]. */ environment?: EnvironmentProps; /** See [[DisplayStyle3dSettings.thematic]]. */ thematic?: ThematicDisplayProps; /** See [[DisplayStyle3dSettings.contours]]. */ contours?: ContourDisplayProps; /** See [[DisplayStyle3dSettings.hiddenLineSettings]]. */ hline?: HiddenLine.SettingsProps; /** See [[DisplayStyle3dSettings.ambientOcclusionSettings]]. */ ao?: AmbientOcclusion.Props; /** See [[DisplayStyle3dSettings.solarShadows]]. */ solarShadows?: SolarShadowSettingsProps; /** See [[DisplayStyle3dSettings.lights]]. */ lights?: LightSettingsProps; /** See [[DisplayStyle3dSettings.planProjections]]. */ planProjections?: { [modelId: string]: PlanProjectionSettingsProps; }; /** Old lighting settings - only `sunDir` was ever used; it is now part of [[lights]]. * DisplayStyle3dSettings will construct a LightSettings from sceneLights.sunDir IFF [[lights]] is not present. * @internal */ sceneLights?: { sunDir?: XYZProps; }; } /** JSON representation of a [[DisplayStyle]] or [[DisplayStyleState]]. * @public * @extensions */ export interface DisplayStyleProps extends DefinitionElementProps { /** Display styles store their settings in a `styles` property within [[ElementProps.jsonProperties]]. */ jsonProperties?: { styles?: DisplayStyleSettingsProps; }; } /** JSON representation of a [[DisplayStyle3d]] or [[DisplayStyle3dState]]. * @public * @extensions */ export interface DisplayStyle3dProps extends DisplayStyleProps { /** Display styles store their settings in a `styles` property within [[ElementProps.jsonProperties]]. */ jsonProperties?: { styles?: DisplayStyle3dSettingsProps; }; } /** Controls which settings are serialized by [[DisplayStyleSettings.toOverrides]]. A display style includes some settings that are specific to a given iModel - for example, * the subcategory overrides are indexed by subcategory Ids and model appearance overrides are indexed by model ids. Other settings are specific to a given iTwin, like the set of displayed context reality models. Such settings can be useful * when creating display style overrides intended for use with a specific iModel or iTwin, but should be omitted when creating general-purpose display style overrides intended * for use with any iModel or iTwin. This is the default behavior if no more specific options are provided. * @public * @extensions */ export interface DisplayStyleOverridesOptions { /** Serialize all settings. Applying the resultant [[DisplayStyleSettingsProps]] will produce a [[DisplayStyleSettings]] identical to the original settings. */ includeAll?: true; /** Serialize iModel-specific settings. These settings are only meaningful within the context of a specific iModel. Setting this to `true` implies all iTwin-specific settings will be serialized too. * The following are iModel-specific settings: * * Subcategory overrides. * * Model Appearance overrides. * * Classifiers associated with context reality models. * * Analysis style. * * Schedule script. * * Excluded elements. * * Plan projection settings. * * Thematic sensor settings and height range. If iModel-specific settings are *not* serialized, sensors will be omitted and, for thematic height mode, the range will be omitted. * * If the display style settings are associated with a [DisplayStyleState]($frontend), then overriding thematic settings will compute a default height range based on the iModel's project extents. */ includeIModelSpecific?: true; /** Serialize iTwin-specific settings. These settings are only meaningful within the context of a specific iTwin. These settings are always included if `includeIModelSpecific` is `true`. * The following are iTwin-specific settings: * * Context reality models. If iModel-specific settings are *not* serialized, the classifiers will be omitted. * * Time point. */ includeITwinSpecific?: true; /** Serialize settings related to drawing aid decorations (the ACS triad and the grid). */ includeDrawingAids?: true; /** Serialize the background map settings. */ includeBackgroundMap?: true; } /** Options supplied when constructing a [[DisplayStyleSettings]]. * @public * @extensions */ export interface DisplayStyleSettingsOptions { /** A function that instantiates a [[ContextRealityModel]] to be stored in [[DisplayStyleSettings.contextRealityModels]]. */ createContextRealityModel?: (props: ContextRealityModelProps) => ContextRealityModel; /** If true, the caller will populate contextRealityModels after construction. * @internal used by DisplayStyleState constructor. */ deferContextRealityModels?: boolean; } /** Provides access to the settings defined by a [[DisplayStyle]] or [[DisplayStyleState]], and ensures that * the style's JSON properties are kept in sync. * @see [[DisplayStyleSettingsProps]] for the JSON representation of these settings. * @public */ export declare class DisplayStyleSettings { protected readonly _json: DisplayStyleSettingsProps; private _viewFlags; private _background; private _monochrome; private _monochromeMode; private readonly _subCategoryOverrides; private readonly _modelAppearanceOverrides; private readonly _realityModelDisplaySettings; private readonly _planarClipMasks; private readonly _excludedElements; private _backgroundMap; private _mapImagery; private _analysisStyle?; private _clipStyle; private readonly _contextRealityModels; private _whiteOnWhiteReversal; /** Returns true if this is a [[DisplayStyle3dSettings]]. */ is3d(): this is DisplayStyle3dSettings; /** Planar clip masks to be applied to persistent reality models (@see [SpatialModelState.isRealityModel]($frontend). * The key for each entry is the Id of the model to which the mask settings apply. */ get planarClipMasks(): Map<Id64String, PlanarClipMaskSettings>; /** Reality models to be displayed in the view. */ get contextRealityModels(): ContextRealityModels; /** Event raised by [[applyOverrides]] just before the overrides are applied. */ readonly onApplyOverrides: BeEvent<(overrides: Readonly<DisplayStyleSettingsProps>) => void>; /** Event raised by [[applyOverrides]] after the overrides are applied. */ readonly onOverridesApplied: BeEvent<(overrides: Readonly<DisplayStyleSettingsProps>) => void>; /** Event raised just prior to assignment to the [[viewFlags]] property. */ readonly onViewFlagsChanged: BeEvent<(newFlags: Readonly<ViewFlags>) => void>; /** Event raised just prior to assignment to the [[backgroundColor]] property. */ readonly onBackgroundColorChanged: BeEvent<(newColor: ColorDef) => void>; /** Event raised just prior to assignment to the [[monochromeColor]] property. */ readonly onMonochromeColorChanged: BeEvent<(newColor: ColorDef) => void>; /** Event raised just prior to assignment to the [[monochromeMode]] property. */ readonly onMonochromeModeChanged: BeEvent<(newMode: MonochromeMode) => void>; /** Event raised just prior to assignment to the [[backgroundMap]] property. */ readonly onBackgroundMapChanged: BeEvent<(newMap: BackgroundMapSettings) => void>; /** Event raised just prior to assignment to the [[mapImagery]] property. * @beta */ readonly onMapImageryChanged: BeEvent<(newImagery: Readonly<MapImagerySettings>) => void>; /** Event raised just prior to assignment to the `scheduleScriptProps` property. * @see [[onRenderTimelineChanged]] to be notified when the [[renderTimeline]] property from which a script can be obtained is changed. */ readonly onScheduleScriptPropsChanged: BeEvent<(newProps: Readonly<RenderSchedule.ScriptProps> | undefined) => void>; /** Event raised just prior to assignment to the [[renderTimeline]] property. */ readonly onRenderTimelineChanged: BeEvent<(newRenderTimeline: Id64String | undefined) => void>; /** Event raised just prior to assignment to the [[timePoint]] property. */ readonly onTimePointChanged: BeEvent<(newTimePoint: number | undefined) => void>; /** Event raised just prior to assignment to the [[analysisStyle]] property. */ readonly onAnalysisStyleChanged: BeEvent<(newStyle: Readonly<AnalysisStyle> | undefined) => void>; /** Event raised just prior to assignment to the [[analysisFraction]] property. */ readonly onAnalysisFractionChanged: BeEvent<(newFraction: number) => void>; /** Event raised when the contents of [[excludedElementIds]] changes. */ readonly onExcludedElementsChanged: BeEvent<() => void>; /** Event raised just prior to assignment to the [[clipStyle]] property. */ readonly onClipStyleChanged: BeEvent<(newStyle: ClipStyle) => void>; /** Event raised when the [[SubCategoryOverride]]s change. */ readonly onSubCategoryOverridesChanged: BeEvent<(subCategoryId: Id64String, newOverrides: SubCategoryOverride | undefined) => void>; /** Event raised just before changing the appearance override for a model. */ readonly onModelAppearanceOverrideChanged: BeEvent<(modelId: Id64String, newAppearance: FeatureAppearance | undefined) => void>; /** Event raised just before [[setRealityModelDisplaySettings]] changes the display settings for a reality model. * @beta */ readonly onRealityModelDisplaySettingsChanged: BeEvent<(modelId: Id64String, newSettings: RealityModelDisplaySettings | undefined) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.thematic]] property. */ readonly onThematicChanged: BeEvent<(newThematic: ThematicDisplay) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.contours]] property. */ readonly onContoursChanged: BeEvent<(newContours: ContourDisplay) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.hiddenLineSettings]] property. */ readonly onHiddenLineSettingsChanged: BeEvent<(newSettings: HiddenLine.Settings) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.ambientOcclusionSettings]] property. */ readonly onAmbientOcclusionSettingsChanged: BeEvent<(newSettings: AmbientOcclusion.Settings) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.solarShadows]] property. */ readonly onSolarShadowsChanged: BeEvent<(newSettings: SolarShadowSettings) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.environment]] property. */ readonly onEnvironmentChanged: BeEvent<(newEnv: Readonly<Environment>) => void>; /** Event raised just prior to assignment to the [[DisplayStyle3dSettings.lights]] property. */ readonly onLightsChanged: BeEvent<(newLights: LightSettings) => void>; /** Event raised just before changing the plan projection settings for a model. */ readonly onPlanProjectionSettingsChanged: BeEvent<(modelId: Id64String, newSettings: PlanProjectionSettings | undefined) => void>; /** Event raised just before adding or removing an entry from [[planarClipMasks]]. */ readonly onPlanarClipMaskChanged: BeEvent<(modelId: Id64String, newSettings: PlanarClipMaskSettings | undefined) => void>; /** Event raised just prior to assignment to the [[whiteOnWhiteReversal]] property. */ readonly onWhiteOnWhiteReversalChanged: BeEvent<(newSettings: WhiteOnWhiteReversalSettings) => void>; /** Construct a new DisplayStyleSettings from an [[ElementProps.jsonProperties]]. * @param jsonProperties An object with an optional `styles` property containing a display style's settings. * @param options Options for customizing the display style settings. * @note When the `DisplayStyleSetting`'s properties are modified by public setters, the `jsonProperties`'s `styles` object will be updated to reflect the change. * @note If `jsonProperties` contains no `styles` member, one will be added as an empty object. * @note Generally there is no reason to create an object of this type directly; a [[DisplayStyle]] or [[DisplayStyleState]] constructs one as part of its own construction. */ constructor(jsonProperties: { styles?: DisplayStyleSettingsProps; }, options?: DisplayStyleSettingsOptions); /** Flags controlling various aspects of the display style. */ get viewFlags(): ViewFlags; set viewFlags(flags: ViewFlags); /** The color displayed in the view background - by default, [[ColorDef.black]]. */ get backgroundColor(): ColorDef; set backgroundColor(color: ColorDef); /** The color used to draw geometry when [[ViewFlags.monochrome]] is enabled - by default, [[ColorDef.white]]. * The monochrome color is applied to all surfaces and linear geometry, but only applied to the **edges** of surfaces in [[RenderMode.Wireframe]]. * @see [[monochromeMode]] to control how the color is applied. */ get monochromeColor(): ColorDef; set monochromeColor(color: ColorDef); /** The style in which [[monochromeColor]] is applied when [[ViewFlags.monochrome]] is enabled - by default, [[MonochromeMode.Scaled]]. */ get monochromeMode(): MonochromeMode; set monochromeMode(mode: MonochromeMode); /** Settings controlling display of the background map within views of geolocated models. */ get backgroundMap(): BackgroundMapSettings; set backgroundMap(map: BackgroundMapSettings); /** Settings defining the map imagery layers to be displayed within the view. * @beta */ get mapImagery(): MapImagerySettings; set mapImagery(mapImagery: MapImagerySettings); /** @internal * Handles keeping the map imagery layers in synch after changes have been made (used internally only by front end) */ synchMapImagery(): void; /** The Id of a [RenderTimeline]($backend) element containing a [[RenderSchedule.Script]] used to animate the view. * If [[scheduleScriptProps]] is defined, it takes precedence over the script supplied by the RenderTimeline. * @note If this [[DisplayStyleSettings]] is associated with a [DisplayStyleState]($frontend), assigning to [[renderTimeline]] will enqueue asynchronous loading of * the script from the [RenderTimeline]($backend) element; for more readable code, prefer instead to `await` [DisplayStyleState.changeRenderTimeline]($frontend). * @see [[onRenderTimelineChanged]] to be notified of changes to this property. */ get renderTimeline(): Id64String | undefined; set renderTimeline(id: Id64String | undefined); /** JSON representation of a [[RenderSchedule.Script]] embedded in the display style describing how to animate the contents of the view over time. * This script, if present, takes precedence over a script supplied by [[renderTimeline]]. * @see [[onScheduleScriptPropsChanged]] to be notified when this property changes. * @see [DisplayStyleState.scheduleScript]($frontend) to change the [[RenderSchedule.Script]] object directly rather than via JSON. */ get scheduleScriptProps(): RenderSchedule.ScriptProps | undefined; set scheduleScriptProps(props: RenderSchedule.ScriptProps | undefined); /** The point in time currently reflected by the view, expressed in seconds in the [Unix epoch](https://en.wikipedia.org/wiki/Unix_time). * This identifies a point on the timeline of the style's [[RenderSchedule.Script]], if any; it may also affect display of four-dimensional reality models. * @see [[onTimePointChanged]] to be notified of changes to this property. */ get timePoint(): number | undefined; set timePoint(timePoint: number | undefined); /** Settings controlling the display of analytical models. * @see [[analysisFraction]] to control playback of the animation. */ get analysisStyle(): AnalysisStyle | undefined; set analysisStyle(style: AnalysisStyle | undefined); /** A floating point value in [0..1] indicating the current point in animation of the [[analysisStyle]], where 0 corresponds to the beginning of * the animation and 1 to the end. Default: 0.0. */ get analysisFraction(): number; set analysisFraction(fraction: number); /** Settings controlling how white-on-white reversal is applied when [[ViewFlags.whiteOnWhiteReversal]] is enabled. */ get whiteOnWhiteReversal(): WhiteOnWhiteReversalSettings; set whiteOnWhiteReversal(settings: WhiteOnWhiteReversalSettings); /** Customize the way geometry belonging to a [[SubCategory]] is drawn by this display style. * @param id The Id of the SubCategory whose appearance is to be overridden. * @param ovr The overrides to apply to the [[SubCategoryAppearance]]. * @see [[dropSubCategoryOverride]] */ overrideSubCategory(id: Id64String, ovr: SubCategoryOverride): void; /** Remove any [[SubCategoryOverride]] applied to a [[SubCategoryAppearance]] by this style. * @param id The Id of the [[SubCategory]]. * @see [[overrideSubCategory]] */ dropSubCategoryOverride(id: Id64String): void; /** The overrides applied by this style. */ get subCategoryOverrides(): Map<Id64String, SubCategoryOverride>; /** Obtain the override applied to a [[SubCategoryAppearance]] by this style. * @param id The Id of the [[SubCategory]]. * @returns The corresponding SubCategoryOverride, or undefined if the SubCategory's appearance is not overridden. * @see [[overrideSubCategory]] */ getSubCategoryOverride(id: Id64String): SubCategoryOverride | undefined; /** Returns true if an [[SubCategoryOverride]]s are defined by this style. */ get hasSubCategoryOverride(): boolean; /** Customize the way a [Model]($backend) is drawn by this display style. * @param modelId The Id of the [Model]($backend) whose appearance is to be overridden. * @param ovr The overrides to apply to the [Model]($backend) . * @see [[dropModelAppearanceOverride]] */ overrideModelAppearance(modelId: Id64String, ovr: FeatureAppearance): void; /** Remove any appearance overrides applied to a [Model]($backend) by this style. * @param modelId The Id of the [Model]($backend) . * @param ovr The overrides to apply to the [Model]($backend) . * @see [[overrideModelAppearance]] */ dropModelAppearanceOverride(id: Id64String): void; /** The overrides applied by this style. */ get modelAppearanceOverrides(): Map<Id64String, FeatureAppearance>; /** Obtain the override applied to a [Model]($backend) by this style. * @param id The Id of the [Model]($backend). * @returns The corresponding FeatureAppearance, or undefined if the Model's appearance is not overridden. * @see [[overrideModelAppearance]] */ getModelAppearanceOverride(id: Id64String): FeatureAppearance | undefined; /** Returns true if model appearance overrides are defined by this style. */ get hasModelAppearanceOverride(): boolean; /** Get any settings that override how the reality model with the specified Id is displayed. * @param modelId The Id of the [Model]($backend). * @returns the display settings, or `undefined` if no settings have been associated with `modelId`. * @see [[setRealityModelDisplaySettings]] to change the settings. * @beta */ getRealityModelDisplaySettings(modelId: Id64String): RealityModelDisplaySettings | undefined; /** Change the settings that control how the reality model with the specified Id is displayed. * @param modelId The Id of the [Model]($backend) to which the settings apply. * @param settings The settings to apply to the model, or `undefined` to clear any previous settings for that model. * @beta */ setRealityModelDisplaySettings(modelId: Id64String, settings: RealityModelDisplaySettings | undefined): void; /** The set of elements that will not be drawn by this display style. * @returns An iterable over the elements' Ids. */ get excludedElementIds(): OrderedId64Iterable; /** @internal */ get compressedExcludedElementIds(): CompressedId64Set; /** Add one or more elements to the set of elements not to be displayed. * @param id The Ids of the element(s) to be excluded. */ addExcludedElements(id: Id64String | Iterable<Id64String>): void; /** Remove an element from the set of elements not to be displayed. */ dropExcludedElement(id: Id64String): void; /** Remove one or more elements from the set of elements not to be displayed. * @param id The Ids of the element(s) to be removed from the set of excluded elements. */ dropExcludedElements(id: Id64String | Iterable<Id64String>): void; /** Remove all elements from the set of elements not to be displayed. */ clearExcludedElements(): void; /** The style applied to the view's [ClipVector]($core-geometry). */ get clipStyle(): ClipStyle; set clipStyle(style: ClipStyle); /** Convert these settings to their JSON representation. */ toJSON(): DisplayStyleSettingsProps; /** Serialize a subset of these settings to JSON, such that they can be applied to another DisplayStyleSettings to selectively override those settings. * @param options Specifies which settings should be serialized. By default, settings that are specific to an iModel (e.g., subcategory overrides) or iTwin (e.g., context reality models) * are omitted, as are drawing aids (e.g., ACS triad and grid). * @returns a JSON representation of the selected settings suitable for passing to [[applyOverrides]]. * @see [[applyOverrides]] to apply the overrides to another DisplayStyleSettings.. */ toOverrides(options?: DisplayStyleOverridesOptions): DisplayStyleSettingsProps; /** Selectively override some of these settings. Any field that is explicitly defined by the input will be overridden in these settings; any fields left undefined in the input * will retain their current values in these settings. The input's [[ViewFlags]] are applied individually - only those flags that are explicitly defined will be overridden. * For example, the following overrides will set the render mode to "smooth", change the background color to white, turn shadows off, and leave all other settings intact: * ```ts * { * viewflags: { * renderMode: RenderMode.SmoothShade, * shadows: false, * }, * backgroundColor: ColorByName.white, * } * ``` * @see [[toOverrides]] to produce overrides from an existing DisplayStyleSettings. */ applyOverrides(overrides: DisplayStyleSettingsProps): void; /** @internal */ protected _applyOverrides(overrides: DisplayStyleSettingsProps): void; } /** Provides access to the settings defined by a [[DisplayStyle3d]] or [[DisplayStyle3dState]], and ensures that * the style's JSON properties are kept in sync. * @public */ export declare class DisplayStyle3dSettings extends DisplayStyleSettings { private _thematic; private _contours; private _hline; private _ao; private _solarShadows; private _lights; private _environment; private _planProjections?; private get _json3d(); is3d(): this is DisplayStyle3dSettings; constructor(jsonProperties: { styles?: DisplayStyle3dSettingsProps; }, options?: DisplayStyleSettingsOptions); private populatePlanProjectionsFromJSON; /** Convert these settings to their JSON representation. */ toJSON(): DisplayStyle3dSettingsProps; /** See [[DisplayStyleSettings.toOverrides]]. */ toOverrides(options?: DisplayStyleOverridesOptions): DisplayStyle3dSettingsProps; /** See [[DisplayStyleSettings.applyOverrides]]. */ applyOverrides(overrides: DisplayStyle3dSettingsProps): void; /** The settings that control thematic display. */ get thematic(): ThematicDisplay; set thematic(thematic: ThematicDisplay); /** The settings that control contour display. */ get contours(): ContourDisplay; set contours(contours: ContourDisplay); /** The settings that control how visible and hidden edges are displayed. */ get hiddenLineSettings(): HiddenLine.Settings; set hiddenLineSettings(hline: HiddenLine.Settings); /** The settings that control how ambient occlusion is displayed. */ get ambientOcclusionSettings(): AmbientOcclusion.Settings; set ambientOcclusionSettings(ao: AmbientOcclusion.Settings); /** The settings that control how solar shadows are displayed. */ get solarShadows(): SolarShadowSettings; set solarShadows(solarShadows: SolarShadowSettings); /** Controls the display of a [[SkyBox]], [[GroundPlane]], and [[Atmosphere]]. * @public */ get environment(): Environment; set environment(environment: Environment); /** Toggle display of the [[environment]]'s [[SkyBox]]. * @param display Whether to display the skybox, or `undefined` to toggle the current display. */ toggleSkyBox(display?: boolean): void; /** Toggle display of the [[environment]]'s [[GroundPlane]]. * @param display Whether to display the ground plane, or `undefined` to toggle the current display. */ toggleGroundPlane(display?: boolean): void; /** Toggle display of the [[environment]]'s [[Atmosphere]]. * @beta * @param display Whether to display the atmosphere, or `undefined` to toggle the current display. */ toggleAtmosphere(display?: boolean): void; get lights(): LightSettings; set lights(lights: LightSettings); /** Adjust the solar light direction based on a date and time at a geographic location. * This replaces `this.lights` with a copy that records the time point and the computed direction. * @param timePoint The time in UNIX milliseconds. * @param location The geographic location; or an iModel, in which case the iModel's [[EcefLocation]] is used. * @see [[sunTime]] to get the current sun time. * @see [[clearSunTime]] to clear the time point. * @note If `location` is an iModel lacking an EcefLocation, a location in Exton, Pennsylvania will be used to compute the light direction instead. */ setSunTime(timePoint: number, location: IModel | Cartographic): void; /** Clear the solar time point stored in `this.lights.solarLight`. * @note This does not affect the solar light direction. * @see [[sunTime]] to get the current sun time. * @see [[setSunTime]] to set the time point and the solar light direction derived from it. */ clearSunTime(): void; /** The time point from which the solar light direction was derived, in UNIX milliseconds. * @see [[setSunTime]] to change the time point and solar direction. * @see [[clearSunTime]] to reset the time point to `undefined`. */ get sunTime(): number | undefined; /** Get the plan projection settings associated with the specified model, if defined. */ getPlanProjectionSettings(modelId: Id64String): PlanProjectionSettings | undefined; /** Set or clear the plan projection settings associated with the specified model. */ setPlanProjectionSettings(modelId: Id64String, settings: PlanProjectionSettings | undefined): void; /** An iterator over all of the defined plan projection settings. The iterator includes the Id of the model associated with each settings object. */ get planProjectionSettings(): Iterable<[Id64String, PlanProjectionSettings]> | undefined; } //# sourceMappingURL=DisplayStyleSettings.d.ts.map