VTK
vtkInteractorStyle3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkInteractorStyle3D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://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 =========================================================================*/
51 #ifndef vtkInteractorStyle3D_h
52 #define vtkInteractorStyle3D_h
53 
54 #include "vtkRenderingCoreModule.h" // For export macro
55 #include "vtkInteractorStyle.h"
56 
57 class vtkPropPicker3D;
58 class vtkProp3D;
59 class vtkMatrix3x3;
60 class vtkMatrix4x4;
61 class vtkTransform;
62 
63 class VTKRENDERINGCORE_EXPORT vtkInteractorStyle3D : public vtkInteractorStyle
64 {
65 public:
66  static vtkInteractorStyle3D *New();
68  void PrintSelf(ostream& os, vtkIndent indent);
69 
71 
75  virtual void OnMouseMove();
76  virtual void OnLeftButtonDown();
77  virtual void OnLeftButtonUp();
78  virtual void OnRightButtonDown();
79  virtual void OnRightButtonUp();
81 
83 
86  virtual void OnPinch();
87  virtual void OnPan();
89 
90  // This method handles updating the prop based on changes in the devices
91  // pose. We use rotate as the state to mean adjusting-the-actor-pose
92  virtual void Rotate();
93 
94  // This method handles updating the camera based on changes in the devices
95  // pose. We use Dolly as the state to mean moving the camera forward
96  virtual void Dolly();
97 
98 protected:
101 
102  void FindPickedActor(double x, double y, double z);
103 
104  void Prop3DTransform(vtkProp3D *prop3D,
105  double *boxCenter,
106  int NumRotation,
107  double **rotate,
108  double *scale);
109 
115  double AppliedTranslation[3];
116 
117 private:
118  vtkInteractorStyle3D(const vtkInteractorStyle3D&) VTK_DELETE_FUNCTION; // Not implemented.
119  void operator=(const vtkInteractorStyle3D&) VTK_DELETE_FUNCTION; // Not implemented.
120 };
121 
122 #endif
virtual void OnLeftButtonDown()
virtual void Rotate()
These methods for the different interactions in different modes are overridden in subclasses to perfo...
virtual void OnRightButtonDown()
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:41
virtual void OnLeftButtonUp()
static vtkInteractorStyle * New()
This class must be supplied with a vtkRenderWindowInteractor wrapper or parent.
extends interaction to support 3D input
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:60
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:46
virtual void OnRightButtonUp()
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:39
pick an actor/prop given XYZ coordinates
vtkPropPicker3D * InteractionPicker
provide event-driven interface to the rendering window (defines trackball mode)
represent and manipulate 3x3 transformation matrices
Definition: vtkMatrix3x3.h:36
virtual void OnPinch()
gesture based events
virtual void OnMouseMove()
Generic event bindings can be overridden in subclasses.