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
#define VTK_GRAPHICS_EXPORT
#define VTK_DOUBLE_MAX
Definition: vtkType.h:133
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Abstract class in support of both point location and point insertion.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:81
merge duplicate points, and/or remove unused points and/or remove degenerate cells ...
static vtkPolyDataAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent)
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Superclass for algorithms that produce only polydata as output.
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:37
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
Store zero or more vtkInformation instances.
vtkIncrementalPointLocator * Locator