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 "vtkPolyDataAlgorithm.h"
00066
00067 class vtkPointLocator;
00068
00069 class VTK_GRAPHICS_EXPORT vtkCleanPolyData : public vtkPolyDataAlgorithm
00070 {
00071 public:
00072 static vtkCleanPolyData *New();
00073 void PrintSelf(ostream& os, vtkIndent indent);
00074 vtkTypeRevisionMacro(vtkCleanPolyData,vtkPolyDataAlgorithm);
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(vtkPolyData *input = 0);
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 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00165 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00166 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
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