#include <vtkTessellatorFilter.h>
$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.
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 vtkStreamingTessellator * | GetTessellator () |
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 vtkTessellatorFilter * | SafeDownCast (vtkObject *o) |
static vtkTessellatorFilter * | New () |
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 | |
vtkStreamingTessellator * | Tessellator |
vtkDataSetEdgeSubdivisionCriterion * | Subdivider |
int | OutputDimension |
int | MergePoints |
vtkPointLocator * | Locator |
vtkUnstructuredGrid * | OutputMesh |
vtkPoints * | OutputPoints |
vtkDataArray ** | OutputAttributes |
int * | OutputAttributeIndices |
Reimplemented from vtkUnstructuredGridAlgorithm.
Definition at line 75 of file vtkTessellatorFilter.h.
vtkTessellatorFilter::vtkTessellatorFilter | ( | ) | [protected] |
vtkTessellatorFilter::~vtkTessellatorFilter | ( | ) | [protected] |
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 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.
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] |
vtkStreamingTessellator* vtkTessellatorFilter::Tessellator [protected] |
Definition at line 153 of file vtkTessellatorFilter.h.
Definition at line 154 of file vtkTessellatorFilter.h.
int vtkTessellatorFilter::OutputDimension [protected] |
Definition at line 155 of file vtkTessellatorFilter.h.
int vtkTessellatorFilter::MergePoints [protected] |
Definition at line 156 of file vtkTessellatorFilter.h.
vtkPointLocator* vtkTessellatorFilter::Locator [protected] |
Definition at line 157 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 162 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 163 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 164 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 165 of file vtkTessellatorFilter.h.