@pilotlab/lux-types
Version:
A luxurious user experience framework, developed by your friends at Pilot.
34 lines (33 loc) • 1.38 kB
TypeScript
import { IAttribute } from '@pilotlab/lux-attributes';
import PointBase from './pointBase';
import Point from './point';
import IVector from './interfaces/iVector';
export declare class Vector extends PointBase<Vector> implements IVector {
constructor(x?: number, y?: number, z?: number, w?: number);
w: number;
protected p_w: IAttribute;
readonly length: number;
readonly magnitude: number;
readonly abs: Vector;
dot(v: Vector): number;
normalize(): Vector;
multiply(v: Vector): Vector;
divide(v: Vector): Vector;
static readonly identity: Vector;
static fromPoint3D(pt: Point): Vector;
static readonly empty: Vector;
static cross(v1: Vector, v2: Vector, dest?: Vector): Vector;
static dot(v1: Vector, v2: Vector): number;
static distance(v1: Vector, v2: Vector): number;
static direction(v1: Vector, v2: Vector, dest?: Vector): Vector;
static mix(v1: Vector, v2: Vector, time: number, dest?: Vector): Vector;
static sum(v1: Vector, v2: Vector, dest?: Vector): Vector;
static difference(v1: Vector, v2: Vector, dest?: Vector): Vector;
static product(v1: Vector, v2: Vector, dest?: Vector): Vector;
static quotient(v1: Vector, v2: Vector, dest?: Vector): Vector;
static zero: Vector;
static up: Vector;
static right: Vector;
static forward: Vector;
}
export default Vector;