71#ifndef vtkDecimatePro_h 
   72#define vtkDecimatePro_h 
   74#include "vtkFiltersCoreModule.h"  
   79VTK_ABI_NAMESPACE_BEGIN
 
  109  vtkSetClampMacro(TargetReduction, 
double, 0.0, 1.0);
 
  110  vtkGetMacro(TargetReduction, 
double);
 
  130  vtkSetClampMacro(FeatureAngle, 
double, 0.0, 180.0);
 
  131  vtkGetMacro(FeatureAngle, 
double);
 
  152  vtkSetClampMacro(SplitAngle, 
double, 0.0, 180.0);
 
  153  vtkGetMacro(SplitAngle, 
double);
 
  178  vtkGetMacro(MaximumError, 
double);
 
  201  vtkSetMacro(ErrorIsAbsolute, 
int);
 
  202  vtkGetMacro(ErrorIsAbsolute, 
int);
 
  210  vtkGetMacro(AbsoluteError, 
double);
 
  231  vtkGetMacro(Degree, 
int);
 
  241  vtkGetMacro(InflectionPointRatio, 
double);
 
  276  vtkSetMacro(OutputPointsPrecision, 
int);
 
  277  vtkGetMacro(OutputPointsPrecision, 
int);
 
  355      this->Array[this->MaxId] = v;
 
  379      this->Array[this->MaxId] = t;
 
  391  void Insert(
vtkIdType id, 
double error = -1.0);
 
  392  int Pop(
double& error);
 
  415  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