UNPKG

awv3

Version:
188 lines (139 loc) 7.15 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _get2 = require('babel-runtime/helpers/get'); var _get3 = _interopRequireDefault(_get2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _object = require('../../../three/object3'); var _object2 = _interopRequireDefault(_object); var _ccfuturef = require('../ccfuturef'); var _ccfuturef2 = _interopRequireDefault(_ccfuturef); var _ccref = require('../ccref'); var _ccref2 = _interopRequireDefault(_ccref); var _highlevel = require('../command/highlevel'); var _lowlevel = require('../command/lowlevel'); var _type = require('../constraint/type'); var _viewutils = require('../viewutils'); var _draw = require('./draw'); var _draw2 = _interopRequireDefault(_draw); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var PolylineHandler = function (_DrawHandler) { (0, _inherits3.default)(PolylineHandler, _DrawHandler); function PolylineHandler(sketcher, type) { (0, _classCallCheck3.default)(this, PolylineHandler); var _this = (0, _possibleConstructorReturn3.default)(this, (PolylineHandler.__proto__ || (0, _getPrototypeOf2.default)(PolylineHandler)).call(this, sketcher, type)); _this.lastPoint = null; _this.edgeHandler = null; return _this; } (0, _createClass3.default)(PolylineHandler, [{ key: 'destroy', value: function destroy(options) { this.setEdgeHandler(null); (0, _get3.default)(PolylineHandler.prototype.__proto__ || (0, _getPrototypeOf2.default)(PolylineHandler.prototype), 'destroy', this).call(this); } }, { key: 'setEdgeHandler', value: function setEdgeHandler(edgeHandler) { // don't destroy sketch interaction because we need it if (this.edgeHandler) this.edgeHandler.destroy({ interaction: false }); this.edgeHandler = edgeHandler; if (edgeHandler) edgeHandler.removeInteractions({ interaction: false }); if (edgeHandler && this.lastPoint) edgeHandler.click(this.lastPoint.pos); } }, { key: 'move', value: function move(position) { if (!this.queue.isBusy()) this.edgeHandler.move(position); } // returns promise of the new lastPoint }, { key: 'afterEdgeAdded', value: function afterEdgeAdded(geomParams) { var _this2 = this; if (!geomParams) return this.lastPoint; var object = new _ccfuturef2.default((0, _lowlevel.Variable)(), geomParams); var startPoint = object.children.find(function (child) { return child.isStartPoint(); }); var manualConstrCommand = this.lastPoint && !this.sketcher.autoconstraintIncremental ? (0, _highlevel.addCommand)(this.sketch, { class: _type.incidence.type, entities: [this.lastPoint, startPoint], value: {} }) : null; var command = _lowlevel.Sequence.apply(undefined, [(0, _lowlevel.Assign)(object, (0, _highlevel.addCommand)(this.sketch, geomParams))].concat((0, _toConsumableArray3.default)(this.sketcher.autoconstraintCommands(object)), [manualConstrCommand, (0, _lowlevel.Return)((0, _lowlevel.IdToReal)((0, _lowlevel.Member)(object, 'endPoint')))])); var p = this.sketcher.run(command); this.sketcher.incrementalSolveConstraints(); return p.then(function (id) { // note: we are sure that no new object is created in this click: _this2.edgeHandler.click(geomParams.end); return new _ccref2.default(_this2.sketcher, id); }); } }, { key: _object2.default.Events.Interaction.Clicked, value: function value(object, hitObject) { var _this3 = this; var position = (0, _viewutils.calcSketchPos)(hitObject.ray, this.sketch); return this.queue.run((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _this3.afterEdgeAdded(_this3.edgeHandler.click(position)); case 2: _this3.lastPoint = _context.sent; case 3: case 'end': return _context.stop(); } } }, _callee, _this3); }))); } }, { key: 'consoleComplete', value: function consoleComplete(cmd) { return this.edgeHandler.consoleComplete(cmd); } }, { key: 'consoleExecute', value: function () { var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(cmd, preview) { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.afterEdgeAdded(this.edgeHandler.consoleExec(cmd, preview)); case 2: this.lastPoint = _context2.sent; case 3: case 'end': return _context2.stop(); } } }, _callee2, this); })); function consoleExecute(_x, _x2) { return _ref2.apply(this, arguments); } return consoleExecute; }() }]); return PolylineHandler; }(_draw2.default); exports.default = PolylineHandler;