UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

85 lines 4.09 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ /** @packageDocumentation * @module Symbology */ import { ColorDef } from "./ColorDef"; import { LinePixels } from "./LinePixels"; /** Flags indicating whether and how the interiors of closed planar regions is displayed within a view. * @public * @extensions */ export var FillFlags; (function (FillFlags) { /** No fill */ FillFlags[FillFlags["None"] = 0] = "None"; /** Use the element's fill color when fill is enabled in the view's [[ViewFlags]]. */ FillFlags[FillFlags["ByView"] = 1] = "ByView"; /** Use the element's fill color even when fill is disabled in the view's [[ViewFlags]]. */ FillFlags[FillFlags["Always"] = 2] = "Always"; /** Render the fill behind other geometry belonging to the same element. * For example if an element's geometry contains text with background fill, the text always renders in front of the fill. * @note [GraphicBuilder]($frontend) will not produce edge geometry for shapes with this fill flag. If you want an outline, add it separately. */ FillFlags[FillFlags["Behind"] = 4] = "Behind"; /** Combines Behind and Always flags. */ FillFlags[FillFlags["Blanking"] = 6] = "Blanking"; /** Use the view's background color instead of the element's fill color. */ FillFlags[FillFlags["Background"] = 8] = "Background"; })(FillFlags || (FillFlags = {})); /** The "cooked" material and symbology for a [[RenderGraphic]]. This determines the appearance * (e.g. texture, color, width, linestyle, etc.) used to draw Geometry. * @public */ export class GraphicParams { /** Describes how fill is applied to planar regions in wireframe mode. */ fillFlags = FillFlags.None; /** The line pattern applied to curves and edges. */ linePixels = LinePixels.Solid; /** The width, in pixels, of curves and edges. Values are clamped to [1..31] at display time. */ rasterWidth = 1; /** The color of curves and edges. */ lineColor = ColorDef.black; /** The color of surfaces. */ fillColor = ColorDef.black; /** Material applied to surfaces. */ material; /** Gradient fill applied to surfaces. */ gradient; /** Set the transparency of the line color, where 0=fully opaque and 255=full transparent. */ setLineTransparency(transparency) { this.lineColor = this.lineColor.withTransparency(transparency); } /** Set the transparency of the fill color, where 0=fully opaque and 255=full transparent. */ setFillTransparency(transparency) { this.fillColor = this.fillColor.withTransparency(transparency); } clone(out) { out = out ?? new GraphicParams(); out.fillFlags = this.fillFlags; out.linePixels = this.linePixels; out.rasterWidth = this.rasterWidth; out.lineColor = this.lineColor; out.fillColor = this.fillColor; out.material = this.material; out.gradient = this.gradient; return out; } /** Conveniently create a GraphicParams the most commonly-used properties. */ static fromSymbology(lineColor, fillColor, lineWidth, linePixels = LinePixels.Solid) { const graphicParams = new GraphicParams(); graphicParams.lineColor = lineColor; graphicParams.fillColor = fillColor; graphicParams.rasterWidth = lineWidth; graphicParams.linePixels = linePixels; return graphicParams; } /** Create a GraphicParams with blanking fill of the specified color. * @see [[FillFlags.Blanking]]. */ static fromBlankingFill(fillColor) { const graphicParams = new GraphicParams(); graphicParams.fillColor = fillColor; graphicParams.fillFlags = FillFlags.Blanking; return graphicParams; } } //# sourceMappingURL=GraphicParams.js.map