VTK  9.0.1
vtkQuadricLODActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkQuadricLODActor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm 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 =========================================================================*/
50 #ifndef vtkQuadricLODActor_h
51 #define vtkQuadricLODActor_h
52 
53 #include "vtkActor.h"
54 #include "vtkRenderingLODModule.h" // For export macro
55 
57 class vtkPolyDataMapper;
58 class vtkCamera;
59 class vtkPolyData;
60 
61 class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
62 {
63 public:
68 
70 
73  vtkTypeMacro(vtkQuadricLODActor, vtkActor);
74  void PrintSelf(ostream& os, vtkIndent indent) override;
76 
78 
83  vtkSetMacro(DeferLODConstruction, vtkTypeBool);
84  vtkGetMacro(DeferLODConstruction, vtkTypeBool);
85  vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
87 
89 
96  vtkSetMacro(Static, vtkTypeBool);
97  vtkGetMacro(Static, vtkTypeBool);
98  vtkBooleanMacro(Static, vtkTypeBool);
100 
102  {
103  UNKNOWN = 0,
110  XYZVOLUME
111  };
112 
114 
127  vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
128  vtkGetMacro(DataConfiguration, int);
129  void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
130  void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
131  void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
132  void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
133  void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
134  void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
135  void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
136  void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
138 
140 
147  vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
148  vtkGetMacro(CollapseDimensionRatio, double);
150 
152 
158  vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
160 
162  {
163  FOLLOWER = 0,
164  ACTOR
165  };
166 
168 
172  vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
173  vtkGetMacro(PropType, int);
174  void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
175  void SetPropTypeToActor() { this->SetPropType(ACTOR); }
177 
179 
184  vtkGetObjectMacro(Camera, vtkCamera);
186 
192  void Render(vtkRenderer*, vtkMapper*) override;
193 
198  int RenderOpaqueGeometry(vtkViewport* viewport) override;
199 
206 
210  void ShallowCopy(vtkProp* prop) override;
211 
212 protected:
215 
216  // Renders the LOD
219 
220  // Keep track of the requested interactive frame rate
222 
223  // Support various strategies
225 
226  // Specify whether the mapper's should be set in to Static mode.
228 
229  // The dimension of the data
232 
233  // Control whether this is a follower or regular actor
234  int PropType;
236 
237  // Specify to defer construction of the LOD.
239 
240  // Keep track of building
242 
243 private:
244  vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
245  void operator=(const vtkQuadricLODActor&) = delete;
246 };
247 
248 #endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:46
a virtual camera for 3D rendering
Definition: vtkCamera.h:46
a simple class to control print indentation
Definition: vtkIndent.h:34
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:81
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:54
reduce the number of triangles in a mesh
a specific level-of-detail strategy using the quadric clustering decimation algorithm
void ShallowCopy(vtkProp *prop) override
Shallow copy of an LOD actor.
void SetLODFilter(vtkQuadricClustering *lodFilter)
This class will create a vtkQuadricClustering algorithm automatically.
void SetCamera(vtkCamera *)
Set/Get the camera to follow.
void SetDataConfigurationToXYZVolume()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
static vtkQuadricLODActor * New()
Creates a vtkQuadricLODActor.
int RenderOpaqueGeometry(vtkViewport *viewport) override
This method is used internally by the rendering process.
vtkTypeBool DeferLODConstruction
~vtkQuadricLODActor() override
vtkQuadricClustering * LODFilter
vtkPolyDataMapper * LODMapper
void Render(vtkRenderer *, vtkMapper *) override
This causes the actor to be rendered.
abstract specification for renderers
Definition: vtkRenderer.h:68
record modification and/or execution time
Definition: vtkTimeStamp.h:33
abstract specification for Viewports
Definition: vtkViewport.h:45
window superclass for vtkRenderWindow
Definition: vtkWindow.h:38
int vtkTypeBool
Definition: vtkABI.h:69