@polyzone/core
Version:
PolyZone core API
49 lines (48 loc) • 1.58 kB
TypeScript
import { Vector3 } from "./Vector3";
export declare class Quaternion {
private _x;
private _y;
private _z;
private _w;
constructor(x: number, y: number, z: number, w: number);
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
get z(): number;
set z(value: number);
get w(): number;
set w(value: number);
/**
* Creates a quaternion from an axis and angle (in radians).
* @param axis The axis of rotation.
* @param angle The angle in radians.
*/
static fromAxisAngle(axis: Vector3, angle: number): Quaternion;
/**
* Creates a quaternion from Euler angles (in radians).
* @param x Rotation around X axis in radians.
* @param y Rotation around Y axis in radians.
* @param z Rotation around Z axis in radians.
*/
static fromEuler(vector: Vector3): Quaternion;
static fromEuler(x: number, y: number, z: number): Quaternion;
static fromLookDirection(forward: Vector3, up: Vector3): Quaternion;
/**
* Convert the quaternion to Euler angles (in radians).
*/
toEuler(): Vector3;
/**
* Create a quaternion that represents no rotation.
*/
static identity(): Quaternion;
clone(): Quaternion;
multiply(q: Quaternion): Quaternion;
multiplySelf(q: Quaternion): Quaternion;
static slerp(left: Quaternion, right: Quaternion, t: number): Quaternion;
conjugate(): Quaternion;
normalize(): Quaternion;
invert(): Quaternion;
setValue(value: Quaternion): void;
toString(): string;
}