Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

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.
virtual void SetSaveCellQuality (int)
virtual int GetSaveCellQuality ()
virtual void SaveCellQualityOn ()
virtual void SaveCellQualityOff ()
static vtkMeshQualityNew ()
virtual void SetRatio (int r)
int GetRatio ()
virtual void RatioOn ()
virtual void RatioOff ()
static double HexEdgeRatio (vtkCell *cell)

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 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 ()
virtual void SetVolume (int cv)
int GetVolume ()
virtual void VolumeOn ()
virtual void VolumeOff ()
virtual void SetCompatibilityMode (int cm)
virtual int GetCompatibilityMode ()
virtual void CompatibilityModeOn ()
virtual void CompatibilityModeOff ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkMeshQualitySafeDownCast (vtkObject *o)
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)
static double QuadAspectRatio (vtkCell *cell)
static double QuadRadiusRatio (vtkCell *cell)
static double QuadMedFrobeniusNorm (vtkCell *cell)
static double QuadMaxFrobeniusNorm (vtkCell *cell)
static double QuadMinAngle (vtkCell *cell)
static double TetEdgeRatio (vtkCell *cell)
static double TetAspectRatio (vtkCell *cell)
static double TetRadiusRatio (vtkCell *cell)
static double TetFrobeniusNorm (vtkCell *cell)
static double TetMinAngle (vtkCell *cell)

Protected Member Functions

 vtkMeshQuality ()
 ~vtkMeshQuality ()
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)

Protected Attributes

int SaveCellQuality
int TriangleQualityMeasure
int QuadQualityMeasure
int TetQualityMeasure
int HexQualityMeasure
int CompatibilityMode
int Volume


Member Typedef Documentation

typedef vtkDataSetAlgorithm vtkMeshQuality::Superclass
 

Reimplemented from vtkDataSetAlgorithm.

Definition at line 80 of file vtkMeshQuality.h.


Constructor & Destructor Documentation

vtkMeshQuality::vtkMeshQuality  )  [protected]
 

vtkMeshQuality::~vtkMeshQuality  )  [protected]
 


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 *  type  )  [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 *  type  )  [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]
 

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

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.

References VTK_QUALITY_EDGE_RATIO.

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.

References VTK_QUALITY_ASPECT_RATIO.

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.

References VTK_QUALITY_RADIUS_RATIO.

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.

References VTK_QUALITY_FROBENIUS_NORM.

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.

References VTK_QUALITY_MIN_ANGLE.

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.

References VTK_QUALITY_EDGE_RATIO.

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.

References VTK_QUALITY_ASPECT_RATIO.

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.

References VTK_QUALITY_RADIUS_RATIO.

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.

References VTK_QUALITY_MED_FROBENIUS_NORM.

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.

References VTK_QUALITY_MAX_FROBENIUS_NORM.

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.

References VTK_QUALITY_MIN_ANGLE.

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.

References VTK_QUALITY_EDGE_RATIO.

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.

References VTK_QUALITY_ASPECT_RATIO.

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.

References VTK_QUALITY_RADIUS_RATIO.

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.

References VTK_QUALITY_FROBENIUS_NORM.

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.

References VTK_QUALITY_MIN_ANGLE.

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.

References VTK_QUALITY_EDGE_RATIO.

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

static double vtkMeshQuality::QuadAspectRatio vtkCell cell  )  [static]
 

This is a static function used to calculate the aspect ratio of a planar 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. Use at your own risk with nonplanar quadrilaterals. The aspect ratio of a planar quadrilateral $q$ is: $\frac{|q|_1|q|_\infty}{4{\cal A}}$ , where $|q|_1$ , $|q|_$ and ${\cal A}$ respectively denote the perimeter, the greatest edge length and the area of $q$ .

static double vtkMeshQuality::QuadRadiusRatio vtkCell cell  )  [static]
 

This is a static function used to calculate the radius ratio of a planar quadrilateral. The name is only used by analogy with the triangle radius ratio, because in general a quadrilateral does not have a circumcircle nor an incircle. 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. Use at your own risk with nonplanar quadrilaterals. The radius ratio of a planar quadrilateral $q$ is: $\frac{|q|_2h_{\max}}{\min_i{\cal A}_i}$ , where $|q|_2$ , $h_{\max}$ and $\min{\cal A}_i$ respectively denote the sum of the squared edge lengths, the greatest amongst diagonal and edge lengths and the smallest area of the 4 triangles extractable from $q$ .

