awv3
Version:
⚡ AWV3 embedded CAD
134 lines (106 loc) • 5.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Recalc = exports.RealToId = exports.IdToReal = exports.SolveConstraints = exports.MoveObjects = exports.GetOrigin = exports.CopyObjects = exports.ReplaceEntityInConstraints = exports.SketchAppendNewObj = exports.UpdateDimensions = exports.UpdateCircle = exports.UpdateArc = exports.UpdateLine = exports.UpdatePoint = exports.RemoveConstraint = exports.RemoveCircle = exports.RemoveArc = exports.RemoveLine = exports.RemovePoint = exports.AddConstraint = exports.AddCircle = exports.AddArc = exports.AddLine = exports.AddPoint = undefined;
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
exports.Assign = Assign;
exports.Call = Call;
exports.Member = Member;
exports.Return = Return;
exports.Sequence = Sequence;
exports.Variable = Variable;
var _three = require('three');
var THREE = _interopRequireWildcard(_three);
var _ccfuturef = require('../ccfuturef');
var _ccfuturef2 = _interopRequireDefault(_ccfuturef);
var _ccref = require('../ccref');
var _ccref2 = _interopRequireDefault(_ccref);
var _ast = require('./ast');
var ast = _interopRequireWildcard(_ast);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// lowlevel commands are those that map 1-to-1 to ClassCad constructions
function toAst(x) {
if (x === null) return new ast.Pass();
switch (typeof x === 'undefined' ? 'undefined' : (0, _typeof3.default)(x)) {
case 'undefined':
case 'boolean':
return new ast.NameConstant(x);
case 'number':
return new ast.Num(x);
case 'string':
return new ast.Str(x);
}
if (x instanceof Array) return new ast.List(x.map(toAst));else if (x instanceof THREE.Vector3) return new ast.Vector(x.toArray().map(toAst));else if (x instanceof _ccref2.default) return RealToId(x.id);else if (x instanceof _ccfuturef2.default) return x.command;else if (x instanceof ast.Ast) return x;
var e = new TypeError('Unsupported value to convert to ClassCad type');
e.value = x;
throw e;
}
function Assign(target, value) {
return new ast.Assign(toAst(target), toAst(value));
}
function Call(fn) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return new ast.Call(toAst(fn), args.map(toAst));
}
function Member(value, attr) {
return new ast.Attribute(toAst(value), attr);
}
function Return(value) {
return new ast.Return(toAst(value));
}
// return a Module AST node that can be directly executed
// commands can be a mix of literal values, expression and statement AST nodes
function Sequence() {
for (var _len2 = arguments.length, commands = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
commands[_key2] = arguments[_key2];
}
if (commands[0] instanceof ast.Module) return commands[0];
return new ast.Module(commands.map(toAst).map(function (command, i) {
if (command instanceof ast.Stmt) return command;else if (i === commands.length - 1) return new ast.Return(command);else return new ast.Expression(command);
}));
}
var variableCounter = 0;
function Variable() {
var basename = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 't';
return new ast.NameVariable(basename + String(variableCounter++));
}
function cc(name) {
return function () {
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
return new ast.Call(new ast.Name(name), args.map(toAst));
};
}
var interop = '_C.SketcherCloudInterop.';
var obj = '_O.OBJ_';
var cadh = 'CADH_';
var AddPoint = exports.AddPoint = cc(interop + 'AddPoint'),
AddLine = exports.AddLine = cc(interop + 'AddLine'),
AddArc = exports.AddArc = cc(interop + 'AddArc'),
AddCircle = exports.AddCircle = cc(interop + 'AddCircle'),
AddConstraint = exports.AddConstraint = cc(interop + 'AddConstraint'),
RemovePoint = exports.RemovePoint = cc(interop + 'RemovePoint'),
RemoveLine = exports.RemoveLine = cc(interop + 'RemoveLine'),
RemoveArc = exports.RemoveArc = cc(interop + 'RemoveArc'),
RemoveCircle = exports.RemoveCircle = cc(interop + 'RemoveCircle'),
RemoveConstraint = exports.RemoveConstraint = cc(interop + 'RemoveConstraint'),
UpdatePoint = exports.UpdatePoint = cc(interop + 'UpdatePoint'),
UpdateLine = exports.UpdateLine = cc(interop + 'UpdateLine'),
UpdateArc = exports.UpdateArc = cc(interop + 'UpdateArc'),
UpdateCircle = exports.UpdateCircle = cc(interop + 'UpdateCircle'),
UpdateDimensions = exports.UpdateDimensions = cc(interop + 'UpdateDimensions'),
SketchAppendNewObj = exports.SketchAppendNewObj = cc(interop + 'SketchAppendNewObj'),
ReplaceEntityInConstraints = exports.ReplaceEntityInConstraints = cc(interop + 'ReplaceEntityInConstraints'),
CopyObjects = exports.CopyObjects = cc(interop + 'CopyObjects'),
GetOrigin = exports.GetOrigin = cc(interop + 'GetOrigin'),
MoveObjects = exports.MoveObjects = cc(interop + 'MoveObjects'),
SolveConstraints = exports.SolveConstraints = cc(interop + 'SolveConstraints'),
IdToReal = exports.IdToReal = cc(cadh + 'IdToReal'),
RealToId = exports.RealToId = cc(cadh + 'RealToId'),
Recalc = exports.Recalc = cc(obj + 'Recalc');