/** @packageDocumentation * @module Bspline */ import { Point3d } from "../geometry3d/Point3dVector3d"; import { ProxyCurve } from "../curve/ProxyCurve"; import { GeometryQuery } from "../curve/GeometryQuery"; import { Transform } from "../geometry3d/Transform"; import { GeometryHandler } from "../geometry3d/GeometryHandler"; import { XYZProps } from "../geometry3d/XYZProps"; /** * fitPoints [[AkimaCurve3d]] * * This is a "json compatible" version of the serializer-friendly [[AkimaCurve3dOptions]] * @public */ export interface AkimaCurve3dProps { /** Points that the curve must pass through */ fitPoints: XYZProps[]; } /** * fitPoints and end condition data for [[AkimaCurve3d]] * * This is a "typed object" version of the serializer-friendly [[AkimaCurve3dProps]] * * Typical use cases rarely require all parameters, so the constructor does not itemize them as parameters. * @public */ export declare class AkimaCurve3dOptions { fitPoints: Point3d[]; /** * * @param fitPoints points to CAPTURE * @param knots array to CAPTURE */ constructor(fitPoints?: Point3d[]); /** Points that the curve must pass through. * First and last 2 points are "beyond the end" for control of end slope. fitPoints: Point3d[]; /** Clone with strongly typed members reduced to simple json. */ cloneAsAkimaCurve3dProps(): AkimaCurve3dProps; /** Clone with strongly typed members reduced to simple json. */ clone(): AkimaCurve3dOptions; /** Clone with strongly typed members reduced to simple json. */ static create(source: AkimaCurve3dProps): AkimaCurve3dOptions; static areAlmostEqual(dataA: AkimaCurve3dOptions | undefined, dataB: AkimaCurve3dOptions | undefined): boolean; } /** * Interpolating curve. * * Derive from [[ProxyCurve]] * * Use a [[BSplineCurve3d]] as the proxy * * * @public */ export declare class AkimaCurve3d extends ProxyCurve { readonly curvePrimitiveType = "interpolationCurve"; private _options; /** * CAPTURE properties and proxy curve. */ private constructor(); dispatchToGeometryHandler(handler: GeometryHandler): any; /** * Create an [[AkimaCurve3d]] based on points, knots, and other properties in the [[AkimaCurve3dProps]] or [[AkimaCurve3dOptions]]. * * This saves a COPY OF the options or props. * * Use createCapture () if the options or props can be used without copy */ static create(options: AkimaCurve3dOptions | AkimaCurve3dProps): AkimaCurve3d | undefined; static createCapture(options: AkimaCurve3dOptions): AkimaCurve3d | undefined; /** Return a (copy of) the defining points, packed as a Float64Array */ copyFitPointsFloat64Array(): Float64Array; /** * Return json key-value pairs for for this [[AkimaCurve3d]]. * @returns */ toJSON(): any; /** Clone the [[AkimaCurve3dProps]] object in this [[AkimaCurve3dProps]] */ cloneProps(): AkimaCurve3dProps; /** * Reverse the curve direction. * * This updates both the defining properties and the proxy bspline. */ reverseInPlace(): void; /** * Transform this [[AkimaCurve3d]] and its defining data in place */ tryTransformInPlace(transform: Transform): boolean; /** * Return a transformed clone. */ cloneTransformed(transform: Transform): GeometryQuery | undefined; /** * Return a clone. */ clone(): GeometryQuery | undefined; /** Test if `other` is also an [[AkimaCurve3d]] */ isSameGeometryClass(other: GeometryQuery): boolean; isAlmostEqual(other: GeometryQuery): boolean; } //# sourceMappingURL=AkimaCurve3d.d.ts.map