VTK  9.1.0
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=========================================================================*/
59#ifndef vtkQuadricLODActor_h
60#define vtkQuadricLODActor_h
61
62#include "vtkActor.h"
63#include "vtkRenderingLODModule.h" // For export macro
64
67class vtkCamera;
68class vtkPolyData;
69
70class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
71{
72public:
77
79
83 void PrintSelf(ostream& os, vtkIndent indent) override;
85
87
92 vtkSetMacro(DeferLODConstruction, vtkTypeBool);
93 vtkGetMacro(DeferLODConstruction, vtkTypeBool);
94 vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
96
98
105 vtkSetMacro(Static, vtkTypeBool);
106 vtkGetMacro(Static, vtkTypeBool);
107 vtkBooleanMacro(Static, vtkTypeBool);
109
111 {
119 XYZVOLUME
120 };
121
123
136 vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
137 vtkGetMacro(DataConfiguration, int);
138 void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
139 void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
140 void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
141 void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
142 void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
143 void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
144 void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
145 void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
147
149
156 vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
157 vtkGetMacro(CollapseDimensionRatio, double);
159
161
167 vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
169
171 {
172 FOLLOWER = 0,
173 ACTOR
174 };
175
177
181 vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
182 vtkGetMacro(PropType, int);
183 void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
184 void SetPropTypeToActor() { this->SetPropType(ACTOR); }
186
188
193 vtkGetObjectMacro(Camera, vtkCamera);
195
201 void Render(vtkRenderer*, vtkMapper*) override;
202
209
213 void ShallowCopy(vtkProp* prop) override;
214
215protected:
218
219 // Renders the LOD
222
223 // Keep track of the requested interactive frame rate
225
226 // Support various strategies
228
229 // Specify whether the mapper's should be set in to Static mode.
231
232 // The dimension of the data
235
236 // Control whether this is a follower or regular actor
239
240 // Specify to defer construction of the LOD.
242
243 // Keep track of building
245
246private:
247 vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
248 void operator=(const vtkQuadricLODActor&) = delete;
249};
250
251#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:55
a virtual camera for 3D rendering
Definition: vtkCamera.h:55
a simple class to control print indentation
Definition: vtkIndent.h:43
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:91
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:95
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:57
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 SetDataConfigurationToXLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
static vtkQuadricLODActor * New()
Creates a vtkQuadricLODActor.
void SetLODFilter(vtkQuadricClustering *lodFilter)
This class will create a vtkQuadricClustering algorithm automatically.
void SetCamera(vtkCamera *)
Set/Get the camera to follow.
void SetDataConfigurationToXYZVolume()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void SetDataConfigurationToYLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void PrintSelf(ostream &os, vtkIndent indent) override
Standard class methods.
void SetDataConfigurationToXZPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkTypeBool DeferLODConstruction
void SetPropTypeToActor()
Indicate that this actor is actually a follower.
void SetDataConfigurationToZLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
~vtkQuadricLODActor() override
void SetPropTypeToFollower()
Indicate that this actor is actually a follower.
void SetDataConfigurationToUnknown()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
vtkQuadricClustering * LODFilter
vtkPolyDataMapper * LODMapper
void SetDataConfigurationToYZPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void Render(vtkRenderer *, vtkMapper *) override
This causes the actor to be rendered.
void SetDataConfigurationToXYPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
abstract specification for renderers
Definition: vtkRenderer.h:73
record modification and/or execution time
Definition: vtkTimeStamp.h:42
window superclass for vtkRenderWindow
Definition: vtkWindow.h:45
int vtkTypeBool
Definition: vtkABI.h:69