VTK
vtkGenericCellTessellator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGenericCellTessellator.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 =========================================================================*/
39 #ifndef vtkGenericCellTessellator_h
40 #define vtkGenericCellTessellator_h
41 
42 #include "vtkCommonDataModelModule.h" // For export macro
43 #include "vtkObject.h"
44 
45 class vtkCellArray;
46 class vtkDoubleArray;
47 class vtkCollection;
51 class vtkPointData;
52 class vtkGenericDataSet;
53 
54 //-----------------------------------------------------------------------------
55 //
56 // The tessellation object
58 {
59 public:
61  void PrintSelf(ostream& os, vtkIndent indent);
62 
64 
75  vtkCellArray *cellArray,
76  vtkPointData *internalPd)=0;
78 
80 
86  virtual void Tessellate(vtkGenericAdaptorCell *cell,
89  vtkCellArray *cellArray,
90  vtkPointData *internalPd )=0;
92 
94 
100  virtual void Triangulate(vtkGenericAdaptorCell *cell,
103  vtkCellArray *cellArray,
104  vtkPointData *internalPd)=0;
106 
108 
111  virtual void SetErrorMetrics(vtkCollection *someErrorMetrics);
114 
116  virtual void Initialize(vtkGenericDataSet *ds)=0;
117 
121 
123 
124  vtkGetMacro(Measurement,int);
125  vtkSetMacro(Measurement,int);
127 
131  void GetMaxErrors(double *errors);
132 
133 protected:
136 
138 
150  int RequiresEdgeSubdivision(double *left, double *mid, double *right,
151  double alpha);
153 
154 
156 
165  virtual void UpdateMaxError(double *leftPoint, double *midPoint,
166  double *rightPoint, double alpha);
168 
172 
175 
180 
182 
183  int Measurement; // if true, measure the quality of the fixed subdivision.
184  double *MaxErrors; // max error for each error metric, for measuring the
185  // quality of a fixed subdivision.
187 
188 private:
189  vtkGenericCellTessellator(const vtkGenericCellTessellator&); // Not implemented.
190  void operator=(const vtkGenericCellTessellator&); // Not implemented.
191 };
192 
193 #endif
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkGenericCellTessellator::Triangulate
virtual void Triangulate(vtkGenericAdaptorCell *cell, vtkGenericAttributeCollection *att, vtkDoubleArray *points, vtkCellArray *cellArray, vtkPointData *internalPd)=0
vtkPointData
represent and manipulate point attribute data
Definition: vtkPointData.h:37
vtkGenericCellTessellator::SetGenericCell
void SetGenericCell(vtkGenericAdaptorCell *cell)
vtkGenericCellTessellator::Initialize
virtual void Initialize(vtkGenericDataSet *ds)=0
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkCommonDataModelModule.h
vtkGenericCellTessellator::Tessellate
virtual void Tessellate(vtkGenericAdaptorCell *cell, vtkGenericAttributeCollection *att, vtkDoubleArray *points, vtkCellArray *cellArray, vtkPointData *internalPd)=0
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkGenericAdaptorCell
defines cell interface
Definition: vtkGenericAdaptorCell.h:95
vtkGenericCellIterator
iterator used to traverse cells
Definition: vtkGenericCellIterator.h:44
vtkgl::left
GLint left
Definition: vtkgl.h:14367
vtkgl::points
GLsizei const GLfloat * points
Definition: vtkgl.h:14786
vtkGenericCellTessellator::SetErrorMetrics
virtual void SetErrorMetrics(vtkCollection *someErrorMetrics)
vtkGenericDataSet
defines dataset interface
Definition: vtkGenericDataSet.h:69
vtkGenericCellTessellator::vtkGenericCellTessellator
vtkGenericCellTessellator()
vtkGenericCellTessellator::ResetMaxErrors
void ResetMaxErrors()
vtkGenericCellTessellator::GetMaxErrors
void GetMaxErrors(double *errors)
vtkCollection
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:53
vtkGenericCellTessellator
helper class to perform cell tessellation
Definition: vtkGenericCellTessellator.h:58
vtkgl::right
GLdouble GLdouble right
Definition: vtkgl.h:18180
vtkGenericCellTessellator::DataSet
vtkGenericDataSet * DataSet
Definition: vtkGenericCellTessellator.h:181
vtkGenericCellTessellator::MaxErrorsCapacity
int MaxErrorsCapacity
Definition: vtkGenericCellTessellator.h:186
vtkGenericCellTessellator::RequiresEdgeSubdivision
int RequiresEdgeSubdivision(double *left, double *mid, double *right, double alpha)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:50
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkGenericCellTessellator::TessellateFace
virtual void TessellateFace(vtkGenericAdaptorCell *cell, vtkGenericAttributeCollection *att, vtkIdType index, vtkDoubleArray *points, vtkCellArray *cellArray, vtkPointData *internalPd)=0
vtkObject.h
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkgl::alpha
GLclampf GLclampf GLclampf alpha
Definition: vtkgl.h:11313
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkGenericCellTessellator::UpdateMaxError
virtual void UpdateMaxError(double *leftPoint, double *midPoint, double *rightPoint, double alpha)
vtkGenericCellTessellator::~vtkGenericCellTessellator
~vtkGenericCellTessellator()
vtkGenericCellTessellator::ErrorMetrics
vtkCollection * ErrorMetrics
Definition: vtkGenericCellTessellator.h:174
vtkGenericAttributeCollection
a collection of attributes
Definition: vtkGenericAttributeCollection.h:36
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
VTKCOMMONDATAMODEL_EXPORT
#define VTKCOMMONDATAMODEL_EXPORT
Definition: vtkCommonDataModelModule.h:15
vtkGenericCellTessellator::Measurement
int Measurement
Definition: vtkGenericCellTessellator.h:183
vtkGenericCellTessellator::MaxErrors
double * MaxErrors
Definition: vtkGenericCellTessellator.h:184
vtkGenericCellTessellator::InitErrorMetrics
void InitErrorMetrics(vtkGenericDataSet *ds)
vtkGenericCellTessellator::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)