VTK  9.2.5
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=========================================================================*/
53#ifndef vtkQuadricLODActor_h
54#define vtkQuadricLODActor_h
55
56#include "vtkActor.h"
57#include "vtkRenderingLODModule.h" // For export macro
58
61class vtkCamera;
62class vtkPolyData;
63
64class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
65{
66public:
71
73
77 void PrintSelf(ostream& os, vtkIndent indent) override;
79
81
86 vtkSetMacro(DeferLODConstruction, vtkTypeBool);
87 vtkGetMacro(DeferLODConstruction, vtkTypeBool);
88 vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
90
92
99 vtkSetMacro(Static, vtkTypeBool);
100 vtkGetMacro(Static, vtkTypeBool);
101 vtkBooleanMacro(Static, vtkTypeBool);
103
105 {
106 UNKNOWN = 0,
113 XYZVOLUME
114 };
115
117
130 vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
131 vtkGetMacro(DataConfiguration, int);
132 void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
133 void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
134 void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
135 void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
136 void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
137 void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
138 void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
139 void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
141
143
150 vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
151 vtkGetMacro(CollapseDimensionRatio, double);
153
155
161 vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
163
165 {
166 FOLLOWER = 0,
167 ACTOR
168 };
169
171
175 vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
176 vtkGetMacro(PropType, int);
177 void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
178 void SetPropTypeToActor() { this->SetPropType(ACTOR); }
180
182
187 vtkGetObjectMacro(Camera, vtkCamera);
189
195 void Render(vtkRenderer*, vtkMapper*) override;
196
203
207 void ShallowCopy(vtkProp* prop) override;
208
209protected:
212
213 // Renders the LOD
216
217 // Keep track of the requested interactive frame rate
219
220 // Support various strategies
222
223 // Specify whether the mapper's should be set in to Static mode.
225
226 // The dimension of the data
229
230 // Control whether this is a follower or regular actor
233
234 // Specify to defer construction of the LOD.
236
237 // Keep track of building
239
240private:
241 vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
242 void operator=(const vtkQuadricLODActor&) = delete;
243};
244
245#endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
a virtual camera for 3D rendering
Definition: vtkCamera.h:52
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:88
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:91
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:36
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
int vtkTypeBool
Definition: vtkABI.h:69