Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File 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)

Definition at line 88 of file vtkCleanPolyData.h.


Constructor & Destructor Documentation

vtkCleanPolyData::vtkCleanPolyData   [protected]
 

vtkCleanPolyData::~vtkCleanPolyData   [protected]
 

vtkCleanPolyData::vtkCleanPolyData const vtkCleanPolyData &    [inline, protected]
 

Definition at line 148 of file vtkCleanPolyData.h.


Member Function Documentation

vtkCleanPolyData* vtkCleanPolyData::New   [static]
 

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

Reimplemented from vtkPolyDataSource.

Reimplemented in vtkQuantizePolyDataPoints.

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.

Definition at line 92 of file vtkCleanPolyData.h.

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.

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)

virtual void vtkCleanPolyData::ToleranceIsAbsoluteOn   [virtual]
 

virtual void vtkCleanPolyData::ToleranceIsAbsoluteOff   [virtual]
 

virtual int vtkCleanPolyData::GetToleranceIsAbsolute   [virtual]
 

virtual void vtkCleanPolyData::SetTolerance float    [virtual]
 

Specify tolerance in terms of fraction of bounding box length.

virtual float vtkCleanPolyData::GetTolerance   [virtual]
 

virtual void vtkCleanPolyData::SetAbsoluteTolerance float    [virtual]
 

Specify tolerance in absolute terms

virtual float vtkCleanPolyData::GetAbsoluteTolerance   [virtual]
 

virtual void vtkCleanPolyData::SetConvertLinesToPoints int    [virtual]
 

Turn on/off conversion of degenerate lines to points

virtual void vtkCleanPolyData::ConvertLinesToPointsOn   [virtual]
 

virtual void vtkCleanPolyData::ConvertLinesToPointsOff   [virtual]
 

virtual int vtkCleanPolyData::GetConvertLinesToPoints   [virtual]
 

virtual void vtkCleanPolyData::SetConvertPolysToLines int    [virtual]
 

Turn on/off conversion of degenerate polys to lines

virtual void vtkCleanPolyData::ConvertPolysToLinesOn   [virtual]
 

virtual void vtkCleanPolyData::ConvertPolysToLinesOff   [virtual]
 

virtual int vtkCleanPolyData::GetConvertPolysToLines   [virtual]
 

virtual void vtkCleanPolyData::SetConvertStripsToPolys int    [virtual]
 

Turn on/off conversion of degenerate strips to polys

virtual void vtkCleanPolyData::ConvertStripsToPolysOn   [virtual]
 

virtual void vtkCleanPolyData::ConvertStripsToPolysOff   [virtual]
 

virtual int vtkCleanPolyData::GetConvertStripsToPolys   [virtual]
 

void vtkCleanPolyData::SetLocator vtkPointLocator   locator
 

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

virtual vtkPointLocator* vtkCleanPolyData::GetLocator   [virtual]
 

void vtkCleanPolyData::CreateDefaultLocator void   
 

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

void vtkCleanPolyData::ReleaseLocator void   
 

Release locator

unsigned long int vtkCleanPolyData::GetMTime   [virtual]
 

Get the MTime of this object also considering the locator.

Reimplemented from vtkObject.

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

Perform operation on a point

Reimplemented in vtkQuantizePolyDataPoints.

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

Perform operation on bounds

Reimplemented in vtkQuantizePolyDataPoints.

void vtkCleanPolyData::operator= const vtkCleanPolyData &    [inline, protected]
 

Definition at line 149 of file vtkCleanPolyData.h.

void vtkCleanPolyData::Execute   [protected, virtual]
 

Reimplemented from vtkSource.


Member Data Documentation

float vtkCleanPolyData::Tolerance [protected]
 

Definition at line 154 of file vtkCleanPolyData.h.

float vtkCleanPolyData::AbsoluteTolerance [protected]
 

Definition at line 155 of file vtkCleanPolyData.h.

int vtkCleanPolyData::ConvertLinesToPoints [protected]
 

Definition at line 156 of file vtkCleanPolyData.h.

int vtkCleanPolyData::ConvertPolysToLines [protected]
 

Definition at line 157 of file vtkCleanPolyData.h.

int vtkCleanPolyData::ConvertStripsToPolys [protected]
 

Definition at line 158 of file vtkCleanPolyData.h.

int vtkCleanPolyData::ToleranceIsAbsolute [protected]
 

Definition at line 159 of file vtkCleanPolyData.h.

vtkPointLocator* vtkCleanPolyData::Locator [protected]
 

Definition at line 160 of file vtkCleanPolyData.h.


The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:46:55 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001