59 #ifndef vtkQuadricDecimation_h
60 #define vtkQuadricDecimation_h
62 #include "vtkFiltersCoreModule.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);
177 void InitializeQuadrics(
vtkIdType numPts);
182 void AddBoundaryConstraints(
void);
200 double ComputeCost(
vtkIdType edgeId,
double *x);
201 double ComputeCost2(
vtkIdType edgeId,
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);
226 void SetPointAttributeArray(
vtkIdType ptId, const
double *x);
227 void GetPointAttributeArray(
vtkIdType ptId,
double *x);
234 void GetAttributeComponents();
236 double TargetReduction;
237 double ActualReduction;
238 int AttributeErrorMetric;
239 int VolumePreservation;
241 int ScalarsAttribute;
242 int VectorsAttribute;
243 int NormalsAttribute;
244 int TCoordsAttribute;
245 int TensorsAttribute;
247 double ScalarsWeight;
248 double VectorsWeight;
249 double NormalsWeight;
250 double TCoordsWeight;
251 double TensorsWeight;
253 int NumberOfEdgeCollapses;
259 int NumberOfComponents;
273 int AttributeComponents[6];
274 double AttributeScale[6];
represent and manipulate point attribute data
vtkIdList * CollapseCellIds
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
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
list of point or cell ids
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.
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)