58 #ifndef vtkQuadricDecimation_h
59 #define vtkQuadricDecimation_h
81 vtkSetClampMacro(TargetReduction,
double, 0.0, 1.0);
82 vtkGetMacro(TargetReduction,
double);
89 vtkSetMacro(AttributeErrorMetric,
int);
90 vtkGetMacro(AttributeErrorMetric,
int);
91 vtkBooleanMacro(AttributeErrorMetric,
int);
99 vtkSetMacro(ScalarsAttribute,
int);
100 vtkGetMacro(ScalarsAttribute,
int);
101 vtkBooleanMacro(ScalarsAttribute,
int);
102 vtkSetMacro(VectorsAttribute,
int);
103 vtkGetMacro(VectorsAttribute,
int);
104 vtkBooleanMacro(VectorsAttribute,
int);
105 vtkSetMacro(NormalsAttribute,
int);
106 vtkGetMacro(NormalsAttribute,
int);
107 vtkBooleanMacro(NormalsAttribute,
int);
108 vtkSetMacro(TCoordsAttribute,
int);
109 vtkGetMacro(TCoordsAttribute,
int);
110 vtkBooleanMacro(TCoordsAttribute,
int);
111 vtkSetMacro(TensorsAttribute,
int);
112 vtkGetMacro(TensorsAttribute,
int);
113 vtkBooleanMacro(TensorsAttribute,
int);
120 vtkSetMacro(ScalarsWeight,
double);
121 vtkSetMacro(VectorsWeight,
double);
122 vtkSetMacro(NormalsWeight,
double);
123 vtkSetMacro(TCoordsWeight,
double);
124 vtkSetMacro(TensorsWeight,
double);
125 vtkGetMacro(ScalarsWeight,
double);
126 vtkGetMacro(VectorsWeight,
double);
127 vtkGetMacro(NormalsWeight,
double);
128 vtkGetMacro(TCoordsWeight,
double);
129 vtkGetMacro(TensorsWeight,
double);
135 vtkGetMacro(ActualReduction,
double);
149 void InitializeQuadrics(
vtkIdType numPts);
152 void AddBoundaryConstraints(
void);
164 double ComputeCost(
vtkIdType edgeId,
double *x);
165 double ComputeCost2(
vtkIdType edgeId,
double *x);
177 int TrianglePlaneCheck(
const double t0[3],
const double t1[3],
178 const double t2[3],
const double *x);
179 void ComputeNumberOfComponents(
void);
185 void SetPointAttributeArray(
vtkIdType ptId,
const double *x);
186 void GetPointAttributeArray(
vtkIdType ptId,
double *x);
191 void GetAttributeComponents();
226 int AttributeComponents[6];
227 double AttributeScale[6];
represent and manipulate point attribute data
vtksys_stl::pair< boost::graph_traits< vtkGraph * >::edge_iterator, boost::graph_traits< vtkGraph * >::edge_iterator > edges(vtkGraph *g)
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
#define VTKFILTERSCORE_EXPORT
vtkDoubleArray * TargetPoints
vtkIdList * CollapseCellIds
int NumberOfEdgeCollapses
ErrorQuadric * ErrorQuadrics
concrete dataset represents vertices, lines, polygons, and triangle strips
keep track of edges (edge is pair of integer id's)
dynamic, self-adjusting array of double
a list of ids arranged in priority order
static vtkPolyDataAlgorithm * New()
reduce the number of triangles in a mesh
void PrintSelf(ostream &os, vtkIndent indent)
vtkIdList * EndPoint2List
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
list of point or cell ids
vtkIdList * EndPoint1List
vtkPriorityQueue * EdgeCosts