/** @packageDocumentation * @module Curve */ import { CurvePrimitive } from "../curve/CurvePrimitive"; import { GeometryHandler, IStrokeHandler } from "../geometry3d/GeometryHandler"; import { Plane3dByOriginAndUnitNormal } from "../geometry3d/Plane3dByOriginAndUnitNormal"; import { Plane3dByOriginAndVectors } from "../geometry3d/Plane3dByOriginAndVectors"; import { Point3d } from "../geometry3d/Point3dVector3d"; import { Range3d } from "../geometry3d/Range"; import { Ray3d } from "../geometry3d/Ray3d"; import { Transform } from "../geometry3d/Transform"; import { LineString3d } from "./LineString3d"; import { StrokeOptions } from "./StrokeOptions"; /** * A ProxyCurve is expected to be used as a base class for * curve types that use some existing curve (the proxy) for evaluation and display * but carry other defining data. * * The ProxyCurve implements all required CurvePrimitive methods by dispatching * to the proxy. * * These methods presumably require support from the application class and are left abstract: * * clone * * clonePartialCurve * * cloneTransformed * * curvePrimitiveType * * isSameCurvePrimitiveType * * isSameGeometryClass * * tryTransformInPlace * * reverseInPlace * * @public */ export declare abstract class ProxyCurve extends CurvePrimitive { dispatchToGeometryHandler(handler: GeometryHandler): any; protected _proxyCurve: CurvePrimitive; /** Constructor CAPTURES the proxyCurve pointer */ constructor(proxyCurve: CurvePrimitive); /** Implement by proxyCurve */ computeStrokeCountForOptions(options?: StrokeOptions): number; /** Implement by proxyCurve */ emitStrokableParts(dest: IStrokeHandler, options?: StrokeOptions): void; /** Implement by proxyCurve */ emitStrokes(dest: LineString3d, options?: StrokeOptions): void; /** Implement by proxyCurve */ extendRange(rangeToExtend: Range3d, transform?: Transform): void; /** Implement by proxyCurve */ range(transform?: Transform, result?: Range3d): Range3d; /** Implement by proxyCurve */ fractionToPoint(fraction: number, result?: Point3d): Point3d; /** Implement by proxyCurve */ fractionToPointAndDerivative(fraction: number, result?: Ray3d): Ray3d; /** Implement by proxyCurve */ fractionToPointAnd2Derivatives(fraction: number, result?: Plane3dByOriginAndVectors): Plane3dByOriginAndVectors | undefined; /** Implement by proxyCurve */ isInPlane(plane: Plane3dByOriginAndUnitNormal): boolean; quickLength(): number; } //# sourceMappingURL=ProxyCurve.d.ts.map