Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Graphics/vtkCleanPolyData.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCleanPolyData.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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 // This filter is difficult to stream. 00155 // To get invariant results, the whole input must be processed at once. 00156 // This flag allows the user to select whether strict piece invariance 00157 // is required. By default it is on. When off, the filter can stream, 00158 // but results may change. 00159 vtkSetMacro(PieceInvariant, int); 00160 vtkGetMacro(PieceInvariant, int); 00161 vtkBooleanMacro(PieceInvariant, int); 00162 00163 protected: 00164 vtkCleanPolyData(); 00165 ~vtkCleanPolyData(); 00166 00167 // Usual data generation method 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&); // Not implemented. 00184 void operator=(const vtkCleanPolyData&); // Not implemented. 00185 }; 00186 00187 #endif 00188 00189