00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkProp3DFollower.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00036 #ifndef __vtkProp3DFollower_h 00037 #define __vtkProp3DFollower_h 00038 00039 #include "vtkProp3D.h" 00040 00041 class vtkCamera; 00042 class vtkMapper; 00043 00044 00045 class VTK_RENDERING_EXPORT vtkProp3DFollower : public vtkProp3D 00046 { 00047 public: 00049 static vtkProp3DFollower *New(); 00050 00052 00053 vtkTypeMacro(vtkProp3DFollower,vtkProp3D); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00056 00058 00059 virtual void SetProp3D(vtkProp3D *prop); 00060 virtual vtkProp3D *GetProp3D(); 00062 00064 00066 virtual void SetCamera(vtkCamera*); 00067 vtkGetObjectMacro(Camera,vtkCamera); 00069 00071 00074 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00075 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); 00076 virtual int RenderVolumetricGeometry(vtkViewport *viewport); 00078 00080 virtual int HasTranslucentPolygonalGeometry(); 00081 00084 virtual void ReleaseGraphicsResources(vtkWindow*); 00085 00089 virtual void ComputeMatrix(); 00090 00092 void ShallowCopy(vtkProp *prop); 00093 00095 virtual double *GetBounds(); 00096 00098 00100 void InitPathTraversal(); 00101 virtual vtkAssemblyPath *GetNextPath(); 00103 00104 protected: 00105 vtkProp3DFollower(); 00106 ~vtkProp3DFollower(); 00107 00108 vtkCamera *Camera; 00109 vtkProp3D *Device; 00110 00111 private: 00112 vtkProp3DFollower(const vtkProp3DFollower&); // Not implemented. 00113 void operator=(const vtkProp3DFollower&); // Not implemented. 00114 00115 //Internal matrices to avoid New/Delete for performance reasons 00116 vtkMatrix4x4 *InternalMatrix; 00117 00118 }; 00119 00120 #endif