2 * Progam made by Olivier Bernard, associate professor
3 * at Institut National des Sciences Appliquees (INSA) Lyon,
4 * CREATIS-LRMN Laboratory,
5 * 69621 Villeurbanne, France,
9 #ifndef __vtkMyInteractorStyleTrackballCameraOpenHeart_h__
10 #define __vtkMyInteractorStyleTrackballCameraOpenHeart_h__
12 #include <vtkObjectFactory.h>
13 #include <vtkInteractorStyleTrackballCamera.h>
14 #include "OpenHeartGui.h"
17 class vtkMyInteractorStyleTrackballCameraOpenHeart : public vtkInteractorStyleTrackballCamera
22 void SetOpenHeartGui( OpenHeartGui *win ) { this->window = win; }
24 static vtkMyInteractorStyleTrackballCameraOpenHeart *New()
26 /// First try to create the object from the vtkObjectFactory
27 vtkObject *ret = vtkObjectFactory::CreateInstance ("vtkMyInteractorStyleTrackballCameraOpenHeart");
30 return (vtkMyInteractorStyleTrackballCameraOpenHeart *) ret;
32 /// If the factory was unable to create the object, then create it here.
33 return (new vtkMyInteractorStyleTrackballCameraOpenHeart);
36 virtual void OnChar();
37 virtual void OnMouseWheelForward();
38 virtual void OnMouseWheelBackward();
40 virtual void OnLeftButtonDown();
41 virtual void OnLeftButtonUp();
42 virtual void OnEnter();
43 virtual void OnLeave();
48 vtkMyInteractorStyleTrackballCameraOpenHeart() : FlagFirstTime(0), Step(1), PadBound(0.2), FlagLeftClick(false)
50 for (int i=0; i<6; i++) {
54 for (int i=0; i<3; i++) {
55 PadSliceDetection[i] = 0;
62 ~vtkMyInteractorStyleTrackballCameraOpenHeart()
70 double PadSliceDetection[3];
78 void MoveForwardXYPlan();
79 void MoveForwardXZPlan();
80 void MoveForwardYZPlan();
83 void MoveBackwardXYPlan();
84 void MoveBackwardXZPlan();
85 void MoveBackwardYZPlan();
87 void GetPickerPosition(double *pos);
88 bool IsInside(double *pos);