# gl-vec2-esm

1.0.0 • Public • Published

# gl-vec2-esm

gl-vec2 ported to ES modules, so that you can do this sort of thing...

...and take advantage of tree-shaking via Rollup and Webpack 2, rather than having to have a separate `require` statement for each module.

# gl-vec2

Part of a fork of @toji's gl-matrix split into smaller pieces: this package contains `glMatrix.vec2`.

## Usage

### `vec2 = require('gl-vec2')`

Will load all of the module's functionality and expose it on a single object. Note that any of the methods may also be required directly from their files.

For example, the following are equivalent:

## clone(a:vec2)

Creates a new vec2 initialized with values from an existing vector

## copy(out:vec2, a:vec2)

Copy the values from one vec2 to another

## create()

Creates a new, empty vec2

## cross(out:vec3, a:vec2, b:vec2)

Computes the cross product of two vec2's Note that the cross product must by definition produce a 3D vector

## distance(a:vec2, b:vec2)

Calculates the euclidian distance between two vec2's

## divide(out:vec2, a:vec2, b:vec2)

Divides two vec2's

## dot(a:vec2, b:vec2)

Calculates the dot product of two vec2's

## forEach(a:Array, stride:Number, offset:Number, count:Number, fn:Function, [arg]:Object)

Perform some operation over an array of vec2s.

## fromValues(x:Number, y:Number)

Creates a new vec2 initialized with the given values

## length(a:vec2)

Calculates the length of a vec2

## lerp(out:vec2, a:vec2, b:vec2, t:Number)

Performs a linear interpolation between two vec2's

## max(out:vec2, a:vec2, b:vec2)

Returns the maximum of two vec2's

## min(out:vec2, a:vec2, b:vec2)

Returns the minimum of two vec2's

## multiply(out:vec2, a:vec2, b:vec2)

Multiplies two vec2's

## negate(out:vec2, a:vec2)

Negates the components of a vec2

Normalize a vec2

## random(out:vec2, [scale]:Number)

Generates a random vector with the given scale

## scale(out:vec2, a:vec2, b:Number)

Scales a vec2 by a scalar number

## scaleAndAdd(out:vec2, a:vec2, b:vec2, scale:Number)

Adds two vec2's after scaling the second operand by a scalar value

## set(out:vec2, x:Number, y:Number)

Set the components of a vec2 to the given values

## squaredDistance(a:vec2, b:vec2)

Calculates the squared euclidian distance between two vec2's

## squaredLength(a:vec2)

Calculates the squared length of a vec2

## subtract(out:vec2, a:vec2, b:vec2)

Subtracts vector b from vector a

## transformMat2(out:vec2, a:vec2, m:mat2)

Transforms the vec2 with a mat2

## transformMat2d(out:vec2, a:vec2, m:mat2d)

Transforms the vec2 with a mat2d

## transformMat3(out:vec2, a:vec2, m:mat3)

Transforms the vec2 with a mat3 3rd vector component is implicitly '1'

## transformMat4(out:vec2, a:vec2, m:mat4)

Transforms the vec2 with a mat4 3rd vector component is implicitly '0' 4th vector component is implicitly '1'

zlib. See LICENSE.md for details.

## Package Sidebar

### Install

`npm i gl-vec2-esm`

### Repository

github.com/stackgl/gl-vec2

### Homepage

github.com/stackgl/gl-vec2

1

1.0.0