88#ifndef vtkQuadricClustering_h
89#define vtkQuadricClustering_h
91#include "vtkFiltersCoreModule.h"
97class vtkQuadricClusteringCellSet;
123 vtkGetMacro(NumberOfXDivisions,
int);
124 vtkGetMacro(NumberOfYDivisions,
int);
125 vtkGetMacro(NumberOfZDivisions,
int);
127 { this->SetNumberOfDivisions(div[0], div[1], div[2]); }
140 vtkGetMacro(AutoAdjustNumberOfDivisions,
int);
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);
171 vtkGetMacro(UseInputPoints,
int);
183 vtkGetMacro(UseFeatureEdges,
int);
197 vtkGetMacro(UseFeaturePoints,
int);
206 vtkSetClampMacro(FeaturePointsAngle,
double, 0.0, 180.0);
207 vtkGetMacro(FeaturePointsAngle,
double);
218 vtkGetMacro(UseInternalTriangles,
int);
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);}
245 vtkGetMacro(CopyCellData,
int);
257 vtkGetMacro(PreventDuplicateCells,
int);
276 void ComputeRepresentativePoint(
double quadric[9],
vtkIdType binId,
288 void AddTriangle(
vtkIdType *binIds,
double *pt0,
double *pt1,
double *pt2,
300 void AddEdge(
vtkIdType *binIds,
double *pt0,
double *pt1,
int geometeryFlag,
311 void AddVertex(
vtkIdType binId,
double *pt,
int geometryFlag,
318 void InitializeQuadric(
double quadric[9]);
351 int UseFeaturePoints;
352 int UseInternalTriangles;
354 int NumberOfXDivisions;
355 int NumberOfYDivisions;
356 int NumberOfZDivisions;
359 int PreventDuplicateCells;
360 vtkQuadricClusteringCellSet *CellSet;
365 int NumberOfDivisions[3];
370 int ComputeNumberOfDivisions;
372 double DivisionOrigin[3];
373 double DivisionSpacing[3];
374 int AutoAdjustNumberOfDivisions;
object to represent cell connectivity
extract 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
~vtkQuadricClustering() override
void SetNumberOfZDivisions(int num)
vtkCellArray * OutputTriangleArray
double FeaturePointsAngle
static vtkQuadricClustering * New()
void SetDivisionSpacing(double s[3])
void SetDivisionOrigin(double o[3])
vtkFeatureEdges * GetFeatureEdges()
vtkPoints * FeaturePoints
void SetNumberOfDivisions(int div[3])
void GetNumberOfDivisions(int div[3])
void SetDivisionSpacing(double x, double y, double z)
vtkFeatureEdges * FeatureEdges
int * GetNumberOfDivisions()
void SetDivisionOrigin(double x, double y, double z)
This is an alternative way to set up the bins.
void StartAppend(double x0, double x1, double y0, double y1, double z0, double z1)
void StartAppend(double *bounds)
These methods provide an alternative way of executing the filter.
void SetNumberOfYDivisions(int num)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Append(vtkPolyData *piece)
void SetNumberOfDivisions(int div0, int div1, int div2)
vtkIdType NumberOfBinsUsed
PointQuadric * QuadricArray
vtkCellArray * OutputLines
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)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.