UNPKG

awv3

Version:
70 lines (57 loc) 2.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); exports.addCommand = addCommand; exports.removeCommand = removeCommand; exports.updateCommand = updateCommand; var _geomutils = require('../geomutils'); var _lowlevel = require('./lowlevel'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // highlevel commands are those that map to different lowlevel commands depending on the arguments function addCommand(sketch, geomParams) { if (geomParams.center) { return (0, _lowlevel.AddArc)(sketch, geomParams.start, (0, _geomutils.getArcAngles)(geomParams).mid, geomParams.end); } else if (geomParams.end) { return (0, _lowlevel.AddLine)(sketch, geomParams.start, geomParams.end); } else if (geomParams.start) { return (0, _lowlevel.AddPoint)(sketch, geomParams.start); } else if (geomParams.entities) { return (0, _lowlevel.AddConstraint)(sketch, geomParams.class, geomParams.class, geomParams.entities, geomParams.value.expression, geomParams.value.value, geomParams.value.visible); } } function removeCommand(sketch) { for (var _len = arguments.length, ccrefs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { ccrefs[_key - 1] = arguments[_key]; } return ccrefs.filter(function (ccref) { return ccref === ccref.encompassing; }).map(function (ccref) { switch (ccref.state.class) { case 'CC_Point': return (0, _lowlevel.RemovePoint)(sketch, ccref); case 'CC_Line': return (0, _lowlevel.RemoveLine)(sketch, ccref); case 'CC_Arc': return (0, _lowlevel.RemoveArc)(sketch, ccref); } if (ccref.isConstraint()) return (0, _lowlevel.RemoveConstraint)(sketch, ccref); }); } function updateCommand(sketch, ccref, geomParams) { switch (ccref.state.class) { case 'CC_Point': { var encompassing = ccref.encompassing; if (ccref === encompassing) return (0, _lowlevel.UpdatePoint)(sketch, ccref, geomParams.start);else return updateCommand(sketch, encompassing, (0, _extends4.default)({}, encompassing.geomParams, (0, _defineProperty3.default)({}, ccref.pointType(), geomParams.start))); } case 'CC_Line': return (0, _lowlevel.UpdateLine)(sketch, ccref, geomParams.start, geomParams.end); case 'CC_Arc': return (0, _lowlevel.UpdateArc)(sketch, ccref, geomParams.start, geomParams.end, geomParams.center, geomParams.start.distanceTo(geomParams.center)); } }