UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

60 lines 2.44 kB
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