00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkCameraActor.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 =========================================================================*/ 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 class vtkProperty; 00035 00036 class VTK_RENDERING_EXPORT vtkCameraActor : public vtkProp3D 00037 { 00038 public: 00039 static vtkCameraActor *New(); 00040 vtkTypeMacro(vtkCameraActor,vtkProp3D); 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00044 00045 void SetCamera(vtkCamera *camera); 00046 vtkGetObjectMacro(Camera,vtkCamera); 00048 00050 00052 vtkSetMacro(WidthByHeightRatio,double); 00053 vtkGetMacro(WidthByHeightRatio,double); 00055 00057 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00058 00060 virtual int HasTranslucentPolygonalGeometry(); 00061 00065 void ReleaseGraphicsResources(vtkWindow *); 00066 00068 double *GetBounds(); 00069 00071 unsigned long int GetMTime(); 00072 00074 vtkProperty *GetProperty(); 00075 00077 void SetProperty(vtkProperty *p); 00078 00079 protected: 00080 vtkCameraActor(); 00081 ~vtkCameraActor(); 00082 00083 void UpdateViewProps(); 00084 00085 vtkCamera *Camera; 00086 double WidthByHeightRatio; 00087 00088 vtkFrustumSource *FrustumSource; 00089 vtkPolyDataMapper *FrustumMapper; 00090 vtkActor *FrustumActor; 00091 00092 private: 00093 vtkCameraActor(const vtkCameraActor&); // Not implemented. 00094 void operator=(const vtkCameraActor&); // Not implemented. 00095 }; 00096 00097 #endif