@itwin/core-common
Version:
iTwin.js components common to frontend and backend
72 lines • 3.29 kB
TypeScript
/** @packageDocumentation
* @module Symbology
*/
import { Id64String } from "@itwin/core-bentley";
import { Transform, Vector3d, XYZProps, YawPitchRollAngles, YawPitchRollProps } from "@itwin/core-geometry";
/** @public */
export declare namespace LineStyle {
/** Modify the line style appearance without changing the line style definition.
* Applies to the style previously established by a [[GeometryAppearanceProps]] or current [[SubCategoryAppearance]].
* Most of the modifiers affect the line style stroke pattern, with the orientation and scales being the exception.
* @see [[GeometryStreamEntryProps]]
*/
interface ModifierProps {
/** Optional scale to apply to all length values, 1.0 if undefined */
scale?: number;
/** Optional scale to apply to scalable dashes, 1.0 if undefined */
dashScale?: number;
/** Optional scale to apply to scalable gaps, 1.0 if undefined */
gapScale?: number;
/** Optional start width in meters to apply to dashes, no width if undefined */
startWidth?: number;
/** Optional end width in meters to apply to dashes, same as startWidth if undefined */
endWidth?: number;
/** Optional shift by distance in meters, 0.0 if undefined */
distPhase?: number;
/** Optional shift by fraction, 0.0 if undefined */
fractPhase?: number;
/** Optional flag to center stroke pattern and stretch ends, false if undefined */
centerPhase?: boolean;
/** Optional flag to enable or disable single segment mode */
segmentMode?: boolean;
/** Optional flag that denotes startWidth and endWidth represent physical widths that should not be affected by scale, false if undefined */
physicalWidth?: boolean;
/** Optional up vector for style (applicable to 3d only), 0.0,0.0,1.0 if undefined */
normal?: XYZProps;
/** Optional orientation for style (applicable to 3d only), 0.0,0.0,0.0 if undefined */
rotation?: YawPitchRollProps;
}
/** Optional modifiers to override line style definition */
class Modifier implements ModifierProps {
scale?: number;
dashScale?: number;
gapScale?: number;
startWidth?: number;
endWidth?: number;
distPhase?: number;
fractPhase?: number;
centerPhase?: boolean;
segmentMode?: boolean;
physicalWidth?: boolean;
normal?: Vector3d;
rotation?: YawPitchRollAngles;
/** constructor for LineStyle.Modifier */
constructor(props: ModifierProps);
/** Returns a deep copy of this object. */
clone(): Modifier;
/** Compare two LineStyle.Modifier for equivalence */
equals(other: Modifier): boolean;
applyTransform(transform: Transform): boolean;
}
/** Line style id and optional modifiers to override line style definition */
class Info {
styleId: Id64String;
styleMod?: Modifier;
/** Creates a LineStyle.Info object */
constructor(styleId: Id64String, styleMod?: Modifier);
/** Returns a deep copy of this object. */
clone(): Info;
equals(other: Info): boolean;
}
}
//# sourceMappingURL=LineStyle.d.ts.map