Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 40 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,32 +28,44 @@ var scale = require('gl-vec3/scale')
- [add()](#addoutvec3avec3bvec3)
- [angle()](#angleavec3bvec3)
- [clone()](#cloneavec3)
- [ceil()](#ceiloutvec3-avec3)
- [copy()](#copyoutvec3avec3)
- [create()](#create)
- [cross()](#crossoutvec3avec3bvec3)
- [distance()](#distanceavec3bvec3)
- [dist()](#distanceavec3bvec3)
- [divide()](#divideoutvec3avec3bvec3)
- [div()](#divideoutvec3avec3bvec3)
- [dot()](#dotavec3bvec3)
- [equals()](#equalsavec3-bvec3)
- [exactEquals()](#exactequalsavec3-bvec3)
- [floor()](#flooroutvec3-avec3)
- [forEach()](#foreachaarraystridenumberoffsetnumbercountnumberfnfunctionargobject)
- [fromValues()](#fromvaluesxnumberynumberznumber)
- [inverse()](#inverseoutvec3avec3)
- [length()](#lengthavec3)
- [len()](#lengthavec3)
- [lerp()](#lerpoutvec3avec3bvec3tnumber)
- [max()](#maxoutvec3avec3bvec3)
- [min()](#minoutvec3avec3bvec3)
- [multiply()](#multiplyoutvec3avec3bvec3)
- [mul()](#multiplyoutvec3avec3bvec3)
- [negate()](#negateoutvec3avec3)
- [normalize()](#normalizeoutvec3avec3)
- [random()](#randomoutvec3scalenumber)
- [rotateX()](#rotatexoutvec3avec3bvec3cnumber)
- [rotateY()](#rotateyoutvec3avec3bvec3cnumber)
- [rotateZ()](#rotatezoutvec3avec3bvec3cnumber)
- [round()](#roundoutvec3-avec3)
- [scale()](#scaleoutvec3avec3bnumber)
- [scaleAndAdd()](#scaleandaddoutvec3avec3bvec3scalenumber)
- [set()](#setoutvec3xnumberynumberznumber)
- [squaredDistance()](#squareddistanceavec3bvec3)
- [sqrDist()](#squareddistanceavec3bvec3)
- [squaredLength()](#squaredlengthavec3)
- [sqrLen()](#squaredlengthavec3)
- [subtract()](#subtractoutvec3avec3bvec3)
- [sub()](#subtractoutvec3avec3bvec3)
- [transformMat3()](#transformmat3outvec3avec3mmat4)
- [transformMat4()](#transformmat4outvec3avec3mmat4)
- [transformQuat()](#transformquatoutvec3avec3qquat)
Expand All @@ -66,6 +78,10 @@ var scale = require('gl-vec3/scale')

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
Expand All @@ -84,16 +100,28 @@ var scale = require('gl-vec3/scale')

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

Calculates the euclidian distance between two vec3's
Calculates the euclidian distance between two vec3's. Aliased as `dist`

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

Divides two vec3's
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.
Expand All @@ -108,7 +136,7 @@ var scale = require('gl-vec3/scale')

## length(a:vec3)

Calculates the length of a vec3
Calculates the length of a vec3. Aliased as `len`

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

Expand All @@ -124,7 +152,7 @@ var scale = require('gl-vec3/scale')

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

Multiplies two vec3's
Multiplies two vec3's. Aliased as `mul`

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

Expand All @@ -150,6 +178,10 @@ var scale = require('gl-vec3/scale')

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
Expand All @@ -164,15 +196,15 @@ var scale = require('gl-vec3/scale')

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

Calculates the squared euclidian distance between two vec3's
Calculates the squared euclidian distance between two vec3's. Aliased as `sqrDist`

## squaredLength(a:vec3)

Calculates the squared length of 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
Subtracts vector b from vector a. Aliased as `sub`

## transformMat3(out:vec3, a:vec3, m:mat4)

Expand All @@ -189,4 +221,4 @@ var scale = require('gl-vec3/scale')

## License

[zlib](http://en.wikipedia.org/wiki/Zlib_License). See [LICENSE.md](https://github.com/stackgl/gl-vec3/blob/master/LICENSE.md) for details.
[zlib](http://en.wikipedia.org/wiki/Zlib_License). See [LICENSE.md](https://github.com/stackgl/gl-vec3/blob/master/LICENSE.md) for details.
15 changes: 15 additions & 0 deletions ceil.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module.exports = ceil

/**
* Math.ceil the components of a vec3
*
* @param {vec3} out the receiving vector
* @param {vec3} a vector to ceil
* @returns {vec3} out
*/
function ceil(out, a) {
out[0] = Math.ceil(a[0])
out[1] = Math.ceil(a[1])
out[2] = Math.ceil(a[2])
return out
}
1 change: 1 addition & 0 deletions dist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./distance')
1 change: 1 addition & 0 deletions div.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./divide')
1 change: 1 addition & 0 deletions epsilon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = 0.000001
22 changes: 22 additions & 0 deletions equals.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module.exports = equals

var EPSILON = require('./epsilon')

/**
* Returns whether or not the vectors have approximately the same elements in the same position.
*
* @param {vec3} a The first vector.
* @param {vec3} b The second vector.
* @returns {Boolean} True if the vectors are equal, false otherwise.
*/
function equals(a, b) {
var a0 = a[0]
var a1 = a[1]
var a2 = a[2]
var b0 = b[0]
var b1 = b[1]
var b2 = b[2]
return (Math.abs(a0 - b0) <= EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&
Math.abs(a1 - b1) <= EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&
Math.abs(a2 - b2) <= EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)))
}
12 changes: 12 additions & 0 deletions exactEquals.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module.exports = exactEquals

/**
* Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)
*
* @param {vec3} a The first vector.
* @param {vec3} b The second vector.
* @returns {Boolean} True if the vectors are equal, false otherwise.
*/
function exactEquals(a, b) {
return a[0] === b[0] && a[1] === b[1] && a[2] === b[2]
}
15 changes: 15 additions & 0 deletions floor.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module.exports = floor

/**
* Math.floor the components of a vec3
*
* @param {vec3} out the receiving vector
* @param {vec3} a vector to floor
* @returns {vec3} out
*/
function floor(out, a) {
out[0] = Math.floor(a[0])
out[1] = Math.floor(a[1])
out[2] = Math.floor(a[2])
return out
}
17 changes: 15 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,35 @@
module.exports = {
create: require('./create')
EPSILON: require('./epsilon')
, create: require('./create')
, clone: require('./clone')
, angle: require('./angle')
, fromValues: require('./fromValues')
, copy: require('./copy')
, set: require('./set')
, equals: require('./equals')
, exactEquals: require('./exactEquals')
, add: require('./add')
, subtract: require('./subtract')
, sub: require('./sub')
, multiply: require('./multiply')
, mul: require('./mul')
, divide: require('./divide')
, div: require('./div')
, min: require('./min')
, max: require('./max')
, floor: require('./floor')
, ceil: require('./ceil')
, round: require('./round')
, scale: require('./scale')
, scaleAndAdd: require('./scaleAndAdd')
, distance: require('./distance')
, dist: require('./dist')
, squaredDistance: require('./squaredDistance')
, sqrDist: require('./sqrDist')
, length: require('./length')
, len: require('./len')
, squaredLength: require('./squaredLength')
, sqrLen: require('./sqrLen')
, negate: require('./negate')
, inverse: require('./inverse')
, normalize: require('./normalize')
Expand All @@ -31,4 +44,4 @@ module.exports = {
, rotateY: require('./rotateY')
, rotateZ: require('./rotateZ')
, forEach: require('./forEach')
}
}
1 change: 1 addition & 0 deletions len.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./length')
1 change: 1 addition & 0 deletions mul.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./multiply')
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
],
"dependencies": {},
"devDependencies": {
"dox": "git://github.com/hughsk/dox#api-context"
"dox": "git://github.com/hughsk/dox#api-context",
"tape": "^4.8.0"
},
"scripts": {
"get-docs": "cat *.js | dox --api"
"get-docs": "cat *.js | dox --api",
"test": "node test/index.js"
},
"keywords": [
"gl-matrix",
Expand Down
15 changes: 15 additions & 0 deletions round.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
module.exports = round

/**
* Math.round the components of a vec3
*
* @param {vec3} out the receiving vector
* @param {vec3} a vector to round
* @returns {vec3} out
*/
function round(out, a) {
out[0] = Math.round(a[0])
out[1] = Math.round(a[1])
out[2] = Math.round(a[2])
return out
}
1 change: 1 addition & 0 deletions sqrDist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./squaredDistance')
1 change: 1 addition & 0 deletions sqrLen.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./squaredLength')
1 change: 1 addition & 0 deletions sub.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports = require('./subtract')
Loading