150#ifndef vtkDecimatePro_h
151#define vtkDecimatePro_h
153#include "vtkFiltersCoreModule.h"
158VTK_ABI_NAMESPACE_BEGIN
188 vtkSetClampMacro(TargetReduction,
double, 0.0, 1.0);
189 vtkGetMacro(TargetReduction,
double);
209 vtkSetClampMacro(FeatureAngle,
double, 0.0, 180.0);
210 vtkGetMacro(FeatureAngle,
double);
231 vtkSetClampMacro(SplitAngle,
double, 0.0, 180.0);
232 vtkGetMacro(SplitAngle,
double);
257 vtkGetMacro(MaximumError,
double);
280 vtkSetMacro(ErrorIsAbsolute,
int);
281 vtkGetMacro(ErrorIsAbsolute,
int);
289 vtkGetMacro(AbsoluteError,
double);
310 vtkGetMacro(Degree,
int);
320 vtkGetMacro(InflectionPointRatio,
double);
355 vtkSetMacro(OutputPointsPrecision,
int);
356 vtkGetMacro(OutputPointsPrecision,
int);
434 this->Array[this->MaxId] = v;
458 this->Array[this->MaxId] = t;
470 void Insert(
vtkIdType id,
double error = -1.0);
471 int Pop(
double& error);
494 double TheSplitAngle;
void InsertNextTriangle(LocalTri &t)
LocalTri & GetTriangle(vtkIdType i)
TriArray(const vtkIdType sz)
vtkIdType GetNumberOfTriangles()
VertexArray(const vtkIdType sz)
LocalVertex & GetVertex(vtkIdType i)
vtkIdType GetNumberOfVertices()
void InsertNextVertex(LocalVertex &v)
reduce the number of triangles in a mesh
void SplitVertex(vtkIdType ptId, int type, vtkIdType numTris, vtkIdType *tris, int insert)
int OutputPointsPrecision
void GetInflectionPoints(double *inflectionPoints)
Get a list of inflection points.
int CollapseEdge(int type, vtkIdType ptId, vtkIdType collapseId, vtkIdType pt1, vtkIdType pt2, vtkIdList *CollapseTris)
vtkDoubleArray * InflectionPoints
~vtkDecimatePro() override
void DistributeError(double error)
LocalVertex * LocalVertexPtr
static vtkDecimatePro * New()
Create object with specified reduction of 90% and feature angle of 15 degrees.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int IsValidSplit(int index)
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
int EvaluateVertex(vtkIdType ptId, vtkIdType numTris, vtkIdType *tris, vtkIdType fedges[2])
vtkTypeBool PreserveTopology
double InflectionPointRatio
vtkIdType GetNumberOfInflectionPoints()
Get the number of inflection points.
vtkTypeBool BoundaryVertexDeletion
double * GetInflectionPoints()
Get a list of inflection points.
vtkIdType FindSplit(int type, vtkIdType fedges[2], vtkIdType &pt1, vtkIdType &pt2, vtkIdList *CollapseTris)
vtkPriorityQueue * EdgeLengths
vtkTypeBool AccumulateError
void SplitLoop(vtkIdType fedges[2], vtkIdType &n1, vtkIdType *l1, vtkIdType &n2, vtkIdType *l2)
dynamic, self-adjusting array of double
list of point or cell ids
a simple class to control print indentation
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
a list of ids arranged in priority order