UNPKG

awv3

Version:
134 lines (106 loc) 5.79 kB
'use strict'; 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');