static double vtkMeshQuality::QuadMedFrobeniusNorm vtkCell cell  )  [static]
 

This is a static function used to calculate the average Frobenius norm of the 4 triangles extractable from a planar quadrilateral, when the reference triangle elements are right isosceles at the quadrangle vertices. 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. Use at your own risk with nonplanar quadrilaterals. The Frobenius norm of a triangle $t$ , when the reference element is right isosceles at vertex $V$ , is: $\frac{f^2+g^2}{4{\cal A}}$ , where $f^2+g^2$ and $\cal A$ respectively denote the sum of the squared lengths of the edges attached to $V$ and the area of $t$ .

static double vtkMeshQuality::QuadMaxFrobeniusNorm vtkCell cell  )  [static]
 

This is a static function used to calculate the maximal Frobenius norm of the 4 triangles extractable from a planar quadrilateral, when the reference triangle elements are right isosceles at the quadrangle vertices. 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. Use at your own risk with nonplanar quadrilaterals. The Frobenius norm of a triangle $t$ , when the reference element is right isosceles at vertex $V$ , is: $\frac{f^2+g^2}{4{\cal A}}$ , where $f^2+g^2$ and $\cal A$ respectively denote the sum of the squared lengths of the edges attached to $V$ and the area of $t$ .

static double vtkMeshQuality::QuadMinAngle vtkCell cell  )  [static]
 

This is a static function used to calculate the minimal (nonoriented) angle of a quadrilateral, 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::TetEdgeRatio vtkCell cell  )  [static]
 

This is a static function used to calculate the edge ratio of a tetrahedron. 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 tetrahedron $K$ is: $\frac{|K|_\infty}{|K|_0}$ , where $|K|_\infty$ and $|K|_0$ respectively denote the greatest and the smallest edge lengths of $K$ .

static double vtkMeshQuality::TetAspectRatio vtkCell cell  )  [static]
 

This is a static function used to calculate the aspect ratio of a tetrahedron. 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 tetrahedron $K$ is: $\frac{|K|_\infty}{2\sqrt{6}r}$ , where $|K|_\infty$ and $r$ respectively denote the greatest edge length and the inradius of $K$ .

static double vtkMeshQuality::TetRadiusRatio vtkCell cell  )  [static]
 

This is a static function used to calculate the radius ratio of a tetrahedron. 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 tetrahedron $K$ is: $\frac{R}{3r}$ , where $R$ and $r$ respectively denote the circumradius and the inradius of $K$ .

static double vtkMeshQuality::TetFrobeniusNorm vtkCell cell  )  [static]
 

This is a static function used to calculate the Frobenius norm of a tetrahedron when the reference element is regular. 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 tetrahedron $K$ , when the reference element is regular, is: $\frac{\frac{3}{2}(l_{11}+l_{22}+l_{33}) - (l_{12}+l_{13}+l_{23})} {3(\sqrt{2}\det{T})^\frac{2}{3}}$ , where $T$ and $l_{ij}$ respectively denote the edge matrix of $K$ and the entries of $L=T^t\,T$ .

static double vtkMeshQuality::TetMinAngle vtkCell cell  )  [static]
 

This is a static function used to calculate the minimal (nonoriented) dihedral angle of a tetrahedron, 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::HexEdgeRatio vtkCell cell  )  [static]
 

This is a static function used to calculate the edge ratio of a hexahedron. 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 tetrahedron $H$ is: $\frac{|H|_\infty}{|H|_0}$ , where $|H|_\infty$ and $|H|_0$ respectively denote the greatest and the smallest edge lengths of $H$ .

virtual void vtkMeshQuality::SetRatio int  r  )  [inline, virtual]
 

These methods are deprecated. Use Get/SetSaveCellQuality() instead. Formerly, SetRatio could be used to disable computation of the tetrahedral radius ratio so that volume alone could be computed. Now, cell quality is always computed, but you may decide not to store the result for each cell. This allows average cell quality of a mesh to be calculated without requiring per-cell storage.

Definition at line 371 of file vtkMeshQuality.h.

int vtkMeshQuality::GetRatio  )  [inline]
 

These methods are deprecated. Use Get/SetSaveCellQuality() instead. Formerly, SetRatio could be used to disable computation of the tetrahedral radius ratio so that volume alone could be computed. Now, cell quality is always computed, but you may decide not to store the result for each cell. This allows average cell quality of a mesh to be calculated without requiring per-cell storage.

Definition at line 372 of file vtkMeshQuality.h.

