UNPKG

@acransac/vtk.js

Version:

Visualization Toolkit for the Web

72 lines (56 loc) 2.68 kB
import macro from 'vtk.js/Sources/macro'; import vtkInteractorStyleManipulator from 'vtk.js/Sources/Interaction/Style/InteractorStyleManipulator'; import vtkMouseCameraUnicamManipulator from 'vtk.js/Sources/Interaction/Manipulators/MouseCameraUnicamManipulator'; // ---------------------------------------------------------------------------- // 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 = {}; // ---------------------------------------------------------------------------- export function extend(publicAPI, model, initialValues = {}) { Object.assign(model, DEFAULT_VALUES, initialValues); // Inheritance vtkInteractorStyleManipulator.extend(publicAPI, model, initialValues); // Object specific methods vtkInteractorStyleUnicam(publicAPI, model); } // ---------------------------------------------------------------------------- export const newInstance = macro.newInstance( extend, 'vtkInteractorStyleUnicam' ); // ---------------------------------------------------------------------------- export default { newInstance, extend };