VTK
|
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 "vtkRenderingCoreModule.h" // For export macro 00040 #include "vtkProp3D.h" 00041 00042 class vtkCamera; 00043 class vtkMapper; 00044 00045 00046 class VTKRENDERINGCORE_EXPORT vtkProp3DFollower : public vtkProp3D 00047 { 00048 public: 00050 static vtkProp3DFollower *New(); 00051 00053 00054 vtkTypeMacro(vtkProp3DFollower,vtkProp3D); 00055 void PrintSelf(ostream& os, vtkIndent indent); 00057 00059 00060 virtual void SetProp3D(vtkProp3D *prop); 00061 virtual vtkProp3D *GetProp3D(); 00063 00065 00067 virtual void SetCamera(vtkCamera*); 00068 vtkGetObjectMacro(Camera, vtkCamera); 00070 00072 00075 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00076 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); 00077 virtual int RenderVolumetricGeometry(vtkViewport *viewport); 00079 00081 virtual int HasTranslucentPolygonalGeometry(); 00082 00085 virtual void ReleaseGraphicsResources(vtkWindow*); 00086 00090 virtual void ComputeMatrix(); 00091 00093 void ShallowCopy(vtkProp *prop); 00094 00096 virtual double *GetBounds(); 00097 00099 00101 void InitPathTraversal(); 00102 virtual vtkAssemblyPath *GetNextPath(); 00104 00105 protected: 00106 vtkProp3DFollower(); 00107 ~vtkProp3DFollower(); 00108 00109 vtkCamera *Camera; 00110 vtkProp3D *Device; 00111 00112 //Internal matrices to avoid New/Delete for performance reasons 00113 vtkMatrix4x4 *InternalMatrix; 00114 00115 private: 00116 vtkProp3DFollower(const vtkProp3DFollower&); // Not implemented. 00117 void operator=(const vtkProp3DFollower&); // Not implemented. 00118 }; 00119 00120 #endif