80 #ifndef vtkDecimatePro_h
81 #define vtkDecimatePro_h
83 #include "vtkFiltersCoreModule.h"
117 vtkSetClampMacro(TargetReduction,
double,0.0,1.0);
118 vtkGetMacro(TargetReduction,
double);
128 vtkGetMacro(PreserveTopology,
int);
138 vtkSetClampMacro(FeatureAngle,
double,0.0,180.0);
139 vtkGetMacro(FeatureAngle,
double);
150 vtkGetMacro(Splitting,
int);
160 vtkSetClampMacro(SplitAngle,
double,0.0,180.0);
161 vtkGetMacro(SplitAngle,
double);
174 vtkGetMacro(PreSplitMesh,
int);
186 vtkGetMacro(MaximumError,
double);
199 vtkGetMacro(AccumulateError,
int);
210 vtkGetMacro(ErrorIsAbsolute,
int);
218 vtkGetMacro(AbsoluteError,
double);
227 vtkGetMacro(BoundaryVertexDeletion,
int);
239 vtkGetMacro(Degree,
int);
248 vtkSetClampMacro(InflectionPointRatio,
double,1.001,
VTK_DOUBLE_MAX);
249 vtkGetMacro(InflectionPointRatio,
double);
268 void GetInflectionPoints(
double *inflectionPoints);
277 double *GetInflectionPoints();
286 vtkGetMacro(OutputPointsPrecision,
int);
295 double TargetReduction;
298 double AbsoluteError;
304 int BoundaryVertexDeletion;
305 int PreserveTopology;
307 double InflectionPointRatio;
309 int OutputPointsPrecision;
316 int EvaluateVertex(
vtkIdType ptId,
unsigned short int numTris,
320 int IsValidSplit(
int index);
323 void SplitVertex(
vtkIdType ptId,
int type,
unsigned short int numTris,
327 void DistributeError(
double error);
357 {this->MaxId = -1; this->Array =
new LocalVertex[sz];};
360 delete [] this->Array;
364 {this->MaxId++; this->Array[this->MaxId] = v;};
377 {this->MaxId = -1; this->Array =
new LocalTri[sz];};
380 delete [] this->Array;
384 {this->MaxId++; this->Array[this->MaxId] = t;};
395 void Insert(
vtkIdType id,
double error= -1.0);
396 int Pop(
double &error);
419 double TheSplitAngle;
LocalTri & GetTriangle(vtkIdType i)
void InsertNextTriangle(LocalTri &t)
concrete dataset represents vertices, lines, polygons, and triangle strips
dynamic, self-adjusting array of double
a list of ids arranged in priority order
LocalVertex * LocalVertexPtr
static vtkPolyDataAlgorithm * New()
LocalVertex & GetVertex(vtkIdType i)
TriArray(const vtkIdType sz)
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
list of point or cell ids
void InsertNextVertex(LocalVertex &v)
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
VertexArray(const vtkIdType sz)
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
reduce the number of triangles in a mesh
vtkIdType GetNumberOfVertices()
vtkIdType GetNumberOfTriangles()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.