@kitware/vtk.js
Version:
Visualization Toolkit for the Web
68 lines (56 loc) • 2.16 kB
JavaScript
import { m as macro } from '../../macros2.js';
import vtkCellPicker from '../../Rendering/Core/CellPicker.js';
import vtkAbstractManipulator from './AbstractManipulator.js';
// ----------------------------------------------------------------------------
// vtkPickerManipulator methods
// ----------------------------------------------------------------------------
function vtkPickerManipulator(publicAPI, model) {
// Set our className
model.classHierarchy.push('vtkPickerManipulator');
publicAPI.handleEvent = callData => {
const {
position,
pokedRenderer
} = callData;
model.picker.pick([position.x, position.y, 0.0], pokedRenderer);
if (model.picker.getPickedPositions().length > 0) {
model.position = model.picker.getPickedPositions()[0];
} else {
model.position = null;
}
return model._addWorldDeltas({
worldCoords: model.position
});
};
}
// ----------------------------------------------------------------------------
// Object factory
// ----------------------------------------------------------------------------
function defaultValues(initialValues) {
if (!initialValues.picker) {
// Default picker
const picker = vtkCellPicker.newInstance();
picker.initializePickList();
picker.setPickFromList(true);
picker.setTolerance(0);
initialValues.picker = picker;
}
return {
...initialValues
};
}
// ----------------------------------------------------------------------------
function extend(publicAPI, model) {
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
vtkAbstractManipulator.extend(publicAPI, model, defaultValues(initialValues));
macro.setGet(publicAPI, model, ['picker']);
vtkPickerManipulator(publicAPI, model);
}
// ----------------------------------------------------------------------------
const newInstance = macro.newInstance(extend, 'vtkPickerManipulator');
// ----------------------------------------------------------------------------
var vtkPickerManipulator$1 = {
extend,
newInstance
};
export { vtkPickerManipulator$1 as default, extend, newInstance };