@vrame/xeokit-sdk
Version:
3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision
124 lines (108 loc) • 3.33 kB
TypeScript
import { Component } from "../Component";
import { Curve } from "./Curve";
export declare type QuadraticBezierCurveConfiguration = {
/** Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted. */
id?: string;
/** The starting point. */
v0: number[];
/** The middle control point. */
v1: number[];
/** The end point. */
v2: number[];
/** Current position on this QuadraticBezierCurve, in range between ````0..1````. */
t: number;
}
export declare type QuadraticBezierCurveJson = {
v0: number[];
v1: number[];
v2: number[];
t: number;
}
export declare class QuadraticBezierCurve extends Curve {
/**
* @constructor
* @param {Component} owner Owner component. When destroyed, the owner will destroy this MetallicMaterial as well.
* @param {QuadraticBezierCurveConfiguration} [cfg] Configuration
*/
constructor(owner: Component, cfg?: QuadraticBezierCurveConfiguration);
/**
* Sets the starting point on this QuadraticBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````.
*
* @param {Number[]} value New starting point.
*/
set v0(value: number[]);
/**
* Gets the starting point on this QuadraticBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````.
*
* @returns {Number[]} The starting point.
*/
get v0(): number[];
/**
* Sets the middle control point on this QuadraticBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````.
*
* @param {Number[]} value New middle control point.
*/
set v1(value: number[]);
/**
* Gets the middle control point on this QuadraticBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````.
*
* @returns {Number[]} The middle control point.
*/
get v1(): number[];
/**
* Sets the end point on this QuadraticBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````.
*
* @param {Number[]} value The new end point.
*/
set v2(value: number[]);
/**
* Gets the end point on this QuadraticBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````.
*
* @returns {Number[]} The end point.
*/
get v2(): number[];
/**
* Sets the progress along this QuadraticBezierCurve.
*
* Automatically clamps to range [0..1].
*
* Default value is ````0````.
*
* @param {Number} value The new progress location.
*/
set t(value: number);
/**
* Gets the progress along this QuadraticBezierCurve.
*
* Default value is ````0````.
*
* @returns {Number} The current progress location.
*/
get t(): number;
/**
Point on this QuadraticBezierCurve at position {@link QuadraticBezierCurve/t}.
@property point
@type {Number[]}
*/
get point(): number[];
/**
* Returns the point on this QuadraticBezierCurve at the given position.
*
* @param {Number} t Position to get point at.
* @returns {Number[]} The point.
*/
getPoint(t: number): number[];
getJSON(): QuadraticBezierCurveJson;
}