00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00062
#ifndef __vtkCleanPolyData_h
00063
#define __vtkCleanPolyData_h
00064
00065
#include "vtkPolyDataToPolyDataFilter.h"
00066
00067
class vtkPointLocator;
00068
00069 class VTK_GRAPHICS_EXPORT vtkCleanPolyData :
public vtkPolyDataToPolyDataFilter
00070 {
00071
public:
00072
static vtkCleanPolyData *
New();
00073
void PrintSelf(ostream& os,
vtkIndent indent);
00074 vtkTypeRevisionMacro(vtkCleanPolyData,
vtkPolyDataToPolyDataFilter);
00075
00077
00080 vtkSetMacro(ToleranceIsAbsolute,
int);
00081 vtkBooleanMacro(ToleranceIsAbsolute,
int);
00082 vtkGetMacro(ToleranceIsAbsolute,
int);
00084
00086
00087 vtkSetClampMacro(Tolerance,
double,0.0,1.0);
00088 vtkGetMacro(Tolerance,
double);
00090
00092
00093 vtkSetClampMacro(AbsoluteTolerance,
double,0.0,VTK_DOUBLE_MAX);
00094 vtkGetMacro(AbsoluteTolerance,
double);
00096
00098
00099 vtkSetMacro(ConvertLinesToPoints,
int);
00100 vtkBooleanMacro(ConvertLinesToPoints,
int);
00101 vtkGetMacro(ConvertLinesToPoints,
int);
00103
00105
00106 vtkSetMacro(ConvertPolysToLines,
int);
00107 vtkBooleanMacro(ConvertPolysToLines,
int);
00108 vtkGetMacro(ConvertPolysToLines,
int);
00110
00112
00113 vtkSetMacro(ConvertStripsToPolys,
int);
00114 vtkBooleanMacro(ConvertStripsToPolys,
int);
00115 vtkGetMacro(ConvertStripsToPolys,
int);
00117
00119
00123 vtkSetMacro(PointMerging,
int);
00124 vtkGetMacro(PointMerging,
int);
00125 vtkBooleanMacro(PointMerging,
int);
00127
00129
00131
void SetLocator(
vtkPointLocator *locator);
00132 vtkGetObjectMacro(Locator,
vtkPointLocator);
00134
00136
void CreateDefaultLocator(
void);
00137
00139
void ReleaseLocator(
void);
00140
00142
unsigned long int GetMTime();
00143
00145
virtual void OperateOnPoint(
double in[3],
double out[3]);
00146
00148
virtual void OperateOnBounds(
double in[6],
double out[6]);
00149
00150
00151
00152
00153
00154
00155 vtkSetMacro(PieceInvariant,
int);
00156 vtkGetMacro(PieceInvariant,
int);
00157 vtkBooleanMacro(PieceInvariant,
int);
00158
00159
protected:
00160 vtkCleanPolyData();
00161 ~vtkCleanPolyData();
00162
00163
00164
void Execute();
00165
void ExecuteInformation();
00166
virtual void ComputeInputUpdateExtents(
vtkDataObject *output);
00167
00168 int PointMerging;
00169 double Tolerance;
00170 double AbsoluteTolerance;
00171 int ConvertLinesToPoints;
00172 int ConvertPolysToLines;
00173 int ConvertStripsToPolys;
00174 int ToleranceIsAbsolute;
00175 vtkPointLocator *Locator;
00176
00177 int PieceInvariant;
00178
private:
00179 vtkCleanPolyData(
const vtkCleanPolyData&);
00180
void operator=(
const vtkCleanPolyData&);
00181 };
00182
00183
#endif
00184
00185