VTK  9.3.0
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
41#ifndef vtkQuadricLODActor_h
42#define vtkQuadricLODActor_h
43
44#include "vtkActor.h"
45#include "vtkRenderingLODModule.h" // For export macro
46
47VTK_ABI_NAMESPACE_BEGIN
50class vtkCamera;
51class vtkPolyData;
52
53class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
54{
55public:
60
62
66 void PrintSelf(ostream& os, vtkIndent indent) override;
68
70
75 vtkSetMacro(DeferLODConstruction, vtkTypeBool);
76 vtkGetMacro(DeferLODConstruction, vtkTypeBool);
77 vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
79
81
88 vtkSetMacro(Static, vtkTypeBool);
89 vtkGetMacro(Static, vtkTypeBool);
90 vtkBooleanMacro(Static, vtkTypeBool);
92
94 {
95 UNKNOWN = 0,
102 XYZVOLUME
103 };
104
106
119 vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
120 vtkGetMacro(DataConfiguration, int);
121 void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
122 void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
123 void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
124 void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
125 void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
126 void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
127 void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
128 void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
130
132
139 vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
140 vtkGetMacro(CollapseDimensionRatio, double);
142
144
150 vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
152
154 {
155 FOLLOWER = 0,
156 ACTOR
157 };
158
160
164 vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
165 vtkGetMacro(PropType, int);
166 void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
167 void SetPropTypeToActor() { this->SetPropType(ACTOR); }
169
171
176 vtkGetObjectMacro(Camera, vtkCamera);
178
184 void Render(vtkRenderer*, vtkMapper*) override;
185
192
196 void ShallowCopy(vtkProp* prop) override;
197
198protected:
201
202 // Renders the LOD
205
206 // Keep track of the requested interactive frame rate
208
209 // Support various strategies
211
212 // Specify whether the mapper's should be set in to Static mode.
214
215 // The dimension of the data
218
219 // Control whether this is a follower or regular actor
222
223 // Specify to defer construction of the LOD.
225
226 // Keep track of building
228
229private:
230 vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
231 void operator=(const vtkQuadricLODActor&) = delete;
232};
233
234VTK_ABI_NAMESPACE_END
235#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:41
a virtual camera for 3D rendering
Definition vtkCamera.h:41
a simple class to control print indentation
Definition vtkIndent.h:29
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:77
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:80
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:43
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:59
record modification and/or execution time
window superclass for vtkRenderWindow
Definition vtkWindow.h:25
int vtkTypeBool
Definition vtkABI.h:64