00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkFollower.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 =========================================================================*/ 00052 #ifndef __vtkFollower_h 00053 #define __vtkFollower_h 00054 00055 #include "vtkActor.h" 00056 00057 class vtkCamera; 00058 00059 class VTK_RENDERING_EXPORT vtkFollower : public vtkActor 00060 { 00061 public: 00062 vtkTypeRevisionMacro(vtkFollower,vtkActor); 00063 void PrintSelf(ostream& os, vtkIndent indent); 00064 00066 static vtkFollower *New(); 00067 00069 00071 virtual void SetCamera(vtkCamera*); 00072 vtkGetObjectMacro(Camera,vtkCamera); 00074 00076 00079 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00080 virtual int RenderTranslucentGeometry(vtkViewport *viewport); 00081 virtual void Render(vtkRenderer *ren); 00083 00085 00086 virtual void GetMatrix(vtkMatrix4x4 *m); 00087 virtual void GetMatrix(double m[16]); 00088 virtual vtkMatrix4x4* GetMatrix() 00089 {return this->vtkActor::GetMatrix();} 00091 00093 void ShallowCopy(vtkProp *prop); 00094 00095 protected: 00096 vtkFollower(); 00097 ~vtkFollower(); 00098 00099 vtkCamera *Camera; 00100 vtkActor *Device; 00101 private: 00102 // hide the two parameter Render() method from the user and the compiler. 00103 virtual void Render(vtkRenderer *, vtkMapper *) {}; 00104 private: 00105 vtkFollower(const vtkFollower&); // Not implemented. 00106 void operator=(const vtkFollower&); // Not implemented. 00107 }; 00108 00109 #endif 00110 00111 00112