@nativewrappers/client
Version:
Javascript/Typescript wrapper for the FiveM natives
70 lines (69 loc) • 2.54 kB
TypeScript
export interface Vec3 {
x: number;
y: number;
z: number;
}
export declare type Vector = Vector3 | Vec3;
export declare class Vector3 implements Vec3 {
x: number;
y: number;
z: number;
static readonly Zero: Vector3;
static create(v1: Vec3 | number): Vector3;
/**
* Creates a vector from an array of numbers
* @param primitive An array of numbers (usually returned by a native)
* @example ```ts
* const entityPos = Vector3.fromArray(GetEntityCoords(entity))
* ```
*/
static fromArray(primitive: [number, number, number] | number[]): Vector3;
/**
* Creates an array of vectors from an array number arrays
* @param primitives A multi-dimensional array of number arrays
* @example ```ts
* const [forward, right, up, position] = Vector3.fromArrays(GetEntityMatrix(entity))
* ```
*/
static fromArrays(primitives: [number, number, number][] | number[][]): Vector3[];
static clone(v1: Vec3): Vector3;
static add(v1: Vector, v2: Vector | number): Vector3;
static addX(vec: Vector, x: number): Vector3;
static addY(vec: Vector, y: number): Vector3;
static addZ(vec: Vector, z: number): Vector3;
static subtract(v1: Vector, v2: Vector | number): Vector3;
static multiply(v1: Vector, v2: Vector | number): Vector3;
static divide(v1: Vector, v2: Vector | number): Vector3;
static dotProduct(v1: Vector, v2: Vector): number;
static crossProduct(v1: Vector, v2: Vector): Vector3;
static normalize(v: Vector3): Vector3;
constructor(x: number, y: number, z: number);
clone(): Vector3;
/**
* The product of the Euclidean magnitudes of this and another Vector3.
*
* @param v Vector3 to find Euclidean magnitude between.
* @returns Euclidean magnitude with another vector.
*/
distanceSquared(v: Vector): number;
/**
* The distance between two Vectors.
*
* @param v Vector3 to find distance between.
* @returns Distance between this and another vector.
*/
distance(v: Vector): number;
get normalize(): Vector3;
crossProduct(v: Vector): Vector3;
dotProduct(v: Vector): number;
add(v: Vector | number): Vector3;
addX(x: number): Vector3;
addY(y: number): Vector3;
addZ(z: number): Vector3;
subtract(v: Vector): Vector3;
multiply(v: Vector | number): Vector3;
divide(v: Vector | number): Vector3;
toArray(): [number, number, number];
replace(v: Vector): void;
get Length(): number;
}