Vec2
Source: Vec2.ts:11
Class represents a 3d vector.
Constructor
new Vec2(x?: number, y?: number): Vec2Parameters
x(number, optional) — First value.y(number, optional) — Second value.
Instance Methods
toVector3(): Vec3
Converts to 3d vector, third value is 0.0.
Returns
clone(): Vec2
Returns clone vector.
Returns
equal(p: Vec2): boolean
Compares with vector. Returns true if it equals another.
Parameters
p(Vec2) — Vector to compare.
Returns
boolean
copy(point2: Vec2): Vec2
Copy input vector's values.
Parameters
point2(Vec2) — Vector to copy.
Returns
length(): number
Gets vector's length.
Returns
number
length2(): number
Returns squared vector's length.
Returns
number
addA(v: Vec2): Vec2
Adds vector to the current.
Parameters
v(Vec2) — Vector to add.
Returns
add(v: Vec2): Vec2
Adds two vectors.
Parameters
v(Vec2) — Vector to add.
Returns
subA(v: Vec2): Vec2
Subtracts a vector from the current vector in place.
Parameters
v(Vec2) — Subtract vector.
Returns
sub(v: Vec2): Vec2
Subtract vector from the current.
Parameters
v(Vec2) — Subtract vector.
Returns
scale(scale: number): Vec2
Scale current vector.
Parameters
scale(number) — Scale value.
Returns
scaleTo(scale: number): Vec2
Scale current vector to another instance.
Parameters
scale(number) — Scale value.
Returns
mulA(vec: Vec2): Vec2
Multiplies the current vector by another vector in place.
Parameters
vec(Vec2) — Multiply vector.
Returns
mul(vec: Vec2): Vec2
Multiplies the current vector by another vector and returns a new vector.
Parameters
vec(Vec2) — Multiply vector.
Returns
divA(vec: Vec2): Vec2
Divides current vector components by another vector in place.
Parameters
vec(Vec2) — Divisor vector.
Returns
dot(v: Vec2): number
Returns the dot product of two vectors.
Parameters
v(Vec2) — Another vector.
Returns
number
dotArr(arr: Array.<number>): number
Returns the dot product with a 2-element array.
Parameters
arr(Array.<number>) — Array vector. (exactly 2 entries)
Returns
number
cross(v: Vec2): number
Gets vectors cross production.
Parameters
v(Vec2) — Another vector.
Returns
number
clear(): Vec2
Sets vector to zero.
Returns
normal(): Vec2
Returns normalized vector.
This method is deprecated and should not be used.
Returns
getNormal(): Vec2
Returns normalized vector.
Returns
normalize(): Vec2
Normalize current vector.
Returns
toVec(): Array.<number>
Converts vector to a number array.
Returns
Array.<number>
distance(p: Vec2): number
Gets distance to point.
Parameters
p(Vec2) — Target point.
Returns
number
set(x: number, y: number): Vec2
Sets vector's values.
Parameters
x(number) — Value X.y(number) — Value Y.
Returns
negate(): Vec2
Negate current vector.
Returns
negateTo(): Vec2
Negate current vector to another instance.
Returns
projToRay(pos: Vec2, direction: Vec2): Vec2
Gets projected point coordinates of the current vector on the ray.
Parameters
Returns
angle(a: Vec2): number
Gets angle between two vectors.
Parameters
a(Vec2) — Another vector.
Returns
number
lerp(v1: Vec2, v2: Vec2, l: number): Vec2
Returns linear interpolation between two vectors.
Parameters
v1(Vec2) — Start vector.v2(Vec2) — End vector.l(number) — Interpolation factor in range [0, 1].
Returns
Vec2— Interpolated vector.
slerp(v2: Vec2, t: number): Vec2
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(Vec2)t(number) — The parameter t is clamped to the range [0, 1].
Returns
isZero(): boolean
Returns true if vector's values are zero.
Returns
boolean
Static Methods
fromVec(arr: NumberArray2): Vec2
Creates 2d vector from array.
Parameters
arr(NumberArray2) — Input array. (exactly 2 entries)
Returns
add(a: Vec2, b: Vec2): Vec2
Returns summary vector.
Parameters
Returns
sub(a: Vec2, b: Vec2): Vec2
Returns two vectors subtraction.
Parameters
Returns
scale(a: Vec2, scale: number): Vec2
Returns scaled vector.
Parameters
a(Vec2) — Input vector.scale(number) — Scale value.
Returns
mul(a: Vec2, b: Vec2): Vec2
Returns two vectors production.
Parameters
Returns
div(a: Vec2, b: Vec2): Vec2
Returns vector components division product one to another.
Parameters
Returns
proj_b_to_a(b: Vec2, a: Vec2): Vec2
Get projection of the first vector to the second.
Parameters
Returns
angle(a: Vec2, b: Vec2): number
Gets angle between two vectors.
Parameters
Returns
number
orthoNormalize(normal: Vec2, tangent: Vec2): Vec2
Makes vectors normalized and orthogonal to each other.
Parameters
Returns
proj_b_to_plane(b: Vec2, n: Vec2, def?: Vec3): Vec2
Projects a vector onto a plane with normal n.
Parameters
b(Vec2) — Vector to project.n(Vec2) — Plane normal.def(Vec3, optional) — Default value if the result is zero.
Returns