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 =========================================================================*/
53 #ifndef vtkQuadricLODActor_h
54 #define vtkQuadricLODActor_h
55 
56 #include "vtkRenderingLODModule.h" // For export macro
57 #include "vtkActor.h"
58 
60 class vtkPolyDataMapper;
61 class vtkCamera;
62 class vtkPolyData;
63 
64 class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
65 {
66 public:
71 
73 
76  vtkTypeMacro(vtkQuadricLODActor, vtkActor);
77  void PrintSelf(ostream& os, vtkIndent indent);
79 
81 
86  vtkSetMacro(DeferLODConstruction, int);
87  vtkGetMacro(DeferLODConstruction, int);
88  vtkBooleanMacro(DeferLODConstruction, int);
90 
92 
99  vtkSetMacro(Static, int);
100  vtkGetMacro(Static, int);
101  vtkBooleanMacro(Static, int);
103 
105  {
106  UNKNOWN = 0,
107  XLINE, YLINE, ZLINE,
108  XYPLANE, XZPLANE, YZPLANE,
109  XYZVOLUME
110  };
111 
113 
126  vtkSetClampMacro(DataConfiguration, int, UNKNOWN,XYZVOLUME);
127  vtkGetMacro(DataConfiguration, int);
129  { this->SetDataConfiguration(UNKNOWN); }
131  { this->SetDataConfiguration(XLINE); }
133  { this->SetDataConfiguration(YLINE); }
135  { this->SetDataConfiguration(ZLINE); }
137  { this->SetDataConfiguration(XYPLANE); }
139  { this->SetDataConfiguration(YZPLANE); }
141  { this->SetDataConfiguration(XZPLANE); }
143  { this->SetDataConfiguration(XYZVOLUME); }
145 
147 
154  vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
155  vtkGetMacro(CollapseDimensionRatio, double);
157 
159 
165  vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
167 
169 
177  vtkSetClampMacro(MaximumDisplayListSize, int, 1000, VTK_INT_MAX);
178  vtkGetMacro(MaximumDisplayListSize, int);
180 
182  {
183  FOLLOWER = 0,
184  ACTOR
185  };
186 
188 
192  vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
193  vtkGetMacro(PropType, int);
195  { this->SetPropType(FOLLOWER); }
197  { this->SetPropType(ACTOR); }
199 
201 
206  vtkGetObjectMacro(Camera, vtkCamera);
208 
214  virtual void Render(vtkRenderer *, vtkMapper *);
215 
221 
228 
232  void ShallowCopy(vtkProp *prop);
233 
234 protected:
237 
238  // Renders the LOD
241 
242  // Keep track of the requested interactive frame rate
244 
245  // Support various strategies
247 
248  // Specify whether the mapper's should be set in to Static mode.
249  int Static;
250 
251  // The dimension of the data
254 
255  // Control whether this is a follower or regular actor
256  int PropType;
258 
259  // Control what size (in terms of number of graphics primitives)
260  // where display lists should be used.
262 
263  // Specify to defer construction of the LOD.
265 
266  // Keep track of building
268 
269  // Helper function determines display list size
271 
272 private:
273  vtkQuadricLODActor(const vtkQuadricLODActor&) VTK_DELETE_FUNCTION;
274  void operator=(const vtkQuadricLODActor&) VTK_DELETE_FUNCTION;
275 };
276 
277 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:43
vtkQuadricLODActor::BuildTime
vtkTimeStamp BuildTime
Definition: vtkQuadricLODActor.h:267
vtkQuadricLODActor::ShallowCopy
void ShallowCopy(vtkProp *prop)
Shallow copy of an LOD actor.
vtkQuadricLODActor::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport)
This method is used internally by the rendering process.
vtkQuadricLODActor::CachedInteractiveFrameRate
double CachedInteractiveFrameRate
Definition: vtkQuadricLODActor.h:243
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:153
vtkQuadricLODActor::Render
virtual void Render(vtkRenderer *, vtkMapper *)
This causes the actor to be rendered.
vtkQuadricLODActor::PropType
int PropType
Definition: vtkQuadricLODActor.h:256
vtkQuadricLODActor
a specific level-of-detail strategy using the quadric clustering decimation algorithm
Definition: vtkQuadricLODActor.h:65
vtkQuadricLODActor::SetDataConfigurationToUnknown
void SetDataConfigurationToUnknown()
Definition: vtkQuadricLODActor.h:128
vtkQuadricLODActor::SetPropTypeToFollower
void SetPropTypeToFollower()
Definition: vtkQuadricLODActor.h:194
vtkIdType
int vtkIdType
Definition: vtkType.h:287
vtkQuadricLODActor::SetDataConfigurationToYZPlane
void SetDataConfigurationToYZPlane()
Definition: vtkQuadricLODActor.h:138
vtkQuadricLODActor::SetPropTypeToActor
void SetPropTypeToActor()
Definition: vtkQuadricLODActor.h:196
vtkQuadricLODActor::LODFilter
vtkQuadricClustering * LODFilter
Definition: vtkQuadricLODActor.h:246
vtkQuadricLODActor::SetDataConfigurationToYLine
void SetDataConfigurationToYLine()
Definition: vtkQuadricLODActor.h:132
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:36
vtkQuadricLODActor::YZPLANE
@ YZPLANE
Definition: vtkQuadricLODActor.h:108
vtkQuadricLODActor::GetDisplayListSize
vtkIdType GetDisplayListSize(vtkPolyData *pd)
vtkQuadricLODActor::SetDataConfigurationToZLine
void SetDataConfigurationToZLine()
Definition: vtkQuadricLODActor.h:134
vtkQuadricLODActor::DataConfiguration
int DataConfiguration
Definition: vtkQuadricLODActor.h:253
vtkQuadricLODActor::CollapseDimensionRatio
double CollapseDimensionRatio
Definition: vtkQuadricLODActor.h:252
vtkQuadricLODActor::SetDataConfigurationToXYPlane
void SetDataConfigurationToXYPlane()
Definition: vtkQuadricLODActor.h:136
vtkQuadricLODActor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkQuadricLODActor::MaximumDisplayListSize
int MaximumDisplayListSize
Definition: vtkQuadricLODActor.h:261
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
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()
Definition: vtkQuadricLODActor.h:130
vtkMapper
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:92
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
vtkQuadricClustering
reduce the number of triangles in a mesh
Definition: vtkQuadricClustering.h:101
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkQuadricLODActor::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *)
Release any graphics resources that are being consumed by this actor.
vtkCamera
a virtual camera for 3D rendering
Definition: vtkCamera.h:51
vtkActor.h
vtkQuadricLODActor::LODActor
vtkActor * LODActor
Definition: vtkQuadricLODActor.h:239
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:48
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkQuadricLODActor::~vtkQuadricLODActor
~vtkQuadricLODActor()
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:48
vtkQuadricLODActor::DataConfigurationEnum
DataConfigurationEnum
Definition: vtkQuadricLODActor.h:105
vtkQuadricLODActor::DeferLODConstruction
int DeferLODConstruction
Definition: vtkQuadricLODActor.h:264
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
vtkQuadricLODActor::SetLODFilter
void SetLODFilter(vtkQuadricClustering *lodFilter)
This class will create a vtkQuadricClustering algorithm automatically.
vtkQuadricLODActor::Static
int Static
Definition: vtkQuadricLODActor.h:249
vtkQuadricLODActor::LODMapper
vtkPolyDataMapper * LODMapper
Definition: vtkQuadricLODActor.h:240
vtkQuadricLODActor::PropTypeEnum
PropTypeEnum
Definition: vtkQuadricLODActor.h:182
vtkQuadricLODActor::SetDataConfigurationToXZPlane
void SetDataConfigurationToXZPlane()
Definition: vtkQuadricLODActor.h:140
vtkQuadricLODActor::Camera
vtkCamera * Camera
Definition: vtkQuadricLODActor.h:257
vtkQuadricLODActor::SetDataConfigurationToXYZVolume
void SetDataConfigurationToXYZVolume()
Definition: vtkQuadricLODActor.h:142
vtkQuadricLODActor::ZLINE
@ ZLINE
Definition: vtkQuadricLODActor.h:107