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 
24 class VTKREMOTINGVIEWS_EXPORT vtkPVLODVolume : public vtkVolume
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
vtkVolume.h
vtkPVLODVolume
an actor that supports multiple levels of detail
Definition: vtkPVLODVolume.h:24
vtkObjectBase::operator=
void operator=(const vtkObjectBase &)
vtkPVLODVolume::EnableLOD
int EnableLOD
Definition: vtkPVLODVolume.h:114
vtkPVLODVolume::LowLODId
int LowLODId
Definition: vtkPVLODVolume.h:113
vtkVolume
vtkPVLODVolume::HighLODId
int HighLODId
Definition: vtkPVLODVolume.h:112
vtkTimeStamp
vtkProp::RenderOpaqueGeometry
virtual int RenderOpaqueGeometry(vtkViewport *)
vtkVolume::RenderVolumetricGeometry
int RenderVolumetricGeometry(vtkViewport *viewport)
vtkVolume::GetBounds
double * GetBounds()
vtkVolume::SetProperty
void SetProperty(vtkVolumeProperty *property)
vtkProp::SetAllocatedRenderTime
virtual void SetAllocatedRenderTime(double t, vtkViewport *vtkNotUsed(v))
vtkWindow
vtkPVLODVolume::BoundsMTime
vtkTimeStamp BoundsMTime
Definition: vtkPVLODVolume.h:117
vtkMapper
vtkIndent
vtkProp::SetPropertyKeys
virtual void SetPropertyKeys(vtkInformation *keys)
vtkVolume::SetMapper
void SetMapper(vtkAbstractVolumeMapper *mapper)
vtkPVLODVolume::LODProp
vtkLODProp3D * LODProp
Definition: vtkPVLODVolume.h:111
vtkVolume::New
static vtkVolume * New()
vtkViewport
vtkProp::RenderTranslucentPolygonalGeometry
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *)
vtkInformation
vtkProp
vtkAbstractVolumeMapper
vtkVolume::ShallowCopy
void ShallowCopy(vtkProp *prop)
vtkLODProp3D
vtkProp::HasTranslucentPolygonalGeometry
virtual int HasTranslucentPolygonalGeometry()
vtkVolume::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *)
vtkVolume::GetMapper
virtual vtkAbstractVolumeMapper * GetMapper()
vtkVolumeProperty
vtkVolume::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)