vtkMeshQuality Class Reference

#include <vtkMeshQuality.h>

Inheritance diagram for vtkMeshQuality:

Inheritance graph
[legend]
Collaboration diagram for vtkMeshQuality:

Collaboration graph
[legend]

List of all members.


Detailed Description

Calculate measures of quality of a mesh.

Date
2005/02/19 01:50:46
Revision
1.21

vtkMeshQuality computes one or more measures of (geometric) quality for each 2-D and 3-D cell (triangle, quadrilateral, tetrahedron, or hexahedron) of a mesh. These measures of quality are then averaged over the entire mesh. The minimum, average, maximum, and variance of quality for each type of cell is stored in the output mesh's FieldData. The FieldData arrays are named "Mesh Triangle Quality," "Mesh Quadrilateral Quality," "Mesh Tetrahedron Quality," and "Mesh Hexahedron Quality." Each array has a single tuple with 5 components. The first 4 components are the quality statistics mentioned above; the final value is the number of cells of the given type. This final component makes aggregation of statistics for distributed mesh data possible.

By default, the per-cell quality is added to the mesh's cell data, in an array named "Quality." Cell types not supported by this filter will have an entry of 0. Use SaveCellQualityOff() to store only the final statistics.

This version of the filter overtakes an older version written by Leila Baghdadi, Hanif Ladak, and David Steinman at the Imaging Research Labs, Robarts Research Institute. That version focused solely on tetrahedra. See the CompatibilityModeOn() member for information on how to make this filter behave like the previous implementation.

Warning:
While more general than before, this class does not address many cell types, including wedges and pyramids in 3D and triangle strips and fans in 2D (among others). Most quadrilateral quality measures are intended for planar quadrilaterals only. The minimal angle is not, strictly speaking, a quality measure, but it is provided because of its useage by many authors.
Tests:
vtkMeshQuality (Tests)

Definition at line 76 of file vtkMeshQuality.h.


Public Types

typedef vtkDataSetAlgorithm Superclass

Public Member Functions

void PrintSelf (ostream &os, vtkIndent indent)
virtual const char * GetClassName ()
virtual int IsA (const char *type)
virtual void SetSaveCellQuality (int)
virtual int GetSaveCellQuality ()
virtual void SaveCellQualityOn ()
virtual void SaveCellQualityOff ()
virtual void SetTriangleQualityMeasure (int)
virtual int GetTriangleQualityMeasure ()
void SetTriangleQualityMeasureToEdgeRatio ()
void SetTriangleQualityMeasureToAspectRatio ()
void SetTriangleQualityMeasureToRadiusRatio ()
void SetTriangleQualityMeasureToFrobeniusNorm ()
void SetTriangleQualityMeasureToMinAngle ()
virtual void SetQuadQualityMeasure (int)
virtual int GetQuadQualityMeasure ()
void SetQuadQualityMeasureToEdgeRatio ()
void SetQuadQualityMeasureToAspectRatio ()
void SetQuadQualityMeasureToRadiusRatio ()
void SetQuadQualityMeasureToMedFrobeniusNorm ()
void SetQuadQualityMeasureToMaxFrobeniusNorm ()
void SetQuadQualityMeasureToMinAngle ()
virtual void SetTetQualityMeasure (int)
virtual int GetTetQualityMeasure ()
void SetTetQualityMeasureToEdgeRatio ()
void SetTetQualityMeasureToAspectRatio ()
void SetTetQualityMeasureToRadiusRatio ()
void SetTetQualityMeasureToFrobeniusNorm ()
void SetTetQualityMeasureToMinAngle ()
virtual void SetHexQualityMeasure (int)
virtual int GetHexQualityMeasure ()
void SetHexQualityMeasureToEdgeRatio ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkMeshQualitySafeDownCast (vtkObject *o)
static vtkMeshQualityNew ()
static double TriangleEdgeRatio (vtkCell *cell)
static double TriangleAspectRatio (vtkCell *cell)
static double TriangleRadiusRatio (vtkCell *cell)
static double TriangleFrobeniusNorm (vtkCell *cell)
static double TriangleMinAngle (vtkCell *cell)
static double QuadEdgeRatio (vtkCell *cell)

Member Typedef Documentation

Reimplemented from vtkDataSetAlgorithm.

Definition at line 80 of file vtkMeshQuality.h.


Member Function Documentation

void vtkMeshQuality::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 vtkDataSetAlgorithm.

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

Reimplemented from vtkDataSetAlgorithm.

static int vtkMeshQuality::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 vtkDataSetAlgorithm.

virtual int vtkMeshQuality::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 vtkDataSetAlgorithm.

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

Reimplemented from vtkDataSetAlgorithm.

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

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

Reimplemented from vtkDataSetAlgorithm.

virtual void vtkMeshQuality::SetSaveCellQuality ( int   )  [virtual]

This variable controls whether or not cell quality is stored as cell data in the resulting mesh or discarded (leaving only the aggregate quality average of the entire mesh, recorded in the FieldData).

virtual int vtkMeshQuality::GetSaveCellQuality (  )  [virtual]

This variable controls whether or not cell quality is stored as cell data in the resulting mesh or discarded (leaving only the aggregate quality average of the entire mesh, recorded in the FieldData).

virtual void vtkMeshQuality::SaveCellQualityOn (  )  [virtual]

This variable controls whether or not cell quality is stored as cell data in the resulting mesh or discarded (leaving only the aggregate quality average of the entire mesh, recorded in the FieldData).

virtual void vtkMeshQuality::SaveCellQualityOff (  )  [virtual]

This variable controls whether or not cell quality is stored as cell data in the resulting mesh or discarded (leaving only the aggregate quality average of the entire mesh, recorded in the FieldData).

virtual void vtkMeshQuality::SetTriangleQualityMeasure ( int   )  [virtual]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

virtual int vtkMeshQuality::GetTriangleQualityMeasure (  )  [virtual]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

void vtkMeshQuality::SetTriangleQualityMeasureToEdgeRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 99 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTriangleQualityMeasureToAspectRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 103 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTriangleQualityMeasureToRadiusRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 107 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTriangleQualityMeasureToFrobeniusNorm (  )  [inline]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 111 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTriangleQualityMeasureToMinAngle (  )  [inline]

Set/Get the particular estimator used to measure the quality of triangles. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 115 of file vtkMeshQuality.h.

virtual void vtkMeshQuality::SetQuadQualityMeasure ( int   )  [virtual]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

virtual int vtkMeshQuality::GetQuadQualityMeasure (  )  [virtual]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

void vtkMeshQuality::SetQuadQualityMeasureToEdgeRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

Definition at line 131 of file vtkMeshQuality.h.

void vtkMeshQuality::SetQuadQualityMeasureToAspectRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

Definition at line 135 of file vtkMeshQuality.h.

void vtkMeshQuality::SetQuadQualityMeasureToRadiusRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

Definition at line 139 of file vtkMeshQuality.h.

void vtkMeshQuality::SetQuadQualityMeasureToMedFrobeniusNorm (  )  [inline]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

Definition at line 143 of file vtkMeshQuality.h.

void vtkMeshQuality::SetQuadQualityMeasureToMaxFrobeniusNorm (  )  [inline]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

Definition at line 147 of file vtkMeshQuality.h.

void vtkMeshQuality::SetQuadQualityMeasureToMinAngle (  )  [inline]

Set/Get the particular estimator used to measure the quality of quadrilaterals. The default is VTK_QUALITY_EDGE_RATIO and valid values also include VTK_QUALITY_RADIUS_RATIO and VTK_QUALITY_ASPECT_RATIO. Scope: Except for VTK_QUALITY_EDGE_RATIO, these estimators are intended for planar quadrilaterals only; use at your own risk if you really want to assess non-planar quadrilateral quality with those.

Definition at line 151 of file vtkMeshQuality.h.

virtual void vtkMeshQuality::SetTetQualityMeasure ( int   )  [virtual]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

virtual int vtkMeshQuality::GetTetQualityMeasure (  )  [virtual]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

