85 #ifndef vtkQuadricClustering_h 86 #define vtkQuadricClustering_h 88 #include "vtkFiltersCoreModule.h" 94 class vtkQuadricClusteringCellSet;
117 void SetNumberOfXDivisions(
int num);
118 void SetNumberOfYDivisions(
int num);
119 void SetNumberOfZDivisions(
int num);
120 vtkGetMacro(NumberOfXDivisions,
int);
121 vtkGetMacro(NumberOfYDivisions,
int);
122 vtkGetMacro(NumberOfZDivisions,
int);
124 { this->SetNumberOfDivisions(div[0], div[1], div[2]); }
125 void SetNumberOfDivisions(
int div0,
int div1,
int div2);
127 void GetNumberOfDivisions(
int div[3]);
136 vtkSetMacro(AutoAdjustNumberOfDivisions,
vtkTypeBool);
137 vtkGetMacro(AutoAdjustNumberOfDivisions,
vtkTypeBool);
138 vtkBooleanMacro(AutoAdjustNumberOfDivisions,
vtkTypeBool);
148 void SetDivisionOrigin(
double x,
double y,
double z);
149 void SetDivisionOrigin(
double o[3])
150 {this->SetDivisionOrigin(o[0],o[1],o[2]);}
151 vtkGetVector3Macro(DivisionOrigin,
double);
152 void SetDivisionSpacing(
double x,
double y,
double z);
154 {this->SetDivisionSpacing(s[0],s[1],s[2]);}
155 vtkGetVector3Macro(DivisionSpacing,
double);
203 vtkSetClampMacro(FeaturePointsAngle,
double, 0.0, 180.0);
204 vtkGetMacro(FeaturePointsAngle,
double);
216 vtkBooleanMacro(UseInternalTriangles,
vtkTypeBool);
226 void StartAppend(
double *bounds);
227 void StartAppend(
double x0,
double x1,
double y0,
double y1,
double z0,
double z1)
228 {
double b[6]; b[0]=x0; b[1]=x1; b[2]=y0; b[3]=y1; b[4]=z0; b[5]=z1;
229 this->StartAppend(b);}
255 vtkBooleanMacro(PreventDuplicateCells,
vtkTypeBool);
273 void ComputeRepresentativePoint(
double quadric[9],
vtkIdType binId,
285 void AddTriangle(
vtkIdType *binIds,
double *pt0,
double *pt1,
double *pt2,
297 void AddEdge(
vtkIdType *binIds,
double *pt0,
double *pt1,
int geometeryFlag,
308 void AddVertex(
vtkIdType binId,
double *pt,
int geometryFlag,
315 void InitializeQuadric(
double quadric[9]);
320 void AddQuadric(
vtkIdType binId,
double quadric[9]);
362 int NumberOfDivisions[3];
369 double DivisionOrigin[3];
370 double DivisionSpacing[3];
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
int ComputeNumberOfDivisions
vtkCellArray * OutputTriangleArray
concrete dataset represents vertices, lines, polygons, and triangle strips
void SetNumberOfDivisions(int div[3])
Set/Get the number of divisions along each axis for the spatial bins.
vtkFeatureEdges * FeatureEdges
static vtkPolyDataAlgorithm * New()
vtkTypeBool UseFeatureEdges
vtkQuadricClusteringCellSet * CellSet
double FeaturePointsAngle
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
extract boundary, non-manifold, and/or sharp edges from polygonal data
PointQuadric * QuadricArray
vtkCellArray * OutputLines
void StartAppend(double x0, double x1, double y0, double y1, double z0, double z1)
These methods provide an alternative way of executing the filter.
vtkTypeBool PreventDuplicateCells
#define VTK_SIZEHINT(...)
vtkTypeBool AutoAdjustNumberOfDivisions
vtkTypeBool UseInternalTriangles
object to represent cell connectivity
vtkFeatureEdges * GetFeatureEdges()
By default, this flag is off.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkTypeBool UseFeaturePoints
vtkTypeBool UseInputPoints
This method will rep[lace the quadric generated points with the input points with the lowest error...
vtkPoints * FeaturePoints
vtkIdType NumberOfBinsUsed
void SetDivisionSpacing(double s[3])
This is an alternative way to set up the bins.
represent and manipulate 3D points
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)
reduce the number of triangles in a mesh