Common/vtkProp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00049 #ifndef __vtkProp_h
00050 #define __vtkProp_h
00051
00052 #include "vtkObject.h"
00053
00054 class vtkAssemblyPath;
00055 class vtkAssemblyPaths;
00056 class vtkMatrix4x4;
00057 class vtkPropCollection;
00058 class vtkViewport;
00059 class vtkWindow;
00060
00061 class VTK_COMMON_EXPORT vtkProp : public vtkObject
00062 {
00063 public:
00064 vtkTypeRevisionMacro(vtkProp,vtkObject);
00065 void PrintSelf(ostream& os, vtkIndent indent);
00066
00068
00071 virtual void GetActors(vtkPropCollection *) {}
00072 virtual void GetActors2D(vtkPropCollection *) {}
00073 virtual void GetVolumes(vtkPropCollection *) {}
00075
00077
00078 vtkSetMacro(Visibility, int);
00079 vtkGetMacro(Visibility, int);
00080 vtkBooleanMacro(Visibility, int);
00082
00084
00086 vtkSetMacro(Pickable,int);
00087 vtkGetMacro(Pickable,int);
00088 vtkBooleanMacro(Pickable,int);
00090
00092
00094 void SetPickMethod(void (*f)(void *), void *arg);
00095 void SetPickMethodArgDelete(void (*f)(void *));
00097
00099 virtual void Pick();
00100
00102
00108 vtkSetMacro(Dragable,int);
00109 vtkGetMacro(Dragable,int);
00110 vtkBooleanMacro(Dragable,int);
00112
00117 virtual unsigned long GetRedrawMTime() {return this->GetMTime();}
00118
00121 virtual float *GetBounds() {return NULL;}
00122
00124 virtual void ShallowCopy(vtkProp *prop);
00125
00127
00138 virtual void InitPathTraversal();
00139 virtual vtkAssemblyPath *GetNextPath();
00140 virtual int GetNumberOfPaths() {return 1;}
00142
00144
00147 virtual void PokeMatrix(vtkMatrix4x4 *vtkNotUsed(matrix)) {}
00148 virtual vtkMatrix4x4 *GetMatrix() {return NULL;}
00150
00151
00153
00164 virtual int RenderOpaqueGeometry( vtkViewport *) { return 0; }
00165 virtual int RenderTranslucentGeometry( vtkViewport *) { return 0; }
00166 virtual int RenderOverlay( vtkViewport *) { return 0; }
00168
00173 virtual void ReleaseGraphicsResources(vtkWindow *) {}
00174
00176
00186 virtual float GetEstimatedRenderTime( vtkViewport * )
00187 { return this->EstimatedRenderTime; }
00188 virtual float GetEstimatedRenderTime(){ return this->EstimatedRenderTime; }
00190
00192
00196 virtual void SetEstimatedRenderTime(float t)
00197 {this->EstimatedRenderTime = t; this->SavedEstimatedRenderTime = t;}
00199
00201
00206 virtual void RestoreEstimatedRenderTime()
00207 { this->EstimatedRenderTime = this->SavedEstimatedRenderTime; }
00209
00210
00212
00222 virtual void AddEstimatedRenderTime(float t, vtkViewport *vtkNotUsed(vp))
00223 {this->EstimatedRenderTime+=t;}
00225
00227
00234 virtual void SetAllocatedRenderTime(float t, vtkViewport *vtkNotUsed(v))
00235 {
00236 this->AllocatedRenderTime = t;
00237 this->SavedEstimatedRenderTime = this->EstimatedRenderTime;
00238 this->EstimatedRenderTime = 0.0;
00239 }
00241
00243
00245 vtkGetMacro(AllocatedRenderTime, float);
00247
00249
00253 void SetRenderTimeMultiplier( float t ) { this->RenderTimeMultiplier = t; }
00254 vtkGetMacro(RenderTimeMultiplier, float);
00256
00260 virtual void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
00261
00263
00264 vtkGetMacro(NumberOfConsumers,int);
00266
00268
00269 void AddConsumer(vtkObject *c);
00270 void RemoveConsumer(vtkObject *c);
00271 vtkObject *GetConsumer(int i);
00272 int IsConsumer(vtkObject *c);
00274
00275
00276
00277 protected:
00278 vtkProp();
00279 ~vtkProp();
00280
00281 int Visibility;
00282 int Pickable;
00283 unsigned long PickTag;
00284 int Dragable;
00285
00286 float AllocatedRenderTime;
00287 float EstimatedRenderTime;
00288 float SavedEstimatedRenderTime;
00289 float RenderTimeMultiplier;
00290
00291
00292 int NumberOfConsumers;
00293 vtkObject **Consumers;
00294
00295
00296
00297 vtkAssemblyPaths *Paths;
00298
00299 private:
00300 vtkProp(const vtkProp&);
00301 void operator=(const vtkProp&);
00302 };
00303
00304 #endif
00305
00306