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