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=========================================================================*/
69#ifndef vtkQuadricLODActor_h
70#define vtkQuadricLODActor_h
71
72#include "vtkActor.h"
73#include "vtkRenderingLODModule.h" // For export macro
74
77class vtkCamera;
78class vtkPolyData;
79
80class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
81{
82public:
87
89
93 void PrintSelf(ostream& os, vtkIndent indent) override;
95
97
102 vtkSetMacro(DeferLODConstruction, vtkTypeBool);
103 vtkGetMacro(DeferLODConstruction, vtkTypeBool);
104 vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
106
108
115 vtkSetMacro(Static, vtkTypeBool);
116 vtkGetMacro(Static, vtkTypeBool);
117 vtkBooleanMacro(Static, vtkTypeBool);
119
121 {
122 UNKNOWN = 0,
129 XYZVOLUME
130 };
131
133
146 vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
147 vtkGetMacro(DataConfiguration, int);
148 void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
149 void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
150 void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
151 void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
152 void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
153 void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
154 void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
155 void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
157
159
166 vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
167 vtkGetMacro(CollapseDimensionRatio, double);
169
171
177 vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
179
181 {
182 FOLLOWER = 0,
183 ACTOR
184 };
185
187
191 vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
192 vtkGetMacro(PropType, int);
193 void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
194 void SetPropTypeToActor() { this->SetPropType(ACTOR); }
196
198
203 vtkGetObjectMacro(Camera, vtkCamera);
205
211 void Render(vtkRenderer*, vtkMapper*) override;
212
219
223 void ShallowCopy(vtkProp* prop) override;
224
225protected:
228
229 // Renders the LOD
232
233 // Keep track of the requested interactive frame rate
235
236 // Support various strategies
238
239 // Specify whether the mapper's should be set in to Static mode.
241
242 // The dimension of the data
245
246 // Control whether this is a follower or regular actor
249
250 // Specify to defer construction of the LOD.
252
253 // Keep track of building
255
256private:
257 vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
258 void operator=(const vtkQuadricLODActor&) = delete;
259};
260
261#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:171
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:76
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:182
record modification and/or execution time
Definition: vtkTimeStamp.h:52
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
int vtkTypeBool
Definition: vtkABI.h:69