00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00066
#ifndef __vtkCleanPolyData_h
00067
#define __vtkCleanPolyData_h
00068
00069
#include "vtkPolyDataToPolyDataFilter.h"
00070
00071
class vtkPointLocator;
00072
00073 class VTK_GRAPHICS_EXPORT vtkCleanPolyData :
public vtkPolyDataToPolyDataFilter
00074 {
00075
public:
00076
static vtkCleanPolyData *
New();
00077
void PrintSelf(ostream& os,
vtkIndent indent);
00078 vtkTypeRevisionMacro(vtkCleanPolyData,
vtkPolyDataToPolyDataFilter);
00079
00081
00084 vtkSetMacro(ToleranceIsAbsolute,
int);
00085 vtkBooleanMacro(ToleranceIsAbsolute,
int);
00086 vtkGetMacro(ToleranceIsAbsolute,
int);
00088
00090
00091 vtkSetClampMacro(Tolerance,
float,0.0,1.0);
00092 vtkGetMacro(Tolerance,
float);
00094
00096
00097 vtkSetClampMacro(AbsoluteTolerance,
float,0.0,VTK_LARGE_FLOAT);
00098 vtkGetMacro(AbsoluteTolerance,
float);
00100
00102
00103 vtkSetMacro(ConvertLinesToPoints,
int);
00104 vtkBooleanMacro(ConvertLinesToPoints,
int);
00105 vtkGetMacro(ConvertLinesToPoints,
int);
00107
00109
00110 vtkSetMacro(ConvertPolysToLines,
int);
00111 vtkBooleanMacro(ConvertPolysToLines,
int);
00112 vtkGetMacro(ConvertPolysToLines,
int);
00114
00116
00117 vtkSetMacro(ConvertStripsToPolys,
int);
00118 vtkBooleanMacro(ConvertStripsToPolys,
int);
00119 vtkGetMacro(ConvertStripsToPolys,
int);
00121
00123
00127 vtkSetMacro(PointMerging,
int);
00128 vtkGetMacro(PointMerging,
int);
00129 vtkBooleanMacro(PointMerging,
int);
00131
00133
00135
void SetLocator(
vtkPointLocator *locator);
00136 vtkGetObjectMacro(Locator,
vtkPointLocator);
00138
00140
void CreateDefaultLocator(
void);
00141
00143
void ReleaseLocator(
void);
00144
00146
unsigned long int GetMTime();
00147
00149
virtual void OperateOnPoint(
float in[3],
float out[3]);
00150
00152
virtual void OperateOnBounds(
float in[6],
float out[6]);
00153
00154
00155
00156
00157
00158
00159 vtkSetMacro(PieceInvariant,
int);
00160 vtkGetMacro(PieceInvariant,
int);
00161 vtkBooleanMacro(PieceInvariant,
int);
00162
00163
protected:
00164 vtkCleanPolyData();
00165 ~vtkCleanPolyData();
00166
00167
00168
void Execute();
00169
void ExecuteInformation();
00170
virtual void ComputeInputUpdateExtents(
vtkDataObject *output);
00171
00172 int PointMerging;
00173 float Tolerance;
00174 float AbsoluteTolerance;
00175 int ConvertLinesToPoints;
00176 int ConvertPolysToLines;
00177 int ConvertStripsToPolys;
00178 int ToleranceIsAbsolute;
00179 vtkPointLocator *Locator;
00180
00181 int PieceInvariant;
00182
private:
00183 vtkCleanPolyData(
const vtkCleanPolyData&);
00184
void operator=(
const vtkCleanPolyData&);
00185 };
00186
00187
#endif
00188
00189