48 #ifndef vtkQuadricDecimation_h
49 #define vtkQuadricDecimation_h
51 #include "vtkFiltersCoreModule.h"
55 VTK_ABI_NAMESPACE_BEGIN
76 vtkSetClampMacro(TargetReduction,
double, 0.0, 1.0);
77 vtkGetMacro(TargetReduction,
double);
110 vtkSetMacro(MaximumError,
double);
111 vtkGetMacro(MaximumError,
double);
133 vtkSetMacro(Regularization,
double);
134 vtkGetMacro(Regularization,
double);
146 vtkSetMacro(WeighBoundaryConstraintsByLength,
vtkTypeBool);
147 vtkGetMacro(WeighBoundaryConstraintsByLength,
vtkTypeBool);
148 vtkBooleanMacro(WeighBoundaryConstraintsByLength,
vtkTypeBool);
149 vtkSetMacro(BoundaryWeightFactor,
double);
150 vtkGetMacro(BoundaryWeightFactor,
double);
159 vtkGetMacro(MapPointData,
bool);
160 vtkSetMacro(MapPointData,
bool);
161 vtkBooleanMacro(MapPointData,
bool);
194 vtkSetMacro(ScalarsWeight,
double);
195 vtkSetMacro(VectorsWeight,
double);
196 vtkSetMacro(NormalsWeight,
double);
197 vtkSetMacro(TCoordsWeight,
double);
198 vtkSetMacro(TensorsWeight,
double);
199 vtkGetMacro(ScalarsWeight,
double);
200 vtkGetMacro(VectorsWeight,
double);
201 vtkGetMacro(NormalsWeight,
double);
202 vtkGetMacro(TCoordsWeight,
double);
203 vtkGetMacro(TensorsWeight,
double);
211 vtkGetMacro(ActualReduction,
double);
229 void InitializeQuadrics(
vtkIdType numPts);
234 void AddBoundaryConstraints();
252 double ComputeCost(
vtkIdType edgeId,
double* x);
253 double ComputeCost2(
vtkIdType edgeId,
double* x);
269 int TrianglePlaneCheck(
270 const double t0[3],
const double t1[3],
const double t2[3],
const double* x);
271 void ComputeNumberOfComponents();
280 void SetPointCoordinates(
vtkIdType ptId,
const double* x);
290 void SetPointActiveAttributes(
vtkIdType ptId,
const double* x);
304 void SetPointAttributeArray(
vtkIdType ptId[2],
const double* x);
305 void GetPointAttributeArray(
vtkIdType ptId,
double* x);
312 void GetAttributeComponents();
319 bool MapPointData =
false;
352 double Regularization = 0.05;
356 double BoundaryWeightFactor = 1.0;
360 int AttributeComponents[6];
361 double AttributeScale[6];
379 VTK_ABI_NAMESPACE_END
vtkTypeBool TensorsAttribute
represent and manipulate point attribute data
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
vtkDoubleArray * TargetPoints
vtkIdList * CollapseCellIds
int NumberOfEdgeCollapses
ErrorQuadric * ErrorQuadrics
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkTypeBool VectorsAttribute
vtkTypeBool NormalsAttribute
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
vtkTypeBool AttributeErrorMetric
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
vtkTypeBool VolumePreservation
double * VolumeConstraints
vtkTypeBool TCoordsAttribute
vtkTypeBool ScalarsAttribute
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)