00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkInteractorStyleTrackballCamera.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00055 #ifndef __vtkInteractorStyleTrackballCamera_h 00056 #define __vtkInteractorStyleTrackballCamera_h 00057 00058 #include "vtkInteractorStyle.h" 00059 00060 class VTK_RENDERING_EXPORT vtkInteractorStyleTrackballCamera : public vtkInteractorStyle 00061 { 00062 public: 00063 static vtkInteractorStyleTrackballCamera *New(); 00064 vtkTypeRevisionMacro(vtkInteractorStyleTrackballCamera,vtkInteractorStyle); 00065 void PrintSelf(ostream& os, vtkIndent indent); 00066 00068 00070 virtual void OnMouseMove(); 00071 virtual void OnLeftButtonDown(); 00072 virtual void OnLeftButtonUp(); 00073 virtual void OnMiddleButtonDown(); 00074 virtual void OnMiddleButtonUp(); 00075 virtual void OnRightButtonDown(); 00076 virtual void OnRightButtonUp(); 00078 00079 // These methods for the different interactions in different modes 00080 // are overridden in subclasses to perform the correct motion. Since 00081 // they are called by OnTimer, they do not have mouse coord parameters 00082 // (use interactor's GetEventPosition and GetLastEventPosition) 00083 virtual void Rotate(); 00084 virtual void Spin(); 00085 virtual void Pan(); 00086 virtual void Dolly(); 00087 00088 protected: 00089 vtkInteractorStyleTrackballCamera(); 00090 ~vtkInteractorStyleTrackballCamera(); 00091 00092 float MotionFactor; 00093 00094 private: 00095 vtkInteractorStyleTrackballCamera(const vtkInteractorStyleTrackballCamera&); // Not implemented. 00096 void operator=(const vtkInteractorStyleTrackballCamera&); // Not implemented. 00097 }; 00098 00099 #endif