Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Rendering/vtkRenderer.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00056 #ifndef __vtkRenderer_h
00057 #define __vtkRenderer_h
00058
00059 #include "vtkViewport.h"
00060
00061 #include "vtkVolumeCollection.h"
00062 #include "vtkActorCollection.h"
00063
00064 class vtkRenderWindow;
00065 class vtkVolume;
00066 class vtkCuller;
00067 class vtkActor;
00068 class vtkActor2D;
00069 class vtkCamera;
00070 class vtkLightCollection;
00071 class vtkCullerCollection;
00072 class vtkLight;
00073
00074 class VTK_RENDERING_EXPORT vtkRenderer : public vtkViewport
00075 {
00076 public:
00077 vtkTypeRevisionMacro(vtkRenderer,vtkViewport);
00078 void PrintSelf(ostream& os, vtkIndent indent);
00079
00083 static vtkRenderer *New();
00084
00086
00089 void AddActor(vtkProp *p) {this->AddProp(p);};
00090 void AddVolume(vtkProp *p) {this->AddProp(p);};
00091 void RemoveActor(vtkProp *p) {this->Actors->RemoveItem(p);this->RemoveProp(p);};
00092 void RemoveVolume(vtkProp *p) {this->Volumes->RemoveItem(p);this->RemoveProp(p);};
00094
00096 void AddLight(vtkLight *);
00097
00099 void RemoveLight(vtkLight *);
00100
00102 vtkLightCollection *GetLights();
00103
00105 void CreateLight(void);
00106
00110 virtual vtkLight *MakeLight();
00111
00113
00117 vtkGetMacro(TwoSidedLighting,int);
00118 vtkSetMacro(TwoSidedLighting,int);
00119 vtkBooleanMacro(TwoSidedLighting,int);
00121
00123
00133 vtkSetMacro(LightFollowCamera,int);
00134 vtkGetMacro(LightFollowCamera,int);
00135 vtkBooleanMacro(LightFollowCamera,int);
00137
00141 virtual int UpdateLightsGeometryToFollowCamera(void);
00142
00144 vtkVolumeCollection *GetVolumes();
00145
00147 vtkActorCollection *GetActors();
00148
00150 void SetActiveCamera(vtkCamera *);
00151
00153 vtkCamera *GetActiveCamera();
00154
00158 virtual vtkCamera *MakeCamera();
00159
00161 void AddCuller(vtkCuller *);
00162
00164 void RemoveCuller(vtkCuller *);
00165
00167 vtkCullerCollection *GetCullers();
00168
00170
00171 vtkSetVector3Macro(Ambient,float);
00172 vtkGetVectorMacro(Ambient,float,3);
00174
00176
00178 vtkSetMacro(AllocatedRenderTime,float);
00179 virtual float GetAllocatedRenderTime();
00181
00186 virtual float GetTimeFactor();
00187
00190 virtual void Render();
00191
00194 virtual void DeviceRender() =0;
00195
00197 virtual void Clear() {};
00198
00200 int VisibleActorCount();
00201
00203 int VisibleVolumeCount();
00204
00207 void ComputeVisiblePropBounds( float bounds[6] );
00208
00210 float *ComputeVisiblePropBounds();
00211
00214 void ResetCameraClippingRange();
00215
00217
00219 void ResetCameraClippingRange( float bounds[6] );
00220 void ResetCameraClippingRange( float xmin, float xmax,
00221 float ymin, float ymax,
00222 float zmin, float zmax);
00224
00230 void ResetCamera();
00231
00239 void ResetCamera(float bounds[6]);
00240
00242
00243 void ResetCamera(float xmin, float xmax, float ymin, float ymax,
00244 float zmin, float zmax);
00246
00248
00251 void SetRenderWindow(vtkRenderWindow *);
00252 vtkRenderWindow *GetRenderWindow() {return this->RenderWindow;};
00253 virtual vtkWindow *GetVTKWindow();
00255
00257
00260 vtkSetMacro(BackingStore,int);
00261 vtkGetMacro(BackingStore,int);
00262 vtkBooleanMacro(BackingStore,int);
00264
00266
00269 vtkSetMacro(Interactive,int);
00270 vtkGetMacro(Interactive,int);
00271 vtkBooleanMacro(Interactive,int);
00273
00275
00277 vtkSetMacro(Layer, int);
00278 vtkGetMacro(Layer, int);
00280
00283 int Transparent();
00284
00286 void WorldToView();
00287
00289
00290 void ViewToWorld();
00291 virtual void ViewToWorld(float &wx, float &wy, float &wz);
00293
00295 virtual void WorldToView(float &wx, float &wy, float &wz);
00296
00298 float GetZ (int x, int y);
00299
00301 unsigned long GetMTime();
00302
00304
00305 vtkGetMacro( LastRenderTimeInSeconds, float );
00307
00309
00313 vtkGetMacro( NumberOfPropsRendered, int );
00315
00321 vtkAssemblyPath* PickProp(float selectionX, float selectionY);
00322
00323 protected:
00324 vtkRenderer();
00325 ~vtkRenderer();
00326
00327
00328 virtual void PickRender(vtkPropCollection *props);
00329 virtual void PickGeometry();
00330
00331 vtkCamera *ActiveCamera;
00332 vtkLight *CreatedLight;
00333
00334 vtkLightCollection *Lights;
00335 vtkCullerCollection *Cullers;
00336
00337 vtkActorCollection *Actors;
00338 vtkVolumeCollection *Volumes;
00339
00340 float Ambient[3];
00341 vtkRenderWindow *RenderWindow;
00342 float AllocatedRenderTime;
00343 float TimeFactor;
00344 int TwoSidedLighting;
00345 int BackingStore;
00346 unsigned char *BackingImage;
00347 vtkTimeStamp RenderTime;
00348
00349 float LastRenderTimeInSeconds;
00350
00351 int LightFollowCamera;
00352
00353
00354 void AllocateTime();
00355
00356
00357
00358 int NumberOfPropsRendered;
00359
00360
00361
00362 vtkProp **PropArray;
00363 int PropArrayCount;
00364
00365
00366 vtkAssemblyPath **PathArray;
00367 int PathArrayCount;
00368
00369
00370
00371 int Interactive;
00372
00373
00374
00375 int Layer;
00376
00377
00378 float ComputedVisiblePropBounds[6];
00379
00383 virtual int UpdateGeometry(void);
00384
00387 virtual int UpdateCamera(void);
00388
00392 virtual int UpdateLightGeometry(void);
00393
00396 virtual int UpdateLights(void) {return 0;};
00397
00398 private:
00399 vtkRenderer(const vtkRenderer&);
00400 void operator=(const vtkRenderer&);
00401 };
00402
00403 inline vtkLightCollection *vtkRenderer::GetLights() {
00404 return this->Lights;
00405 }
00406
00408 inline vtkCullerCollection *vtkRenderer::GetCullers(){return this->Cullers;}
00409
00410
00411 #endif