void vtkMeshQuality::SetTetQualityMeasureToEdgeRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 164 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTetQualityMeasureToAspectRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 168 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTetQualityMeasureToRadiusRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 172 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTetQualityMeasureToFrobeniusNorm (  )  [inline]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 176 of file vtkMeshQuality.h.

void vtkMeshQuality::SetTetQualityMeasureToMinAngle (  )  [inline]

Set/Get the particular estimator used to measure the quality of tetrahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO, VTK_QUALITY_FROBENIUS_NORM, and VTK_QUALITY_EDGE_RATIO.

Definition at line 180 of file vtkMeshQuality.h.

virtual void vtkMeshQuality::SetHexQualityMeasure ( int   )  [virtual]

Set/Get the particular estimator used to measure the quality of hexahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO.

virtual int vtkMeshQuality::GetHexQualityMeasure (  )  [virtual]

Set/Get the particular estimator used to measure the quality of hexahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO.

void vtkMeshQuality::SetHexQualityMeasureToEdgeRatio (  )  [inline]

Set/Get the particular estimator used to measure the quality of hexahedra. The default is VTK_QUALITY_RADIUS_RATIO and valid values also include VTK_QUALITY_ASPECT_RATIO.

Definition at line 192 of file vtkMeshQuality.h.

static double vtkMeshQuality::TriangleEdgeRatio ( vtkCell cell  )  [static]

This is a static function used to calculate the edge ratio of a triangle. It assumes that you pass the correct type of cell -- no type checking is performed because this method is called from the inner loop of the Execute() member function. The edge ratio of a triangle $t$ is: $\frac{|t|_\infty}{|t|_0}$, where $|t|_\infty$ and $|t|_0$ respectively denote the greatest and the smallest edge lengths of $t$.

static double vtkMeshQuality::TriangleAspectRatio ( vtkCell cell  )  [static]

This is a static function used to calculate the aspect ratio of a triangle. It assumes that you pass the correct type of cell -- no type checking is performed because this method is called from the inner loop of the Execute() member function. The aspect ratio of a triangle $t$ is: $\frac{|t|_\infty}{2\sqrt{3}r}$, where $|t|_\infty$ and $r$ respectively denote the greatest edge length and the inradius of $t$.

static double vtkMeshQuality::TriangleRadiusRatio ( vtkCell cell  )  [static]

This is a static function used to calculate the radius ratio of a triangle. It assumes that you pass the correct type of cell -- no type checking is performed because this method is called from the inner loop of the Execute() member function. The radius ratio of a triangle $t$ is: $\frac{R}{2r}$, where $R$ and $r$ respectively denote the circumradius and the inradius of $t$.

static double vtkMeshQuality::TriangleFrobeniusNorm ( vtkCell cell  )  [static]

This is a static function used to calculate the Frobenius norm of a triangle when the reference element is equilateral. It assumes that you pass the correct type of cell -- no type checking is performed because this method is called from the inner loop of the Execute() member function. The Frobenius norm of a triangle $t$, when the reference element is equilateral, is: $\frac{|t|^2_2}{2\sqrt{3}{\cal A}}$, where $|t|^2_2$ and $\cal A$ respectively denote the sum of the squared edge lengths and the area of $t$.

static double vtkMeshQuality::TriangleMinAngle ( vtkCell cell  )  [static]

This is a static function used to calculate the minimal (nonoriented) angle of a triangle, expressed in degrees. It assumes that you pass the correct type of cell -- no type checking is performed because this method is called from the inner loop of the Execute() member function.

static double vtkMeshQuality::QuadEdgeRatio ( vtkCell cell  )  [static]

This is a static function used to calculate the edge ratio of a quadrilateral. It assumes that you pass the correct type of cell -- no type checking is performed because this method is called from the inner loop of the Execute() member function. The edge ratio of a quadrilateral $q$ is: $\frac{|q|_\infty}{|q|_0}$, where $|q|_\infty$ and $|q|_0$ respectively denote the greatest and the smallest edge lengths of $q$.


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

Generated on Fri Oct 10 09:39:12 2008 for VTK by  doxygen 1.5.6