85 #ifndef vtkQuadricClustering_h
86 #define vtkQuadricClustering_h
88 #include "vtkFiltersCoreModule.h"
94 class vtkQuadricClusteringCellSet;
119 vtkGetMacro(NumberOfXDivisions,
int);
120 vtkGetMacro(NumberOfYDivisions,
int);
121 vtkGetMacro(NumberOfZDivisions,
int);
125 void GetNumberOfDivisions(
int div[3]);
146 void SetDivisionOrigin(
double x,
double y,
double z);
148 vtkGetVector3Macro(DivisionOrigin,
double);
151 vtkGetVector3Macro(DivisionSpacing,
double);
199 vtkSetClampMacro(FeaturePointsAngle,
double, 0.0, 180.0);
200 vtkGetMacro(FeaturePointsAngle,
double);
223 void StartAppend(
double x0,
double x1,
double y0,
double y1,
double z0,
double z1)
232 this->StartAppend(b);
364 int NumberOfDivisions[3];
371 double DivisionOrigin[3];
372 double DivisionSpacing[3];
object to represent cell connectivity
extract interior, boundary, non-manifold, and/or sharp edges from polygonal data
a simple class to control print indentation
represent and manipulate 3D points
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
reduce the number of triangles in a mesh
void AddPolygons(vtkCellArray *polys, vtkPoints *points, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
Add triangles to the quadric array.
~vtkQuadricClustering() override
void SetNumberOfZDivisions(int num)
vtkQuadricClusteringCellSet * CellSet
vtkCellArray * OutputTriangleArray
vtkTypeBool UseFeatureEdges
int FillInputPortInformation(int, vtkInformation *) override
Fill the input port information objects for this algorithm.
vtkIdType HashPoint(double point[3])
Given a point, determine what bin it falls into.
double FeaturePointsAngle
vtkTypeBool UseInputPoints
vtkFeatureEdges * GetFeatureEdges()
void AppendFeatureQuadrics(vtkPolyData *pd, vtkPolyData *output)
void SetDivisionSpacing(double s[3])
void FindFeaturePoints(vtkCellArray *edges, vtkPoints *edgePts, double angle)
Find the feature points of a given set of edges.
void EndAppendVertexGeometry(vtkPolyData *input, vtkPolyData *output)
This method sets the vertices of the output.
void SetDivisionOrigin(double o[3])
vtkPoints * FeaturePoints
int ComputeNumberOfDivisions
void SetNumberOfDivisions(int div[3])
void InitializeQuadric(double quadric[9])
Initialize the quadric matrix to 0's.
void SetDivisionSpacing(double x, double y, double z)
void ComputeRepresentativePoint(double quadric[9], vtkIdType binId, double point[3])
Determine the representative point for this bin.
vtkFeatureEdges * FeatureEdges
void AddVertices(vtkCellArray *verts, vtkPoints *points, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
Add vertices to the quadric array.
void StartAppend(double x0, double x1, double y0, double y1, double z0, double z1)
void AddStrips(vtkCellArray *strips, vtkPoints *points, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
void EndAppendUsingPoints(vtkPolyData *input, vtkPolyData *output)
This method will rep[lace the quadric generated points with the input points with the lowest error.
void StartAppend(double *bounds)
These methods provide an alternative way of executing the filter.
int * GetNumberOfDivisions()
void AddQuadric(vtkIdType binId, double quadric[9])
Add this quadric to the quadric already associated with this bin.
void SetNumberOfYDivisions(int num)
static vtkQuadricClustering * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void AddEdges(vtkCellArray *edges, vtkPoints *points, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
Add edges to the quadric array.
vtkTypeBool AutoAdjustNumberOfDivisions
vtkTypeBool UseFeaturePoints
vtkTypeBool PreventDuplicateCells
void Append(vtkPolyData *piece)
void SetNumberOfDivisions(int div0, int div1, int div2)
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void AddVertex(vtkIdType binId, double *pt, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
vtkIdType NumberOfBinsUsed
void AddEdge(vtkIdType *binIds, double *pt0, double *pt1, int geometeryFlag, vtkPolyData *input, vtkPolyData *output)
PointQuadric * QuadricArray
vtkTypeBool UseInternalTriangles
vtkCellArray * OutputLines
void AddTriangle(vtkIdType *binIds, double *pt0, double *pt1, double *pt2, int geometeryFlag, vtkPolyData *input, vtkPolyData *output)
void SetNumberOfXDivisions(int num)
Set/Get the number of divisions along each axis for the spatial bins.
std::pair< boost::graph_traits< vtkGraph * >::edge_iterator, boost::graph_traits< vtkGraph * >::edge_iterator > edges(vtkGraph *g)
#define VTK_SIZEHINT(...)