Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkMRMLThreeDViewInteractorStyle.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: $RCSfile: vtkInteractorStyleTrackballCamera.h,v $
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or https://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
15
16#ifndef __vtkMRMLThreeDViewInteractorStyle_h
17#define __vtkMRMLThreeDViewInteractorStyle_h
18
19#include "vtkMRMLDisplayableManagerExport.h"
20
21// MRML includes
22#include "vtkMRMLCameraNode.h"
24
25// VTK includes
26#include "vtkObject.h"
27#include "vtkSmartPointer.h"
28
29class vtkCellPicker;
30class vtkVolumePicker;
31class vtkWorldPointPicker;
32
51class VTK_MRML_DISPLAYABLEMANAGER_EXPORT vtkMRMLThreeDViewInteractorStyle :
53{
54public:
57 void PrintSelf(ostream& os, vtkIndent indent) override;
58
59 void SetDisplayableManagers(vtkMRMLDisplayableManagerGroup* displayableManagers) override;
60
64 void OnLeave() override;
65
69 bool DelegateInteractionEventToDisplayableManagers(vtkEventData* inputEventData) override;
70
73 vtkGetObjectMacro ( CameraNode, vtkMRMLCameraNode );
74 vtkSetObjectMacro ( CameraNode, vtkMRMLCameraNode );
75
78 void SetInteractor(vtkRenderWindowInteractor *interactor) override;
79
80protected:
83
84 bool QuickPick(int x, int y, double pickPoint[3]);
85
87 unsigned long event, void *callData) override;
88
90
91 // For jump to slice feature (when mouse is moved while shift key is pressed)
92 // Slow but can pick anything (volumes and semi-transparent surfaces)
93 vtkSmartPointer<vtkCellPicker> AccuratePicker;
94 // Picker that uses Z buffer. Fast but ignores volumes and semi-transparent surfaces.
95 vtkSmartPointer<vtkWorldPointPicker> QuickPicker;
96 // Picker for volume-rendered images. Fast, as it only computes a single ray.
97 vtkSmartPointer<vtkVolumePicker> QuickVolumePicker;
98
99private:
101 void operator=(const vtkMRMLThreeDViewInteractorStyle&) = delete;
102};
103
104#endif
Superclass for displayable manager classes.
MRML node to represent camera node.
DisplayableManagerGroup is a collection of DisplayableManager.
void SetDisplayableManagers(vtkMRMLDisplayableManagerGroup *displayableManagers) override
bool QuickPick(int x, int y, double pickPoint[3])
void ProcessDisplayableManagerEvents(vtkMRMLAbstractDisplayableManager *displayableManager, unsigned long event, void *callData) override
void SetInteractor(vtkRenderWindowInteractor *interactor) override
Reimplemented to set the default interactive update rate.
vtkSmartPointer< vtkVolumePicker > QuickVolumePicker
vtkSmartPointer< vtkWorldPointPicker > QuickPicker
bool DelegateInteractionEventToDisplayableManagers(vtkEventData *inputEventData) override
static vtkMRMLThreeDViewInteractorStyle * New()
vtkSmartPointer< vtkCellPicker > AccuratePicker
void PrintSelf(ostream &os, vtkIndent indent) override
virtual bool DelegateInteractionEventToDisplayableManagers(unsigned long event)