UNPKG

awv3

Version:
108 lines (75 loc) 3.73 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 _plugin = require('../../session/plugin'); var _plugin2 = _interopRequireDefault(_plugin); var _elements = require('../../session/elements'); var _debounce = require('lodash/debounce'); var _debounce2 = _interopRequireDefault(_debounce); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var props = ['opacity', 'reflectivity', 'metalness', 'roughness', 'clearCoat', 'clearCoatRoughness', 'envMapIntensity']; 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 ShaderProps = function (_Plugin) { (0, _inherits3.default)(ShaderProps, _Plugin); function ShaderProps(session, args) { (0, _classCallCheck3.default)(this, ShaderProps); var _this = (0, _possibleConstructorReturn3.default)(this, (ShaderProps.__proto__ || (0, _getPrototypeOf2.default)(ShaderProps)).call(this, session, (0, _extends4.default)({ type: 'ShaderProps', icon: 'isometric', resources: resources }, args))); _this.update = (0, _debounce2.default)(function () { return _this.session.pool.updateMaterials(); }, 500, { leading: true, trailing: false }); var defaults = _this.session.options.meshShaderOptions; _this.addElement(new _elements.Group(_this, { format: _elements.Group.Format.Table, children: props.map(function (name) { return _this[name] = new _elements.Slider(_this, { name: name, value: defaults[name] || 0, max: 1, step: 0.01, positions: { 0: '0', 1: '1' } }); }) })); return _this; } (0, _createClass3.default)(ShaderProps, [{ key: 'onEnabled', value: function onEnabled() { var _this2 = this; this.resetElements(); this.session.pool.updateMaterials(); props.forEach(function (name) { _this2[name].observe(function (state) { return state.value; }, function (value) { _this2.update(); _this2.session.pool.animate({ materials: { meshes: [(0, _defineProperty3.default)({}, name, value)] } }).start(0); }); }); } }]); return ShaderProps; }(_plugin2.default); exports.default = ShaderProps;