VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
vtkBooleanOperationPolyDataFilter Class Reference

#include <vtkBooleanOperationPolyDataFilter.h>

Inheritance diagram for vtkBooleanOperationPolyDataFilter:
Inheritance graph
[legend]
Collaboration diagram for vtkBooleanOperationPolyDataFilter:
Collaboration graph
[legend]

List of all members.

Public Types

enum  OperationType { VTK_UNION = 0, VTK_INTERSECTION, VTK_DIFFERENCE }
typedef vtkPolyDataAlgorithm Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetOperation (int)
virtual int GetOperation ()
void SetOperationToUnion ()
void SetOperationToIntersection ()
void SetOperationToDifference ()
virtual void SetReorientDifferenceCells (int)
virtual int GetReorientDifferenceCells ()
virtual void ReorientDifferenceCellsOn ()
virtual void ReorientDifferenceCellsOff ()
virtual void SetTolerance (double)
virtual double GetTolerance ()

Static Public Member Functions

static
vtkBooleanOperationPolyDataFilter
New ()
static int IsTypeOf (const char *type)
static
vtkBooleanOperationPolyDataFilter
SafeDownCast (vtkObject *o)

Protected Member Functions

 vtkBooleanOperationPolyDataFilter ()
 ~vtkBooleanOperationPolyDataFilter ()
int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
int FillInputPortInformation (int, vtkInformation *)
void SortPolyData (vtkPolyData *input, vtkIdList *intersectionList, vtkIdList *unionList)

Detailed Description

Computes the boundary of the union, intersection, or difference volume computed from the volumes defined by two input surfaces. The two surfaces do not need to be manifold, but if they are not, unexpected results may be obtained. The resulting surface is available in the first output of the filter. The second output contains a set of polylines that represent the intersection between the two input surfaces.

This code was contributed in the VTK Journal paper: "Boolean Operations on Surfaces in VTK Without External Libraries" by Cory Quammen, Chris Weigle C., Russ Taylor http://hdl.handle.net/10380/3262 http://www.midasjournal.org/browse/publication/797

Tests:
vtkBooleanOperationPolyDataFilter (Tests)

Definition at line 45 of file vtkBooleanOperationPolyDataFilter.h.


Member Typedef Documentation

Reimplemented from vtkPolyDataAlgorithm.

Definition at line 52 of file vtkBooleanOperationPolyDataFilter.h.


Member Enumeration Documentation

Enumerator:
VTK_UNION 
VTK_INTERSECTION 
VTK_DIFFERENCE 

Definition at line 56 of file vtkBooleanOperationPolyDataFilter.h.


Constructor & Destructor Documentation

vtkBooleanOperationPolyDataFilter::vtkBooleanOperationPolyDataFilter ( ) [protected]
vtkBooleanOperationPolyDataFilter::~vtkBooleanOperationPolyDataFilter ( ) [protected]

Member Function Documentation

static vtkBooleanOperationPolyDataFilter* vtkBooleanOperationPolyDataFilter::New ( ) [static]

Construct object that computes the boolean surface.

Reimplemented from vtkPolyDataAlgorithm.

virtual const char* vtkBooleanOperationPolyDataFilter::GetClassName ( ) [virtual]

Reimplemented from vtkPolyDataAlgorithm.

static int vtkBooleanOperationPolyDataFilter::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataAlgorithm.

virtual int vtkBooleanOperationPolyDataFilter::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPolyDataAlgorithm.

static vtkBooleanOperationPolyDataFilter* vtkBooleanOperationPolyDataFilter::SafeDownCast ( vtkObject o) [static]

Reimplemented from vtkPolyDataAlgorithm.

void vtkBooleanOperationPolyDataFilter::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 vtkPolyDataAlgorithm.

virtual void vtkBooleanOperationPolyDataFilter::SetOperation ( int  ) [virtual]

Set the boolean operation to perform. Defaults to union.

virtual int vtkBooleanOperationPolyDataFilter::GetOperation ( ) [virtual]

Set the boolean operation to perform. Defaults to union.

void vtkBooleanOperationPolyDataFilter::SetOperationToUnion ( ) [inline]

Set the boolean operation to perform. Defaults to union.

Definition at line 67 of file vtkBooleanOperationPolyDataFilter.h.

void vtkBooleanOperationPolyDataFilter::SetOperationToIntersection ( ) [inline]

Set the boolean operation to perform. Defaults to union.

Definition at line 69 of file vtkBooleanOperationPolyDataFilter.h.

void vtkBooleanOperationPolyDataFilter::SetOperationToDifference ( ) [inline]

Set the boolean operation to perform. Defaults to union.

Definition at line 71 of file vtkBooleanOperationPolyDataFilter.h.

virtual void vtkBooleanOperationPolyDataFilter::SetReorientDifferenceCells ( int  ) [virtual]

Turn on/off cell reorientation of the intersection portion of the surface when the operation is set to DIFFERENCE. Defaults to on.

virtual int vtkBooleanOperationPolyDataFilter::GetReorientDifferenceCells ( ) [virtual]

Turn on/off cell reorientation of the intersection portion of the surface when the operation is set to DIFFERENCE. Defaults to on.

virtual void vtkBooleanOperationPolyDataFilter::ReorientDifferenceCellsOn ( ) [virtual]

Turn on/off cell reorientation of the intersection portion of the surface when the operation is set to DIFFERENCE. Defaults to on.

virtual void vtkBooleanOperationPolyDataFilter::ReorientDifferenceCellsOff ( ) [virtual]

Turn on/off cell reorientation of the intersection portion of the surface when the operation is set to DIFFERENCE. Defaults to on.

virtual void vtkBooleanOperationPolyDataFilter::SetTolerance ( double  ) [virtual]

Set/get the tolerance used to determine when a point's absolute distance is considered to be zero. Defaults to 1e-6.

virtual double vtkBooleanOperationPolyDataFilter::GetTolerance ( ) [virtual]

Set/get the tolerance used to determine when a point's absolute distance is considered to be zero. Defaults to 1e-6.

void vtkBooleanOperationPolyDataFilter::SortPolyData ( vtkPolyData input,
vtkIdList intersectionList,
vtkIdList unionList 
) [protected]

Labels triangles in mesh as part of the intersection or union surface.

int vtkBooleanOperationPolyDataFilter::RequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

This is called by the superclass. This is the method you should override.

Reimplemented from vtkPolyDataAlgorithm.

int vtkBooleanOperationPolyDataFilter::FillInputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

Fill the input port information objects for this algorithm. This is invoked by the first call to GetInputPortInformation for each port so subclasses can specify what they can handle.

Reimplemented from vtkPolyDataAlgorithm.


The documentation for this class was generated from the following file: