awv3
Version:
⚡ AWV3 embedded CAD
125 lines (91 loc) • 5.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = undefined;
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 _three = require('three');
var THREE = _interopRequireWildcard(_three);
var _connections = require('../../session/store/connections');
var _globals = require('../../session/store/globals');
var _plugin = require('../../session/plugin');
var _plugin2 = _interopRequireDefault(_plugin);
var _elements = require('../../session/elements');
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 }; }
var resources = ['isometric'].reduce(function (prev, item) {
return (0, _extends4.default)({}, prev, (0, _defineProperty3.default)({}, item, require('!!url-loader!awv3-icons/32x32/' + item + '.png')));
}, {});
var Color = function (_Plugin) {
(0, _inherits3.default)(Color, _Plugin);
function Color(session, args) {
(0, _classCallCheck3.default)(this, Color);
var _this = (0, _possibleConstructorReturn3.default)(this, (Color.__proto__ || (0, _getPrototypeOf2.default)(Color)).call(this, session, (0, _extends4.default)({ type: 'Color', icon: 'isometric', resources: resources }, args)));
_this.solid = new _elements.Selection(_this, { name: 'Solid', types: ['Mesh', 'Object'] });
_this.refsGroup = new _elements.Group(_this, { format: _elements.Group.Format.Table, children: [_this.solid] });
_this.addElement(_this.refsGroup);
_this.addElement(new _elements.Spacer(_this));
_this.noCut = new _elements.Button(_this, { name: 'ISO NoCut', color: 'rgb(160,160,160)' });
_this.cut = new _elements.Button(_this, { name: 'ISO Cut', color: 'rgb(204,204,204)' });
var buttonGroup = new _elements.Group(_this, { format: _elements.Group.Format.Buttons, children: [_this.noCut, _this.cut], flex: 3 });
_this.color = new _elements.Button(_this, { name: 'Any Color', format: _elements.Button.Format.Color, color: '#28d79f', flex: 1 });
var spacer = new _elements.Spacer(_this);
var group = new _elements.Group(_this, { format: _elements.Group.Format.Rows, children: [buttonGroup, spacer, _this.color] });
_this.addElement(group);
return _this;
}
(0, _createClass3.default)(Color, [{
key: 'setColor',
value: function setColor() {
var connection = this.session.globals.activeConnection;
var selected = this.session.selector.getSelectedElements();
if (selected.length) {
selected = selected[0];
for (var _len = arguments.length, rgb = Array(_len), _key = 0; _key < _len; _key++) {
rgb[_key] = arguments[_key];
}
this.store.dispatch(_connections.actions.setColor(connection, selected.userData.parentId, rgb));
var color = new THREE.Color('rgb(' + rgb.join(',') + ')');
selected.animate({ materials: { meshes: [{ color: color, opacity: 1 }] } }).start(0);
selected.__origProps = selected.animate({ materials: { meshes: [{ color: color, opacity: 1 }] } }).getProperties();
}
}
}, {
key: 'onEnabled',
value: function onEnabled() {
var _this2 = this;
this.resetElements();
this.noCut.observe(function (state) {
return state.lastEvent;
}, function (event) {
return _this2.setColor(128, 128, 128);
});
this.cut.observe(function (state) {
return state.lastEvent;
}, function (event) {
return _this2.setColor(204, 204, 204);
});
this.color.observe(function (state) {
return state.lastEvent;
}, function (event) {
var color = new THREE.Color(event.color);
_this2.setColor(color.r * 255, color.g * 255, color.b * 255);
});
}
}]);
return Color;
}(_plugin2.default);
exports.default = Color;