VTK
vtkCleanPolyData.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCleanPolyData.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
65 #ifndef __vtkCleanPolyData_h
66 #define __vtkCleanPolyData_h
67 
68 #include "vtkPolyDataAlgorithm.h"
69 
71 
73 {
74 public:
75  static vtkCleanPolyData *New();
76  void PrintSelf(ostream& os, vtkIndent indent);
78 
80 
83  vtkSetMacro(ToleranceIsAbsolute,int);
84  vtkBooleanMacro(ToleranceIsAbsolute,int);
85  vtkGetMacro(ToleranceIsAbsolute,int);
87 
89 
91  vtkSetClampMacro(Tolerance,double,0.0,1.0);
92  vtkGetMacro(Tolerance,double);
94 
96 
97  vtkSetClampMacro(AbsoluteTolerance,double,0.0,VTK_DOUBLE_MAX);
98  vtkGetMacro(AbsoluteTolerance,double);
100 
102 
103  vtkSetMacro(ConvertLinesToPoints,int);
104  vtkBooleanMacro(ConvertLinesToPoints,int);
105  vtkGetMacro(ConvertLinesToPoints,int);
107 
109 
110  vtkSetMacro(ConvertPolysToLines,int);
111  vtkBooleanMacro(ConvertPolysToLines,int);
112  vtkGetMacro(ConvertPolysToLines,int);
114 
116 
117  vtkSetMacro(ConvertStripsToPolys,int);
118  vtkBooleanMacro(ConvertStripsToPolys,int);
119  vtkGetMacro(ConvertStripsToPolys,int);
121 
123 
127  vtkSetMacro(PointMerging,int);
128  vtkGetMacro(PointMerging,int);
129  vtkBooleanMacro(PointMerging,int);
131 
133 
135  virtual void SetLocator(vtkIncrementalPointLocator *locator);
136  vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
138 
140  void CreateDefaultLocator(vtkPolyData *input = 0);
141 
143  void ReleaseLocator() { this->SetLocator(NULL); }
144 
146  unsigned long int GetMTime();
147 
149  virtual void OperateOnPoint(double in[3], double out[3]);
150 
152  virtual void OperateOnBounds(double in[6], double out[6]);
153 
154  // This filter is difficult to stream.
155  // To get invariant results, the whole input must be processed at once.
156  // This flag allows the user to select whether strict piece invariance
157  // is required. By default it is on. When off, the filter can stream,
158  // but results may change.
159  vtkSetMacro(PieceInvariant, int);
160  vtkGetMacro(PieceInvariant, int);
161  vtkBooleanMacro(PieceInvariant, int);
162 
163 protected:
165  ~vtkCleanPolyData();
166 
167  // Usual data generation method
171 
173  double Tolerance;
180 
182 private:
183  vtkCleanPolyData(const vtkCleanPolyData&); // Not implemented.
184  void operator=(const vtkCleanPolyData&); // Not implemented.
185 };
186 
187 #endif