00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCameraActor.h,v $ 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 =========================================================================*/ 00025 #ifndef __vtkCameraActor_h 00026 #define __vtkCameraActor_h 00027 00028 #include "vtkProp3D.h" 00029 00030 class vtkCamera; 00031 class vtkFrustumSource; 00032 class vtkPolyDataMapper; 00033 class vtkActor; 00034 00035 class VTK_RENDERING_EXPORT vtkCameraActor : public vtkProp3D 00036 { 00037 public: 00038 static vtkCameraActor *New(); 00039 vtkTypeRevisionMacro(vtkCameraActor,vtkProp3D); 00040 void PrintSelf(ostream& os, vtkIndent indent); 00041 00043 00044 void SetCamera(vtkCamera *camera); 00045 vtkGetObjectMacro(Camera,vtkCamera); 00047 00049 00051 vtkSetMacro(WidthByHeightRatio,double); 00052 vtkGetMacro(WidthByHeightRatio,double); 00054 00056 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00057 00059 virtual int HasTranslucentPolygonalGeometry(); 00060 00064 void ReleaseGraphicsResources(vtkWindow *); 00065 00067 double *GetBounds(); 00068 00070 unsigned long int GetMTime(); 00071 00072 protected: 00073 vtkCameraActor(); 00074 ~vtkCameraActor(); 00075 00076 void UpdateViewProps(); 00077 00078 vtkCamera *Camera; 00079 double WidthByHeightRatio; 00080 00081 vtkFrustumSource *FrustumSource; 00082 vtkPolyDataMapper *FrustumMapper; 00083 vtkActor *FrustumActor; 00084 00085 private: 00086 vtkCameraActor(const vtkCameraActor&); // Not implemented. 00087 void operator=(const vtkCameraActor&); // Not implemented. 00088 }; 00089 00090 #endif