UNPKG

@itwin/core-frontend

Version:
150 lines 5.03 kB
/** @packageDocumentation * @module Rendering */ import { Arc3d, Loop, Path, Point2d, Point3d, Polyface, SolidPrimitive } from "@itwin/core-geometry"; /** Base interface for a 2d [[GraphicPrimitive]] that can be supplied to [[GraphicBuilder.addPrimitive]]. * @public * @extensions */ export interface GraphicPrimitive2d { /** Z value in local coordinates to use for each point. */ zDepth: number; } /** A [[GraphicPrimitive]] representing a line string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLineString]]. * @public * @extensions */ export interface GraphicLineString { type: "linestring"; points: Point3d[]; } /** A [[GraphicPrimitive]] representing a 2d line string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLineString2d]]. * @public * @extensions */ export interface GraphicLineString2d extends GraphicPrimitive2d { type: "linestring2d"; points: Point2d[]; } /** A [[GraphicPrimitive]] representing a point string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPointString]]. * @public * @extensions */ export interface GraphicPointString { type: "pointstring"; points: Point3d[]; } /** A [[GraphicPrimitive]] representing a 2d point string that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPointString2d]]. * @public * @extensions */ export interface GraphicPointString2d extends GraphicPrimitive2d { type: "pointstring2d"; points: Point2d[]; } /** A [[GraphicPrimitive]] representing a closed 3d planar region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addShape]]. * @public * @extensions */ export interface GraphicShape { type: "shape"; points: Point3d[]; } /** A [[GraphicPrimitive]] representing a closed 2d region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addShape2d]]. * @public * @extensions */ export interface GraphicShape2d extends GraphicPrimitive2d { type: "shape2d"; points: Point2d[]; } /** A [[GraphicPrimitive]] representing a 3d open arc or closed ellipse that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addArc]]. * @public * @extensions */ export interface GraphicArc { type: "arc"; arc: Arc3d; isEllipse?: boolean; filled?: boolean; } /** A [[GraphicPrimitive]] representing a 2d open arc or closed ellipse that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addArc2d]]. * @public * @extensions */ export interface GraphicArc2d { type: "arc2d"; arc: Arc3d; isEllipse?: boolean; filled?: boolean; zDepth: number; } /** A [[GraphicPrimitive]] representing a 3d open path that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPath]]. * @public * @extensions */ export interface GraphicPath { type: "path"; path: Path; } /** A [[GraphicPrimitive]] representing a 3d planar region that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addLoop]]. * @public * @extensions */ export interface GraphicLoop { type: "loop"; loop: Loop; } /** A [[GraphicPrimitive]] representing a mesh that can be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addPolyface]]. * @public * @extensions */ export interface GraphicPolyface { type: "polyface"; polyface: Polyface; filled?: boolean; } /** A [[GraphicPrimitive]] representing a [SolidPrimitive]($core-geometry) to be supplied to [[GraphicBuilder.addPrimitive]]. * @see [[GraphicBuilder.addSolidPrimitive]]. * @public * @extensions */ export interface GraphicSolidPrimitive { type: "solidPrimitive"; solidPrimitive: SolidPrimitive; } /** Union type representing a graphic primitive that can be supplied to [[GraphicBuilder.addPrimitive]]. * Each primitive type corresponds to one of GraphicBuilder's `addXXX` methods. This is useful when the precise type of * geometry is not known at the point at which it is added to the builder. As a simple example: * ```ts * function getPrimitives(): GraphicPrimitive[] { * const primitives: GraphicPrimitive[] = [{ type: "polyface", polyface: getPolyface(), filled: true }]; * if (someCondition()) * primitives.push({ type: "linestring", points: getPoints() }); * else * primitives.push({ type: "arc", arc: getArc(), isEllipse: true }); * * return primitives; * } * * function addGraphics(builder: GraphicBuilder) { * for (const primitive of getPrimitives()) * builder.addPrimitive(primitive); * } * ``` * @public * @extensions */ export type GraphicPrimitive = GraphicLineString | GraphicLineString2d | GraphicPointString | GraphicPointString2d | GraphicShape | GraphicShape2d | GraphicArc | GraphicArc2d | GraphicPath | GraphicLoop | GraphicPolyface | GraphicSolidPrimitive; //# sourceMappingURL=GraphicPrimitive.d.ts.map