VTK  9.0.1
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 =========================================================================*/
50 #ifndef vtkQuadricLODActor_h
51 #define vtkQuadricLODActor_h
52 
53 #include "vtkActor.h"
54 #include "vtkRenderingLODModule.h" // For export macro
55 
57 class vtkPolyDataMapper;
58 class vtkCamera;
59 class vtkPolyData;
60 
61 class VTKRENDERINGLOD_EXPORT vtkQuadricLODActor : public vtkActor
62 {
63 public:
67  static vtkQuadricLODActor* New();
68 
70 
73  vtkTypeMacro(vtkQuadricLODActor, vtkActor);
74  void PrintSelf(ostream& os, vtkIndent indent) override;
76 
78 
83  vtkSetMacro(DeferLODConstruction, vtkTypeBool);
84  vtkGetMacro(DeferLODConstruction, vtkTypeBool);
85  vtkBooleanMacro(DeferLODConstruction, vtkTypeBool);
87 
89 
96  vtkSetMacro(Static, vtkTypeBool);
97  vtkGetMacro(Static, vtkTypeBool);
98  vtkBooleanMacro(Static, vtkTypeBool);
100 
102  {
103  UNKNOWN = 0,
110  XYZVOLUME
111  };
112 
114 
127  vtkSetClampMacro(DataConfiguration, int, UNKNOWN, XYZVOLUME);
128  vtkGetMacro(DataConfiguration, int);
129  void SetDataConfigurationToUnknown() { this->SetDataConfiguration(UNKNOWN); }
130  void SetDataConfigurationToXLine() { this->SetDataConfiguration(XLINE); }
131  void SetDataConfigurationToYLine() { this->SetDataConfiguration(YLINE); }
132  void SetDataConfigurationToZLine() { this->SetDataConfiguration(ZLINE); }
133  void SetDataConfigurationToXYPlane() { this->SetDataConfiguration(XYPLANE); }
134  void SetDataConfigurationToYZPlane() { this->SetDataConfiguration(YZPLANE); }
135  void SetDataConfigurationToXZPlane() { this->SetDataConfiguration(XZPLANE); }
136  void SetDataConfigurationToXYZVolume() { this->SetDataConfiguration(XYZVOLUME); }
138 
140 
147  vtkSetClampMacro(CollapseDimensionRatio, double, 0.0, 1.0);
148  vtkGetMacro(CollapseDimensionRatio, double);
150 
152 
157  void SetLODFilter(vtkQuadricClustering* lodFilter);
158  vtkGetObjectMacro(LODFilter, vtkQuadricClustering);
160 
162  {
163  FOLLOWER = 0,
164  ACTOR
165  };
166 
168 
172  vtkSetClampMacro(PropType, int, FOLLOWER, ACTOR);
173  vtkGetMacro(PropType, int);
174  void SetPropTypeToFollower() { this->SetPropType(FOLLOWER); }
175  void SetPropTypeToActor() { this->SetPropType(ACTOR); }
177 
179 
183  void SetCamera(vtkCamera*);
184  vtkGetObjectMacro(Camera, vtkCamera);
186 
192  void Render(vtkRenderer*, vtkMapper*) override;
193 
198  int RenderOpaqueGeometry(vtkViewport* viewport) override;
199 
205  void ReleaseGraphicsResources(vtkWindow*) override;
206 
210  void ShallowCopy(vtkProp* prop) override;
211 
212 protected:
214  ~vtkQuadricLODActor() override;
215 
216  // Renders the LOD
219 
220  // Keep track of the requested interactive frame rate
222 
223  // Support various strategies
225 
226  // Specify whether the mapper's should be set in to Static mode.
228 
229  // The dimension of the data
232 
233  // Control whether this is a follower or regular actor
234  int PropType;
236 
237  // Specify to defer construction of the LOD.
239 
240  // Keep track of building
242 
243 private:
244  vtkQuadricLODActor(const vtkQuadricLODActor&) = delete;
245  void operator=(const vtkQuadricLODActor&) = delete;
246 };
247 
248 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:53
virtual void Render(vtkRenderer *, vtkMapper *)
This causes the actor to be rendered.
Definition: vtkActor.h:87
void SetDataConfigurationToYZPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:45
abstract specification for Viewports
Definition: vtkViewport.h:44
record modification and/or execution time
Definition: vtkTimeStamp.h:32
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ShallowCopy(vtkProp *prop) override
Shallow copy of an actor.
abstract specification for renderers
Definition: vtkRenderer.h:67
vtkQuadricClustering * LODFilter
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
static vtkActor * New()
Creates an actor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,1,1) visibility=1 pickable=1 dragable=1 orientation=(0,0,0).
void SetPropTypeToFollower()
Indicate that this actor is actually a follower.
vtkPolyDataMapper * LODMapper
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
int vtkTypeBool
Definition: vtkABI.h:69
window superclass for vtkRenderWindow
Definition: vtkWindow.h:37
void SetDataConfigurationToXYZVolume()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void SetDataConfigurationToXYPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
a simple class to control print indentation
Definition: vtkIndent.h:33
a virtual camera for 3D rendering
Definition: vtkCamera.h:45
void SetPropTypeToActor()
Indicate that this actor is actually a follower.
vtkTypeBool DeferLODConstruction
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:80
map vtkPolyData to graphics primitives
void SetDataConfigurationToXLine()
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 SetDataConfigurationToZLine()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void SetDataConfigurationToXZPlane()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
void SetDataConfigurationToUnknown()
Force the binning of the quadric clustering according to application knowledge relative to the dimens...
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
a specific level-of-detail strategy using the quadric clustering decimation algorithm ...
reduce the number of triangles in a mesh