58 #ifndef __vtkQuadricDecimation_h
59 #define __vtkQuadricDecimation_h
80 vtkSetClampMacro(TargetReduction,
double, 0.0, 1.0);
81 vtkGetMacro(TargetReduction,
double);
88 vtkSetMacro(AttributeErrorMetric,
int);
89 vtkGetMacro(AttributeErrorMetric,
int);
90 vtkBooleanMacro(AttributeErrorMetric,
int);
98 vtkSetMacro(ScalarsAttribute,
int);
99 vtkGetMacro(ScalarsAttribute,
int);
100 vtkBooleanMacro(ScalarsAttribute,
int);
101 vtkSetMacro(VectorsAttribute,
int);
102 vtkGetMacro(VectorsAttribute,
int);
103 vtkBooleanMacro(VectorsAttribute,
int);
104 vtkSetMacro(NormalsAttribute,
int);
105 vtkGetMacro(NormalsAttribute,
int);
106 vtkBooleanMacro(NormalsAttribute,
int);
107 vtkSetMacro(TCoordsAttribute,
int);
108 vtkGetMacro(TCoordsAttribute,
int);
109 vtkBooleanMacro(TCoordsAttribute,
int);
110 vtkSetMacro(TensorsAttribute,
int);
111 vtkGetMacro(TensorsAttribute,
int);
112 vtkBooleanMacro(TensorsAttribute,
int);
119 vtkSetMacro(ScalarsWeight,
double);
120 vtkSetMacro(VectorsWeight,
double);
121 vtkSetMacro(NormalsWeight,
double);
122 vtkSetMacro(TCoordsWeight,
double);
123 vtkSetMacro(TensorsWeight,
double);
124 vtkGetMacro(ScalarsWeight,
double);
125 vtkGetMacro(VectorsWeight,
double);
126 vtkGetMacro(NormalsWeight,
double);
127 vtkGetMacro(TCoordsWeight,
double);
128 vtkGetMacro(TensorsWeight,
double);
134 vtkGetMacro(ActualReduction,
double);
148 void InitializeQuadrics(
vtkIdType numPts);
151 void AddBoundaryConstraints(
void);
163 double ComputeCost(
vtkIdType edgeId,
double *x);
164 double ComputeCost2(
vtkIdType edgeId,
double *x);
176 int TrianglePlaneCheck(
const double t0[3],
const double t1[3],
177 const double t2[3],
const double *x);
178 void ComputeNumberOfComponents(
void);
184 void SetPointAttributeArray(
vtkIdType ptId,
const double *x);
185 void GetPointAttributeArray(
vtkIdType ptId,
double *x);
190 void GetAttributeComponents();
225 int AttributeComponents[6];
226 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)
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
an 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