API Reference > geometry-core > Bspline > InterpolationCurve3d InterpolationCurve3d Class Interpolating curve. Derive from ProxyCurve Use a BSplineCurve3d as the proxy Extends ProxyCurve Methods Name Description clone(): undefined | GeometryQuery Return a clone. cloneProps(): InterpolationCurve3dProps Clone the InterpolationCurve3dProps object in this InterpolationCurve3d cloneTransformed(transform: Transform): undefined | GeometryQuery Return a transformed clone. copyFitPointsFloat64Array(): Float64Array Return a (copy of) the defining points, packed as a Float64Array dispatchToGeometryHandler(handler: GeometryHandler): any * "double dispatch" call pattern. isAlmostEqual(other: GeometryQuery): boolean test for exact structure and nearly identical geometry. isSameGeometryClass(other: GeometryQuery): boolean Test if other is also an InterpolationCurve3d reverseInPlace(): void Reverse the curve direction. toJSON(): any Return json key-value pairs for for this InterpolationCurve3d. tryTransformInPlace(transform: Transform): boolean Transform this InterpolationCurve3d and its defining data in place create(options: InterpolationCurve3dOptions | InterpolationCurve3dProps): undefined | InterpolationCurve3d Static Create an InterpolationCurve3d based on points, knots, and other properties in the InterpolationCurve3dProps or InterpolationCurve3dOptions. createCapture(options: InterpolationCurve3dOptions): undefined | InterpolationCurve3d Static Create an InterpolationCurve3d Inherited methods Name Inherited from Description addMappedStrokesToLineString3D(map: StrokeCountMap, linestring: LineString3d): number ProxyCurve * evaluate strokes at fractions indicated in a StrokeCountMap. announceClipIntervals(_clipper: Clipper, _announce?: AnnounceNumberNumberCurvePrimitive): boolean ProxyCurve Find intervals of this curvePrimitive that are interior to a clipper appendPlaneIntersectionPoints(plane: PlaneAltitudeEvaluator, result: CurveLocationDetail[]): number ProxyCurve Compute intersections with a plane. clonePartialCurve(_fractionA: number, _fractionB: number): undefined | CurvePrimitive ProxyCurve Return (if possible) a curve primitive which is a portion of this curve. closestPoint(spacePoint: Point3d, extend: VariantCurveExtendParameter): undefined | CurveLocationDetail ProxyCurve Search for the curve point that is closest to the spacePoint. collectCurvePrimitives(collectorArray?: CurvePrimitive[], smallestPossiblePrimitives: boolean = false, explodeLinestrings: boolean = false): CurvePrimitive[] ProxyCurve Return an array containing only the curve primitives. collectCurvePrimitivesGo(collectorArray: CurvePrimitive[], _smallestPossiblePrimitives: boolean, _explodeLinestrings: boolean = false): void ProxyCurve Return an array containing only the curve primitives. computeAndAttachRecursiveStrokeCounts(options?: StrokeOptions, parentMap?: StrokeCountMap): void ProxyCurve attach StrokeCountMap structure to this primitive (and recursively to any children) computeStrokeCountForOptions(options?: StrokeOptions): number ProxyCurve Implement by proxyCurve curveLength(): number ProxyCurve return the length of the curve. curveLengthBetweenFractions(fraction0: number, fraction1: number): number ProxyCurve Returns a (high accuracy) length of the curve between fractional positions curveLengthWithFixedIntervalCountQuadrature(fraction0: number, fraction1: number, numInterval: number, numGauss: number = 5): number ProxyCurve * Run an integration (with a default gaussian quadrature) with a fixed fractional step emitStrokableParts(dest: IStrokeHandler, options?: StrokeOptions): void ProxyCurve Implement by proxyCurve emitStrokes(dest: LineString3d, options?: StrokeOptions): void ProxyCurve Implement by proxyCurve endPoint(result?: Point3d): Point3d ProxyCurve return the end point of the primitive. extendRange(rangeToExtend: Range3d, transform?: Transform): void ProxyCurve Implement by proxyCurve fractionAndDistanceToPointOnTangent(fraction: number, distance: number): Point3d ProxyCurve Construct a point extrapolated along tangent at fraction. fractionToCurvature(fraction: number): undefined | number ProxyCurve Returns the (absolute) curvature magnitude. fractionToFrenetFrame(fraction: number, result?: Transform): undefined | Transform ProxyCurve Construct a frenet frame: fractionToPoint(fraction: number, result?: Point3d): Point3d ProxyCurve Implement by proxyCurve fractionToPointAnd2Derivatives(fraction: number, result?: Plane3dByOriginAndVectors): undefined | Plane3dByOriginAndVectors ProxyCurve Implement by proxyCurve fractionToPointAndDerivative(fraction: number, result?: Ray3d): Ray3d ProxyCurve Implement by proxyCurve fractionToPointAndUnitTangent(fraction: number, result?: Ray3d): Ray3d ProxyCurve Returns a ray whose origin is the curve point and direction is the unit tangent. getFractionToDistanceScale(): undefined | number ProxyCurve * If the curve primitive has distance-along-curve strictly proportional to curve fraction, return true isInPlane(plane: Plane3dByOriginAndUnitNormal): boolean ProxyCurve Implement by proxyCurve moveSignedDistanceFromFraction(startFraction: number, signedDistance: number, allowExtension: boolean, result?: CurveLocationDetail): CurveLocationDetail ProxyCurve * (Attempt to) find a position on the curve at a signed distance from start fraction. moveSignedDistanceFromFractionGeneric(startFraction: number, signedDistance: number, allowExtension: boolean, result?: CurveLocationDetail): CurveLocationDetail Protected ProxyCurve Generic algorithm to search for point at signed distance from a fractional startPoint. quickLength(): number ProxyCurve Compute a length which may be an fast approximation to the true length. range(transform?: Transform, result?: Range3d): Range3d ProxyCurve Implement by proxyCurve startPoint(result?: Point3d): Point3d ProxyCurve return the startPoint of the primitive. tryTranslateInPlace(dx: number, dy: number = 0.0, dz: number = 0.0): boolean ProxyCurve try to move the geometry by dx,dy,dz areAlmostEqual(a: undefined | GeometryQuery, b: undefined | GeometryQuery): boolean Static ProxyCurve apply instance method isAlmostEqual if both are defined. installStrokeCountMap(curve: CurvePrimitive, curveMap: StrokeCountMap, parentMap?: StrokeCountMap): void Static ProxyCurve final install step to save curveMap in curve. Properties Name Type Description curvePrimitiveType Readonly "interpolationCurve" String name for schema properties options Accessor ReadOnly InterpolationCurve3dOptions return the options pointer Inherited properties Name Type Inherited from Description _proxyCurve Protected CurvePrimitive ProxyCurve children Accessor ReadOnly undefined | GeometryQuery[] ProxyCurve return GeometryQuery children for recursive queries.* leaf classes do not need to implement. geometryCategory Readonly "curvePrimitive" ProxyCurve String name for schema properties isExtensibleFractionSpace Accessor ReadOnly boolean ProxyCurve * Returns true if the curve's fraction queries extend beyond 0..1.* Base class default implementation returns false.* These class (and perhaps others in the future) will return true: * LineSegment3d * LineString3d * Arc3d parent undefined | any ProxyCurve data attached by various algorithms (e.g. strokeData undefined | StrokeCountMap ProxyCurve data attached during stroking for facets. Defined in bspline/InterpolationCurve3d.ts Line 210 Last Updated: 12 June, 2024