virtual void vtkMeshQuality::RatioOn  )  [virtual]
 

These methods are deprecated. Use Get/SetSaveCellQuality() instead. Formerly, SetRatio could be used to disable computation of the tetrahedral radius ratio so that volume alone could be computed. Now, cell quality is always computed, but you may decide not to store the result for each cell. This allows average cell quality of a mesh to be calculated without requiring per-cell storage.

virtual void vtkMeshQuality::RatioOff  )  [virtual]
 

These methods are deprecated. Use Get/SetSaveCellQuality() instead. Formerly, SetRatio could be used to disable computation of the tetrahedral radius ratio so that volume alone could be computed. Now, cell quality is always computed, but you may decide not to store the result for each cell. This allows average cell quality of a mesh to be calculated without requiring per-cell storage.

virtual void vtkMeshQuality::SetVolume int  cv  )  [inline, virtual]
 

These methods are deprecated. The functionality of computing cell volume is being removed until it can be computed for any 3D cell. (The previous implementation only worked for tetrahedra.) For now, turning on the volume computation will put this filter into "compatibility mode," where tetrahedral cell volume is stored in first component of each output tuple and the radius ratio is stored in the second component. You may also use CompatibilityModeOn()/Off() to enter this mode. In this mode, cells other than tetrahedra will have report a volume of 0.0 (if volume computation is enabled). By default, volume computation is disabled and compatibility mode is off, since it does not make a lot of sense for meshes with non-tetrahedral cells.

Definition at line 389 of file vtkMeshQuality.h.

References vtkObject::Modified().

int vtkMeshQuality::GetVolume  )  [inline]
 

These methods are deprecated. The functionality of computing cell volume is being removed until it can be computed for any 3D cell. (The previous implementation only worked for tetrahedra.) For now, turning on the volume computation will put this filter into "compatibility mode," where tetrahedral cell volume is stored in first component of each output tuple and the radius ratio is stored in the second component. You may also use CompatibilityModeOn()/Off() to enter this mode. In this mode, cells other than tetrahedra will have report a volume of 0.0 (if volume computation is enabled). By default, volume computation is disabled and compatibility mode is off, since it does not make a lot of sense for meshes with non-tetrahedral cells.

Definition at line 402 of file vtkMeshQuality.h.

virtual void vtkMeshQuality::VolumeOn  )  [virtual]
 

These methods are deprecated. The functionality of computing cell volume is being removed until it can be computed for any 3D cell. (The previous implementation only worked for tetrahedra.) For now, turning on the volume computation will put this filter into "compatibility mode," where tetrahedral cell volume is stored in first component of each output tuple and the radius ratio is stored in the second component. You may also use CompatibilityModeOn()/Off() to enter this mode. In this mode, cells other than tetrahedra will have report a volume of 0.0 (if volume computation is enabled). By default, volume computation is disabled and compatibility mode is off, since it does not make a lot of sense for meshes with non-tetrahedral cells.

virtual void vtkMeshQuality::VolumeOff  )  [virtual]
 

These methods are deprecated. The functionality of computing cell volume is being removed until it can be computed for any 3D cell. (The previous implementation only worked for tetrahedra.) For now, turning on the volume computation will put this filter into "compatibility mode," where tetrahedral cell volume is stored in first component of each output tuple and the radius ratio is stored in the second component. You may also use CompatibilityModeOn()/Off() to enter this mode. In this mode, cells other than tetrahedra will have report a volume of 0.0 (if volume computation is enabled). By default, volume computation is disabled and compatibility mode is off, since it does not make a lot of sense for meshes with non-tetrahedral cells.

virtual void vtkMeshQuality::SetCompatibilityMode int  cm  )  [inline, virtual]
 

CompatibilityMode governs whether, when both a quality measure and cell volume are to be stored as cell data, the two values are stored in a single array. When compatibility mode is off (the default), two separate arrays are used -- one labeled "Quality" and the other labeled "Volume". When compatibility mode is on, both values are stored in a single array, with volume as the first component and quality as the second component. Enabling CompatibilityMode changes the default tetrahedral quality measure to VTK_QUALITY_RADIUS_RATIO and turns volume computation on. (This matches the default behavior of the initial implementation of vtkMeshQuality.) You may change quality measure and volume computation without leaving compatibility mode. Disabling compatibility mode does not affect the current volume computation or tetrahedral quality measure settings. The final caveat to CompatibilityMode is that regardless of its setting, the resulting array will be of type vtkDoubleArray rather than the original vtkFloatArray. This is a safety measure to keep the authors from diving off of the Combinatorial Coding Cliff into Certain Insanity.

