vtkProp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00037 #ifndef __vtkProp_h
00038 #define __vtkProp_h
00039
00040 #include "vtkObject.h"
00041
00042 class vtkAssemblyPath;
00043 class vtkAssemblyPaths;
00044 class vtkMatrix4x4;
00045 class vtkPropCollection;
00046 class vtkViewport;
00047 class vtkWindow;
00048
00049 class VTK_COMMON_EXPORT vtkProp : public vtkObject
00050 {
00051 public:
00052 vtkTypeRevisionMacro(vtkProp,vtkObject);
00053 void PrintSelf(ostream& os, vtkIndent indent);
00054
00056
00059 virtual void GetActors(vtkPropCollection *) {}
00060 virtual void GetActors2D(vtkPropCollection *) {}
00061 virtual void GetVolumes(vtkPropCollection *) {}
00063
00065
00066 vtkSetMacro(Visibility, int);
00067 vtkGetMacro(Visibility, int);
00068 vtkBooleanMacro(Visibility, int);
00070
00072
00074 vtkSetMacro(Pickable,int);
00075 vtkGetMacro(Pickable,int);
00076 vtkBooleanMacro(Pickable,int);
00078
00080
00082 void SetPickMethod(void (*f)(void *), void *arg);
00083 void SetPickMethodArgDelete(void (*f)(void *));
00085
00087 virtual void Pick();
00088
00090
00096 vtkSetMacro(Dragable,int);
00097 vtkGetMacro(Dragable,int);
00098 vtkBooleanMacro(Dragable,int);
00100
00105 virtual unsigned long GetRedrawMTime() {return this->GetMTime();}
00106
00109 virtual float *GetBounds() {return NULL;}
00110
00112 virtual void ShallowCopy(vtkProp *prop);
00113
00115
00126 virtual void InitPathTraversal();
00127 virtual vtkAssemblyPath *GetNextPath();
00128 virtual int GetNumberOfPaths() {return 1;}
00130
00132
00135 virtual void PokeMatrix(vtkMatrix4x4 *vtkNotUsed(matrix)) {}
00136 virtual vtkMatrix4x4 *GetMatrix() {return NULL;}
00138
00139
00141
00152 virtual int RenderOpaqueGeometry( vtkViewport *) { return 0; }
00153 virtual int RenderTranslucentGeometry( vtkViewport *) { return 0; }
00154 virtual int RenderOverlay( vtkViewport *) { return 0; }
00156
00161 virtual void ReleaseGraphicsResources(vtkWindow *) {}
00162
00164
00174 virtual float GetEstimatedRenderTime( vtkViewport * )
00175 { return this->EstimatedRenderTime; }
00176 virtual float GetEstimatedRenderTime(){ return this->EstimatedRenderTime; }
00178
00180
00184 virtual void SetEstimatedRenderTime(float t)
00185 {this->EstimatedRenderTime = t; this->SavedEstimatedRenderTime = t;}
00187
00189
00194 virtual void RestoreEstimatedRenderTime()
00195 { this->EstimatedRenderTime = this->SavedEstimatedRenderTime; }
00197
00198
00200
00210 virtual void AddEstimatedRenderTime(float t, vtkViewport *vtkNotUsed(vp))
00211 {this->EstimatedRenderTime+=t;}
00213
00215
00222 virtual void SetAllocatedRenderTime(float t, vtkViewport *vtkNotUsed(v))
00223 {
00224 this->AllocatedRenderTime = t;
00225 this->SavedEstimatedRenderTime = this->EstimatedRenderTime;
00226 this->EstimatedRenderTime = 0.0;
00227 }
00229
00231
00233 vtkGetMacro(AllocatedRenderTime, float);
00235
00237
00241 void SetRenderTimeMultiplier( float t ) { this->RenderTimeMultiplier = t; }
00242 vtkGetMacro(RenderTimeMultiplier, float);
00244
00248 virtual void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
00249
00251
00252 vtkGetMacro(NumberOfConsumers,int);
00254
00256
00257 void AddConsumer(vtkObject *c);
00258 void RemoveConsumer(vtkObject *c);
00259 vtkObject *GetConsumer(int i);
00260 int IsConsumer(vtkObject *c);
00262
00263
00264
00265 protected:
00266 vtkProp();
00267 ~vtkProp();
00268
00269 int Visibility;
00270 int Pickable;
00271 unsigned long PickTag;
00272 int Dragable;
00273
00274 float AllocatedRenderTime;
00275 float EstimatedRenderTime;
00276 float SavedEstimatedRenderTime;
00277 float RenderTimeMultiplier;
00278
00279
00280 int NumberOfConsumers;
00281 vtkObject **Consumers;
00282
00283
00284
00285 vtkAssemblyPaths *Paths;
00286
00287 private:
00288 vtkProp(const vtkProp&);
00289 void operator=(const vtkProp&);
00290 };
00291
00292 #endif
00293
00294