67#ifndef vtkQuadricDecimation_h
68#define vtkQuadricDecimation_h
70#include "vtkFiltersCoreModule.h"
74VTK_ABI_NAMESPACE_BEGIN
129 vtkSetMacro(MaximumError,
double);
130 vtkGetMacro(MaximumError,
double);
289 const double t0[3],
const double t1[3],
const double t2[3],
const double* x);
dynamic, self-adjusting array of double
keep track of edges (edge is pair of integer id's)
list of point or cell ids
a simple class to control print indentation
represent and manipulate point attribute data
concrete dataset represents vertices, lines, polygons, and triangle strips
a list of ids arranged in priority order
void SetPointAttributeArray(vtkIdType ptId[2], const double *x)
Helper function to set and get the point and it's attributes as an array.
void AddBoundaryConstraints()
Free boundary edges are weighted.
double * VolumeConstraints
vtkTypeBool TCoordsAttribute
int NumberOfEdgeCollapses
vtkDoubleArray * TargetPoints
void FindAffectedEdges(vtkIdType p1Id, vtkIdType p2Id, vtkIdList *edges)
Find all edges that will have an endpoint change ids because of an edge collapse.
void ComputeNumberOfComponents()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkTypeBool NormalsAttribute
vtkIdList * EndPoint1List
ErrorQuadric * ErrorQuadrics
void ComputeQuadric(vtkIdType pointId)
Compute quadric for this vertex.
void GetAttributeComponents()
Find out how many components there are for each attribute for this poly data.
double BoundaryWeightFactor
void SetPointCoordinates(vtkIdType ptId, const double *x)
Helper function to set the new point coordinates.
double ComputeCost2(vtkIdType edgeId, double *x)
Compute cost for contracting this edge and the point that gives us this cost.
static vtkQuadricDecimation * New()
void GetPointAttributeArray(vtkIdType ptId, double *x)
Helper function to set the new point coordinates.
vtkTypeBool ScalarsAttribute
vtkIdType GetEdgeCellId(vtkIdType p1Id, vtkIdType p2Id)
Find a cell that uses this edge.
double ComputeCost(vtkIdType edgeId, double *x)
Compute cost for contracting this edge and the point that gives us this cost.
vtkIdList * EndPoint2List
int CollapseEdge(vtkIdType pt0Id, vtkIdType pt1Id)
Do the dirty work of eliminating the edge; return the number of triangles deleted.
vtkPriorityQueue * EdgeCosts
vtkTypeBool WeighBoundaryConstraintsByLength
vtkIdList * CollapseCellIds
int AttributeComponents[6]
~vtkQuadricDecimation() override
int TrianglePlaneCheck(const double t0[3], const double t1[3], const double t2[3], const double *x)
vtkTypeBool AttributeErrorMetric
void SetPointActiveAttributes(vtkIdType ptId, const double *x)
Helper function to set the point coordinates and it's attributes.
vtkTypeBool VolumePreservation
vtkTypeBool TensorsAttribute
void InitializeQuadrics(vtkIdType numPts)
Compute quadric for all vertices.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void AddQuadric(vtkIdType oldPtId, vtkIdType newPtId)
Add the quadrics for these 2 points since the edge between them has been collapsed.
int IsGoodPlacement(vtkIdType pt0Id, vtkIdType pt1Id, const double *x)
void UpdateEdgeData(vtkIdType pt0Id, vtkIdType pt1Id)
vtkTypeBool VectorsAttribute
std::pair< boost::graph_traits< vtkGraph * >::edge_iterator, boost::graph_traits< vtkGraph * >::edge_iterator > edges(vtkGraph *g)