vtkPVLODVolume.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
15 #ifndef vtkPVLODVolume_h
16 #define vtkPVLODVolume_h
17 
18 #include "vtkRemotingViewsModule.h" // needed for export macro
19 #include "vtkVolume.h"
20 
21 class vtkLODProp3D;
22 class vtkMapper;
23 
25 {
26 public:
27  vtkTypeMacro(vtkPVLODVolume, vtkVolume);
28  void PrintSelf(ostream& os, vtkIndent indent) override;
29 
30  static vtkPVLODVolume* New();
31 
33 
36  int RenderOpaqueGeometry(vtkViewport* viewport) override;
37  int RenderVolumetricGeometry(vtkViewport* viewport) override;
40 
44  int HasTranslucentPolygonalGeometry() override;
45 
51  void ReleaseGraphicsResources(vtkWindow*) override;
52 
54 
57  virtual void SetMapper(vtkAbstractVolumeMapper*);
60 
62 
65  virtual void SetLODMapper(vtkAbstractVolumeMapper*);
66  virtual void SetLODMapper(vtkMapper*);
68 
72  void SetProperty(vtkVolumeProperty* property) override;
73 
77  void ShallowCopy(vtkProp* prop) override;
78 
82  double* GetBounds() override;
83 
87  void SetAllocatedRenderTime(double t, vtkViewport* v) override;
88 
90 
94  vtkSetMacro(EnableLOD, int);
95  vtkGetMacro(EnableLOD, int);
96 
97  void SetPropertyKeys(vtkInformation* keys) override;
98 
99 protected:
100  vtkPVLODVolume();
101  ~vtkPVLODVolume() override;
103 
109  bool CanRender();
110 
113  int LowLODId;
115  int SelectLOD();
116  double MapperBounds[6];
118  virtual void UpdateLODProperty();
119 
120 private:
121  vtkPVLODVolume(const vtkPVLODVolume&) = delete;
122  void operator=(const vtkPVLODVolume&) = delete;
123 };
124 
125 #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