Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkProp.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkProp.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 =========================================================================*/
00033 #ifndef __vtkProp_h
00034 #define __vtkProp_h
00035 
00036 #include "vtkObject.h"
00037 
00038 class vtkAssemblyPath;
00039 class vtkAssemblyPaths;
00040 class vtkMatrix4x4;
00041 class vtkPropCollection;
00042 class vtkViewport;
00043 class vtkWindow;
00044 
00045 class VTK_COMMON_EXPORT vtkProp : public vtkObject
00046 {
00047 public:
00048   vtkTypeRevisionMacro(vtkProp,vtkObject);
00049   void PrintSelf(ostream& os, vtkIndent indent);
00050 
00052 
00055   virtual void GetActors(vtkPropCollection *) {}
00056   virtual void GetActors2D(vtkPropCollection *) {}
00057   virtual void GetVolumes(vtkPropCollection *) {}
00059 
00061 
00062   vtkSetMacro(Visibility, int);
00063   vtkGetMacro(Visibility, int);
00064   vtkBooleanMacro(Visibility, int);
00066 
00068 
00070   vtkSetMacro(Pickable,int);
00071   vtkGetMacro(Pickable,int);
00072   vtkBooleanMacro(Pickable,int);
00074 
00076   virtual void Pick();
00077 
00079 
00085   vtkSetMacro(Dragable,int);
00086   vtkGetMacro(Dragable,int);
00087   vtkBooleanMacro(Dragable,int);
00089 
00094   virtual unsigned long GetRedrawMTime() {return this->GetMTime();}
00095   
00098   virtual double *GetBounds() {return NULL;}
00099 
00101   virtual void ShallowCopy(vtkProp *prop);
00102 
00104 
00115   virtual void InitPathTraversal();
00116   virtual vtkAssemblyPath *GetNextPath();
00117   virtual int GetNumberOfPaths() {return 1;}
00119 
00121 
00124   virtual void PokeMatrix(vtkMatrix4x4 *vtkNotUsed(matrix)) {}
00125   virtual vtkMatrix4x4 *GetMatrix() {return NULL;}
00127 
00128 //BTX  
00130 
00141   virtual int RenderOpaqueGeometry(      vtkViewport *) { return 0; }
00142   virtual int RenderTranslucentGeometry( vtkViewport *) { return 0; }
00143   virtual int RenderOverlay(             vtkViewport *) { return 0; }
00145 
00150   virtual void ReleaseGraphicsResources(vtkWindow *) {}
00151 
00153 
00163   virtual double GetEstimatedRenderTime( vtkViewport * )
00164     { return this->EstimatedRenderTime; }
00165   virtual double GetEstimatedRenderTime(){ return this->EstimatedRenderTime; }
00167   
00169 
00173   virtual void SetEstimatedRenderTime(double t) 
00174     {this->EstimatedRenderTime = t; this->SavedEstimatedRenderTime = t;}
00176     
00178 
00183   virtual void RestoreEstimatedRenderTime()
00184     { this->EstimatedRenderTime = this->SavedEstimatedRenderTime; }
00186   
00187   
00189 
00199   virtual void AddEstimatedRenderTime(double t, vtkViewport *vtkNotUsed(vp))
00200     {this->EstimatedRenderTime+=t;}
00202 
00204 
00211   virtual void SetAllocatedRenderTime(double t, vtkViewport *vtkNotUsed(v)) 
00212     {
00213     this->AllocatedRenderTime = t;
00214     this->SavedEstimatedRenderTime = this->EstimatedRenderTime;
00215     this->EstimatedRenderTime = 0.0;
00216     }
00218 
00220 
00222   vtkGetMacro(AllocatedRenderTime, double);
00224 
00226 
00230   void SetRenderTimeMultiplier( double t ) { this->RenderTimeMultiplier = t; }
00231   vtkGetMacro(RenderTimeMultiplier, double);
00233 
00237   virtual void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
00238 
00240 
00241   vtkGetMacro(NumberOfConsumers,int);
00243   
00245 
00246   void AddConsumer(vtkObject *c);
00247   void RemoveConsumer(vtkObject *c);
00248   vtkObject *GetConsumer(int i);
00249   int IsConsumer(vtkObject *c);
00251 
00252 //ETX
00253 
00254 protected:
00255   vtkProp();
00256   ~vtkProp();
00257 
00258   int Visibility;
00259   int Pickable;
00260   int Dragable;
00261 
00262   double AllocatedRenderTime;
00263   double EstimatedRenderTime;
00264   double SavedEstimatedRenderTime;
00265   double RenderTimeMultiplier;
00266 
00267   // how many consumers does this object have
00268   int NumberOfConsumers;
00269   vtkObject **Consumers;
00270 
00271   // support multi-part props and access to paths of prop
00272   // stuff that follows is used to build the assembly hierarchy
00273   vtkAssemblyPaths *Paths;
00274   
00275 private:
00276   vtkProp(const vtkProp&);  // Not implemented.
00277   void operator=(const vtkProp&);  // Not implemented.
00278 };
00279 
00280 #endif
00281 
00282 

Generated on Mon Jan 21 23:07:17 2008 for VTK by  doxygen 1.4.3-20050530