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 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 // This filter is difficult to stream. 00151 // To get invariant results, the whole input must be processed at once. 00152 // This flag allows the user to select whether strict piece invariance 00153 // is required. By default it is on. When off, the filter can stream, 00154 // but results may change. 00155 vtkSetMacro(PieceInvariant, int); 00156 vtkGetMacro(PieceInvariant, int); 00157 vtkBooleanMacro(PieceInvariant, int); 00158 00159 protected: 00160 vtkCleanPolyData(); 00161 ~vtkCleanPolyData(); 00162 00163 // Usual data generation method 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&); // Not implemented. 00180 void operator=(const vtkCleanPolyData&); // Not implemented. 00181 }; 00182 00183 #endif 00184 00185