awv3
Version:
⚡ AWV3 embedded CAD
87 lines (68 loc) • 2.87 kB
JavaScript
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 };