59 #ifndef vtkQuadricDecimation_h 60 #define vtkQuadricDecimation_h 84 vtkSetClampMacro(TargetReduction,
double, 0.0, 1.0);
85 vtkGetMacro(TargetReduction,
double);
95 vtkGetMacro(AttributeErrorMetric,
int);
108 vtkGetMacro(VolumePreservation,
int);
120 vtkGetMacro(ScalarsAttribute,
int);
123 vtkGetMacro(VectorsAttribute,
int);
126 vtkGetMacro(NormalsAttribute,
int);
129 vtkGetMacro(TCoordsAttribute,
int);
132 vtkGetMacro(TensorsAttribute,
int);
147 vtkGetMacro(ScalarsWeight,
double);
148 vtkGetMacro(VectorsWeight,
double);
149 vtkGetMacro(NormalsWeight,
double);
150 vtkGetMacro(TCoordsWeight,
double);
151 vtkGetMacro(TensorsWeight,
double);
159 vtkGetMacro(ActualReduction,
double);
172 int CollapseEdge(vtkIdType pt0Id, vtkIdType pt1Id);
177 void InitializeQuadrics(vtkIdType numPts);
182 void AddBoundaryConstraints(
void);
187 void ComputeQuadric(vtkIdType pointId);
193 void AddQuadric(vtkIdType oldPtId, vtkIdType newPtId);
200 double ComputeCost(vtkIdType edgeId,
double *x);
201 double ComputeCost2(vtkIdType edgeId,
double *x);
209 void FindAffectedEdges(vtkIdType p1Id, vtkIdType p2Id,
vtkIdList *
edges);
214 vtkIdType GetEdgeCellId(vtkIdType p1Id, vtkIdType p2Id);
216 int IsGoodPlacement(vtkIdType pt0Id, vtkIdType pt1Id,
const double *x);
217 int TrianglePlaneCheck(
const double t0[3],
const double t1[3],
218 const double t2[3],
const double *x);
219 void ComputeNumberOfComponents(
void);
220 void UpdateEdgeData(vtkIdType ptoId, vtkIdType pt1Id);
226 void SetPointAttributeArray(vtkIdType ptId,
const double *x);
227 void GetPointAttributeArray(vtkIdType ptId,
double *x);
234 void GetAttributeComponents();
273 int AttributeComponents[6];
274 double AttributeScale[6];
represent and manipulate point attribute data
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
#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
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
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
double * VolumeConstraints
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
vtkPriorityQueue * EdgeCosts
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
std::pair< boost::graph_traits< vtkGraph * >::edge_iterator, boost::graph_traits< vtkGraph * >::edge_iterator > edges(vtkGraph *g)