00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00065 #ifndef __vtkCleanPolyData_h
00066 #define __vtkCleanPolyData_h
00067
00068 #include "vtkPolyDataAlgorithm.h"
00069
00070 class vtkIncrementalPointLocator;
00071
00072 class VTK_GRAPHICS_EXPORT vtkCleanPolyData : public vtkPolyDataAlgorithm
00073 {
00074 public:
00075 static vtkCleanPolyData *New();
00076 void PrintSelf(ostream& os, vtkIndent indent);
00077 vtkTypeMacro(vtkCleanPolyData,vtkPolyDataAlgorithm);
00078
00080
00083 vtkSetMacro(ToleranceIsAbsolute,int);
00084 vtkBooleanMacro(ToleranceIsAbsolute,int);
00085 vtkGetMacro(ToleranceIsAbsolute,int);
00087
00089
00091 vtkSetClampMacro(Tolerance,double,0.0,1.0);
00092 vtkGetMacro(Tolerance,double);
00094
00096
00097 vtkSetClampMacro(AbsoluteTolerance,double,0.0,VTK_DOUBLE_MAX);
00098 vtkGetMacro(AbsoluteTolerance,double);
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 virtual void SetLocator(vtkIncrementalPointLocator *locator);
00136 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
00138
00140 void CreateDefaultLocator(vtkPolyData *input = 0);
00141
00143 void ReleaseLocator() { this->SetLocator(NULL); }
00144
00146 unsigned long int GetMTime();
00147
00149 virtual void OperateOnPoint(double in[3], double out[3]);
00150
00152 virtual void OperateOnBounds(double in[6], double 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 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00169 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00170 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00171
00172 int PointMerging;
00173 double Tolerance;
00174 double AbsoluteTolerance;
00175 int ConvertLinesToPoints;
00176 int ConvertPolysToLines;
00177 int ConvertStripsToPolys;
00178 int ToleranceIsAbsolute;
00179 vtkIncrementalPointLocator *Locator;
00180
00181 int PieceInvariant;
00182 private:
00183 vtkCleanPolyData(const vtkCleanPolyData&);
00184 void operator=(const vtkCleanPolyData&);
00185 };
00186
00187 #endif