UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

59 lines 2.6 kB
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