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=========================================================================*/
71#ifndef vtkCleanPolyData_h
72#define vtkCleanPolyData_h
73
74#include "vtkFiltersCoreModule.h" // For export macro
76
78
79class VTKFILTERSCORE_EXPORT vtkCleanPolyData : public vtkPolyDataAlgorithm
80{
81public:
83 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
85
87
92 vtkSetMacro(ToleranceIsAbsolute,int);
93 vtkBooleanMacro(ToleranceIsAbsolute,int);
94 vtkGetMacro(ToleranceIsAbsolute,int);
96
98
102 vtkSetClampMacro(Tolerance,double,0.0,1.0);
103 vtkGetMacro(Tolerance,double);
105
107
110 vtkSetClampMacro(AbsoluteTolerance,double,0.0,VTK_DOUBLE_MAX);
111 vtkGetMacro(AbsoluteTolerance,double);
113
115
118 vtkSetMacro(ConvertLinesToPoints,int);
119 vtkBooleanMacro(ConvertLinesToPoints,int);
120 vtkGetMacro(ConvertLinesToPoints,int);
122
124
127 vtkSetMacro(ConvertPolysToLines,int);
128 vtkBooleanMacro(ConvertPolysToLines,int);
129 vtkGetMacro(ConvertPolysToLines,int);
131
133
136 vtkSetMacro(ConvertStripsToPolys,int);
137 vtkBooleanMacro(ConvertStripsToPolys,int);
138 vtkGetMacro(ConvertStripsToPolys,int);
140
142
148 vtkSetMacro(PointMerging,int);
149 vtkGetMacro(PointMerging,int);
150 vtkBooleanMacro(PointMerging,int);
152
154
159 vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
161
166
170 void ReleaseLocator() { this->SetLocator(NULL); }
171
175 vtkMTimeType GetMTime() VTK_OVERRIDE;
176
180 virtual void OperateOnPoint(double in[3], double out[3]);
181
185 virtual void OperateOnBounds(double in[6], double out[6]);
186
187 // This filter is difficult to stream.
188 // To get invariant results, the whole input must be processed at once.
189 // This flag allows the user to select whether strict piece invariance
190 // is required. By default it is on. When off, the filter can stream,
191 // but results may change.
192 vtkSetMacro(PieceInvariant, int);
193 vtkGetMacro(PieceInvariant, int);
194 vtkBooleanMacro(PieceInvariant, int);
195
197
202 vtkSetMacro(OutputPointsPrecision,int);
203 vtkGetMacro(OutputPointsPrecision,int);
205
206protected:
208 ~vtkCleanPolyData() VTK_OVERRIDE;
209
210 // Usual data generation method
211 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
212 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
213
214 int PointMerging;
215 double Tolerance;
216 double AbsoluteTolerance;
217 int ConvertLinesToPoints;
218 int ConvertPolysToLines;
219 int ConvertStripsToPolys;
220 int ToleranceIsAbsolute;
222
223 int PieceInvariant;
224 int OutputPointsPrecision;
225private:
226 vtkCleanPolyData(const vtkCleanPolyData&) VTK_DELETE_FUNCTION;
227 void operator=(const vtkCleanPolyData&) VTK_DELETE_FUNCTION;
228};
229
230#endif
merge duplicate points, and/or remove unused points and/or remove degenerate cells
void CreateDefaultLocator(vtkPolyData *input=0)
Create default locator.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void ReleaseLocator()
Release locator.
vtkMTimeType GetMTime() override
Get the MTime of this object also considering the locator.
static vtkCleanPolyData * New()
virtual void SetLocator(vtkIncrementalPointLocator *locator)
Set/Get a spatial locator for speeding the search process.
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
#define VTK_DOUBLE_MAX
Definition: vtkType.h:163