/** @packageDocumentation * @module Curve */ import { GeometryHandler } from "../geometry3d/GeometryHandler"; import { IndexedXYZCollection } from "../geometry3d/IndexedXYZCollection"; import { Point3d } from "../geometry3d/Point3dVector3d"; import { AnyCurve } from "./CurveChain"; import { CurveChain } from "./CurveCollection"; import { CurvePrimitive } from "./CurvePrimitive"; import { RecursiveCurveProcessor } from "./CurveProcessor"; import { GeometryQuery } from "./GeometryQuery"; import { StrokeOptions } from "./StrokeOptions"; /** * A `Loop` is a curve chain that is the boundary of a closed (planar) loop. * @see [Curve Collections]($docs/learning/geometry/CurveCollection.md) learning article. * @public */ export declare class Loop extends CurveChain { /** String name for schema properties */ readonly curveCollectionType = "loop"; /** tag value that can be set to true for user code to mark inner and outer loops. */ isInner: boolean; /** test if `other` is a `Loop` */ isSameGeometryClass(other: GeometryQuery): boolean; /** Test if `other` is an instance of `Loop` */ constructor(); /** * Create a loop from variable length list of CurvePrimitives * @param curves array of individual curve primitives */ static create(...curves: CurvePrimitive[]): Loop; /** * Create a loop from an array of curve primitives * @param curves array of individual curve primitives */ static createArray(curves: CurvePrimitive[]): Loop; /** Create a loop from an array of points */ static createPolygon(points: IndexedXYZCollection | Point3d[]): Loop; /** Create a loop with the stroked form of this loop. */ cloneStroked(options?: StrokeOptions): AnyCurve; /** Return the boundary type (2) of a corresponding MicroStation CurveVector */ dgnBoundaryType(): number; /** invoke `processor.announceLoop(this, indexInParent)` */ announceToCurveProcessor(processor: RecursiveCurveProcessor, indexInParent?: number): void; /** Create a new `Loop` with no children */ cloneEmptyPeer(): Loop; /** Second step of double dispatch: call `handler.handleLoop(this)` */ dispatchToGeometryHandler(handler: GeometryHandler): any; } /** Carrier object for loops characterized by area sign * @public */ export interface SignedLoops { /** Array of loops that have positive area sign. (i.e. counterclockwise loops) */ positiveAreaLoops: Loop[]; /** Array of loops that have negative area sign. (i.e. clockwise loops. */ negativeAreaLoops: Loop[]; /** slivers where there are coincident sections of input curves. */ slivers: Loop[]; } //# sourceMappingURL=Loop.d.ts.map