Skip to content

Commit

Permalink
feat(vector): init vector via array
Browse files Browse the repository at this point in the history
  • Loading branch information
MrTelanie committed Aug 25, 2019
1 parent 9ca357c commit 3ae9ef2
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
24 changes: 19 additions & 5 deletions src/vector.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ function square(val) {
*/
class AVector {
/**
* @param {number | (Alg)} x
* @param {number | [number, number, number] | Alg} x
* @param {number} [y]
* @param {number} [z]
* @hidden
Expand All @@ -38,6 +38,8 @@ class AVector {
operatorCalc(x, (nx, ny, nz) => {
this[AXES] = [nx, ny, nz];
});
} else if (Array.isArray(x)) {
this[AXES] = [...x];
} else {
this[AXES] = [x || 0, y || 0, z || 0];
}
Expand Down Expand Up @@ -472,9 +474,10 @@ const vectorFactory = cachedFactory(Vector);
/**
* @typedef {(alg: Alg) => VectorType} VectorAlg
* @typedef {(x: number , y: number, z: number) => VectorType} VectorCon
* @typedef {VectorAlg & VectorCon}
* @typedef {(data: [number, number, number]) => VectorType} VectorArr
* @typedef {VectorAlg & VectorCon & VectorArr}
*
* @param {number | Alg} x
* @param {number | [number, number, number] | Alg} x
* @param {number} [y]
* @param {number} [z]
* @returns {VectorType}
Expand All @@ -489,9 +492,10 @@ const victorFactory = cachedFactory(Victor);
/**
* @typedef {(alg: Alg) => VictorType} VictorAlg
* @typedef {(x: number , y: number, z: number) => VictorType} VictorCon
* @typedef {VictorAlg & VictorCon}
* @typedef {(data: [number, number, number]) => VictorType} VictorArr
* @typedef {VictorAlg & VictorCon & VictorArr}
*
* @param {number | (Alg)} x
* @param {number | [number, number, number] | Alg} x
* @param {number} [y]
* @param {number} [z]
* @returns {VictorType}
Expand All @@ -513,6 +517,11 @@ export const Export = {
*/
vector: alg => vectorFactory(alg),

/**
* @type {VectorArr}
*/
vector: arr => vectorFactory(arr),

/**
* @type {VectorCon}
*/
Expand All @@ -523,6 +532,11 @@ export const Export = {
*/
victor: alg => victorFactory(alg),

/**
* @type {VictorArr}
*/
victor: arr => victorFactory(arr),

/**
* @type {VictorCon}
*/
Expand Down
7 changes: 7 additions & 0 deletions test/vector.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ const vectorTest = (vec3, Vec3) => {
assert.equal(pos.z, 7);
});

it('should create x y z values via array', () => {
const pos = vec3([5, 6, 7]);
assert.equal(pos.x, 5);
assert.equal(pos.y, 6);
assert.equal(pos.z, 7);
});

it('should be calculated by assigned statement', () => {
const pos = vec3(5, 6, 7);
const dir = vec3(1, 0, 0);
Expand Down

0 comments on commit 3ae9ef2

Please sign in to comment.