VTK  9.2.6
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=========================================================================*/
62#ifndef vtkQuadricLODActor_h
63#define vtkQuadricLODActor_h
64
65#include "vtkActor.h"
66#include "vtkRenderingLODModule.h" // For export macro
67
70class vtkCamera;
71class vtkPolyData;
72
73class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
74{
75public:
80
82
86 void PrintSelf(ostream& os, vtkIndent indent) override;
88
90
95 vtkSetMacro(DeferLODConstruction, vtkTypeBool);
96 vtkGetMacro(DeferLODConstruction, vtkTypeBool);
97 vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
99
101
108 vtkSetMacro(Static, vtkTypeBool);
109 vtkGetMacro(Static, vtkTypeBool);
110 vtkBooleanMacro(Static, vtkTypeBool);
112
114 {
115 UNKNOWN = 0,
122 XYZVOLUME
123 };
124
126
139 vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
140 vtkGetMacro(DataConfiguration, int);
141 void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
142 void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
143 void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
144 void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
145 void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
146 void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
147 void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
148 void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
150
152
159 vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
160 vtkGetMacro(CollapseDimensionRatio, double);
162
164
170 vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
172
174 {
175 FOLLOWER = 0,
176 ACTOR
177 };
178
180
184 vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
185 vtkGetMacro(PropType, int);
186 void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
187 void SetPropTypeToActor() { this->SetPropType(ACTOR); }
189
191
196 vtkGetObjectMacro(Camera, vtkCamera);
198
204 void Render(vtkRenderer*, vtkMapper*) override;
205
212
216 void ShallowCopy(vtkProp* prop) override;
217
218protected:
221
222 // Renders the LOD
225
226 // Keep track of the requested interactive frame rate
228
229 // Support various strategies
231
232 // Specify whether the mapper's should be set in to Static mode.
234
235 // The dimension of the data
238
239 // Control whether this is a follower or regular actor
242
243 // Specify to defer construction of the LOD.
245
246 // Keep track of building
248
249private:
250 vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
251 void operator=(const vtkQuadricLODActor&) = delete;
252};
253
254#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:61
a virtual camera for 3D rendering
Definition vtkCamera.h:61
a simple class to control print indentation
Definition vtkIndent.h:49
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:97
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:66
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:82
record modification and/or execution time
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:69