UNPKG

awv3

Version:
87 lines (68 loc) 2.87 kB
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized"; import * as THREE from 'three'; import Object3 from '../../../three/object3'; import Ccref from '../ccref'; import { getArcAngles, getClass, intersectLines } from '../geomutils'; import HoverHandler from './hover'; import { SplitAllCurves, SplitCurvesMergeBack, Return, Sequence } from '../command/lowlevel'; import { removeCommands } from '../command/highlevel'; var TrimHandler = /*#__PURE__*/ function (_HoverHandler) { _inheritsLoose(TrimHandler, _HoverHandler); function TrimHandler() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _HoverHandler.call.apply(_HoverHandler, [this].concat(args)) || this; var _self = _assertThisInitialized(_this); _this.sketcher.multiRunner.run({ command: 'Execute', task: Sequence(Return(SplitAllCurves(_this.sketcher.activeSketch))).unparse() }).then(function () { for (var _iterator = _self.sketch.descendants, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var _object = _ref; if (!_self.filterObjectsWithInteraction(_object)) continue; if (!_object.isTrimmedPart()) { _object.graphics.visible = false; } } }); return _this; } var _proto = TrimHandler.prototype; _proto.filterObjectsWithInteraction = function filterObjectsWithInteraction(object) { return object.id !== this.sketch.id && object.graphics !== undefined && !object.isConstraint(); }; _proto.addInteraction = function addInteraction(object) { if (!this.filterObjectsWithInteraction(object)) return; if (object.isTrimmedPart() && !object.isPoint()) { _HoverHandler.prototype.addInteraction.call(this, object); } }; // override because base method calls removeInteraction based on interactions.keys instead of trimObjects.keys _proto.removeInteractions = function removeInteractions() { this.sketcher.multiRunner.run({ command: 'Execute', task: Sequence(Return(SplitCurvesMergeBack(this.sketcher.activeSketch))).unparse() }); }; _proto[Object3.Events.Interaction.Clicked] = function (object, hitObject) { this.sketcher.multiRunner.run({ command: 'Execute', task: Sequence(removeCommands(this.activeSketch, object)).unparse() }); }; return TrimHandler; }(HoverHandler); export { TrimHandler as default };