Main Page   Class Hierarchy   Alphabetical List   Compound List   Compound Members   Related Pages  

vtkCleanPolyData Class Reference

merge duplicate points and remove degenerate primitives. More...

#include <vtkCleanPolyData.h>

Inheritance diagram for vtkCleanPolyData:

Inheritance graph
[legend]
Collaboration diagram for vtkCleanPolyData:

Collaboration graph
[legend]
List of all members.

Public Methods

const char * GetClassName ()
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetToleranceIsAbsolute (int)
virtual void ToleranceIsAbsoluteOn ()
virtual void ToleranceIsAbsoluteOff ()
virtual int GetToleranceIsAbsolute ()
virtual void SetTolerance (float)
virtual float GetTolerance ()
virtual void SetAbsoluteTolerance (float)
virtual float GetAbsoluteTolerance ()
virtual void SetConvertLinesToPoints (int)
virtual void ConvertLinesToPointsOn ()
virtual void ConvertLinesToPointsOff ()
virtual int GetConvertLinesToPoints ()
virtual void SetConvertPolysToLines (int)
virtual void ConvertPolysToLinesOn ()
virtual void ConvertPolysToLinesOff ()
virtual int GetConvertPolysToLines ()
virtual void SetConvertStripsToPolys (int)
virtual void ConvertStripsToPolysOn ()
virtual void ConvertStripsToPolysOff ()
virtual int GetConvertStripsToPolys ()
void SetLocator (vtkPointLocator *locator)
virtual vtkPointLocatorGetLocator ()
void CreateDefaultLocator (void)
void ReleaseLocator (void)
unsigned long int GetMTime ()
virtual void OperateOnPoint (float in[3], float out[3])
virtual void OperateOnBounds (float in[6], float out[6])

Static Public Methods

vtkCleanPolyData * New ()

Protected Methods

 vtkCleanPolyData ()
 ~vtkCleanPolyData ()
 vtkCleanPolyData (const vtkCleanPolyData &)
void operator= (const vtkCleanPolyData &)
void Execute ()

Protected Attributes

float Tolerance
float AbsoluteTolerance
int ConvertLinesToPoints
int ConvertPolysToLines
int ConvertStripsToPolys
int ToleranceIsAbsolute
vtkPointLocatorLocator

Detailed Description

merge duplicate points and remove degenerate primitives.

Date:
2000/12/10 20:08:31
Revision:
1.42

vtkCleanPolyData is a filter that takes polygonal data as input and generates polygonal data as output. vtkCleanPolyData merges duplicate points (within specified tolerance), and if enabled transforms degenerate topology into appropriate form (for example, triangle is converted into line if two points of triangle are merged). Conversion of degenerate forms is controlled by the flags ConvertLinesToPoints, ConvertPolysToLines, ConvertStripsToPolys which act cumulatively such that a degenerate strip may become a poly The full set is Line with 1 points -> Vert (if ConvertLinesToPoints) Poly with 2 points -> Line (if ConvertPolysToLines) Poly with 1 points -> Vert (if ConvertPolysToLines && ConvertLinesToPoints) Strp with 3 points -> Poly (if ConvertStripsToPolys) Strp with 2 points -> Line (if ConvertStripsToPolys && ConvertPolysToLines) Strp with 1 points -> Vert (if ConvertStripsToPolys && ConvertPolysToLines && ConvertLinesToPoints)

If tolerance is specified precisely=0.0, then this object will use the vtkMergePoints object to merge points (very fast). Otherwise the slower vtkPointLocator is used. Before inserting points into the point locator, this class calls a function OperateOnPoint which can be used (in subclasses) to further refine the cleaning process. See vtkQuantizePolyDataPoints

Warning:
Merging points can alter topology, including introducing non-manifold forms. Tolerance should be chosen carefully to avoid these problems. Subclasses should handle OperateOnBounds as well as OperateOnPoint to ensure locator is correctly initialized (i.e. all modified points must lie inside modified bounds).
See also:
vtkQuantizePolyDataPoints
Examples:
vtkCleanPolyData (examples)


Member Function Documentation

void vtkCleanPolyData::CreateDefaultLocator void   
 

Create default locator. Used to create one when none is specified.

const char* vtkCleanPolyData::GetClassName   [inline, virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataToPolyDataFilter.

Reimplemented in vtkQuantizePolyDataPoints.

unsigned long int vtkCleanPolyData::GetMTime   [virtual]
 

Get the MTime of this object also considering the locator.

Reimplemented from vtkObject.

vtkCleanPolyData* vtkCleanPolyData::New   [static]
 

Instantiate object with no start, end, or progress methods.

Reimplemented from vtkPolyDataSource.

Reimplemented in vtkQuantizePolyDataPoints.

virtual void vtkCleanPolyData::OperateOnBounds float    in[6],
float    out[6]
[virtual]
 

Perform operation on bounds

Reimplemented in vtkQuantizePolyDataPoints.

virtual void vtkCleanPolyData::OperateOnPoint float    in[3],
float    out[3]
[virtual]
 

Perform operation on a point

Reimplemented in vtkQuantizePolyDataPoints.

void vtkCleanPolyData::PrintSelf ostream &    os,
vtkIndent    indent
[virtual]
 

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkSource.

Reimplemented in vtkQuantizePolyDataPoints.

void vtkCleanPolyData::ReleaseLocator void   
 

Release locator

virtual void vtkCleanPolyData::SetAbsoluteTolerance float    [virtual]
 

Specify tolerance in absolute terms

virtual void vtkCleanPolyData::SetConvertLinesToPoints int    [virtual]
 

Turn on/off conversion of degenerate lines to points

virtual void vtkCleanPolyData::SetConvertPolysToLines int    [virtual]
 

Turn on/off conversion of degenerate polys to lines

virtual void vtkCleanPolyData::SetConvertStripsToPolys int    [virtual]
 

Turn on/off conversion of degenerate strips to polys

void vtkCleanPolyData::SetLocator vtkPointLocator   locator
 

Set/Get a spatial locator for speeding the search process. By default an instance of vtkMergePoints is used.

virtual void vtkCleanPolyData::SetTolerance float    [virtual]
 

Specify tolerance in terms of fraction of bounding box length.

virtual void vtkCleanPolyData::SetToleranceIsAbsolute int    [virtual]
 

By default ToleranceIsAbsolute is false and Tolerance is a fraction of Bounding box diagonal, if true, AbsoluteTolerance is used when adding points to locator (merging)


The documentation for this class was generated from the following file:
Generated on Tue Mar 19 13:24:11 2002 for VTK by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002