Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Rendering/vtkActor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkActor.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00054 #ifndef __vtkActor_h
00055 #define __vtkActor_h
00056 
00057 #include "vtkProp3D.h"
00058 
00059 class vtkRenderer;
00060 class vtkPropCollection;
00061 class vtkActorCollection;
00062 class vtkTexture;
00063 class vtkMapper;
00064 class vtkProperty;
00065 
00066 class VTK_RENDERING_EXPORT vtkActor : public vtkProp3D
00067 {
00068 public:
00069   vtkTypeRevisionMacro(vtkActor,vtkProp3D);
00070   void PrintSelf(ostream& os, vtkIndent indent);
00071 
00075   static vtkActor *New();
00076 
00080   virtual void GetActors(vtkPropCollection *);
00081 
00083 
00084   virtual int RenderOpaqueGeometry(vtkViewport *viewport);
00085   virtual int RenderTranslucentGeometry(vtkViewport *viewport);
00087 
00093   virtual void Render(vtkRenderer *, vtkMapper *) {};
00094 
00096   void ShallowCopy(vtkProp *prop);
00097 
00101   void ReleaseGraphicsResources(vtkWindow *);
00102 
00104 
00109   void SetProperty(vtkProperty *lut);
00110   vtkProperty *GetProperty();
00112   
00116   virtual vtkProperty* MakeProperty();
00117 
00119 
00123   void SetBackfaceProperty(vtkProperty *lut);
00124   vtkProperty *GetBackfaceProperty();
00126 
00128 
00131   virtual void SetTexture(vtkTexture*);
00132   vtkGetObjectMacro(Texture,vtkTexture);
00134 
00139   virtual void SetMapper(vtkMapper *);
00140 
00142 
00143   vtkGetObjectMacro(Mapper,vtkMapper);
00145 
00147 
00150   void GetBounds(float bounds[6]) {this->vtkProp3D::GetBounds( bounds );};
00151   float *GetBounds();
00153 
00160   virtual void ApplyProperties() {return;};
00161 
00163   unsigned long int GetMTime();
00164   
00169   virtual unsigned long GetRedrawMTime();
00170 
00172 
00176   virtual void InitPartTraversal();
00177   virtual vtkActor *GetNextPart();
00178   virtual int GetNumberOfParts();
00180   
00181 protected:
00182   vtkActor();
00183   ~vtkActor();
00184 
00185   vtkProperty *Property; 
00186   vtkProperty *BackfaceProperty; 
00187   vtkTexture *Texture; 
00188   vtkMapper *Mapper;
00189 
00190   // is this actor opaque
00191   int GetIsOpaque();
00192   
00193   // Bounds are cached in an actor - the MapperBounds are also cache to
00194   // help know when the Bounds need to be recomputed.
00195   float        MapperBounds[6];
00196   vtkTimeStamp BoundsMTime;
00197 
00198 private:
00199   vtkActor(const vtkActor&);  // Not implemented.
00200   void operator=(const vtkActor&);  // Not implemented.
00201 };
00202 
00203 #endif
00204