awv3
Version:
⚡ AWV3 embedded CAD
70 lines (57 loc) • 2.9 kB
JavaScript
;
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));
}
}