 |
VTK
9.1.0
|
Go to the documentation of this file.
75 #ifndef vtkQuadricDecimation_h
76 #define vtkQuadricDecimation_h
78 #include "vtkFiltersCoreModule.h"
100 vtkSetClampMacro(TargetReduction,
double, 0.0, 1.0);
101 vtkGetMacro(TargetReduction,
double);
158 vtkSetMacro(ScalarsWeight,
double);
159 vtkSetMacro(VectorsWeight,
double);
160 vtkSetMacro(NormalsWeight,
double);
161 vtkSetMacro(TCoordsWeight,
double);
162 vtkSetMacro(TensorsWeight,
double);
163 vtkGetMacro(ScalarsWeight,
double);
164 vtkGetMacro(VectorsWeight,
double);
165 vtkGetMacro(NormalsWeight,
double);
166 vtkGetMacro(TCoordsWeight,
double);
167 vtkGetMacro(TensorsWeight,
double);
175 vtkGetMacro(ActualReduction,
double);
234 const double t0[3],
const double t1[3],
const double t2[3],
const double* x);
288 int AttributeComponents[6];
289 double AttributeScale[6];
vtkTypeBool NormalsAttribute
~vtkQuadricDecimation() override
void FindAffectedEdges(vtkIdType p1Id, vtkIdType p2Id, vtkIdList *edges)
Find all edges that will have an endpoint change ids because of an edge collapse.
double * VolumeConstraints
represent and manipulate point attribute data
void SetPointAttributeArray(vtkIdType ptId, const double *x)
Helper function to set and get the point and it's attributes as an array.
static vtkQuadricDecimation * New()
a list of ids arranged in priority order
void ComputeQuadric(vtkIdType pointId)
Compute quadric for this vertex.
double ComputeCost(vtkIdType edgeId, double *x)
Compute cost for contracting this edge and the point that gives us this cost.
int CollapseEdge(vtkIdType pt0Id, vtkIdType pt1Id)
Do the dirty work of eliminating the edge; return the number of triangles deleted.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkPriorityQueue * EdgeCosts
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
keep track of edges (edge is pair of integer id's)
vtkTypeBool VectorsAttribute
vtkIdList * CollapseCellIds
void AddBoundaryConstraints(void)
Free boundary edges are weighted.
void GetAttributeComponents()
Find out how many components there are for each attribute for this poly data.
int NumberOfEdgeCollapses
vtkTypeBool TCoordsAttribute
int IsGoodPlacement(vtkIdType pt0Id, vtkIdType pt1Id, const double *x)
void InitializeQuadrics(vtkIdType numPts)
Compute quadric for all vertices.
void GetPointAttributeArray(vtkIdType ptId, double *x)
Helper function to set and get the point and it's attributes as an array.
a simple class to control print indentation
vtkIdType GetEdgeCellId(vtkIdType p1Id, vtkIdType p2Id)
Find a cell that uses this edge.
int TrianglePlaneCheck(const double t0[3], const double t1[3], const double t2[3], const double *x)
list of point or cell ids
void AddQuadric(vtkIdType oldPtId, vtkIdType newPtId)
Add the quadrics for these 2 points since the edge between them has been collapsed.
void ComputeNumberOfComponents(void)
vtkTypeBool TensorsAttribute
concrete dataset represents vertices, lines, polygons, and triangle strips
ErrorQuadric * ErrorQuadrics
vtkDoubleArray * TargetPoints
vtkIdList * EndPoint2List
std::pair< boost::graph_traits< vtkGraph * >::edge_iterator, boost::graph_traits< vtkGraph * >::edge_iterator > edges(vtkGraph *g)
dynamic, self-adjusting array of double
vtkTypeBool AttributeErrorMetric
reduce the number of triangles in a mesh
vtkIdList * EndPoint1List
double ComputeCost2(vtkIdType edgeId, double *x)
Compute cost for contracting this edge and the point that gives us this cost.
vtkTypeBool VolumePreservation
void UpdateEdgeData(vtkIdType pt0Id, vtkIdType pt1Id)
vtkTypeBool ScalarsAttribute
Superclass for algorithms that produce only polydata as output.