100#ifndef vtkQuadricClustering_h 
  101#define vtkQuadricClustering_h 
  103#include "vtkFiltersCoreModule.h"  
  107VTK_ABI_NAMESPACE_BEGIN
 
  111class vtkQuadricClusteringCellSet;
 
  136  vtkGetMacro(NumberOfXDivisions, 
int);
 
  137  vtkGetMacro(NumberOfYDivisions, 
int);
 
  138  vtkGetMacro(NumberOfZDivisions, 
int);
 
  142  void GetNumberOfDivisions(
int div[3]);
 
  163  void SetDivisionOrigin(
double x, 
double y, 
double z);
 
  165  vtkGetVector3Macro(DivisionOrigin, 
double);
 
  168  vtkGetVector3Macro(DivisionSpacing, 
double);
 
  216  vtkSetClampMacro(FeaturePointsAngle, 
double, 0.0, 180.0);
 
  217  vtkGetMacro(FeaturePointsAngle, 
double);
 
  240  void StartAppend(
double x0, 
double x1, 
double y0, 
double y1, 
double z0, 
double z1)
 
  249    this->StartAppend(b);
 
  381  int NumberOfDivisions[3];
 
  388  double DivisionOrigin[3];
 
  389  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)
Set/Get the number of divisions along each axis for the spatial bins.
 
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
This method will rep[lace the quadric generated points with the input points with the lowest error.
 
void AppendFeatureQuadrics(vtkPolyData *pd, vtkPolyData *output)
 
static vtkQuadricClustering * New()
Standard instantiation, type and print methods.
 
void EndAppend()
These methods provide an alternative way of executing the filter.
 
void SetDivisionSpacing(double s[3])
This is an alternative way to set up the bins.
 
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])
This is an alternative way to set up the bins.
 
vtkFeatureEdges * GetFeatureEdges()
By default, this flag is off.
 
vtkPoints * FeaturePoints
 
void SetNumberOfDivisions(int div[3])
Set/Get the number of divisions along each axis for the spatial bins.
 
void InitializeQuadric(double quadric[9])
Initialize the quadric matrix to 0's.
 
void SetDivisionSpacing(double x, double y, double z)
This is an alternative way to set up the bins.
 
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.
 
int * GetNumberOfDivisions()
Set/Get the number of divisions along each axis for the spatial bins.
 
void StartAppend(double x0, double x1, double y0, double y1, double z0, double z1)
These methods provide an alternative way of executing the filter.
 
void AddStrips(vtkCellArray *strips, vtkPoints *points, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
Add triangles to the quadric array.
 
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.
 
void AddQuadric(vtkIdType binId, double quadric[9])
Add this quadric to the quadric already associated with this bin.
 
void SetNumberOfYDivisions(int num)
Set/Get the number of divisions along each axis for the spatial bins.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Standard instantiation, type and print methods.
 
void AddEdges(vtkCellArray *edges, vtkPoints *points, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
Add edges to the quadric array.
 
vtkTypeBool AutoAdjustNumberOfDivisions
 
vtkTypeBool UseFeaturePoints
 
vtkTypeBool PreventDuplicateCells
 
vtkTypeBool ComputeNumberOfDivisions
 
void Append(vtkPolyData *piece)
These methods provide an alternative way of executing the filter.
 
void SetNumberOfDivisions(int div0, int div1, int div2)
Set/Get the number of divisions along each axis for the spatial bins.
 
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
 
void AddVertex(vtkIdType binId, double *pt, int geometryFlag, vtkPolyData *input, vtkPolyData *output)
Add vertices to the quadric array.
 
vtkIdType NumberOfBinsUsed
 
void AddEdge(vtkIdType *binIds, double *pt0, double *pt1, int geometeryFlag, vtkPolyData *input, vtkPolyData *output)
Add edges to the quadric array.
 
PointQuadric * QuadricArray
 
vtkTypeBool UseInternalTriangles
 
vtkCellArray * OutputLines
 
void AddTriangle(vtkIdType *binIds, double *pt0, double *pt1, double *pt2, int geometeryFlag, vtkPolyData *input, vtkPolyData *output)
Add triangles to the quadric array.
 
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(...)