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