@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
59 lines • 2.6 kB
TypeScript
import { ArrayNumber3, ArrayNumber4, TgdQuat } from "..";
import { TgdMat3 } from "./mat3";
import { TgdMat4 } from "./mat4";
import { TgdVec4 } from "./vec4";
export declare class TgdVec3 extends Float32Array {
static X: Readonly<TgdVec3>;
static Y: Readonly<TgdVec3>;
static Z: Readonly<TgdVec3>;
static newFrom([x, y, z]: TgdVec3 | TgdVec4 | ArrayNumber3 | ArrayNumber4): TgdVec3;
static newFromMix([x1, y1, z1]: TgdVec3 | TgdVec4 | ArrayNumber3 | ArrayNumber4, [x2, y2, z2]: TgdVec3 | TgdVec4 | ArrayNumber3 | ArrayNumber4, a?: number): TgdVec3;
static distance(from: TgdVec3 | TgdVec4, to: TgdVec3 | TgdVec4): number;
constructor();
constructor(x: Readonly<TgdVec3 | ArrayNumber3>);
constructor(x: number);
constructor(x: number, y: number);
constructor(x: number, y: number, z: number);
clone(): TgdVec3;
mix(vec: Readonly<TgdVec3>, alpha?: number): this;
isEqual(vec: Readonly<TgdVec3 | ArrayNumber3>): boolean;
isClose(vec: Readonly<TgdVec3 | ArrayNumber3>, epsilon?: number): boolean;
/**
* __Warning__, for performance reason, `axis` is supposed to be of length 1.
* Otherwise, the result will be a vector rotated then scaled by the length of `axis`.
*/
rotateAround(axis: Readonly<TgdVec3 | ArrayNumber3>, angleInRadians: number): this;
/**
* V := M×V
*/
applyMatrix(matrix: Readonly<TgdMat3 | TgdMat4>): this;
applyQuaternion(quaternion: Readonly<TgdQuat | ArrayNumber4>): this;
from(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
/**
* `this = -vec`
*/
fromOpposite(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
fromMix(valueAtT0: TgdVec3 | TgdVec4, valueAtT1: TgdVec3 | TgdVec4, t: number): this;
reset(x: number, y: number, z: number): this;
distanceToLineSquared(origin: TgdVec3, normalizedDirection: TgdVec3): number;
get x(): number;
set x(value: number);
get y(): number;
set y(value: number);
get z(): number;
set z(value: number);
add(...vectors: (TgdVec3 | TgdVec4)[]): this;
addWithScale(vec: TgdVec3 | TgdVec4, scale: number): this;
subtract(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
scale(factor: number): this;
dot(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): number;
get size(): number;
normalize(): this;
cross(vec: Readonly<TgdVec3 | TgdVec4 | ArrayNumber3>): this;
/**
* Set random values between -0.5 and +0.5 to each coordinate.
*/
random(): this;
debug(caption?: string): void;
}
//# sourceMappingURL=vec3.d.ts.map