Vec3

Source: Vec3.ts:15

Class represents a 3d vector.


Constructor

new Vec3(x?: number, y?: number, z?: number): Vec3

Parameters

  • x (number, optional) — First value.
  • y (number, optional) — Second value.
  • z (number, optional) — Third value.

Instance Methods

toVec4(): Vec4

Converts to 4d vector, Fourth value is 1.0.

Returns

clone(): Vec3

Returns clone vector.

Returns

toString(): string

Converts vector to text string.

Returns

  • string

isZero(): boolean

Returns true if vector's values are zero.

Returns

  • boolean

projToVec(a: Vec3): Vec3

Get projection of the first vector to the second.

Parameters

  • a (Vec3) — Project vector.

Returns

equal(p: Vec3): boolean

Compares with vector. Returns true if it equals another.

Parameters

  • p (Vec3) — Vector to compare.

Returns

  • boolean

copy(p: Vec3): Vec3

Copy input vector's values.

Parameters

  • p (Vec3) — Vector to copy.

Returns

length(): number

Gets vector's length.

Returns

  • number

length2(): number

Returns squared vector's length.

Returns

  • number

getQuat(): Quat

Converts vector's values to a quaternion object.

Returns

addA(p: Vec3): Vec3

Adds vector to the current.

Parameters

  • p (Vec3) — Point to add.

Returns

add(p: Vec3): Vec3

Gets two vectors summarization.

Parameters

  • p (Vec3) — Vector to add.

Returns

  • Vec3 — Returns a sum vector.

addRes(p: Vec3, res: Vec3): Vec3

Computes the componentwise sum of two vectors.

Parameters

  • p (Vec3) — Vector to add.
  • res (Vec3) — Output vector.

Returns

  • Vec3 — Sum vector.

subA(p: Vec3): Vec3

Subtract vector from the current.

Parameters

  • p (Vec3) — Subtract vector.

Returns

sub(p: Vec3): Vec3

Gets vector subtraction.

Parameters

  • p (Vec3) — Subtract vector.

Returns

  • Vec3 — Returns a new subtraction vector.

scale(scale: number): Vec3

Scale current vector.

Parameters

  • scale (number) — Scale value.

Returns

scaleTo(scale: number): Vec3

Scale current vector to another instance.

Parameters

  • scale (number) — Scale value.

Returns

mulA(vec: Vec3): Vec3

Multiply current vector object to another and store result in the current instance.

Parameters

  • vec (Vec3) — Multiply vector.

Returns

mul(vec: Vec3): Vec3

Multiply current vector object to another and returns new vector instance.

Parameters

  • vec (Vec3) — Multiply vector.

Returns

mulRes(vec: Vec3, res: Vec3): Vec3

Computes the componentwise product of two vectors.

Parameters

  • vec (Vec3) — Vector multiplier.
  • res (Vec3) — Output vector.

Returns

  • Vec3 — Product vector.

divA(vec: Vec3): Vec3

Divides current vector components by another vector in place.

Parameters

  • vec (Vec3) — Divisor vector.

Returns

div(vec: Vec3): Vec3

Divide current vector's components to another and returns new vector instance.

Parameters

  • vec (Vec3) — Divisor vector.

Returns

dot(a: Vec3): number

Returns the dot product of two vectors.

Parameters

  • a (Vec3) — Another vector.

Returns

  • number

dotArr(arr: Array.<number>): number

Returns the dot product with an array.

Parameters

  • arr (Array.<number>) — Array vector. (exactly 3 entries)

Returns

  • number

cross(point3: Vec3): Vec3

Gets vectors cross production.

Parameters

  • point3 (Vec3) — Another vector.

Returns

clear(): Vec3

Sets vector to zero.

Returns

getNormal(): Vec3

Returns normalized vector.

Returns

normal(): Vec3

deprecated
Vec3.ts:657

Returns normalized vector.

This method is deprecated and should not be used.

Returns

normalNegate(): Vec3

Returns the normalized negated vector.

Returns

normalNegateScale(): Vec3

Returns the normalized negated vector multiplied by scale.

Returns

normalScale(): Vec3

Returns normalized scale vector.

Returns

normalize(): Vec3

Normalize current vector.

Returns

toVec(): Array.<number>

deprecated
Vec3.ts:743

Converts vector to a number array.

This method is deprecated and should not be used.

Returns

  • Array.<number>

toArray(): Array.<number>

Converts vector to a number array.

Returns

  • Array.<number>

distance(p: Vec3): number

Gets distance to point.

Parameters

  • p (Vec3) — Target point.

Returns

  • number

distance2(p: Vec3): number

Gets square distance to point.

Parameters

  • p (Vec3) — Target point.

Returns

  • number

set(x: number, y: number, z: number): Vec3

Sets vector's values.

