Vec3
Source: Vec3.ts:15
Class represents a 3d vector.
Constructor
new Vec3(x?: number, y?: number, z?: number): Vec3Parameters
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
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
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
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>
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
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
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
Returns
number
lerp(v1: Vec3, v2: Vec3, l: number): Vec3
Returns two vectors linear interpolation.
Parameters
Returns
add(a: Vec3, b: Vec3): Vec3
Returns the sum of two vectors.
Parameters
Returns
sub(a: Vec3, b: Vec3): Vec3
Returns the difference between two vectors.
Parameters
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
Returns
noncollinear(a: Vec3, b: Vec3): Vec3
Returns true if two vectors are non-collinear.
Parameters
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
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
Returns
div(a: Vec3, b: Vec3): Vec3
Returns vector components division product one to another.
Parameters
Returns