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 | Static Protected Member Functions | Protected Attributes | List of all members
vtkTessellatorFilter Class Reference

approximate nonlinear FEM elements with simplices More...

#include <vtkTessellatorFilter.h>

Inherits vtkUnstructuredGridAlgorithm.

Collaboration diagram for vtkTessellatorFilter:
[legend]

Public Types

typedef
vtkUnstructuredGridAlgorithm 
Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkTessellatorFilterNewInstance () const
 
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 (vtkObjectBase *o)
 
static vtkTessellatorFilterNew ()
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 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
 
vtkPointLocator * Locator
 
vtkUnstructuredGrid * OutputMesh
 
vtkPoints * OutputPoints
 
vtkDataArray ** OutputAttributes
 
int * OutputAttributeIndices
 

Detailed Description

approximate nonlinear FEM elements with simplices

$Date$ $Revision$

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 73 of file vtkTessellatorFilter.h.

Member Typedef Documentation

typedef vtkUnstructuredGridAlgorithm vtkTessellatorFilter::Superclass

Definition at line 76 of file vtkTessellatorFilter.h.

Constructor & Destructor Documentation

vtkTessellatorFilter::vtkTessellatorFilter ( )
protected
vtkTessellatorFilter::~vtkTessellatorFilter ( )
protected

Member Function Documentation

static int vtkTessellatorFilter::IsTypeOf ( const char *  type)
static
virtual int vtkTessellatorFilter::IsA ( const char *  type)
virtual
static vtkTessellatorFilter* vtkTessellatorFilter::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkTessellatorFilter::NewInstanceInternal ( ) const
protectedvirtual
vtkTessellatorFilter* vtkTessellatorFilter::NewInstance ( ) const
void vtkTessellatorFilter::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
static vtkTessellatorFilter* vtkTessellatorFilter::New ( )
static
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
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 206 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 
)
protectedvirtual
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 
)
protectedvirtual

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

static void vtkTessellatorFilter::AddAPoint ( const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
)
staticprotected
static void vtkTessellatorFilter::AddALine ( const double *  ,
const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
)
staticprotected
static void vtkTessellatorFilter::AddATriangle ( const double *  ,
const double *  ,
const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
)
staticprotected
static void vtkTessellatorFilter::AddATetrahedron ( const double *  ,
const double *  ,
const double *  ,
const double *  ,
vtkEdgeSubdivisionCriterion ,
void *  ,
const void *   
)
staticprotected
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

vtkStreamingTessellator* vtkTessellatorFilter::Tessellator
protected

Definition at line 154 of file vtkTessellatorFilter.h.

vtkDataSetEdgeSubdivisionCriterion* vtkTessellatorFilter::Subdivider
protected

Definition at line 155 of file vtkTessellatorFilter.h.

int vtkTessellatorFilter::OutputDimension
protected

Definition at line 156 of file vtkTessellatorFilter.h.

int vtkTessellatorFilter::MergePoints
protected

Definition at line 157 of file vtkTessellatorFilter.h.

vtkPointLocator* vtkTessellatorFilter::Locator
protected

Definition at line 158 of file vtkTessellatorFilter.h.

vtkUnstructuredGrid* vtkTessellatorFilter::OutputMesh
protected

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

Definition at line 163 of file vtkTessellatorFilter.h.

vtkPoints* vtkTessellatorFilter::OutputPoints
protected

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

Definition at line 164 of file vtkTessellatorFilter.h.

vtkDataArray** vtkTessellatorFilter::OutputAttributes
protected

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

Definition at line 165 of file vtkTessellatorFilter.h.

int* vtkTessellatorFilter::OutputAttributeIndices
protected

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

Definition at line 166 of file vtkTessellatorFilter.h.


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