awv3
Version:
⚡ AWV3 embedded CAD
158 lines (119 loc) • 6.4 kB
JavaScript
;
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;