toosoon-utils
Version:
Utility functions & classes
85 lines (84 loc) • 2.92 kB
TypeScript
import type { Point3 } from '../../types';
import { Vector3 } from '../geometry';
import Curve from './Curve';
/**
* Utility class for manipulating Quadratic Bézier 3D curves
*
* @exports
* @class QuadraticBezierCurve3
* @extends Curve
*/
export default class QuadraticBezierCurve3 extends Curve<Vector3> {
readonly type: string;
/**
* X-axis coordinate of the start point
*/
x1: number;
/**
* Y-axis coordinate of the start point
*/
y1: number;
/**
* Z-axis coordinate of the start point
*/
z1: number;
/**
* X-axis coordinate of the control point
*/
cpx: number;
/**
* Y-axis coordinate of the control point
*/
cpy: number;
/**
* Z-axis coordinate of the control point
*/
cpz: number;
/**
* X-axis coordinate of the end point
*/
x2: number;
/**
* Y-axis coordinate of the end point
*/
y2: number;
/**
* Z-axis coordinate of the end point
*/
z2: number;
/**
* @param {number} x1 X-axis coordinate of the start point
* @param {number} y1 Y-axis coordinate of the start point
* @param {number} z1 Z-axis coordinate of the start point
* @param {number} cpx X-axis coordinate of the control point
* @param {number} cpy Y-axis coordinate of the control point
* @param {number} cpz Z-axis coordinate of the control point
* @param {number} x2 X-axis coordinate of the end point
* @param {number} y2 Y-axis coordinate of the end point
* @param {number} z2 Z-axis coordinate of the end point
*/
constructor(x1: number, y1: number, z1: number, cpx: number, cpy: number, cpz: number, x2: number, y2: number, z2: number);
/**
* Interpolate a point on this curve
*
* @param {number} t Normalized time value to interpolate
* @returns {Vector3} Interpolated coordinates on this curve
*/
getPoint(t: number): Vector3;
/**
* Interpolate a point on a Quadratic Bézier 3D curve
*
* @param {number} t Normalized time value to interpolate
* @param {number} x1 X-axis coordinate of the start point
* @param {number} y1 Y-axis coordinate of the start point
* @param {number} z1 Z-axis coordinate of the start point
* @param {number} cpx X-axis coordinate of the control point
* @param {number} cpy Y-axis coordinate of the control point
* @param {number} cpz Z-axis coordinate of the control point
* @param {number} x2 X-axis coordinate of the end point
* @param {number} y2 Y-axis coordinate of the end point
* @param {number} z2 Z-axis coordinate of the end point
* @returns {Point3} Interpolated coordinates on the curve
*/
static interpolate(t: number, x1: number, y1: number, z1: number, cpx: number, cpy: number, cpz: number, x2: number, y2: number, z2: number): Point3;
}