@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
146 lines (130 loc) • 4 kB
TypeScript
import { Component } from '../Component';
import { Curve } from './Curve';
export declare type CubicBezierCurveConfiguration = {
/** Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted. */
id?: string;
/** The starting point. */
v0: number[];
/** The first control point. */
v1: number[];
/** The middle control point. */
v2: number[];
/** The ending point. */
v3: number[];
/** Current position on this CubicBezierCurve, in range between 0..1. */
t: number;
}
export declare type CubicBezierCurveJson = {
v0: number[],
v1: number[],
v2: number[],
v3: number[],
t: number
}
export declare class CubicBezierCurve extends Curve {
/**
* @constructor
* @param {Component} [owner] Owner component. When destroyed, the owner will destroy this CubicBezierCurve as well.
* @param {CubicBezierCurveConfiguration} [cfg] Configs
*/
constructor(owner: Component, cfg?: CubicBezierCurveConfiguration);
/**
* Sets the starting point on this CubicBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @param {Number[]} value The starting point.
*/
set v0(value: number[]);
/**
* Gets the starting point on this CubicBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @returns {Number[]} The starting point.
*/
get v0(): number[];
/**
* Sets the first control point on this CubicBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @param {Number[]} value The first control point.
*/
set v1(value: number[]);
/**
* Gets the first control point on this CubicBezierCurve.
*
* Fires a {@link CubicBezierCurve#v1:event} event on change.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @returns {Number[]} The first control point.
*/
get v1(): number[];
/**
* Sets the second control point on this CubicBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @param {Number[]} value The second control point.
*/
set v2(value: number[]);
/**
* Gets the second control point on this CubicBezierCurve.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @returns {Number[]} The second control point.
*/
get v2(): number[];
/**
* Sets the end point on this CubicBezierCurve.
*
* Fires a {@link CubicBezierCurve#v3:event} event on change.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @param {Number[]} value The end point.
*/
set v3(value: number[]);
/**
* Gets the end point on this CubicBezierCurve.
*
* Fires a {@link CubicBezierCurve#v3:event} event on change.
*
* Default value is ````[0.0, 0.0, 0.0]````
*
* @returns {Number[]} The end point.
*/
get v3(): number[];
/**
* Sets the current position of progress along this CubicBezierCurve.
*
* Automatically clamps to range ````[0..1]````.
*
* @param {Number} value New progress time value.
*/
set t(value: number);
/**
* Gets the current position of progress along this CubicBezierCurve.
*
* @returns {Number} Current progress time value.
*/
get t(): number;
/**
* Returns point on this CubicBezierCurve at the given position.
*
* @returns {Number[]} The point at the given position.
*/
get point(): number[];
/**
* Returns point on this CubicBezierCurve at the given position.
*
* @param {Number} t Position to get point at.
*
* @returns {Number[]} The point at the given position.
*/
getPoint(t: number): number[];
getJSON(): CubicBezierCurveJson;
}