From 92fc22cf34193fb476545d30547018be0dfa8c4d Mon Sep 17 00:00:00 2001 From: Mark 'kaosat-dev' Moissette Date: Wed, 1 Nov 2017 20:50:11 +0100 Subject: [PATCH 1/2] fix(ConnectorList): added missing ConnectorList export * modified caller modules accordingly --- csg.js | 3 ++- src/CAG.js | 2 +- src/CSG.js | 4 ++-- src/connectors.js | 14 ++++++++------ src/primitives3d.js | 2 +- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/csg.js b/csg.js index 89f3771f..6d7d32d1 100644 --- a/csg.js +++ b/csg.js @@ -133,7 +133,8 @@ CSG.Matrix4x4 = require('./src/math/Matrix4') CAG.Side = require('./src/math/Side') -CSG.Connector = require('./src/connectors') +CSG.Connector = require('./src/connectors').Connector +CSG.ConnectorList = require('./src/connectors').ConnectorList CSG.Properties = require('./src/Properties') const {circle, ellipse, rectangle, roundedRectangle} = require('./src/primitives2d') diff --git a/src/CAG.js b/src/CAG.js index 96f8402a..8628444e 100644 --- a/src/CAG.js +++ b/src/CAG.js @@ -1,5 +1,5 @@ const {EPS, angleEPS, areaEPS, defaultResolution3D} = require('./constants') -const Connector = require('./connectors') +const {Connector} = require('./connectors') const OrthoNormalBasis = require('./math/OrthoNormalBasis') const Vertex2D = require('./math/Vertex2') const Vertex3D = require('./math/Vertex3') diff --git a/src/CSG.js b/src/CSG.js index aa647188..b7188f13 100644 --- a/src/CSG.js +++ b/src/CSG.js @@ -14,8 +14,8 @@ const OrthoNormalBasis = require('./math/OrthoNormalBasis') const CAG = require('./CAG') // FIXME: circular dependency ! const Properties = require('./Properties') -const Connector = require('./connectors') -//let {fromPolygons} = require('./CSGMakers') // FIXME: circular dependency ! +const {Connector} = require('./connectors') +// let {fromPolygons} = require('./CSGMakers') // FIXME: circular dependency ! /** Class CSG * Holds a binary space partition tree representing a 3D solid. Two solids can diff --git a/src/connectors.js b/src/connectors.js index fe3f6677..d3aceb4c 100644 --- a/src/connectors.js +++ b/src/connectors.js @@ -148,7 +148,7 @@ ConnectorList._fromPath2DExplicit = function (path2D, angleIsh) { } ConnectorList.prototype = { - setClosed: function (bool) { + setClosed: function (closed) { this.closed = !!closed // FIXME: what the hell ? }, appendConnector: function (conn) { @@ -202,17 +202,19 @@ ConnectorList.prototype = { * TODO: add a check that 2 follow-on CAGs are not intersecting */ verify: function () { - let connI, connI1, dPosToAxis, axisToNextAxis + let connI + let connI1 for (let i = 0; i < this.connectors_.length - 1; i++) { - connI = this.connectors_[i], connI1 = this.connectors_[i + 1] + connI = this.connectors_[i] + connI1 = this.connectors_[i + 1] if (connI1.point.minus(connI.point).dot(connI.axisvector) <= 0) { - throw ('Invalid ConnectorList. Each connectors position needs to be within a <90deg range of previous connectors axisvector') + throw new Error('Invalid ConnectorList. Each connectors position needs to be within a <90deg range of previous connectors axisvector') } if (connI.axisvector.dot(connI1.axisvector) <= 0) { - throw ('invalid ConnectorList. No neighboring connectors axisvectors may span a >=90deg angle') + throw new Error('invalid ConnectorList. No neighboring connectors axisvectors may span a >=90deg angle') } } } } -module.exports = Connector +module.exports = {Connector, ConnectorList} diff --git a/src/primitives3d.js b/src/primitives3d.js index 6d13f7d0..829046b4 100644 --- a/src/primitives3d.js +++ b/src/primitives3d.js @@ -4,7 +4,7 @@ const {defaultResolution3D, defaultResolution2D, EPS} = require('./constants') const Vector3D = require('./math/Vector3') const Vertex = require('./math/Vertex3') const Polygon = require('./math/Polygon3') -const Connector = require('./connectors') +const {Connector} = require('./connectors') const Properties = require('./Properties') /** Construct an axis-aligned solid cuboid. From 00bc9d9ccd79805e6cae98994080432c7dd0d7a1 Mon Sep 17 00:00:00 2001 From: Mark 'kaosat-dev' Moissette Date: Wed, 1 Nov 2017 20:50:40 +0100 Subject: [PATCH 2/2] test(connectors): added very basic check for ConnectorList objects --- test/connectors.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/connectors.js b/test/connectors.js index 4b3e5566..f76ecd3e 100644 --- a/test/connectors.js +++ b/test/connectors.js @@ -1,7 +1,12 @@ import test from 'ava' import {CSG} from '../csg' - test('CSG.Connector exists', t => { t.is('Connector' in CSG, true) }) + +test('CSG.connectorslist can be instanciated', t => { + const observed = new CSG.ConnectorList() + + t.deepEqual(observed, {connectors_: []}) +})