VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkSelectPolyData Class Reference

select portion of polygonal mesh; generate selection scalars More...

#include <vtkSelectPolyData.h>

Inherits vtkPolyDataAlgorithm.

Public Types

typedef vtkPolyDataAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkSelectPolyDataNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
vtkPolyData * GetUnselectedOutput ()
 
vtkPolyData * GetSelectionEdges ()
 
unsigned long int GetMTime ()
 
virtual void SetGenerateSelectionScalars (int)
 
virtual int GetGenerateSelectionScalars ()
 
virtual void GenerateSelectionScalarsOn ()
 
virtual void GenerateSelectionScalarsOff ()
 
virtual void SetInsideOut (int)
 
virtual int GetInsideOut ()
 
virtual void InsideOutOn ()
 
virtual void InsideOutOff ()
 
virtual void SetLoop (vtkPoints *)
 
virtual vtkPoints * GetLoop ()
 
virtual void SetSelectionMode (int)
 
virtual int GetSelectionMode ()
 
void SetSelectionModeToSmallestRegion ()
 
void SetSelectionModeToLargestRegion ()
 
void SetSelectionModeToClosestPointRegion ()
 
const char * GetSelectionModeAsString ()
 
virtual void SetGenerateUnselectedOutput (int)
 
virtual int GetGenerateUnselectedOutput ()
 
virtual void GenerateUnselectedOutputOn ()
 
virtual void GenerateUnselectedOutputOff ()
 

Static Public Member Functions

static vtkSelectPolyDataNew ()
 
static int IsTypeOf (const char *type)
 
static vtkSelectPolyDataSafeDownCast (vtkObjectBase *o)
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 vtkSelectPolyData ()
 
 ~vtkSelectPolyData ()
 
int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 

Protected Attributes

int GenerateSelectionScalars
 
int InsideOut
 
vtkPoints * Loop
 
int SelectionMode
 
double ClosestPoint [3]
 
int GenerateUnselectedOutput
 

Detailed Description

select portion of polygonal mesh; generate selection scalars

vtkSelectPolyData is a filter that selects polygonal data based on defining a "loop" and indicating the region inside of the loop. The mesh within the loop consists of complete cells (the cells are not cut). Alternatively, this filter can be used to generate scalars. These scalar values, which are a distance measure to the loop, can be used to clip, contour. or extract data (i.e., anything that an implicit function can do).

The loop is defined by an array of x-y-z point coordinates. (Coordinates should be in the same coordinate space as the input polygonal data.) The loop can be concave and non-planar, but not self-intersecting. The input to the filter is a polygonal mesh (only surface primitives such as triangle strips and polygons); the output is either a) a portion of the original mesh laying within the selection loop (GenerateSelectionScalarsOff); or b) the same polygonal mesh with the addition of scalar values (GenerateSelectionScalarsOn).

The algorithm works as follows. For each point coordinate in the loop, the closest point in the mesh is found. The result is a loop of closest point ids from the mesh. Then, the edges in the mesh connecting the closest points (and laying along the lines forming the loop) are found. A greedy edge tracking procedure is used as follows. At the current point, the mesh edge oriented in the direction of and whose end point is closest to the line is chosen. The edge is followed to the new end point, and the procedure is repeated. This process continues until the entire loop has been created.

To determine what portion of the mesh is inside and outside of the loop, three options are possible. 1) the smallest connected region, 2) the largest connected region, and 3) the connected region closest to a user specified point. (Set the ivar SelectionMode.)

Once the loop is computed as above, the GenerateSelectionScalars controls the output of the filter. If on, then scalar values are generated based on distance to the loop lines. Otherwise, the cells laying inside the selection loop are output. By default, the mesh laying within the loop is output; however, if InsideOut is on, then the portion of the mesh laying outside of the loop is output.

The filter can be configured to generate the unselected portions of the mesh as output by setting GenerateUnselectedOutput. Use the method GetUnselectedOutput to access this output. (Note: this flag is pertinent only when GenerateSelectionScalars is off.)

Warning
Make sure that the points you pick are on a connected surface. If not, then the filter will generate an empty or partial result. Also, self-intersecting loops will generate unpredictable results.
During processing of the data, non-triangular cells are converted to triangles if GenerateSelectionScalars is off.
See Also
vtkImplicitSelectionLoop
Tests:
vtkSelectPolyData (Tests)

Definition at line 94 of file vtkSelectPolyData.h.

Member Typedef Documentation

typedef vtkPolyDataAlgorithm vtkSelectPolyData::Superclass

Definition at line 102 of file vtkSelectPolyData.h.

Constructor & Destructor Documentation

vtkSelectPolyData::vtkSelectPolyData ( )
protected
vtkSelectPolyData::~vtkSelectPolyData ( )
protected

Member Function Documentation

static vtkSelectPolyData* vtkSelectPolyData::New ( )
static

Instantiate object with InsideOut turned off, and GenerateSelectionScalars turned off. The unselected output is not generated, and the inside mode is the smallest region.

static int vtkSelectPolyData::IsTypeOf ( const char *  type)
static
virtual int vtkSelectPolyData::IsA ( const char *  type)
virtual
static vtkSelectPolyData* vtkSelectPolyData::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkSelectPolyData::NewInstanceInternal ( ) const
protectedvirtual
vtkSelectPolyData* vtkSelectPolyData::NewInstance ( ) const
void vtkSelectPolyData::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual void vtkSelectPolyData::SetGenerateSelectionScalars ( int  )
virtual

