@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
60 lines • 2.44 kB
TypeScript
import { ArrayNumber16, ArrayNumber3, ArrayNumber4 } from "../types";
import { TgdMat4 } from "./mat4";
import { TgdQuat } from "./quat";
import { TgdVec3 } from "./vec3";
import { TgdVec4 } from "./vec4";
export interface TgdTransfoOptions {
distance: number;
position: TgdVec3 | ArrayNumber3;
scale: TgdVec3 | ArrayNumber3;
orientation: TgdQuat | ArrayNumber4;
}
export declare class TgdTransfo {
private readonly _matrix;
private readonly _position;
private readonly _orientation;
private readonly _scale;
private _distance;
private readonly tmpVec3;
private readonly _axisX;
private readonly _axisY;
private readonly _axisZ;
private dirty;
private _updateCount;
constructor(source?: TgdTransfo | Partial<TgdTransfoOptions>);
from(transfo: Readonly<TgdTransfo> | Readonly<Partial<TgdTransfoOptions>>): this;
fromMatrix(mat: TgdMat4 | ArrayNumber16): this;
get updateCount(): number;
get matrix(): TgdMat4;
set matrix(value: Readonly<TgdMat4> | ArrayNumber16);
get axisX(): Readonly<TgdVec3>;
get axisY(): Readonly<TgdVec3>;
get axisZ(): Readonly<TgdVec3>;
private updateIfNeeded;
reset(): this;
get distance(): number;
set distance(value: number);
setDistance(value: number): this;
get position(): Readonly<TgdVec3>;
set position(value: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>);
setPosition(x: number | TgdVec3 | TgdVec4 | ArrayNumber3 | ArrayNumber4, y: number, z: number): this;
/**
* When `this.distance` is not null, we are orbitiong around the `position`.
* Then, the `actualPosition` is different.
*/
get actualPosition(): Readonly<TgdVec3>;
get scale(): Readonly<TgdVec3>;
set scale(value: Readonly<TgdVec3 | ArrayNumber3>);
setScale(x: number | TgdVec3 | TgdVec4 | ArrayNumber3 | ArrayNumber4, y: number, z: number): this;
get orientation(): Readonly<TgdQuat>;
set orientation(quat: Readonly<TgdQuat | ArrayNumber4>);
setOrientation(source: TgdVec4 | ArrayNumber4 | TgdQuat): this;
setOrientation(x: number, y: number, z: number, w: number): this;
orbitAroundX(angleInRadians: number): this;
orbitAroundY(angleInRadians: number): this;
orbitAroundZ(angleInRadians: number): this;
moveAlongAxes(dx: number, dy: number, dz: number): this;
debug(caption?: string): void;
private setDirty;
}
//# sourceMappingURL=transfo.d.ts.map