Parameters

  • x (number) — Value X.
  • y (number) — Value Y.
  • z (number) — Value Z.

Returns

negate(): Vec3

Negate current vector.

Returns

negateTo(): Vec3

Negate current vector to another instance.

Returns

projToRay(pos: Vec3, direction: Vec3): Vec3

Gets projected point coordinates of the current vector on the ray.

Parameters

  • pos (Vec3) — Ray position.
  • direction (Vec3) — Ray direction.

Returns

angle(a: Vec3): number

Gets angle between two vectors.

Parameters

  • a (Vec3) — Another vector.

Returns

  • number

lerp(v2: Vec3, l: number): Vec3

Returns two vectors linear interpolation.

Parameters

  • v2 (Vec3) — End vector.
  • l (number) — Interpolation value.

Returns

smerp(v2: Vec3, t: number): Vec3

Returns vector interpolation by v(t) = v1 * t + v2 * (1 - t)

Parameters

  • v2 (Vec3) — End vector.
  • t (number) — Interpolation value.

Returns

slerp(v2: Vec3, t: number): Vec3

Spherically interpolates between two vectors. Interpolates between current and v2 vector by amount t. The difference between this and linear interpolation (aka, "lerp") is that the vectors are treated as directions rather than points in space. The direction of the returned vector is interpolated by the angle and its magnitude is interpolated between the magnitudes of from and to.

Parameters

  • v2 (Vec3)
  • t (number) — The parameter t is clamped to the range [0, 1].

Returns

getRotationTo(dest: Vec3, fallbackAxis: Vec3): Quat

Returns the shortest-arc quaternion rotating this vector to dest.

Parameters

  • dest (Vec3) — Destination vector.
  • fallbackAxis (Vec3) — Axis used when vectors are opposite.

Returns

Static Methods

doubleToTwoFloats(v: Vec3, high: Vec3, low: Vec3)

Splits a 64-bit Vec3 value into two Vec3 values with 32-bit float components.

Parameters

  • v (Vec3) — Double type value.
  • high (Vec3) — Out vector high values.
  • low (Vec3) — Out vector low values.

doubleToTwoFloat32Array( v: Vec3, high: Float32Array, low: Float32Array, ): Array.<number>

Splits a 64-bit Vec3 value into two float arrays with 32-bit components.

Parameters

  • v (Vec3) — Double type value.
  • high (Float32Array) — Out vector high values.
  • low (Float32Array) — Out vector low values.

Returns

  • Array.<number> — Encoded array. (exactly 2 entries)

fromVec(arr: NumberArray2 | NumberArray3 | NumberArray4): Vec3

Creates 3d vector from array.

Parameters

  • arr (NumberArray2 | NumberArray3 | NumberArray4) — Input array (exactly 3 entries)

Returns

angle(a: Vec3, b: Vec3): number

Gets angle between two vectors.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

  • number

lerp(v1: Vec3, v2: Vec3, l: number): Vec3

Returns two vectors linear interpolation.

Parameters

  • v1 (Vec3) — Start vector.
  • v2 (Vec3) — End vector.
  • l (number) — Interpolate value.

Returns

add(a: Vec3, b: Vec3): Vec3

Returns the sum of two vectors.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

sub(a: Vec3, b: Vec3): Vec3

Returns the difference between two vectors.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

scale(a: Vec3, scale: number): Vec3

Returns scaled vector.

Parameters

  • a (Vec3) — Input vector.
  • scale (number) — Scale value.

Returns

mul(a: Vec3, b: Vec3): Vec3

Returns two vectors production.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

noncollinear(a: Vec3, b: Vec3): Vec3

Returns true if two vectors are non-collinear.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

proj_b_to_plane(b: Vec3, n: Vec3, def?: Vec3): Vec3

Projects a vector onto a plane with normal n.

Parameters

  • b (Vec3) — Vector to project.
  • n (Vec3) — Plane normal.
  • def (Vec3, optional) — Default value if the result is zero.

Returns

proj_b_to_a(b: Vec3, a: Vec3): Vec3

Get projection of the first vector to the second.

Parameters

  • b (Vec3) — First vector.
  • a (Vec3) — Second vector.

Returns

orthoNormalize(normal: Vec3, tangent: Vec3): Vec3

Makes vectors normalized and orthogonal to each other. Normalizes normal. Normalizes tangent and makes sure it is orthogonal to normal (that is, angle between them is 90 degrees).

Parameters

  • normal (Vec3) — Normal vector.
  • tangent (Vec3) — Tangent vector.

Returns

div(a: Vec3, b: Vec3): Vec3

Returns vector components division product one to another.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

Other

UP

DOWN

LEFT

FORWARD

BACKWARD

ZERO

UNIT_X

UNIT_Y

UNIT_Z

NORTH