Methods
(static) add(out, a, b) → {vec2}
    Adds two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec2
(static) angle(a, b) → {Number}
    Get the angle between two 2D vectors
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | The first operand | 
| b | vec2 | The second operand | 
Returns:
    The angle in radians
- Type
- Number
(static) ceil(out, a) → {vec2}
    Math.ceil the components of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | vector to ceil | 
Returns:
    out
- Type
- vec2
(static) clone(a) → {vec2}
    Creates a new vec2 initialized with values from an existing vector
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | vector to clone | 
Returns:
    a new 2D vector
- Type
- vec2
(static) copy(out, a) → {vec2}
    Copy the values from one vec2 to another
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the source vector | 
Returns:
    out
- Type
- vec2
(static) create() → {vec2}
    Creates a new, empty vec2
Returns:
    a new 2D vector
- Type
- vec2
(static) cross(out, a, b) → {vec3}
    Computes the cross product of two vec2's
Note that the cross product must by definition produce a 3D vector
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec3 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec3
(static) dist()
    Alias for vec2.distance
        
            
    
    
    (static) distance(a, b) → {Number}
    Calculates the euclidian distance between two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    distance between a and b
- Type
- Number
(static) div()
    Alias for vec2.divide
        
            
    
    
    (static) divide(out, a, b) → {vec2}
    Divides two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec2
(static) dot(a, b) → {Number}
    Calculates the dot product of two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | the first operand | 
| b | vec2 | 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 | vec2 | The first vector. | 
| b | vec2 | 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 exactly have the same elements in the same position (when compared with ===)
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | The first vector. | 
| b | vec2 | The second vector. | 
Returns:
    True if the vectors are equal, false otherwise.
- Type
- Boolean
(static) floor(out, a) → {vec2}
    Math.floor the components of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | vector to floor | 
Returns:
    out
- Type
- vec2
(static) forEach(a, stride, offset, count, fn, argopt) → {Array}
    Perform some operation over an array of vec2s.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
| a | Array | the array of vectors to iterate over | |
| stride | Number | Number of elements between the start of each vec2. If 0 assumes tightly packed | |
| offset | Number | Number of elements to skip at the beginning of the array | |
| count | Number | Number of vec2s 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) → {vec2}
    Creates a new vec2 initialized with the given values
    Parameters:
| Name | Type | Description | 
|---|---|---|
| x | Number | X component | 
| y | Number | Y component | 
Returns:
    a new 2D vector
- Type
- vec2
(static) inverse(out, a) → {vec2}
    Returns the inverse of the components of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | vector to invert | 
Returns:
    out
- Type
- vec2
(static) len()
    Alias for vec2.length
        
            
    
    
    (static) length(a) → {Number}
    Calculates the length of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | vector to calculate length of | 
Returns:
    length of a
- Type
- Number
(static) lerp(out, a, b, t) → {vec2}
    Performs a linear interpolation between two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
| t | Number | interpolation amount, in the range [0-1], between the two inputs | 
Returns:
    out
- Type
- vec2
(static) max(out, a, b) → {vec2}
    Returns the maximum of two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec2
(static) min(out, a, b) → {vec2}
    Returns the minimum of two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec2
(static) mul()
    Alias for vec2.multiply
        
            
    
    
    (static) multiply(out, a, b) → {vec2}
    Multiplies two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec2
(static) negate(out, a) → {vec2}
    Negates the components of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | vector to negate | 
Returns:
    out
- Type
- vec2
(static) normalize(out, a) → {vec2}
    Normalize a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | vector to normalize | 
Returns:
    out
- Type
- vec2
(static) random(out, scaleopt) → {vec2}
    Generates a random vector with the given scale
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
| out | vec2 | the receiving vector | |
| scale | Number | <optional> | Length of the resulting vector. If ommitted, a unit vector will be returned | 
Returns:
    out
- Type
- vec2
(static) rotate(out, a, b, c) → {vec2}
    Rotate a 2D vector
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | The receiving vec2 | 
| a | vec2 | The vec2 point to rotate | 
| b | vec2 | The origin of the rotation | 
| c | Number | The angle of rotation | 
Returns:
    out
- Type
- vec2
(static) round(out, a) → {vec2}
    Math.round the components of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | vector to round | 
Returns:
    out
- Type
- vec2
(static) scale(out, a, b) → {vec2}
    Scales a vec2 by a scalar number
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the vector to scale | 
| b | Number | amount to scale the vector by | 
Returns:
    out
- Type
- vec2
(static) scaleAndAdd(out, a, b, scale) → {vec2}
    Adds two vec2's after scaling the second operand by a scalar value
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
| scale | Number | the amount to scale b by before adding | 
Returns:
    out
- Type
- vec2
(static) set(out, x, y) → {vec2}
    Set the components of a vec2 to the given values
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| x | Number | X component | 
| y | Number | Y component | 
Returns:
    out
- Type
- vec2
(static) sqrDist()
    Alias for vec2.squaredDistance
        
            
    
    
    (static) sqrLen()
    Alias for vec2.squaredLength
        
            
    
    
    (static) squaredDistance(a, b) → {Number}
    Calculates the squared euclidian distance between two vec2's
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    squared distance between a and b
- Type
- Number
(static) squaredLength(a) → {Number}
    Calculates the squared length of a vec2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| a | vec2 | 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 | vec2 | vector to represent as a string | 
Returns:
    string representation of the vector
- Type
- String
(static) sub()
    Alias for vec2.subtract
        
            
    
    
    (static) subtract(out, a, b) → {vec2}
    Subtracts vector b from vector a
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the first operand | 
| b | vec2 | the second operand | 
Returns:
    out
- Type
- vec2
(static) transformMat2(out, a, m) → {vec2}
    Transforms the vec2 with a mat2
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the vector to transform | 
| m | mat2 | matrix to transform with | 
Returns:
    out
- Type
- vec2
(static) transformMat2d(out, a, m) → {vec2}
    Transforms the vec2 with a mat2d
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the vector to transform | 
| m | mat2d | matrix to transform with | 
Returns:
    out
- Type
- vec2
(static) transformMat3(out, a, m) → {vec2}
    Transforms the vec2 with a mat3
3rd vector component is implicitly '1'
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the vector to transform | 
| m | mat3 | matrix to transform with | 
Returns:
    out
- Type
- vec2
(static) transformMat4(out, a, m) → {vec2}
    Transforms the vec2 with a mat4
3rd vector component is implicitly '0'
4th vector component is implicitly '1'
    Parameters:
| Name | Type | Description | 
|---|---|---|
| out | vec2 | the receiving vector | 
| a | vec2 | the vector to transform | 
| m | mat4 | matrix to transform with | 
Returns:
    out
- Type
- vec2