VTK
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 =========================================================================*/
52 #ifndef vtkQuadricLODActor_h
53 #define vtkQuadricLODActor_h
54 
55 #include "vtkRenderingLODModule.h" // For export macro
56 #include "vtkActor.h"
57 
59 class vtkPolyDataMapper;
60 class vtkCamera;
61 class vtkPolyData;
62 
64 {
65 public:
68 
70 
72  void PrintSelf(ostream& os, vtkIndent indent);
74 
76 
80  vtkSetMacro(DeferLODConstruction, int);
81  vtkGetMacro(DeferLODConstruction, int);
82  vtkBooleanMacro(DeferLODConstruction, int);
84 
86 
91  vtkSetMacro(Static, int);
92  vtkGetMacro(Static, int);
93  vtkBooleanMacro(Static, int);
95 
96 //BTX
98  {
99  UNKNOWN = 0,
100  XLINE, YLINE, ZLINE,
101  XYPLANE, XZPLANE, YZPLANE,
102  XYZVOLUME
103  };
104 //ETX
106 
117  vtkSetClampMacro(DataConfiguration, int, UNKNOWN,XYZVOLUME);
118  vtkGetMacro(DataConfiguration, int);
120  { this->SetDataConfiguration(UNKNOWN); }
122  { this->SetDataConfiguration(XLINE); }
124  { this->SetDataConfiguration(YLINE); }
126  { this->SetDataConfiguration(ZLINE); }
128  { this->SetDataConfiguration(XYPLANE); }
130  { this->SetDataConfiguration(YZPLANE); }
132  { this->SetDataConfiguration(XZPLANE); }
134  { this->SetDataConfiguration(XYZVOLUME); }
136 
138 
144  vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
145  vtkGetMacro(CollapseDimensionRatio, double);
147 
149 
156 
158 
164  vtkSetClampMacro(MaximumDisplayListSize, int, 1000, VTK_INT_MAX);
165  vtkGetMacro(MaximumDisplayListSize, int);
167 
168 //BTX
170  {
171  FOLLOWER = 0,
172  ACTOR
173  };
174 //ETX
176 
178  vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
179  vtkGetMacro(PropType, int);
181  { this->SetPropType(FOLLOWER); }
183  { this->SetPropType(ACTOR); }
185 
187 
192 
196  virtual void Render(vtkRenderer *, vtkMapper *);
197 
201 
206 
208  void ShallowCopy(vtkProp *prop);
209 
210 protected:
213 
214  // Renders the LOD
217 
218  // Keep track of the requested interactive frame rate
220 
221  // Support various strategies
223 
224  // Specify whether the mapper's should be set in to Static mode.
225  int Static;
226 
227  // The dimension of the data
230 
231  // Control whether this is a follower or regular actor
232  int PropType;
234 
235  // Control what size (in terms of number of graphics primitives)
236  // where display lists should be used.
238 
239  // Specify to defer construction of the LOD.
241 
242  // Keep track of building
244 
245  // Helper function determines display list size
247 
248 private:
249  vtkQuadricLODActor(const vtkQuadricLODActor&); // Not implemented.
250  void operator=(const vtkQuadricLODActor&); // Not implemented.
251 };
252 
253 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:42
vtkQuadricLODActor::BuildTime
vtkTimeStamp BuildTime
Definition: vtkQuadricLODActor.h:243
vtkQuadricLODActor::ShallowCopy
void ShallowCopy(vtkProp *prop)
vtkQuadricLODActor::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport)
vtkQuadricLODActor::CachedInteractiveFrameRate
double CachedInteractiveFrameRate
Definition: vtkQuadricLODActor.h:219
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:132
VTKRENDERINGLOD_EXPORT
#define VTKRENDERINGLOD_EXPORT
Definition: vtkRenderingLODModule.h:15
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkQuadricLODActor::Render
virtual void Render(vtkRenderer *, vtkMapper *)
vtkQuadricLODActor::PropType
int PropType
Definition: vtkQuadricLODActor.h:232
vtkQuadricLODActor
a specific level-of-detail strategy using the quadric clustering decimation algorithm
Definition: vtkQuadricLODActor.h:64
vtkQuadricLODActor::SetDataConfigurationToUnknown
void SetDataConfigurationToUnknown()
Definition: vtkQuadricLODActor.h:119
vtkQuadricLODActor::SetPropTypeToFollower
void SetPropTypeToFollower()
Definition: vtkQuadricLODActor.h:180
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkQuadricLODActor::SetDataConfigurationToYZPlane
void SetDataConfigurationToYZPlane()
Definition: vtkQuadricLODActor.h:129
vtkQuadricLODActor::SetPropTypeToActor
void SetPropTypeToActor()
Definition: vtkQuadricLODActor.h:182
vtkQuadricLODActor::LODFilter
vtkQuadricClustering * LODFilter
Definition: vtkQuadricLODActor.h:222
vtkQuadricLODActor::SetDataConfigurationToYLine
void SetDataConfigurationToYLine()
Definition: vtkQuadricLODActor.h:123
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkQuadricLODActor::YZPLANE
@ YZPLANE
Definition: vtkQuadricLODActor.h:101
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkQuadricLODActor::GetDisplayListSize
vtkIdType GetDisplayListSize(vtkPolyData *pd)
vtkQuadricLODActor::SetDataConfigurationToZLine
void SetDataConfigurationToZLine()
Definition: vtkQuadricLODActor.h:125
vtkQuadricLODActor::DataConfiguration
int DataConfiguration
Definition: vtkQuadricLODActor.h:229
vtkQuadricLODActor::CollapseDimensionRatio
double CollapseDimensionRatio
Definition: vtkQuadricLODActor.h:228
vtkQuadricLODActor::SetDataConfigurationToXYPlane
void SetDataConfigurationToXYPlane()
Definition: vtkQuadricLODActor.h:127
vtkQuadricLODActor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkQuadricLODActor::MaximumDisplayListSize
int MaximumDisplayListSize
Definition: vtkQuadricLODActor.h:237
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
vtkQuadricLODActor::SetCamera
void SetCamera(vtkCamera *)
vtkQuadricLODActor::vtkQuadricLODActor
vtkQuadricLODActor()
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkQuadricLODActor::New
static vtkQuadricLODActor * New()
vtkQuadricLODActor::SetDataConfigurationToXLine
void SetDataConfigurationToXLine()
Definition: vtkQuadricLODActor.h:121
vtkMapper
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:90
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
vtkQuadricClustering
reduce the number of triangles in a mesh
Definition: vtkQuadricClustering.h:100
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkQuadricLODActor::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *)
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:49
vtkActor.h
vtkQuadricLODActor::LODActor
vtkActor * LODActor
Definition: vtkQuadricLODActor.h:215
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:47
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkQuadricLODActor::~vtkQuadricLODActor
~vtkQuadricLODActor()
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:50
vtkQuadricLODActor::DataConfigurationEnum
DataConfigurationEnum
Definition: vtkQuadricLODActor.h:98
vtkQuadricLODActor::DeferLODConstruction
int DeferLODConstruction
Definition: vtkQuadricLODActor.h:240
vtkRenderingLODModule.h
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkQuadricLODActor::SetLODFilter
void SetLODFilter(vtkQuadricClustering *lodFilter)
vtkQuadricLODActor::Static
int Static
Definition: vtkQuadricLODActor.h:225
vtkQuadricLODActor::LODMapper
vtkPolyDataMapper * LODMapper
Definition: vtkQuadricLODActor.h:216
vtkQuadricLODActor::PropTypeEnum
PropTypeEnum
Definition: vtkQuadricLODActor.h:170
vtkQuadricLODActor::SetDataConfigurationToXZPlane
void SetDataConfigurationToXZPlane()
Definition: vtkQuadricLODActor.h:131
vtkQuadricLODActor::Camera
vtkCamera * Camera
Definition: vtkQuadricLODActor.h:233
vtkQuadricLODActor::SetDataConfigurationToXYZVolume
void SetDataConfigurationToXYZVolume()
Definition: vtkQuadricLODActor.h:133
vtkQuadricLODActor::ZLINE
@ ZLINE
Definition: vtkQuadricLODActor.h:100