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 
76 class vtkPolyDataMapper;
77 class vtkCamera;
78 class vtkPolyData;
79 
80 class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
81 {
82 public:
87 
89 
92  vtkTypeMacro(vtkQuadricLODActor, vtkActor);
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 
225 protected:
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
247  int PropType;
249 
250  // Specify to defer construction of the LOD.
252 
253  // Keep track of building
255 
256 private:
257  vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
258  void operator=(const vtkQuadricLODActor&) = delete;
259 };
260 
261 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:146
vtkQuadricLODActor::BuildTime
vtkTimeStamp BuildTime
Definition: vtkQuadricLODActor.h:254
vtkQuadricLODActor::YLINE
@ YLINE
Definition: vtkQuadricLODActor.h:124
vtkQuadricLODActor::CachedInteractiveFrameRate
double CachedInteractiveFrameRate
Definition: vtkQuadricLODActor.h:234
vtkQuadricLODActor::DeferLODConstruction
vtkTypeBool DeferLODConstruction
Definition: vtkQuadricLODActor.h:251
vtkQuadricLODActor::PropType
int PropType
Definition: vtkQuadricLODActor.h:247
vtkQuadricLODActor
a specific level-of-detail strategy using the quadric clustering decimation algorithm
Definition: vtkQuadricLODActor.h:81
vtkQuadricLODActor::SetDataConfigurationToUnknown
void SetDataConfigurationToUnknown()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:148
vtkQuadricLODActor::SetPropTypeToFollower
void SetPropTypeToFollower()
Indicate that this actor is actually a follower.
Definition: vtkQuadricLODActor.h:193
vtkQuadricLODActor::SetDataConfigurationToYZPlane
void SetDataConfigurationToYZPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:153
vtkQuadricLODActor::SetPropTypeToActor
void SetPropTypeToActor()
Indicate that this actor is actually a follower.
Definition: vtkQuadricLODActor.h:194
vtkQuadricLODActor::LODFilter
vtkQuadricClustering * LODFilter
Definition: vtkQuadricLODActor.h:237
vtkQuadricLODActor::SetDataConfigurationToYLine
void SetDataConfigurationToYLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:150
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:52
vtkQuadricLODActor::YZPLANE
@ YZPLANE
Definition: vtkQuadricLODActor.h:128
vtkQuadricLODActor::XZPLANE
@ XZPLANE
Definition: vtkQuadricLODActor.h:127
vtkQuadricLODActor::XYPLANE
@ XYPLANE
Definition: vtkQuadricLODActor.h:126
vtkQuadricLODActor::SetDataConfigurationToZLine
void SetDataConfigurationToZLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:151
vtkQuadricLODActor::DataConfiguration
int DataConfiguration
Definition: vtkQuadricLODActor.h:244
vtkQuadricLODActor::CollapseDimensionRatio
double CollapseDimensionRatio
Definition: vtkQuadricLODActor.h:243
vtkQuadricLODActor::Static
vtkTypeBool Static
Definition: vtkQuadricLODActor.h:240
vtkQuadricLODActor::SetDataConfigurationToXYPlane
void SetDataConfigurationToXYPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:152
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkIOSSUtilities::UNKNOWN
@ UNKNOWN
Definition: vtkIOSSUtilities.h:60
vtkQuadricLODActor::SetCamera
void SetCamera(vtkCamera *)
Set/Get the camera to follow.
vtkQuadricLODActor::vtkQuadricLODActor
vtkQuadricLODActor()
vtkQuadricLODActor::New
static vtkQuadricLODActor * New()
Creates a vtkQuadricLODActor.
vtkQuadricLODActor::SetDataConfigurationToXLine
void SetDataConfigurationToXLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:149
vtkMapper
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:171
vtkQuadricLODActor::Render
void Render(vtkRenderer *, vtkMapper *) override
This causes the actor to be rendered.
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
vtkQuadricClustering
reduce the number of triangles in a mesh
Definition: vtkQuadricClustering.h:121
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:155
vtkActor.h
vtkQuadricLODActor::LODActor
vtkActor * LODActor
Definition: vtkQuadricLODActor.h:230
vtkQuadricLODActor::ShallowCopy
void ShallowCopy(vtkProp *prop) override
Shallow copy of an LOD actor.
vtkQuadricLODActor::XLINE
@ XLINE
Definition: vtkQuadricLODActor.h:123
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:76
vtkQuadricLODActor::DataConfigurationEnum
DataConfigurationEnum
Definition: vtkQuadricLODActor.h:121
vtkQuadricLODActor::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:182
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
vtkQuadricLODActor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Standard class methods.
vtkQuadricLODActor::SetLODFilter
void SetLODFilter(vtkQuadricClustering *lodFilter)
This class will create a vtkQuadricClustering algorithm automatically.
vtkQuadricLODActor::LODMapper
vtkPolyDataMapper * LODMapper
Definition: vtkQuadricLODActor.h:231
vtkQuadricLODActor::PropTypeEnum
PropTypeEnum
Definition: vtkQuadricLODActor.h:181
vtkQuadricLODActor::SetDataConfigurationToXZPlane
void SetDataConfigurationToXZPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:154
vtkQuadricLODActor::Camera
vtkCamera * Camera
Definition: vtkQuadricLODActor.h:248
vtkQuadricLODActor::~vtkQuadricLODActor
~vtkQuadricLODActor() override
vtkQuadricLODActor::SetDataConfigurationToXYZVolume
void SetDataConfigurationToXYZVolume()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
Definition: vtkQuadricLODActor.h:155
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkQuadricLODActor::ZLINE
@ ZLINE
Definition: vtkQuadricLODActor.h:125