Set/Get the flag to control behavior of the filter. If GenerateSelectionScalars is on, then the output of the filter is the same as the input, except that scalars are generated. If off, the filter outputs the cells laying inside the loop, and does not generate scalars.

virtual int vtkSelectPolyData::GetGenerateSelectionScalars ( )
virtual

Set/Get the flag to control behavior of the filter. If GenerateSelectionScalars is on, then the output of the filter is the same as the input, except that scalars are generated. If off, the filter outputs the cells laying inside the loop, and does not generate scalars.

virtual void vtkSelectPolyData::GenerateSelectionScalarsOn ( )
virtual

Set/Get the flag to control behavior of the filter. If GenerateSelectionScalars is on, then the output of the filter is the same as the input, except that scalars are generated. If off, the filter outputs the cells laying inside the loop, and does not generate scalars.

virtual void vtkSelectPolyData::GenerateSelectionScalarsOff ( )
virtual

Set/Get the flag to control behavior of the filter. If GenerateSelectionScalars is on, then the output of the filter is the same as the input, except that scalars are generated. If off, the filter outputs the cells laying inside the loop, and does not generate scalars.

virtual void vtkSelectPolyData::SetInsideOut ( int  )
virtual

Set/Get the InsideOut flag. When off, the mesh within the loop is extracted. When on, the mesh outside the loop is extracted.

virtual int vtkSelectPolyData::GetInsideOut ( )
virtual

Set/Get the InsideOut flag. When off, the mesh within the loop is extracted. When on, the mesh outside the loop is extracted.

virtual void vtkSelectPolyData::InsideOutOn ( )
virtual

Set/Get the InsideOut flag. When off, the mesh within the loop is extracted. When on, the mesh outside the loop is extracted.

virtual void vtkSelectPolyData::InsideOutOff ( )
virtual

Set/Get the InsideOut flag. When off, the mesh within the loop is extracted. When on, the mesh outside the loop is extracted.

virtual void vtkSelectPolyData::SetLoop ( vtkPoints *  )
virtual

Set/Get the array of point coordinates defining the loop. There must be at least three points used to define a loop.

virtual vtkPoints* vtkSelectPolyData::GetLoop ( )
virtual

Set/Get the array of point coordinates defining the loop. There must be at least three points used to define a loop.

virtual void vtkSelectPolyData::SetSelectionMode ( int  )
virtual

Control how inside/outside of loop is defined.

virtual int vtkSelectPolyData::GetSelectionMode ( )
virtual

Control how inside/outside of loop is defined.

void vtkSelectPolyData::SetSelectionModeToSmallestRegion ( )
inline

Control how inside/outside of loop is defined.

Definition at line 136 of file vtkSelectPolyData.h.

void vtkSelectPolyData::SetSelectionModeToLargestRegion ( )
inline

Control how inside/outside of loop is defined.

Definition at line 138 of file vtkSelectPolyData.h.

void vtkSelectPolyData::SetSelectionModeToClosestPointRegion ( )
inline

Control how inside/outside of loop is defined.

Definition at line 140 of file vtkSelectPolyData.h.

const char * vtkSelectPolyData::GetSelectionModeAsString ( void  )
inline

Return the method of determining in/out of loop as a string.

Definition at line 186 of file vtkSelectPolyData.h.

virtual void vtkSelectPolyData::SetGenerateUnselectedOutput ( int  )
virtual

Control whether a second output is generated. The second output contains the polygonal data that's not been selected.

virtual int vtkSelectPolyData::GetGenerateUnselectedOutput ( )
virtual

Control whether a second output is generated. The second output contains the polygonal data that's not been selected.

virtual void vtkSelectPolyData::GenerateUnselectedOutputOn ( )
virtual

Control whether a second output is generated. The second output contains the polygonal data that's not been selected.

virtual void vtkSelectPolyData::GenerateUnselectedOutputOff ( )
virtual

Control whether a second output is generated. The second output contains the polygonal data that's not been selected.

vtkPolyData* vtkSelectPolyData::GetUnselectedOutput ( )

Return output that hasn't been selected (if GenreateUnselectedOutput is enabled).

vtkPolyData* vtkSelectPolyData::GetSelectionEdges ( )

Return the (mesh) edges of the selection region.

unsigned long int vtkSelectPolyData::GetMTime ( )
int vtkSelectPolyData::RequestData ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protected

Member Data Documentation

int vtkSelectPolyData::GenerateSelectionScalars
protected

Definition at line 169 of file vtkSelectPolyData.h.

int vtkSelectPolyData::InsideOut
protected

Definition at line 170 of file vtkSelectPolyData.h.

vtkPoints* vtkSelectPolyData::Loop
protected

Definition at line 171 of file vtkSelectPolyData.h.

int vtkSelectPolyData::SelectionMode
protected

Definition at line 172 of file vtkSelectPolyData.h.

double vtkSelectPolyData::ClosestPoint[3]
protected

Definition at line 173 of file vtkSelectPolyData.h.

int vtkSelectPolyData::GenerateUnselectedOutput
protected

Definition at line 174 of file vtkSelectPolyData.h.


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