gl-vec3
Part of a fork of @toji's
gl-matrix split into smaller pieces: this
package contains glMatrix.vec3
.
Usage
vec3 = require('gl-vec3')
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:
var scale = scalevar scale =
API
- add()
- angle()
- clone()
- ceil()
- copy()
- create()
- cross()
- distance()
- dist()
- divide()
- div()
- dot()
- equals()
- exactEquals()
- floor()
- forEach()
- fromValues()
- inverse()
- length()
- len()
- lerp()
- max()
- min()
- multiply()
- mul()
- negate()
- normalize()
- random()
- rotateX()
- rotateY()
- rotateZ()
- round()
- scale()
- scaleAndAdd()
- set()
- squaredDistance()
- sqrDist()
- squaredLength()
- sqrLen()
- subtract()
- sub()
- transformMat3()
- transformMat4()
- transformQuat()
add(out:vec3, a:vec3, b:vec3)
Adds two vec3's
angle(a:vec3, b:vec3)
Get the angle between two 3D vectors
ceil(out:vec3, a:vec3)
Math.ceil
the components of a vec3
clone(a:vec3)
Creates a new vec3 initialized with values from an existing vector
copy(out:vec3, a:vec3)
Copy the values from one vec3 to another
create()
Creates a new, empty vec3
cross(out:vec3, a:vec3, b:vec3)
Computes the cross product of two vec3's
distance(a:vec3, b:vec3)
Calculates the euclidian distance between two vec3's. Aliased as dist
divide(out:vec3, a:vec3, b:vec3)
Divides two vec3's. Aliased as div
dot(a:vec3, b:vec3)
Calculates the dot product of two vec3's
equals(a:vec3, b:vec3)
Returns whether or not the vectors have approximately the same elements in the same position.
exactEquals(a:vec3, b:vec3)
Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)
floor(out:vec3, a:vec3)
Math.floor
the components of a vec3
forEach(a:Array, stride:Number, offset:Number, count:Number, fn:Function, [arg]:Object)
Perform some operation over an array of vec3s.
fromValues(x:Number, y:Number, z:Number)
Creates a new vec3 initialized with the given values
inverse(out:vec3, a:vec3)
Returns the inverse of the components of a vec3
length(a:vec3)
Calculates the length of a vec3. Aliased as len
lerp(out:vec3, a:vec3, b:vec3, t:Number)
Performs a linear interpolation between two vec3's
max(out:vec3, a:vec3, b:vec3)
Returns the maximum of two vec3's
min(out:vec3, a:vec3, b:vec3)
Returns the minimum of two vec3's
multiply(out:vec3, a:vec3, b:vec3)
Multiplies two vec3's. Aliased as mul
negate(out:vec3, a:vec3)
Negates the components of a vec3
normalize(out:vec3, a:vec3)
Normalize a vec3
random(out:vec3, [scale]:Number)
Generates a random vector with the given scale
rotateX(out:vec3, a:vec3, b:vec3, c:Number)
Rotate a 3D vector around the x-axis
rotateY(out:vec3, a:vec3, b:vec3, c:Number)
Rotate a 3D vector around the y-axis
rotateZ(out:vec3, a:vec3, b:vec3, c:Number)
Rotate a 3D vector around the z-axis
round(out:vec3, a:vec3)
Math.round
the components of a vec3
scale(out:vec3, a:vec3, b:Number)
Scales a vec3 by a scalar number
scaleAndAdd(out:vec3, a:vec3, b:vec3, scale:Number)
Adds two vec3's after scaling the second operand by a scalar value
set(out:vec3, x:Number, y:Number, z:Number)
Set the components of a vec3 to the given values
squaredDistance(a:vec3, b:vec3)
Calculates the squared euclidian distance between two vec3's. Aliased as sqrDist
squaredLength(a:vec3)
Calculates the squared length of a vec3. Aliased as sqrLen
subtract(out:vec3, a:vec3, b:vec3)
Subtracts vector b from vector a. Aliased as sub
transformMat3(out:vec3, a:vec3, m:mat3)
Transforms the vec3 with a mat3.
transformMat4(out:vec3, a:vec3, m:mat4)
Transforms the vec3 with a mat4. 4th vector component is implicitly '1'
transformQuat(out:vec3, a:vec3, q:quat)
Transforms the vec3 with a quat
License
zlib. See LICENSE.md for details.