All files / Sources/Widgets/Widgets3D/InteractiveOrientationWidget behavior.js

0% Statements 0/12
0% Branches 0/10
0% Functions 0/3
0% Lines 0/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47                                                                                             
import macro from 'vtk.js/Sources/macros';
 
export default function widgetBehavior(publicAPI, model) {
  model.classHierarchy.push('vtkInteractiveOrientationWidgetProp');
  macro.event(publicAPI, model, 'OrientationChange');
 
  // --------------------------------------------------------------------------
  // Right click: Delete handle
  // --------------------------------------------------------------------------
 
  publicAPI.handleRightButtonPress = (e) => {
    if (
      !model.activeState ||
      !model.activeState.getActive() ||
      !model.pickable
    ) {
      return macro.VOID;
    }
    publicAPI.invokeOrientationChange({
      action: 'rightPress',
      event: e,
      ...model.activeState.get('up', 'right', 'direction'),
    });
    return macro.EVENT_ABORT;
  };
 
  // --------------------------------------------------------------------------
  // Left press: Select handle to drag
  // --------------------------------------------------------------------------
 
  publicAPI.handleLeftButtonPress = (e) => {
    if (
      !model.activeState ||
      !model.activeState.getActive() ||
      !model.pickable
    ) {
      return macro.VOID;
    }
    publicAPI.invokeOrientationChange({
      action: 'leftPress',
      event: e,
      ...model.activeState.get('up', 'right', 'direction'),
    });
    return macro.EVENT_ABORT;
  };
}