Definition at line 428 of file vtkMeshQuality.h.

References vtkObject::Modified(), and VTK_QUALITY_RADIUS_RATIO.

virtual int vtkMeshQuality::GetCompatibilityMode  )  [virtual]
 

CompatibilityMode governs whether, when both a quality measure and cell volume are to be stored as cell data, the two values are stored in a single array. When compatibility mode is off (the default), two separate arrays are used -- one labeled "Quality" and the other labeled "Volume". When compatibility mode is on, both values are stored in a single array, with volume as the first component and quality as the second component. Enabling CompatibilityMode changes the default tetrahedral quality measure to VTK_QUALITY_RADIUS_RATIO and turns volume computation on. (This matches the default behavior of the initial implementation of vtkMeshQuality.) You may change quality measure and volume computation without leaving compatibility mode. Disabling compatibility mode does not affect the current volume computation or tetrahedral quality measure settings. The final caveat to CompatibilityMode is that regardless of its setting, the resulting array will be of type vtkDoubleArray rather than the original vtkFloatArray. This is a safety measure to keep the authors from diving off of the Combinatorial Coding Cliff into Certain Insanity.

virtual void vtkMeshQuality::CompatibilityModeOn  )  [virtual]
 

CompatibilityMode governs whether, when both a quality measure and cell volume are to be stored as cell data, the two values are stored in a single array. When compatibility mode is off (the default), two separate arrays are used -- one labeled "Quality" and the other labeled "Volume". When compatibility mode is on, both values are stored in a single array, with volume as the first component and quality as the second component. Enabling CompatibilityMode changes the default tetrahedral quality measure to VTK_QUALITY_RADIUS_RATIO and turns volume computation on. (This matches the default behavior of the initial implementation of vtkMeshQuality.) You may change quality measure and volume computation without leaving compatibility mode. Disabling compatibility mode does not affect the current volume computation or tetrahedral quality measure settings. The final caveat to CompatibilityMode is that regardless of its setting, the resulting array will be of type vtkDoubleArray rather than the original vtkFloatArray. This is a safety measure to keep the authors from diving off of the Combinatorial Coding Cliff into Certain Insanity.

virtual void vtkMeshQuality::CompatibilityModeOff  )  [virtual]
 

CompatibilityMode governs whether, when both a quality measure and cell volume are to be stored as cell data, the two values are stored in a single array. When compatibility mode is off (the default), two separate arrays are used -- one labeled "Quality" and the other labeled "Volume". When compatibility mode is on, both values are stored in a single array, with volume as the first component and quality as the second component. Enabling CompatibilityMode changes the default tetrahedral quality measure to VTK_QUALITY_RADIUS_RATIO and turns volume computation on. (This matches the default behavior of the initial implementation of vtkMeshQuality.) You may change quality measure and volume computation without leaving compatibility mode. Disabling compatibility mode does not affect the current volume computation or tetrahedral quality measure settings. The final caveat to CompatibilityMode is that regardless of its setting, the resulting array will be of type vtkDoubleArray rather than the original vtkFloatArray. This is a safety measure to keep the authors from diving off of the Combinatorial Coding Cliff into Certain Insanity.

virtual int vtkMeshQuality::RequestData vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector
[protected, virtual]
 

This is called by the superclass. This is the method you should override.

Reimplemented from vtkDataSetAlgorithm.


Member Data Documentation

int vtkMeshQuality::SaveCellQuality [protected]
 

Definition at line 452 of file vtkMeshQuality.h.

int vtkMeshQuality::TriangleQualityMeasure [protected]
 

Definition at line 453 of file vtkMeshQuality.h.

int vtkMeshQuality::QuadQualityMeasure [protected]
 

Definition at line 454 of file vtkMeshQuality.h.

int vtkMeshQuality::TetQualityMeasure [protected]
 

Definition at line 455 of file vtkMeshQuality.h.

int vtkMeshQuality::HexQualityMeasure [protected]
 

Definition at line 456 of file vtkMeshQuality.h.

int vtkMeshQuality::CompatibilityMode [protected]
 

Definition at line 458 of file vtkMeshQuality.h.

int vtkMeshQuality::Volume [protected]
 

Definition at line 459 of file vtkMeshQuality.h.


The documentation for this class was generated from the following file:
Generated on Tue Jan 22 00:01:44 2008 for VTK by  doxygen 1.4.3-20050530