UNPKG

awv3

Version:
124 lines (90 loc) 4.96 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); 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 _geomutils = require('../geomutils'); var _draw = require('./draw'); var _draw2 = _interopRequireDefault(_draw); var _point = require('./point'); var _point2 = _interopRequireDefault(_point); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ArcTangentHandler = function (_DrawHandler) { (0, _inherits3.default)(ArcTangentHandler, _DrawHandler); function ArcTangentHandler() { var _ref; var _temp, _this, _ret; (0, _classCallCheck3.default)(this, ArcTangentHandler); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ArcTangentHandler.__proto__ || (0, _getPrototypeOf2.default)(ArcTangentHandler)).call.apply(_ref, [this].concat(args))), _this), _this.statesCount = 2, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); } (0, _createClass3.default)(ArcTangentHandler, [{ key: 'getPreviewGeomParams', value: function getPreviewGeomParams(clickPositions) { if (clickPositions.length >= 2) return (0, _geomutils.drawArcBy_S_T_E)(clickPositions[0], this.from.tangent, clickPositions[1]); return _point2.default.prototype.getPreviewGeomParams.call(this, clickPositions); } }, { key: 'handleClick', value: function handleClick(newPosition) { if (this.clicksPos.length !== 0) return (0, _get3.default)(ArcTangentHandler.prototype.__proto__ || (0, _getPrototypeOf2.default)(ArcTangentHandler.prototype), 'handleClick', this).call(this, newPosition); var variants = []; // for all lines/arcs on sketch var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(this.sketch.children), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var object = _step.value; if (object.state.class !== 'CC_Line' && object.state.class !== 'CC_Arc') continue; // for their endpoint matching newPosition var _arr = ['startPoint', 'endPoint']; for (var _i = 0; _i < _arr.length; _i++) { var end = _arr[_i]; if (!object[end].pos.equals(newPosition)) continue; // calculate the tangent var tangent = (0, _geomutils.getTangent)(object.geomParams, newPosition); if (tangent.lengthSq() === 0) // length is really either 0 or 1 continue; if (end === 'startPoint') tangent.negate(); // point on tangent incidence: save all info about object, endpoint and tangent variants.push({ object: object, end: end, tangent: tangent }); } } // handle the click if a unique variant has been found } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } this.from = variants.length === 1 ? variants[0] : undefined; return this.from !== undefined; } }]); return ArcTangentHandler; }(_draw2.default); exports.default = ArcTangentHandler;