Skip to content

Commit

Permalink
fix(vector): docs for empty constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
MrTelanie committed Sep 29, 2019
1 parent 4b6627f commit a57dbc6
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 5 deletions.
56 changes: 51 additions & 5 deletions src/vector.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ function square(val) {
*/
class AVector {
/**
* @param {number | [number, number, number] | Alg} x
* @param {number | [number, number, number] | Alg} [x]
* @param {number} [y]
* @param {number} [z]
* @hidden
Expand Down Expand Up @@ -230,6 +230,14 @@ class AVector {
return this.dot(this);
}

/**
*
* @throws SetNotImplementedError
*/
set lengthSq(_) {
throw new Error('set lengthSq() not implemented');
}

/**
*
* @returns {number}
Expand All @@ -238,6 +246,14 @@ class AVector {
return Math.sqrt(this.lengthSq);
}

/**
*
* @throws SetNotImplementedError
*/
set length(_) {
throw new Error('set length() not implemented');
}

/**
*
* @returns {number}
Expand All @@ -246,6 +262,14 @@ class AVector {
return this.lengthSq;
}

/**
*
* @throws SetNotImplementedError
*/
set lensq(_) {
throw new Error('set lensq() not implemented');
}

/**
*
* @returns {number}
Expand All @@ -254,6 +278,14 @@ class AVector {
return this.length;
}

/**
*
* @throws SetNotImplementedError
*/
set len(_) {
throw new Error('set len() not implemented');
}

/**
*
* @returns {number}
Expand Down Expand Up @@ -473,12 +505,13 @@ export function calc(alg) {
const vectorFactory = cachedFactory(Vector);

/**
* @typedef {() => VectorType} VectorZero
* @typedef {(alg: Alg) => VectorType} VectorAlg
* @typedef {(x: number , y: number, z: number) => VectorType} VectorCon
* @typedef {(data: [number, number, number]) => VectorType} VectorArr
* @typedef {VectorAlg & VectorCon & VectorArr}
* @typedef {VectorAlg & VectorCon & VectorArr & VectorZero}
*
* @param {number | [number, number, number] | Alg} x
* @param {number | [number, number, number] | Alg} [x]
* @param {number} [y]
* @param {number} [z]
* @returns {VectorType}
Expand All @@ -491,12 +524,13 @@ export function vector(x, y, z) {
const victorFactory = cachedFactory(Victor);

/**
* @typedef {() => VictorType} VictorZero
* @typedef {(alg: Alg) => VictorType} VictorAlg
* @typedef {(x: number , y: number, z: number) => VictorType} VictorCon
* @typedef {(data: [number, number, number]) => VictorType} VictorArr
* @typedef {VictorAlg & VictorCon & VictorArr}
* @typedef {VictorAlg & VictorCon & VictorArr & VictorZero}
*
* @param {number | [number, number, number] | Alg} x
* @param {number | [number, number, number] | Alg} [x]
* @param {number} [y]
* @param {number} [z]
* @returns {VictorType}
Expand All @@ -507,12 +541,18 @@ export function victor(x, y, z) {
}

export const Export = {

/**
* @param {Alg} alg
* @return {VectorType | VictorType}
*/
calc: alg => operatorCalc(alg),

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

/**
* @type {VectorAlg}
*/
Expand All @@ -528,6 +568,11 @@ export const Export = {
*/
vector: (x, y, z) => vectorFactory(x, y, z),

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

/**
* @type {VictorAlg}
*/
Expand All @@ -544,6 +589,7 @@ export const Export = {
victor: (x, y, z) => victorFactory(x, y, z)
};

export const ZERO = victor(0, 0, 0);
export const FORWARD = victor(0, 0, -1);
export const LEFT = victor(-1, 0, 0);
export const UP = victor(0, 1, 0);
7 changes: 7 additions & 0 deletions test/vector.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ import * as Examples from '../examples';
* @param {(typeof Vector) | (typeof Victor)} Vec3
*/
const vectorTest = (vec3, Vec3) => {
it('should create empty vector', () => {
const pos = vec3();
assert.equal(pos.x, 0);
assert.equal(pos.y, 0);
assert.equal(pos.z, 0);
});

it('should create x y z values', () => {
const pos = vec3(5, 6, 7);
assert.equal(pos.x, 5);
Expand Down

0 comments on commit a57dbc6

Please sign in to comment.