UNPKG

awv3

Version:
125 lines (91 loc) 5.28 kB
'use strict'; 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;