awv3
Version:
⚡ AWV3 embedded CAD
121 lines (94 loc) • 3.77 kB
JavaScript
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
import * as THREE from 'three';
import Object3 from '../../../three/object3';
import { updateCommand } from '../command/highlevel';
import { UpdateDimensions } from '../command/lowlevel';
import { move } from '../geomutils';
import HoverHandler from './hover';
import Ccref from '../ccref';
import Workaxis from '../../workaxis/index';
var RevolveHandler =
/*#__PURE__*/
function (_HoverHandler) {
_inheritsLoose(RevolveHandler, _HoverHandler);
function RevolveHandler(sketcher, name, activateHandlerInfo) {
var _this;
_this = _HoverHandler.call(this, sketcher, name) || this;
_this.selectedObjs = activateHandlerInfo ? activateHandlerInfo.selectedObjs : undefined;
_this.additionalInteractionTypes = ['Workaxis'];
_this.axisWithInteraction = []; // this.state = 0;
return _this;
}
var _proto = RevolveHandler.prototype;
_proto.destroy = function destroy() {
this.sketcher.selector.unselectAll().removeAll();
_HoverHandler.prototype.destroy.call(this);
}; //Override from BaseHandler
_proto.addInteractions = function addInteractions() {
var _this2 = this;
_HoverHandler.prototype.addInteractionFor.call(this, this.sketch.descendants);
var tree = this.sketcher.connection.tree;
var features = tree[tree.root].features.map(function (featureId) {
return new Ccref(_this2.sketcher, featureId);
});
for (var _iterator = features, _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 _feature = _ref;
if (_feature.class == "CC_WorkAxis") {
var axisPlugin = this.sketcher.connection.featurePlugins[_feature.id];
this.axisWithInteraction.push(axisPlugin.plugin);
}
}
this.addInteractionFor(this.axisWithInteraction);
};
_proto.removeInteractions = function removeInteractions() {
_HoverHandler.prototype.removeInteractions.call(this);
this.removeInteractionFor(this.axisWithInteraction);
};
_proto.filterObjectsWithInteraction = function filterObjectsWithInteraction(object) {
return object instanceof Workaxis || object.id !== this.sketch.id && object.graphics !== undefined && object.isLine();
}; //Note: overrides callbacks of HoverHandler.
//TODO: derive this handler from BaseHandler, not from HoverHandler
_proto[Object3.Events.Interaction.Hovered] = function (ccref, hitObject) {
var object = hitObject.object,
material = hitObject.material,
first = hitObject.first;
if (!first) return;
this.sketcher.selector.hovered({
object: object,
material: material
});
};
_proto[Object3.Events.Interaction.Unhovered] = function (ccref, hitObject) {
var object = hitObject.object,
material = hitObject.material,
first = hitObject.first;
this.sketcher.selector.unhovered({
object: object,
material: material
});
};
_proto[Object3.Events.Interaction.Clicked] = function (object, hitObject) {
if (!hitObject.first) return;
if (object instanceof Ccref) {
this.sketcher.selector.clicked(hitObject);
} else if (object instanceof Workaxis) {
object = new Ccref(this.sketcher, object.feature);
}
if (this.selectedObjs) {
this.sketcher.createNewRevolve(this.selectedObjs, object);
} else {
this.sketcher.finishWorkAxisMode(object);
}
};
return RevolveHandler;
}(HoverHandler);
export { RevolveHandler as default };