Go to the documentation of this file.
86 #ifndef vtkDecimatePro_h
87 #define vtkDecimatePro_h
89 #include "vtkFiltersCoreModule.h"
123 vtkSetClampMacro(TargetReduction,
double,0.0,1.0);
124 vtkGetMacro(TargetReduction,
double);
144 vtkSetClampMacro(FeatureAngle,
double,0.0,180.0);
145 vtkGetMacro(FeatureAngle,
double);
166 vtkSetClampMacro(SplitAngle,
double,0.0,180.0);
167 vtkGetMacro(SplitAngle,
double);
192 vtkGetMacro(MaximumError,
double);
215 vtkSetMacro(ErrorIsAbsolute,
int);
216 vtkGetMacro(ErrorIsAbsolute,
int);
224 vtkGetMacro(AbsoluteError,
double);
245 vtkGetMacro(Degree,
int);
255 vtkGetMacro(InflectionPointRatio,
double);
291 vtkSetMacro(OutputPointsPrecision,
int);
292 vtkGetMacro(OutputPointsPrecision,
int);
363 {this->MaxId = -1; this->Array =
new LocalVertex[sz];};
366 delete [] this->Array;
370 {this->MaxId++; this->Array[this->MaxId] = v;};
383 {this->MaxId = -1; this->Array =
new LocalTri[sz];};
386 delete [] this->Array;
390 {this->MaxId++; this->Array[this->MaxId] = t;};
401 void Insert(
vtkIdType id,
double error= -1.0);
402 int Pop(
double &error);
425 double TheSplitAngle;
void InsertNextTriangle(LocalTri &t)
vtkIdType GetNumberOfTriangles()
double * GetInflectionPoints()
Get a list of inflection points.
int OutputPointsPrecision
void DistributeError(double error)
LocalVertex * LocalVertexPtr
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SplitLoop(vtkIdType fedges[2], vtkIdType &n1, vtkIdType *l1, vtkIdType &n2, vtkIdType *l2)
a list of ids arranged in priority order
LocalTri & GetTriangle(vtkIdType i)
vtkTypeBool BoundaryVertexDeletion
void SplitVertex(vtkIdType ptId, int type, unsigned short int numTris, vtkIdType *tris, int insert)
int CollapseEdge(int type, vtkIdType ptId, vtkIdType collapseId, vtkIdType pt1, vtkIdType pt2, vtkIdList *CollapseTris)
reduce the number of triangles in a mesh
static vtkDecimatePro * New()
Create object with specified reduction of 90% and feature angle of 15 degrees.
vtkPriorityQueue * EdgeLengths
a simple class to control print indentation
LocalVertex & GetVertex(vtkIdType i)
list of point or cell ids
void InsertNextVertex(LocalVertex &v)
double InflectionPointRatio
~vtkDecimatePro() override
TriArray(const vtkIdType sz)
vtkDoubleArray * InflectionPoints
vtkIdType GetNumberOfInflectionPoints()
Get the number of inflection points.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkIdType FindSplit(int type, vtkIdType fedges[2], vtkIdType &pt1, vtkIdType &pt2, vtkIdList *CollapseTris)
vtkTypeBool AccumulateError
concrete dataset represents vertices, lines, polygons, and triangle strips
VertexArray(const vtkIdType sz)
dynamic, self-adjusting array of double
vtkIdType GetNumberOfVertices()
int EvaluateVertex(vtkIdType ptId, unsigned short int numTris, vtkIdType *tris, vtkIdType fedges[2])
void GetInflectionPoints(double *inflectionPoints)
Get a list of inflection points.
int IsValidSplit(int index)
vtkTypeBool PreserveTopology
Superclass for algorithms that produce only polydata as output.