87 #ifndef __vtkQuadricClustering_h
88 #define __vtkQuadricClustering_h
95 class vtkQuadricClusteringCellSet;
114 void SetNumberOfXDivisions(
int num);
115 void SetNumberOfYDivisions(
int num);
116 void SetNumberOfZDivisions(
int num);
117 vtkGetMacro(NumberOfXDivisions,
int);
118 vtkGetMacro(NumberOfYDivisions,
int);
119 vtkGetMacro(NumberOfZDivisions,
int);
121 { this->SetNumberOfDivisions(div[0], div[1], div[2]); }
122 void SetNumberOfDivisions(
int div0,
int div1,
int div2);
123 int *GetNumberOfDivisions();
124 void GetNumberOfDivisions(
int div[3]);
131 vtkSetMacro(AutoAdjustNumberOfDivisions,
int);
132 vtkGetMacro(AutoAdjustNumberOfDivisions,
int);
133 vtkBooleanMacro(AutoAdjustNumberOfDivisions,
int);
141 void SetDivisionOrigin(
double x,
double y,
double z);
143 {this->SetDivisionOrigin(o[0],o[1],o[2]);}
144 vtkGetVector3Macro(DivisionOrigin,
double);
145 void SetDivisionSpacing(
double x,
double y,
double z);
147 {this->SetDivisionSpacing(s[0],s[1],s[2]);}
148 vtkGetVector3Macro(DivisionSpacing,
double);
158 vtkSetMacro(UseInputPoints,
int);
159 vtkGetMacro(UseInputPoints,
int);
160 vtkBooleanMacro(UseInputPoints,
int);
168 vtkSetMacro(UseFeatureEdges,
int);
169 vtkGetMacro(UseFeatureEdges,
int);
170 vtkBooleanMacro(UseFeatureEdges,
int);
180 vtkSetMacro(UseFeaturePoints,
int);
181 vtkGetMacro(UseFeaturePoints,
int);
182 vtkBooleanMacro(UseFeaturePoints,
int);
188 vtkSetClampMacro(FeaturePointsAngle,
double, 0.0, 180.0);
189 vtkGetMacro(FeaturePointsAngle,
double);
197 vtkSetMacro(UseInternalTriangles,
int);
198 vtkGetMacro(UseInternalTriangles,
int);
199 vtkBooleanMacro(UseInternalTriangles,
int);
207 void StartAppend(
double *bounds);
208 void StartAppend(
double x0,
double x1,
double y0,
double y1,
double z0,
double z1)
209 {
double b[6]; b[0]=x0; b[1]=x1; b[2]=y0; b[3]=y1; b[4]=z0; b[5]=z1;
210 this->StartAppend(b);}
220 vtkSetMacro(CopyCellData,
int);
221 vtkGetMacro(CopyCellData,
int);
222 vtkBooleanMacro(CopyCellData,
int);
230 vtkSetMacro(PreventDuplicateCells,
int);
231 vtkGetMacro(PreventDuplicateCells,
int);
232 vtkBooleanMacro(PreventDuplicateCells,
int);
247 void ComputeRepresentativePoint(
double quadric[9],
vtkIdType binId,
258 void AddTriangle(
vtkIdType *binIds,
double *pt0,
double *pt1,
double *pt2,
268 void AddEdge(
vtkIdType *binIds,
double *pt0,
double *pt1,
int geometeryFlag,
277 void AddVertex(
vtkIdType binId,
double *pt,
int geometryFlag,
282 void InitializeQuadric(
double quadric[9]);
285 void AddQuadric(
vtkIdType binId,
double quadric[9]);
321 int NumberOfDivisions[3];
328 double DivisionOrigin[3];
329 double DivisionSpacing[3];
void SetDivisionOrigin(double o[3])
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtksys_stl::pair< boost::graph_traits< vtkGraph * >::edge_iterator, boost::graph_traits< vtkGraph * >::edge_iterator > edges(vtkGraph *g)
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
int ComputeNumberOfDivisions
vtkCellArray * OutputTriangleArray
concrete dataset represents vertices, lines, polygons, and triangle strips
void SetNumberOfDivisions(int div[3])
vtkFeatureEdges * FeatureEdges
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
vtkQuadricClusteringCellSet * CellSet
double FeaturePointsAngle
Superclass for algorithms that produce only polydata as output.
int AutoAdjustNumberOfDivisions
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)
object to represent cell connectivity
vtkFeatureEdges * GetFeatureEdges()
vtkPoints * FeaturePoints
vtkIdType NumberOfBinsUsed
void SetDivisionSpacing(double s[3])
int PreventDuplicateCells
represent and manipulate 3D points
reduce the number of triangles in a mesh