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 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 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 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
    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