VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
vtkTessellatorFilter Class Reference

approximate nonlinear FEM elements with simplices More...

#include <vtkTessellatorFilter.h>

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

List of all members.

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 vtkObjectBaseNewInstanceInternal () 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
vtkPointLocatorLocator
vtkUnstructuredGridOutputMesh
vtkPointsOutputPoints
vtkDataArray ** OutputAttributes
intOutputAttributeIndices

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

Reimplemented from vtkUnstructuredGridAlgorithm.

Definition at line 76 of file vtkTessellatorFilter.h.


Constructor & Destructor Documentation


Member Function Documentation

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 vtkTypeMacro 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 vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkUnstructuredGridAlgorithm.

Reimplemented from vtkUnstructuredGridAlgorithm.

virtual vtkObjectBase* vtkTessellatorFilter::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkUnstructuredGridAlgorithm.

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.

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

Reimplemented from vtkUnstructuredGridAlgorithm.

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.

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.

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.

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.

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.

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).

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 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.

Definition at line 158 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.

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: