ParaView
vtkPVLODVolume.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkPVLODVolume.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
27 #ifndef vtkPVLODVolume_h
28 #define vtkPVLODVolume_h
29 
30 #include "vtkPVVTKExtensionsRenderingModule.h" // needed for export macro
31 #include "vtkVolume.h"
32 
33 class vtkLODProp3D;
34 class vtkMapper;
35 
36 class VTKPVVTKEXTENSIONSRENDERING_EXPORT vtkPVLODVolume : public vtkVolume
37 {
38 public:
39  vtkTypeMacro(vtkPVLODVolume, vtkVolume);
40  void PrintSelf(ostream& os, vtkIndent indent);
41 
42  static vtkPVLODVolume* New();
43 
45 
48  virtual int RenderOpaqueGeometry(vtkViewport* viewport);
49  virtual int RenderVolumetricGeometry(vtkViewport* viewport);
50  virtual int RenderTranslucentPolygonalGeometry(vtkViewport*);
52 
56  virtual int HasTranslucentPolygonalGeometry();
57 
63  virtual void ReleaseGraphicsResources(vtkWindow*);
64 
66 
69  virtual void SetMapper(vtkAbstractVolumeMapper*);
70  virtual vtkAbstractVolumeMapper* GetMapper();
72 
74 
77  virtual void SetLODMapper(vtkAbstractVolumeMapper*);
78  virtual void SetLODMapper(vtkMapper*);
80 
84  virtual void SetProperty(vtkVolumeProperty* property);
85 
89  virtual void ShallowCopy(vtkProp* prop);
90 
94  virtual double* GetBounds();
95 
99  virtual void SetAllocatedRenderTime(double t, vtkViewport* v);
100 
102 
106  vtkSetMacro(EnableLOD, int);
107  vtkGetMacro(EnableLOD, int);
108 
109 protected:
110  vtkPVLODVolume();
111  ~vtkPVLODVolume();
113 
119  bool CanRender();
120 
121  vtkLODProp3D* LODProp;
123  int LowLODId;
125  int SelectLOD();
126  double MapperBounds[6];
127  vtkTimeStamp BoundsMTime;
128  virtual void UpdateLODProperty();
129 
130 private:
131  vtkPVLODVolume(const vtkPVLODVolume&) VTK_DELETE_FUNCTION;
132  void operator=(const vtkPVLODVolume&) VTK_DELETE_FUNCTION;
133 };
134 
135 #endif
vtkLODProp3D * LODProp
an actor that supports multiple levels of detail
vtkTimeStamp BoundsMTime