VTK
dox/Rendering/vtkCameraActor.h
Go to the documentation of this file.
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