@kitware/vtk.js
Version:
Visualization Toolkit for the Web
69 lines (55 loc) • 2.65 kB
JavaScript
import { m as macro } from '../../macros2.js';
import vtkInteractorStyleManipulator from './InteractorStyleManipulator.js';
import vtkMouseCameraUnicamManipulator from '../Manipulators/MouseCameraUnicamManipulator.js';
// ----------------------------------------------------------------------------
// vtkInteractorStyleUnicam methods
// ----------------------------------------------------------------------------
function vtkInteractorStyleUnicam(publicAPI, model) {
model.classHierarchy.push('vtkInteractorStyleUnicam');
model.unicamManipulator = vtkMouseCameraUnicamManipulator.newInstance({
button: 1
});
publicAPI.addMouseManipulator(model.unicamManipulator);
publicAPI.getUseWorldUpVec = () => model.unicamManipulator.getUseWorldUpVec();
publicAPI.setUseWorldUpVec = useWorldUpVec => {
model.unicamManipulator.setUseWorldUpVec(useWorldUpVec);
};
publicAPI.getWorldUpVec = () => model.unicamManipulator.getWorldUpVec();
publicAPI.setWorldUpVec = (x, y, z) => {
model.unicamManipulator.setWorldUpVec(x, y, z);
};
publicAPI.getUseHardwareSelector = () => model.unicamManipulator.getUseHardwareSelector();
publicAPI.setUseHardwareSelector = useHardwareSelector => {
model.unicamManipulator.setUseHardwareSelector(useHardwareSelector);
};
publicAPI.getFocusSphereColor = () => {
model.unicamManipulator.getFocusSphereColor();
};
publicAPI.setFocusSphereColor = (r, g, b) => {
model.unicamManipulator.setFocusSphereColor(r, g, b);
};
publicAPI.getFocusSphereRadiusFactor = () => model.unicamManipulator.getFocusSphereRadiusFactor();
publicAPI.setFocusSphereRadiusFactor = focusSphereRadiusFactor => {
model.unicamManipulator.setFocusSphereRadiusFactor(focusSphereRadiusFactor);
};
}
// ----------------------------------------------------------------------------
// Object factory
// ----------------------------------------------------------------------------
const DEFAULT_VALUES = {};
// ----------------------------------------------------------------------------
function extend(publicAPI, model, initialValues = {}) {
Object.assign(model, DEFAULT_VALUES, initialValues);
// Inheritance
vtkInteractorStyleManipulator.extend(publicAPI, model, initialValues);
// Object specific methods
vtkInteractorStyleUnicam(publicAPI, model);
}
// ----------------------------------------------------------------------------
const newInstance = macro.newInstance(extend, 'vtkInteractorStyleUnicam');
// ----------------------------------------------------------------------------
var index = {
newInstance,
extend
};
export { index as default, extend, newInstance };