vtkTessellatorFilter Class Reference

#include <vtkTessellatorFilter.h>

Inheritance diagram for vtkTessellatorFilter:

Inheritance graph
[legend]
Collaboration diagram for vtkTessellatorFilter:

Collaboration graph
[legend]

List of all members.


Detailed Description

approximate nonlinear FEM elements with simplices

Date
2007-08-30 22:51:07
Revision
1.3

This class approximates nonlinear FEM elements with linear simplices.

Warning: This class is temporary and will go away at some point after ParaView 1.4.0.

This filter rifles through all the cells in an input vtkDataSet. It tesselates each cell and uses the vtkStreamingTessellator and vtkDataSetEdgeSubdivisionCriterion classes to generate simplices that approximate the nonlinear mesh using some approximation metric (encoded in the particular vtkDataSetEdgeSubdivisionCriterion::EvaluateEdge implementation). The simplices are placed into the filter's output vtkDataSet object by the callback routines AddATetrahedron, AddATriangle, and AddALine, which are registered with the triangulator.

The output mesh will have geometry and any fields specified as attributes in the input mesh's point data. The attribute's copy flags are honored, except for normals.

Internals:
The filter's main member function is RequestData(). This function first calls SetupOutput() which allocates arrays and some temporary variables for the primitive callbacks (OutputTriangle and OutputLine which are called by AddATriangle and AddALine, respectively). Each cell is given an initial tesselation, which results in one or more calls to OutputTetrahedron, OutputTriangle or OutputLine to add elements to the OutputMesh. Finally, Teardown() is called to free the filter's working space.
See also:
vtkDataSetToUnstructuredGridFilter vtkDataSet vtkStreamingTessellator vtkDataSetEdgeSubdivisionCriterion
Tests:
vtkTessellatorFilter (Tests)

Definition at line 72 of file vtkTessellatorFilter.h.


Public Types

typedef
vtkUnstructuredGridAlgorithm 
Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
virtual void SetTessellator (vtkStreamingTessellator *)
virtual vtkStreamingTessellatorGetTessellator ()
virtual void SetSubdivider (vtkDataSetEdgeSubdivisionCriterion *)
virtual
vtkDataSetEdgeSubdivisionCriterion
GetSubdivider ()
virtual unsigned long GetMTime ()
virtual void SetOutputDimension (int)
virtual int GetOutputDimension ()
int GetOutputDimension () const
virtual void SetMaximumNumberOfSubdivisions (int num_subdiv_in)
int GetMaximumNumberOfSubdivisions ()
virtual void SetChordError (double ce)
double GetChordError ()
virtual void ResetFieldCriteria ()
virtual void SetFieldCriterion (int field, double chord)
virtual int GetMergePoints ()
virtual void SetMergePoints (int)
virtual void MergePointsOn ()
virtual void MergePointsOff ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkTessellatorFilterSafeDownCast (vtkObject *o)
static vtkTessellatorFilterNew ()

Protected Member Functions

 vtkTessellatorFilter ()
 ~vtkTessellatorFilter ()
virtual int FillInputPortInformation (int port, vtkInformation *info)
void SetupOutput (vtkDataSet *input, vtkUnstructuredGrid *output)
void MergeOutputPoints (vtkUnstructuredGrid *input, vtkUnstructuredGrid *output)
void Teardown ()
void OutputPoint (const double *)
void OutputLine (const double *, const double *)
void OutputTriangle (const double *, const double *, const double *)
void OutputTetrahedron (const double *, const double *, const double *, const double *)
virtual int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)

Static Protected Member Functions

static void AddAPoint (const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)
static void AddALine (const double *, const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)
static void AddATriangle (const double *, const double *, const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)
static void AddATetrahedron (const double *, const double *, const double *, const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)

Protected Attributes

vtkStreamingTessellatorTessellator
vtkDataSetEdgeSubdivisionCriterionSubdivider
int OutputDimension
int MergePoints
vtkPointLocatorLocator
vtkUnstructuredGridOutputMesh
vtkPointsOutputPoints
vtkDataArray ** OutputAttributes
int * OutputAttributeIndices

Member Typedef Documentation

Reimplemented from vtkUnstructuredGridAlgorithm.

Definition at line 75 of file vtkTessellatorFilter.h.


Constructor & Destructor Documentation

vtkTessellatorFilter::vtkTessellatorFilter (  )  [protected]

vtkTessellatorFilter::~vtkTessellatorFilter (  )  [protected]


Member Function Documentation

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

Reimplemented from vtkUnstructuredGridAlgorithm.

static int vtkTessellatorFilter::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 vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkUnstructuredGridAlgorithm.

virtual int vtkTessellatorFilter::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 vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkUnstructuredGridAlgorithm.

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

Reimplemented from vtkUnstructuredGridAlgorithm.

void vtkTessellatorFilter::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 vtkUnstructuredGridAlgorithm.

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

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkUnstructuredGridAlgorithm.

virtual void vtkTessellatorFilter::SetTessellator ( vtkStreamingTessellator  )  [virtual]

virtual vtkStreamingTessellator* vtkTessellatorFilter::GetTessellator (  )  [virtual]

virtual void vtkTessellatorFilter::SetSubdivider ( vtkDataSetEdgeSubdivisionCriterion  )  [virtual]

virtual vtkDataSetEdgeSubdivisionCriterion* vtkTessellatorFilter::GetSubdivider (  )  [virtual]

virtual unsigned long vtkTessellatorFilter::GetMTime (  )  [virtual]

Return this object's modified time.

Reimplemented from vtkObject.

virtual void vtkTessellatorFilter::SetOutputDimension ( int   )  [virtual]

