UNPKG

awv3

Version:
356 lines (311 loc) 12.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _extends2 = require("babel-runtime/helpers/extends"); var _extends3 = _interopRequireDefault(_extends2); var _slicedToArray2 = require("babel-runtime/helpers/slicedToArray"); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _regenerator = require("babel-runtime/regenerator"); var _regenerator2 = _interopRequireDefault(_regenerator); var _getIterator2 = require("babel-runtime/core-js/get-iterator"); var _getIterator3 = _interopRequireDefault(_getIterator2); var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require("babel-runtime/helpers/createClass"); var _createClass3 = _interopRequireDefault(_createClass2); var _three = require("three"); var THREE = _interopRequireWildcard(_three); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Ccref = function () { function Ccref(sketcher, id) { (0, _classCallCheck3.default)(this, Ccref); this.sketcher = sketcher; this.id = id; } (0, _createClass3.default)(Ccref, [{ key: "updateGraphics", value: function updateGraphics() { if (this.graphics) { this.graphics.updateFromGeomParams(this.geomParams); this.graphics.updateFromSketcherAndId(this.sketcher, this.id); this.sketcher.refresh(); } } }, { key: "updateGraphicsRecursive", value: function updateGraphicsRecursive() { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(this.descendants), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var obj = _step.value; obj.updateGraphics(); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, { key: "getNamedChild", value: function getNamedChild(childName) { return this.children.find(function (child) { return child.state.name === childName; }); } }, { key: "isConstraint", value: function isConstraint() { return this.state.class.startsWith('CC_2D') && this.state.class.endsWith('Constraint'); } }, { key: "isPoint", value: function isPoint() { return this.state.class === 'CC_Point'; } }, { key: "isStartPoint", value: function isStartPoint() { return this.state.name === 'startPoint'; } }, { key: "isEndPoint", value: function isEndPoint() { return this.state.name === 'endPoint'; } }, { key: "isCenterPoint", value: function isCenterPoint() { return this.state.name === 'center'; } }, { key: "isSubPoint", value: function isSubPoint() { return this.isPoint() && (this.isStartPoint() || this.isEndPoint() || this.isCenterPoint()); } }, { key: "isLine", value: function isLine() { return this.state.class === 'CC_Line'; } }, { key: "isArc", value: function isArc() { return this.state.class === 'CC_Arc'; } }, { key: "isSketch", value: function isSketch() { return this.state.class === 'CC_Sketch'; } }, { key: "pointType", value: function pointType() { return this.state.name.replace('Point', ''); } }, { key: "graphics", get: function get() { return this.sketcher.graphics.get(this.id); } }, { key: "state", get: function get() { return this.sketcher.tree[this.id]; } }, { key: "tree", get: function get() { return this.sketcher.connection.resolveTree(this.id)[0]; } }, { key: "pos", get: function get() { return new THREE.Vector3().fromArray(this.state.members.pos.value); } }, { key: "entities", get: function get() { var _this = this; return this.state.members.entities.members.map(function (e) { return new Ccref(_this.sketcher, e.value); }); } }, { key: "parent", get: function get() { var parentId = this.state.parent; return parentId ? new Ccref(this.sketcher, parentId) : undefined; } }, { key: "children", get: function get() { var _this2 = this; return (this.state.children || []).map(function (child) { return new Ccref(_this2.sketcher, child); }); } }, { key: "descendants", get: function get() { return _regenerator2.default.mark(function descendants(ccref) { var _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, child; return _regenerator2.default.wrap(function descendants$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _iteratorNormalCompletion2 = true; _didIteratorError2 = false; _iteratorError2 = undefined; _context.prev = 3; _iterator2 = (0, _getIterator3.default)(ccref.children); case 5: if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) { _context.next = 11; break; } child = _step2.value; return _context.delegateYield(child.descendants, "t0", 8); case 8: _iteratorNormalCompletion2 = true; _context.next = 5; break; case 11: _context.next = 17; break; case 13: _context.prev = 13; _context.t1 = _context["catch"](3); _didIteratorError2 = true; _iteratorError2 = _context.t1; case 17: _context.prev = 17; _context.prev = 18; if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } case 20: _context.prev = 20; if (!_didIteratorError2) { _context.next = 23; break; } throw _iteratorError2; case 23: return _context.finish(20); case 24: return _context.finish(17); case 25: _context.next = 27; return ccref; case 27: case "end": return _context.stop(); } } }, descendants, this, [[3, 13, 17, 25], [18,, 20, 24]]); })(this); } }, { key: "encompassing", get: function get() { return this.isSubPoint() ? this.parent : this; } // local-to-world transformation as a THREE matrix }, { key: "matrixWorld", get: function get() { var _state$coordinateSyst = this.state.coordinateSystem.map(function (row) { return new THREE.Vector3().fromArray(row); }), _state$coordinateSyst2 = (0, _slicedToArray3.default)(_state$coordinateSyst, 4), orig = _state$coordinateSyst2[0], vx = _state$coordinateSyst2[1], vy = _state$coordinateSyst2[2], vz = _state$coordinateSyst2[3]; return new THREE.Matrix4().makeBasis(vx, vy, vz).setPosition(orig); } }, { key: "startPoint", get: function get() { return this.getNamedChild("startPoint"); } }, { key: "endPoint", get: function get() { return this.getNamedChild("endPoint"); } }, { key: "center", get: function get() { return this.getNamedChild("center"); } }, { key: "geomParams", get: function get() { var geomParams = { class: this.state.class, coordinateSystem: this.matrixWorld, scale: this.sketcher.graphicScale }; if (this.sketcher.transientGeomParams.has(this.id)) return (0, _extends3.default)({}, this.sketcher.transientGeomParams.get(this.id), geomParams); if (this.isConstraint()) return (0, _extends3.default)({}, geomParams, { entities: this.entities, value: { type: (this.state.members.type || {}).value, userValue: (this.state.members.userValue || {}).value, value: (this.state.members.value || {}).value } }); switch (this.state.class) { case 'CC_Point': return (0, _extends3.default)({}, geomParams, { start: this.pos }); case 'CC_Line': return (0, _extends3.default)({}, geomParams, { start: this.startPoint.pos, end: this.endPoint.pos }); case 'CC_Arc': return (0, _extends3.default)({}, geomParams, { start: this.startPoint.pos, end: this.endPoint.pos, center: this.center.pos, clockwise: this.state.members.bulge.value < 0, radius: this.state.members.radius.value }); default: return geomParams; } }, set: function set(geomParams) { if (geomParams !== undefined) this.sketcher.transientGeomParams.set(this.id, geomParams);else this.sketcher.transientGeomParams.delete(this.id); var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = (0, _getIterator3.default)(this.children), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var child = _step3.value; child.geomParams = geomParams !== undefined ? { start: geomParams[child.pointType()] } : undefined; } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } }]); return Ccref; }(); exports.default = Ccref;