Creates a new Vec4 object.
Optional
x: number | number[] = 0The x value. Defaults to 0. If x is an array of length 4, the array will be used to populate all components.
Optional
y: number = 0The y value. Defaults to 0.
Optional
z: number = 0The z value. Defaults to 0.
Optional
w: number = 0The w value. Defaults to 0.
const v = new pc.Vec4(1, 2, 3, 4);
The fourth component of the vector.
The first component of the vector.
The second component of the vector.
The third component of the vector.
Static
Readonly
ONEA constant vector set to [1, 1, 1, 1].
Static
Readonly
ZEROA constant vector set to [0, 0, 0, 0].
Adds a 4-dimensional vector to another in place.
The vector to add to the specified vector.
Self for chaining.
const a = new pc.Vec4(10, 10, 10, 10);
const b = new pc.Vec4(20, 20, 20, 20);
a.add(b);
// Outputs [30, 30, 30]
console.log("The result of the addition is: " + a.toString());
Adds two 4-dimensional vectors together and returns the result.
Self for chaining.
const a = new pc.Vec4(10, 10, 10, 10);
const b = new pc.Vec4(20, 20, 20, 20);
const r = new pc.Vec4();
r.add2(a, b);
// Outputs [30, 30, 30]
console.log("The result of the addition is: " + r.toString());
Adds a 4-dimensional vector scaled by scalar value. Does not modify the vector being added.
The vector to add to the specified vector.
The number to multiply the added vector with.
Self for chaining.
const vec = new pc.Vec4(1, 2, 3, 4);
vec.addScaled(pc.Vec4.ONE, 2);
// Outputs [3, 4, 5, 6]
console.log("The result of the addition is: " + vec.toString());
Copies the contents of a source 4-dimensional vector to a destination 4-dimensional vector.
A vector to copy to the specified vector.
Self for chaining.
const src = new pc.Vec4(10, 20, 30, 40);
const dst = new pc.Vec4();
dst.copy(src);
console.log("The two vectors are " + (dst.equals(src) ? "equal" : "different"));
Divides a 4-dimensional vector by another in place.
The vector to divide the specified vector by.
Self for chaining.
const a = new pc.Vec4(4, 9, 16, 25);
const b = new pc.Vec4(2, 3, 4, 5);
a.div(b);
// Outputs [2, 3, 4, 5]
console.log("The result of the division is: " + a.toString());
Divides one 4-dimensional vector by another and writes the result to the specified vector.
Self for chaining.
const a = new pc.Vec4(4, 9, 16, 25);
const b = new pc.Vec4(2, 3, 4, 5);
const r = new pc.Vec4();
r.div2(a, b);
// Outputs [2, 3, 4, 5]
console.log("The result of the division is: " + r.toString());
Returns the result of a dot product operation performed on the two specified 4-dimensional vectors.
The second 4-dimensional vector operand of the dot product.
The result of the dot product operation.
const v1 = new pc.Vec4(5, 10, 20, 40);
const v2 = new pc.Vec4(10, 20, 40, 80);
const v1dotv2 = v1.dot(v2);
console.log("The result of the dot product is: " + v1dotv2);
Reports whether two vectors are equal.
The vector to compare to the specified vector.
True if the vectors are equal and false otherwise.
const a = new pc.Vec4(1, 2, 3, 4);
const b = new pc.Vec4(5, 6, 7, 8);
console.log("The two vectors are " + (a.equals(b) ? "equal" : "different"));
Reports whether two vectors are equal using an absolute error tolerance.
The vector to be compared against.
Optional
epsilon: number = 1e-6The maximum difference between each component of the two vectors. Defaults to 1e-6.
True if the vectors are equal and false otherwise.
const a = new pc.Vec4();
const b = new pc.Vec4();
console.log("The two vectors are approximately " + (a.equalsApprox(b, 1e-9) ? "equal" : "different"));
Returns the result of a linear interpolation between two specified 4-dimensional vectors.
The 4-dimensional to interpolate from.
The 4-dimensional to interpolate to.
The value controlling the point of interpolation. Between 0 and 1, the linear interpolant will occur on a straight line between lhs and rhs. Outside of this range, the linear interpolant will occur on a ray extrapolated from this line.
Self for chaining.
const a = new pc.Vec4(0, 0, 0, 0);
const b = new pc.Vec4(10, 10, 10, 10);
const r = new pc.Vec4();
r.lerp(a, b, 0); // r is equal to a
r.lerp(a, b, 0.5); // r is 5, 5, 5, 5
r.lerp(a, b, 1); // r is equal to b
Multiplies a 4-dimensional vector to another in place.
The 4-dimensional vector used as the second multiplicand of the operation.
Self for chaining.
const a = new pc.Vec4(2, 3, 4, 5);
const b = new pc.Vec4(4, 5, 6, 7);
a.mul(b);
// Outputs 8, 15, 24, 35
console.log("The result of the multiplication is: " + a.toString());
Returns the result of multiplying the specified 4-dimensional vectors together.
Self for chaining.
const a = new pc.Vec4(2, 3, 4, 5);
const b = new pc.Vec4(4, 5, 6, 7);
const r = new pc.Vec4();
r.mul2(a, b);
// Outputs 8, 15, 24, 35
console.log("The result of the multiplication is: " + r.toString());
Multiplies each element of a vector by a number.
The number to multiply by.
Self for chaining.
const vec = new pc.Vec4(3, 6, 9, 12);
vec.mulScalar(3);
// Outputs [9, 18, 27, 36]
console.log("The result of the multiplication is: " + vec.toString());
Returns this 4-dimensional vector converted to a unit vector in place. If the vector has a length of zero, the vector's elements will be set to zero.
Optional
src: Vec4 = ...The vector to normalize. If not set, the operation is done in place.
Self for chaining.
const v = new pc.Vec4(25, 0, 0, 0);
v.normalize();
// Outputs 1, 0, 0, 0
console.log("The result of the vector normalization is: " + v.toString());
Sets the specified 4-dimensional vector to the supplied numerical values.
The value to set on the first component of the vector.
The value to set on the second component of the vector.
The value to set on the third component of the vector.
The value to set on the fourth component of the vector.
Self for chaining.
const v = new pc.Vec4();
v.set(5, 10, 20, 40);
// Outputs 5, 10, 20, 40
console.log("The result of the vector set is: " + v.toString());
Subtracts a 4-dimensional vector from another in place.
The vector to add to the specified vector.
Self for chaining.
const a = new pc.Vec4(10, 10, 10, 10);
const b = new pc.Vec4(20, 20, 20, 20);
a.sub(b);
// Outputs [-10, -10, -10, -10]
console.log("The result of the subtraction is: " + a.toString());
Subtracts two 4-dimensional vectors from one another and returns the result.
Self for chaining.
const a = new pc.Vec4(10, 10, 10, 10);
const b = new pc.Vec4(20, 20, 20, 20);
const r = new pc.Vec4();
r.sub2(a, b);
// Outputs [-10, -10, -10, -10]
console.log("The result of the subtraction is: " + r.toString());
Subtracts a number from each element of a vector.
The number to subtract.
Self for chaining.
const vec = new pc.Vec4(3, 4, 5, 6);
vec.subScalar(2);
// Outputs [1, 2, 3, 4]
console.log("The result of the subtraction is: " + vec.toString());
A 4-dimensional vector.