UNPKG

awv3

Version:
164 lines (126 loc) 6.13 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _map = require('babel-runtime/core-js/map'); var _map2 = _interopRequireDefault(_map); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); 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 _helpers = require('../../session/helpers'); var _plugin = require('../../session/plugin'); var _plugin2 = _interopRequireDefault(_plugin); var _object = require('../../three/object3'); var _object2 = _interopRequireDefault(_object); var _graphics = require('./graphics'); var _graphics2 = _interopRequireDefault(_graphics); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Dimension = function (_Plugin) { (0, _inherits3.default)(Dimension, _Plugin); function Dimension(session, args) { (0, _classCallCheck3.default)(this, Dimension); var _this = (0, _possibleConstructorReturn3.default)(this, (Dimension.__proto__ || (0, _getPrototypeOf2.default)(Dimension)).call(this, session, (0, _extends3.default)({ type: 'Dimensions' }, args))); _this.graphics = new _map2.default(); _this.onChange = _this.onChange.bind(_this); _this.onRemove = _this.onRemove.bind(_this); _this.unsubscribes = new _map2.default(); return _this; } (0, _createClass3.default)(Dimension, [{ key: 'onEnabled', value: function onEnabled() { var _this2 = this; var feature = (this.session.plugins[this.parent] || {}).feature; if (feature) this.connection.execute('VAR obj, set;\n obj = CADH_RealToId(' + feature + ');\n set = @BaseModelingCommonFuncs.GetDimensionSet(obj);\n set.CreateDimensions(obj);'); this.connection.observe(function (state) { return state.tree[state.tree.root].dimensions; }, function (next, prev) { return (0, _helpers.arrayDiff)(next, prev, function (newDims) { return newDims.forEach(function (id) { var tree = _this2.connection.tree; if (feature && feature !== tree[tree[id].parent].members.owner.value) return; // skip dimensions of different features _this2.unsubscribes.set(id, _this2.connection.observe(function (state) { return state.tree[id]; }, _this2.onChange, { fireOnStart: true, onRemove: _this2.onRemove, unsubscribeOnUndefined: true })); }); }); }, { manager: this.addSubscription.bind(this), fireOnStart: true }); this.pool.createInteraction().on((0, _defineProperty3.default)({}, _object2.default.Events.Lifecycle.Rendered, this.onRender.bind(this))); } }, { key: 'onDisabled', value: function onDisabled() { var unsubscribes = [].concat((0, _toConsumableArray3.default)(this.unsubscribes.values())); unsubscribes.forEach(function (unsubscribe) { return unsubscribe(); }); } }, { key: 'onChange', value: function onChange(dimension) { if (!dimension) return; var id = dimension.id; var g = void 0; if (this.graphics.has(id)) { g = this.graphics.get(id); } else { g = (0, _graphics2.default)(dimension.class, this); this.graphics.set(id, g); this.pool.add(g); } g.updateFromState(dimension, this.tree); } }, { key: 'onRemove', value: function onRemove(dimension) { var id = dimension.id; this.graphics.get(id).destroy(); this.graphics.delete(id); this.unsubscribes.delete(id); return; } }, { key: 'onRender', value: function onRender() { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(this.graphics.values()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var g = _step.value; g.update(); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }]); return Dimension; }(_plugin2.default); exports.default = Dimension;