VTK  9.4.20241213
vtkQuadricLODActor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
60#ifndef vtkQuadricLODActor_h
61#define vtkQuadricLODActor_h
62
63#include "vtkActor.h"
64#include "vtkRenderingLODModule.h" // For export macro
65
66VTK_ABI_NAMESPACE_BEGIN
69class vtkCamera;
70class vtkPolyData;
71
72class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
73{
74public:
79
81
85 void PrintSelf(ostream& os, vtkIndent indent) override;
87
89
94 vtkSetMacro(DeferLODConstruction, vtkTypeBool);
95 vtkGetMacro(DeferLODConstruction, vtkTypeBool);
96 vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
98
100
107 vtkSetMacro(Static, vtkTypeBool);
108 vtkGetMacro(Static, vtkTypeBool);
109 vtkBooleanMacro(Static, vtkTypeBool);
111
113 {
114 UNKNOWN = 0,
121 XYZVOLUME
122 };
123
125
138 vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
139 vtkGetMacro(DataConfiguration, int);
140 void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
141 void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
142 void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
143 void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
144 void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
145 void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
146 void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
147 void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
149
151
158 vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
159 vtkGetMacro(CollapseDimensionRatio, double);
161
163
169 vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
171
173 {
174 FOLLOWER = 0,
175 ACTOR
176 };
177
179
183 vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
184 vtkGetMacro(PropType, int);
185 void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
186 void SetPropTypeToActor() { this->SetPropType(ACTOR); }
188
190
195 vtkGetObjectMacro(Camera, vtkCamera);
197
203 void Render(vtkRenderer*, vtkMapper*) override;
204
211
215 void ShallowCopy(vtkProp* prop) override;
216
217protected:
220
221 // Renders the LOD
224
225 // Keep track of the requested interactive frame rate
227
228 // Support various strategies
230
231 // Specify whether the mapper's should be set in to Static mode.
233
234 // The dimension of the data
237
238 // Control whether this is a follower or regular actor
241
242 // Specify to defer construction of the LOD.
244
245 // Keep track of building
247
248private:
249 vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
250 void operator=(const vtkQuadricLODActor&) = delete;
251};
252
253VTK_ABI_NAMESPACE_END
254#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
a virtual camera for 3D rendering
Definition vtkCamera.h:151
a simple class to control print indentation
Definition vtkIndent.h:108
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:137
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
record modification and/or execution time
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64