/** * Progam made by Olivier Bernard, associate professor * at Institut National des Sciences Appliquees (INSA) Lyon, * CREATIS-LRMN Laboratory, * 69621 Villeurbanne, France, * 20th of May 2014 */ #ifndef __vtkMyInteractorStyleTrackballCameraOpenHeartXZ_h__ #define __vtkMyInteractorStyleTrackballCameraOpenHeartXZ_h__ #include #include #include "OpenHeartGui.h" class vtkMyInteractorStyleTrackballCameraOpenHeartXZ : public vtkInteractorStyleTrackballCamera { public: void SetOpenHeartGui( OpenHeartGui *win ) { this->window = win; } static vtkMyInteractorStyleTrackballCameraOpenHeartXZ *New() { /// First try to create the object from the vtkObjectFactory vtkObject *ret = vtkObjectFactory::CreateInstance ("vtkMyInteractorStyleTrackballCameraOpenHeartXZ"); if (ret) { return (vtkMyInteractorStyleTrackballCameraOpenHeartXZ *) ret; } /// If the factory was unable to create the object, then create it here. return (new vtkMyInteractorStyleTrackballCameraOpenHeartXZ); } virtual void OnLeftButtonDown() { } virtual void OnRightButtonDown() { } virtual void OnMiddleButtonDown() { } virtual void OnMouseWheelForward(); virtual void OnMouseWheelBackward(); virtual void OnEnter(); virtual void OnLeave(); protected: vtkMyInteractorStyleTrackballCameraOpenHeartXZ() : FlagFirstTime(0), Step(1), PadBound(0.2) { for (int i=0; i<6; i++) Bounds[i] = 0; for (int i=0; i<4; i++) Limits[i] = 0; } ~vtkMyInteractorStyleTrackballCameraOpenHeartXZ() {} OpenHeartGui *window; /// Attributes int FlagFirstTime; double Bounds[6]; double Limits[4]; int Step; double PadBound; /// Methods void GetPickerPosition(double *pos); bool IsInside(double *pos); }; #endif