Set the dimension of the output tessellation. Cells in dimensions higher than the given value will have their boundaries of dimension OutputDimension tessellated. For example, if OutputDimension is 2, a hexahedron's quadrilateral faces would be tessellated rather than its interior.

virtual int vtkTessellatorFilter::GetOutputDimension (  )  [virtual]

Set the dimension of the output tessellation. Cells in dimensions higher than the given value will have their boundaries of dimension OutputDimension tessellated. For example, if OutputDimension is 2, a hexahedron's quadrilateral faces would be tessellated rather than its interior.

int vtkTessellatorFilter::GetOutputDimension (  )  const [inline]

Set the dimension of the output tessellation. Cells in dimensions higher than the given value will have their boundaries of dimension OutputDimension tessellated. For example, if OutputDimension is 2, a hexahedron's quadrilateral faces would be tessellated rather than its interior.

Definition at line 205 of file vtkTessellatorFilter.h.

virtual void vtkTessellatorFilter::SetMaximumNumberOfSubdivisions ( int  num_subdiv_in  )  [virtual]

These are convenience routines for setting properties maintained by the tessellator and subdivider. They are implemented here for ParaView's sake.

int vtkTessellatorFilter::GetMaximumNumberOfSubdivisions (  ) 

These are convenience routines for setting properties maintained by the tessellator and subdivider. They are implemented here for ParaView's sake.

virtual void vtkTessellatorFilter::SetChordError ( double  ce  )  [virtual]

These are convenience routines for setting properties maintained by the tessellator and subdivider. They are implemented here for ParaView's sake.

double vtkTessellatorFilter::GetChordError (  ) 

These are convenience routines for setting properties maintained by the tessellator and subdivider. They are implemented here for ParaView's sake.

virtual void vtkTessellatorFilter::ResetFieldCriteria (  )  [virtual]

These methods are for the ParaView client.

virtual void vtkTessellatorFilter::SetFieldCriterion ( int  field,
double  chord 
) [virtual]

These methods are for the ParaView client.

virtual int vtkTessellatorFilter::GetMergePoints (  )  [virtual]

The adaptive tessellation will output vertices that are not shared among cells, even where they should be. This can be corrected to some extents with a vtkMergeFilter. By default, the filter is off and vertices will not be shared.

virtual void vtkTessellatorFilter::SetMergePoints ( int   )  [virtual]

The adaptive tessellation will output vertices that are not shared among cells, even where they should be. This can be corrected to some extents with a vtkMergeFilter. By default, the filter is off and vertices will not be shared.

virtual void vtkTessellatorFilter::MergePointsOn (  )  [virtual]

The adaptive tessellation will output vertices that are not shared among cells, even where they should be. This can be corrected to some extents with a vtkMergeFilter. By default, the filter is off and vertices will not be shared.

virtual void vtkTessellatorFilter::MergePointsOff (  )  [virtual]

The adaptive tessellation will output vertices that are not shared among cells, even where they should be. This can be corrected to some extents with a vtkMergeFilter. By default, the filter is off and vertices will not be shared.

virtual int vtkTessellatorFilter::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 vtkUnstructuredGridAlgorithm.

void vtkTessellatorFilter::SetupOutput ( vtkDataSet input,
vtkUnstructuredGrid output 
) [protected]

Called by RequestData to set up a multitude of member variables used by the per-primitive output functions (OutputLine, OutputTriangle, and maybe one day... OutputTetrahedron).

void vtkTessellatorFilter::MergeOutputPoints ( vtkUnstructuredGrid input,
vtkUnstructuredGrid output 
) [protected]

Called by RequestData to merge output points.

void vtkTessellatorFilter::Teardown (  )  [protected]

Reset the temporary variables used during the filter's RequestData() method.

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

Run the filter; produce a polygonal approximation to the grid.

Reimplemented from vtkUnstructuredGridAlgorithm.

static void vtkTessellatorFilter::AddAPoint ( const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
) [static, protected]

static void vtkTessellatorFilter::AddALine ( const double *  ,
const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
) [static, protected]

static void vtkTessellatorFilter::AddATriangle ( const double *  ,
const double *  ,
const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
) [static, protected]

static void vtkTessellatorFilter::AddATetrahedron ( const double *  ,
const double *  ,
const double *  ,
const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
) [static, protected]

void vtkTessellatorFilter::OutputPoint ( const double *   )  [protected]

void vtkTessellatorFilter::OutputLine ( const double *  ,
const double *   
) [protected]

void vtkTessellatorFilter::OutputTriangle ( const double *  ,
const double *  ,
const double *   
) [protected]

void vtkTessellatorFilter::OutputTetrahedron ( const double *  ,
const double *  ,
const double *  ,
const double *   
) [protected]


Member Data Documentation

Definition at line 153 of file vtkTessellatorFilter.h.

Definition at line 154 of file vtkTessellatorFilter.h.

Definition at line 155 of file vtkTessellatorFilter.h.

Definition at line 156 of file vtkTessellatorFilter.h.

Definition at line 157 of file vtkTessellatorFilter.h.

These member variables are set by SetupOutput for use inside the callback members OutputLine and OutputTriangle.

Definition at line 162 of file vtkTessellatorFilter.h.

These member variables are set by SetupOutput for use inside the callback members OutputLine and OutputTriangle.

Definition at line 163 of file vtkTessellatorFilter.h.

These member variables are set by SetupOutput for use inside the callback members OutputLine and OutputTriangle.

Definition at line 164 of file vtkTessellatorFilter.h.

These member variables are set by SetupOutput for use inside the callback members OutputLine and OutputTriangle.

Definition at line 165 of file vtkTessellatorFilter.h.


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

Generated on Wed Jun 3 19:38:58 2009 for VTK by  doxygen 1.5.6