UNPKG

@turbox3d/design-engine

Version:

Large-scale design application engine library

121 lines (120 loc) 5.17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _reactivity = require("@turbox3d/reactivity"); var _commandManager = require("@turbox3d/command-manager"); var _index2 = _interopRequireDefault(require("../selection-command/index")); var _entityObject = _interopRequireDefault(require("../entity-object")); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if ((typeof Reflect === "undefined" ? "undefined" : (0, _typeof2["default"])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var Hint = /*#__PURE__*/function (_Domain) { function Hint() { (0, _classCallCheck2["default"])(this, Hint); return _callSuper(this, Hint, arguments); } (0, _inherits2["default"])(Hint, _Domain); return (0, _createClass2["default"])(Hint, [{ key: "hint", value: function hint(model) { this.hintedEntity = model; } }, { key: "unHint", value: function unHint() { this.hintedEntity = undefined; } }]); }(_reactivity.Domain); __decorate([_reactivity.reactor], Hint.prototype, "hintedEntity", void 0); __decorate([(0, _reactivity.mutation)()], Hint.prototype, "hint", null); __decorate([(0, _reactivity.mutation)()], Hint.prototype, "unHint", null); var HintCommand = exports["default"] = /*#__PURE__*/function (_Command) { function HintCommand() { var _this; (0, _classCallCheck2["default"])(this, HintCommand); _this = _callSuper(this, HintCommand, arguments); _this.hintDomain = new Hint(); return _this; } /** * @param selectionCommand selection command 实例,hint 与 select 同时启用时需要传入 */ (0, _inherits2["default"])(HintCommand, _Command); return (0, _createClass2["default"])(HintCommand, [{ key: "active", value: function active(selectionCommand) { this.selection = selectionCommand; } /** 获取被 hover 的 entity */ }, { key: "getHintedEntity", value: function getHintedEntity() { return this.hintDomain.hintedEntity; } /** hint 指定 entity */ }, { key: "hint", value: function hint(model) { this.hintDomain.hint(model); } /** 取消 hint */ }, { key: "unHint", value: function unHint() { this.hintDomain.unHint(); } }, { key: "onHoverIn", value: function onHoverIn(viewEntity) { var model = _entityObject["default"].getEntityById(viewEntity.id); if (!model) { this.hintDomain.unHint(); return; } if (!this.selection) { this.hintDomain.hint(model); return; } var path = model.getParentPathChain(); var selectedEntities = this.selection.getSelectedEntities(); if (selectedEntities.length && selectedEntities.includes(path[0])) { this.hintDomain.unHint(); return; } if (selectedEntities.length && selectedEntities.includes(model)) { this.hintDomain.unHint(); return; } var layerDepth = this.selection.getLayerDepth(); var pathLength = path.length; if (selectedEntities.length && selectedEntities[0].getRoot() !== path[0]) { var _index = this.selection.getSelectMode() === _index2["default"].ESelectMode.OVERALL ? 1 : 2; this.hintDomain.hint(path[_index - 1]); return; } var index = Math.min(pathLength, layerDepth); this.hintDomain.hint(path[index - 1]); } }, { key: "onHoverOut", value: function onHoverOut() { this.hintDomain.unHint(); } }]); }(_commandManager.Command);