UNPKG

awv3

Version:
158 lines (119 loc) 6.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _parseInt = require('babel-runtime/core-js/number/parse-int'); var _parseInt2 = _interopRequireDefault(_parseInt); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); 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 _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); var _class, _temp; var _elements = require('../../session/elements'); var _helpers = require('../../session/helpers'); var _plugin = require('../../session/plugin'); var _plugin2 = _interopRequireDefault(_plugin); var _graphics = require('./graphics'); var _graphics2 = _interopRequireDefault(_graphics); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var resources = ['plane'].reduce(function (prev, item) { return (0, _extends4.default)({}, prev, (0, _defineProperty3.default)({}, item, require('!!url-loader!awv3-icons/32x32/' + item + '.png'))); }, {}); var Workplane = (_temp = _class = function (_Plugin) { (0, _inherits3.default)(Workplane, _Plugin); function Workplane(session, args) { (0, _classCallCheck3.default)(this, Workplane); var _this = (0, _possibleConstructorReturn3.default)(this, (Workplane.__proto__ || (0, _getPrototypeOf2.default)(Workplane)).call(this, session, (0, _extends4.default)({ type: 'Workplane', icon: 'plane', resources: resources }, args))); _this.etype = new _elements.Dropdown(_this, { name: 'Type', value: '', children: ['0 WP_XYPLANE', '1 WP_XZPLANE', '2 WP_YZPLANE', '3 WP_USERDEFINED', '4 WP_FIXED', '10 WP_PLANE', '11 WP_EDGEPOINT', '12 WP_3POINTS', '13 WP_POINTNORMAL', '14 WP_POINTFACE', '15 WP_2CURVES', '16 WP_LINEPLANEANGLE'] }); _this.origin = new _elements.Input(_this, { name: 'Origin', value: '0,0,0', format: _elements.Input.Format.Vector }); _this.normal = new _elements.Input(_this, { name: 'Normal', value: '1,0,0', format: _elements.Input.Format.Vector }); _this.offset = new _elements.Input(_this, { name: 'Offset', value: '0' }); _this.addElement(new _elements.Group(_this, { format: _elements.Group.Format.Table, children: [_this.etype, _this.origin, _this.normal, _this.offset] })); _this.workplane = new _graphics2.default(); _this.pool.measurable = true; _this.pool.add(_this.workplane); _this.unsubscribe = _this.connection.observe(function (state) { return state.tree[_this.feature]; }, function (state) { return _this.onChange(state); }, { fireOnStart: true, unsubscribeOnUndefined: true }); return _this; } (0, _createClass3.default)(Workplane, [{ key: 'onDestroyed', value: function onDestroyed() { this.unsubscribe(); this.workplane.destroy(); } }, { key: 'onEnabled', value: function onEnabled() { var _this2 = this; this.apply.observe(function (state) { return state.lastEvent; }, function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(event) { var path; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: path = (0, _helpers.buildFeaturePath)(_this2.tree, _this2.feature); // SetPosition must be called last because it recalculates curPosition _this2.connection.execute(path + '.SetType(' + (0, _parseInt2.default)(_this2.etype.value) + ');\n ' + path + '.SetNormal({' + _this2.normal.value + '});\n ' + path + '.SetOffset(' + _this2.offset.value + ');\n ' + path + '.SetPosition({' + _this2.origin.value + '});'); case 2: case 'end': return _context.stop(); } } }, _callee, _this2); })); return function (_x) { return _ref.apply(this, arguments); }; }()); } }, { key: 'onChange', value: function onChange(state) { var type = String(state.members.Type.value); this.etype.value = this.etype.children.find(function (x) { return x.startsWith(type); }) || type; this.origin.value = state.members.Position.value.join(','); this.normal.value = state.members.Normal.value.join(','); this.offset.value = state.members.Offset.value; this.workplane.updateFromState(state); this.pool.view.invalidate(); this.workplane.visible = Boolean(state.visible); this.connection.updateView(); } }]); return Workplane; }(_plugin2.default), _class.persistent = true, _temp); exports.default = Workplane;