UNPKG

awv3

Version:
175 lines (143 loc) 6.28 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 _lowlevel = require('./command/lowlevel'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Like a Ccref, but an object is not yet created, // we have a command (AST expression) that evaluates to it and geomParams var idCounter = 0; var Ccfuturef = function () { function Ccfuturef(command, geomParams) { var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; var pointType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined; (0, _classCallCheck3.default)(this, Ccfuturef); this.command = command; this.geomParams = geomParams; this.parent = parent || this; this.pointType = pointType; this.id = --idCounter; } (0, _createClass3.default)(Ccfuturef, [{ key: 'isConstraint', value: function isConstraint() { return this.geomParams.entities; } }, { key: 'isPoint', value: function isPoint() { return this.geomParams.start && !this.geomParams.end; } }, { key: 'isStartPoint', value: function isStartPoint() { return this.pointType === 'startPoint'; } }, { key: 'isEndPoint', value: function isEndPoint() { return this.pointType === 'endPoint'; } }, { key: 'isCenterPoint', value: function isCenterPoint() { return this.pointType === 'center'; } }, { key: 'isSubPoint', value: function isSubPoint() { return this.isPoint() && (this.isStartPoint() || this.isEndPoint() || this.isCenterPoint()); } }, { key: 'isLine', value: function isLine() { return this.geomParams.end && !this.geomParams.center; } }, { key: 'isArc', value: function isArc() { return this.geomParams.center; } }, { key: 'children', get: function get() { var _this = this; var childrenNames = []; if (this.isLine()) childrenNames = ['startPoint', 'endPoint'];else if (this.isArc()) childrenNames = ['startPoint', 'endPoint', 'center']; return childrenNames.map(function (childName) { return new Ccfuturef((0, _lowlevel.Member)(_this.command, childName), { start: _this.geomParams[childName.replace('Point', '')] }, _this, childName); }); } }, { key: 'descendants', get: function get() { return _regenerator2.default.mark(function descendants(ccfuturef) { var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, child; return _regenerator2.default.wrap(function descendants$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context.prev = 3; _iterator = (0, _getIterator3.default)(ccfuturef.children); case 5: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context.next = 11; break; } child = _step.value; return _context.delegateYield(child.descendants, 't0', 8); case 8: _iteratorNormalCompletion = true; _context.next = 5; break; case 11: _context.next = 17; break; case 13: _context.prev = 13; _context.t1 = _context['catch'](3); _didIteratorError = true; _iteratorError = _context.t1; case 17: _context.prev = 17; _context.prev = 18; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 20: _context.prev = 20; if (!_didIteratorError) { _context.next = 23; break; } throw _iteratorError; case 23: return _context.finish(20); case 24: return _context.finish(17); case 25: _context.next = 27; return ccfuturef; case 27: case 'end': return _context.stop(); } } }, descendants, this, [[3, 13, 17, 25], [18,, 20, 24]]); })(this); } }]); return Ccfuturef; }(); exports.default = Ccfuturef;