Methods
(static) add(out, a, b) → {vec3}
Adds two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) angle(a, b) → {Number}
Get the angle between two 3D vectors
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | The first operand |
b |
vec3 | The second operand |
Returns:
The angle in radians
- Type
- Number
(static) bezier(out, a, b, c, d, t) → {vec3}
Performs a bezier interpolation with two control points
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
c |
vec3 | the third operand |
d |
vec3 | the fourth operand |
t |
Number | interpolation amount, in the range [0-1], between the two inputs |
Returns:
out
- Type
- vec3
(static) ceil(out, a) → {vec3}
Math.ceil the components of a vec3
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | vector to ceil |
Returns:
out
- Type
- vec3
(static) clone(a) → {vec3}
Creates a new vec3 initialized with values from an existing vector
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | vector to clone |
Returns:
a new 3D vector
- Type
- vec3
(static) copy(out, a) → {vec3}
Copy the values from one vec3 to another
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the source vector |
Returns:
out
- Type
- vec3
(static) create() → {vec3}
Creates a new, empty vec3
Returns:
a new 3D vector
- Type
- vec3
(static) cross(out, a, b) → {vec3}
Computes the cross product of two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) dist()
Alias for vec3.distance
(static) distance(a, b) → {Number}
Calculates the euclidian distance between two vec3's
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
distance between a and b
- Type
- Number
(static) div()
Alias for vec3.divide
(static) divide(out, a, b) → {vec3}
Divides two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) dot(a, b) → {Number}
Calculates the dot product of two vec3's
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
dot product of a and b
- Type
- Number
(static) equals(a, b) → {Boolean}
Returns whether or not the vectors have approximately the same elements in the same position.
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | The first vector. |
b |
vec3 | The second vector. |
Returns:
True if the vectors are equal, false otherwise.
- Type
- Boolean
(static) exactEquals(a, b) → {Boolean}
Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | The first vector. |
b |
vec3 | The second vector. |
Returns:
True if the vectors are equal, false otherwise.
- Type
- Boolean
(static) floor(out, a) → {vec3}
Math.floor the components of a vec3
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | vector to floor |
Returns:
out
- Type
- vec3
(static) forEach(a, stride, offset, count, fn, argopt) → {Array}
Perform some operation over an array of vec3s.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
a |
Array | the array of vectors to iterate over | |
stride |
Number | Number of elements between the start of each vec3. If 0 assumes tightly packed | |
offset |
Number | Number of elements to skip at the beginning of the array | |
count |
Number | Number of vec3s to iterate over. If 0 iterates over entire array | |
fn |
function | Function to call for each vector in the array | |
arg |
Object |
<optional> |
additional argument to pass to fn |
Returns:
a
- Type
- Array
(static) fromValues(x, y, z) → {vec3}
Creates a new vec3 initialized with the given values
Parameters:
Name | Type | Description |
---|---|---|
x |
Number | X component |
y |
Number | Y component |
z |
Number | Z component |
Returns:
a new 3D vector
- Type
- vec3
(static) hermite(out, a, b, c, d, t) → {vec3}
Performs a hermite interpolation with two control points
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
c |
vec3 | the third operand |
d |
vec3 | the fourth operand |
t |
Number | interpolation amount, in the range [0-1], between the two inputs |
Returns:
out
- Type
- vec3
(static) inverse(out, a) → {vec3}
Returns the inverse of the components of a vec3
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | vector to invert |
Returns:
out
- Type
- vec3
(static) len()
Alias for vec3.length
(static) length(a) → {Number}
Calculates the length of a vec3
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | vector to calculate length of |
Returns:
length of a
- Type
- Number
(static) lerp(out, a, b, t) → {vec3}
Performs a linear interpolation between two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
t |
Number | interpolation amount, in the range [0-1], between the two inputs |
Returns:
out
- Type
- vec3
(static) max(out, a, b) → {vec3}
Returns the maximum of two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) min(out, a, b) → {vec3}
Returns the minimum of two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) mul()
Alias for vec3.multiply
(static) multiply(out, a, b) → {vec3}
Multiplies two vec3's
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) negate(out, a) → {vec3}
Negates the components of a vec3
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | vector to negate |
Returns:
out
- Type
- vec3
(static) normalize(out, a) → {vec3}
Normalize a vec3
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | vector to normalize |
Returns:
out
- Type
- vec3
(static) random(out, scaleopt) → {vec3}
Generates a random vector with the given scale
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
out |
vec3 | the receiving vector | |
scale |
Number |
<optional> |
Length of the resulting vector. If ommitted, a unit vector will be returned |
Returns:
out
- Type
- vec3
(static) rotateX(out, a, b, c) → {vec3}
Rotate a 3D vector around the x-axis
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | The receiving vec3 |
a |
vec3 | The vec3 point to rotate |
b |
vec3 | The origin of the rotation |
c |
Number | The angle of rotation |
Returns:
out
- Type
- vec3
(static) rotateY(out, a, b, c) → {vec3}
Rotate a 3D vector around the y-axis
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | The receiving vec3 |
a |
vec3 | The vec3 point to rotate |
b |
vec3 | The origin of the rotation |
c |
Number | The angle of rotation |
Returns:
out
- Type
- vec3
(static) rotateZ(out, a, b, c) → {vec3}
Rotate a 3D vector around the z-axis
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | The receiving vec3 |
a |
vec3 | The vec3 point to rotate |
b |
vec3 | The origin of the rotation |
c |
Number | The angle of rotation |
Returns:
out
- Type
- vec3
(static) round(out, a) → {vec3}
Math.round the components of a vec3
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | vector to round |
Returns:
out
- Type
- vec3
(static) scale(out, a, b) → {vec3}
Scales a vec3 by a scalar number
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the vector to scale |
b |
Number | amount to scale the vector by |
Returns:
out
- Type
- vec3
(static) scaleAndAdd(out, a, b, scale) → {vec3}
Adds two vec3's after scaling the second operand by a scalar value
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
scale |
Number | the amount to scale b by before adding |
Returns:
out
- Type
- vec3
(static) set(out, x, y, z) → {vec3}
Set the components of a vec3 to the given values
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
x |
Number | X component |
y |
Number | Y component |
z |
Number | Z component |
Returns:
out
- Type
- vec3
(static) sqrDist()
Alias for vec3.squaredDistance
(static) sqrLen()
Alias for vec3.squaredLength
(static) squaredDistance(a, b) → {Number}
Calculates the squared euclidian distance between two vec3's
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
squared distance between a and b
- Type
- Number
(static) squaredLength(a) → {Number}
Calculates the squared length of a vec3
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | vector to calculate squared length of |
Returns:
squared length of a
- Type
- Number
(static) str(a) → {String}
Returns a string representation of a vector
Parameters:
Name | Type | Description |
---|---|---|
a |
vec3 | vector to represent as a string |
Returns:
string representation of the vector
- Type
- String
(static) sub()
Alias for vec3.subtract
(static) subtract(out, a, b) → {vec3}
Subtracts vector b from vector a
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the first operand |
b |
vec3 | the second operand |
Returns:
out
- Type
- vec3
(static) transformMat3(out, a, m) → {vec3}
Transforms the vec3 with a mat3.
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the vector to transform |
m |
mat3 | the 3x3 matrix to transform with |
Returns:
out
- Type
- vec3
(static) transformMat4(out, a, m) → {vec3}
Transforms the vec3 with a mat4.
4th vector component is implicitly '1'
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the vector to transform |
m |
mat4 | matrix to transform with |
Returns:
out
- Type
- vec3
(static) transformQuat(out, a, q) → {vec3}
Transforms the vec3 with a quat
Can also be used for dual quaternions. (Multiply it with the real part)
Parameters:
Name | Type | Description |
---|---|---|
out |
vec3 | the receiving vector |
a |
vec3 | the vector to transform |
q |
quat | quaternion to transform with |
Returns:
out
- Type
- vec3