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 "vtkRemotingViewsModule.h" // needed for export macro
31 #include "vtkVolume.h"
32 
33 class vtkLODProp3D;
34 class vtkMapper;
35 
37 {
38 public:
39  vtkTypeMacro(vtkPVLODVolume, vtkVolume);
40  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
42  static vtkPVLODVolume* New();
43 
45 
48  int RenderOpaqueGeometry(vtkViewport* viewport) override;
49  int RenderVolumetricGeometry(vtkViewport* viewport) override;
52 
56  int HasTranslucentPolygonalGeometry() override;
57 
63  void ReleaseGraphicsResources(vtkWindow*) override;
64 
66 
69  virtual void SetMapper(vtkAbstractVolumeMapper*);
72 
74 
77  virtual void SetLODMapper(vtkAbstractVolumeMapper*);
78  virtual void SetLODMapper(vtkMapper*);
80 
84  virtual void SetProperty(vtkVolumeProperty* property) override;
85 
89  void ShallowCopy(vtkProp* prop) override;
90 
94  double* GetBounds() override;
95 
99  void SetAllocatedRenderTime(double t, vtkViewport* v) override;
100 
102 
106  vtkSetMacro(EnableLOD, int);
107  vtkGetMacro(EnableLOD, int);
108 
109  void SetPropertyKeys(vtkInformation* keys) override;
110 
111 protected:
112  vtkPVLODVolume();
113  ~vtkPVLODVolume() override;
115 
121  bool CanRender();
122 
125  int LowLODId;
127  int SelectLOD();
128  double MapperBounds[6];
130  virtual void UpdateLODProperty();
131 
132 private:
133  vtkPVLODVolume(const vtkPVLODVolume&) = delete;
134  void operator=(const vtkPVLODVolume&) = delete;
135 };
136 
137 #endif
void PrintSelf(ostream &os, vtkIndent indent)
#define VTKREMOTINGVIEWS_EXPORT
virtual int RenderOpaqueGeometry(vtkViewport *)
virtual int HasTranslucentPolygonalGeometry()
virtual void SetAllocatedRenderTime(double t, vtkViewport *vtkNotUsed(v))
virtual vtkAbstractVolumeMapper * GetMapper()
void SetMapper(vtkAbstractVolumeMapper *mapper)
vtkLODProp3D * LODProp
static vtkVolume * New()
an actor that supports multiple levels of detail
double * GetBounds()
void SetProperty(vtkVolumeProperty *property)
virtual void SetPropertyKeys(vtkInformation *keys)
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
void ReleaseGraphicsResources(vtkWindow *)
int RenderVolumetricGeometry(vtkViewport *viewport)
void operator=(const vtkObjectBase &)
void ShallowCopy(vtkProp *prop)
vtkTimeStamp BoundsMTime