Go to the documentation of this file.
65 #ifndef vtkMeshQuality_h
66 #define vtkMeshQuality_h
68 #include "vtkFiltersVerdictModule.h"
74 #define VTK_QUALITY_EDGE_RATIO 0
75 #define VTK_QUALITY_ASPECT_RATIO 1
76 #define VTK_QUALITY_RADIUS_RATIO 2
77 #define VTK_QUALITY_ASPECT_FROBENIUS 3
78 #define VTK_QUALITY_MED_ASPECT_FROBENIUS 4
79 #define VTK_QUALITY_MAX_ASPECT_FROBENIUS 5
80 #define VTK_QUALITY_MIN_ANGLE 6
81 #define VTK_QUALITY_COLLAPSE_RATIO 7
82 #define VTK_QUALITY_MAX_ANGLE 8
83 #define VTK_QUALITY_CONDITION 9
84 #define VTK_QUALITY_SCALED_JACOBIAN 10
85 #define VTK_QUALITY_SHEAR 11
86 #define VTK_QUALITY_RELATIVE_SIZE_SQUARED 12
87 #define VTK_QUALITY_SHAPE 13
88 #define VTK_QUALITY_SHAPE_AND_SIZE 14
89 #define VTK_QUALITY_DISTORTION 15
90 #define VTK_QUALITY_MAX_EDGE_RATIO 16
91 #define VTK_QUALITY_SKEW 17
92 #define VTK_QUALITY_TAPER 18
93 #define VTK_QUALITY_VOLUME 19
94 #define VTK_QUALITY_STRETCH 20
95 #define VTK_QUALITY_DIAGONAL 21
96 #define VTK_QUALITY_DIMENSION 22
97 #define VTK_QUALITY_ODDY 23
98 #define VTK_QUALITY_SHEAR_AND_SIZE 24
99 #define VTK_QUALITY_JACOBIAN 25
100 #define VTK_QUALITY_WARPAGE 26
101 #define VTK_QUALITY_ASPECT_GAMMA 27
102 #define VTK_QUALITY_AREA 28
103 #define VTK_QUALITY_ASPECT_BETA 29
120 vtkGetMacro(SaveCellQuality,
int);
134 vtkGetMacro(TriangleQualityMeasure,
int);
206 vtkGetMacro(QuadQualityMeasure,
int);
313 vtkGetMacro(TetQualityMeasure,
int);
393 vtkGetMacro(HexQualityMeasure,
int);
482 static double TriangleArea(
vtkCell* cell );
494 static double TriangleEdgeRatio(
vtkCell* cell );
506 static double TriangleAspectRatio(
vtkCell* cell );
518 static double TriangleRadiusRatio(
vtkCell* cell );
532 static double TriangleAspectFrobenius(
vtkCell* cell );
541 static double TriangleMinAngle(
vtkCell* cell );
550 static double TriangleMaxAngle(
vtkCell* cell );
559 static double TriangleCondition(
vtkCell* cell );
567 static double TriangleScaledJacobian(
vtkCell* cell );
575 static double TriangleRelativeSizeSquared(
vtkCell* cell );
583 static double TriangleShape(
vtkCell* cell );
591 static double TriangleShapeAndSize(
vtkCell* cell );
599 static double TriangleDistortion(
vtkCell* cell );
611 static double QuadEdgeRatio(
vtkCell* cell );
624 static double QuadAspectRatio(
vtkCell* cell );
640 static double QuadRadiusRatio(
vtkCell* cell );
655 static double QuadMedAspectFrobenius(
vtkCell* cell );
670 static double QuadMaxAspectFrobenius(
vtkCell* cell );
679 static double QuadMinAngle(
vtkCell* cell );
681 static double QuadMaxEdgeRatios(
vtkCell* cell );
682 static double QuadSkew(
vtkCell* cell );
683 static double QuadTaper(
vtkCell* cell );
684 static double QuadWarpage(
vtkCell* cell );
685 static double QuadArea(
vtkCell* cell );
686 static double QuadStretch(
vtkCell* cell );
687 static double QuadMaxAngle(
vtkCell* cell );
688 static double QuadOddy(
vtkCell* cell );
689 static double QuadCondition(
vtkCell* cell );
690 static double QuadJacobian(
vtkCell* cell );
691 static double QuadScaledJacobian(
vtkCell* cell );
692 static double QuadShear(
vtkCell* cell );
693 static double QuadShape(
vtkCell* cell );
694 static double QuadRelativeSizeSquared(
vtkCell* cell );
695 static double QuadShapeAndSize(
vtkCell* cell );
696 static double QuadShearAndSize(
vtkCell* cell );
697 static double QuadDistortion(
vtkCell* cell );
709 static double TetEdgeRatio(
vtkCell* cell );
721 static double TetAspectRatio(
vtkCell* cell );
733 static double TetRadiusRatio(
vtkCell* cell );
748 static double TetAspectFrobenius(
vtkCell* cell );
757 static double TetMinAngle(
vtkCell* cell );
769 static double TetCollapseRatio(
vtkCell* cell );
770 static double TetAspectBeta(
vtkCell* cell );
771 static double TetAspectGamma(
vtkCell* cell );
772 static double TetVolume(
vtkCell* cell );
773 static double TetCondition(
vtkCell* cell );
774 static double TetJacobian(
vtkCell* cell );
775 static double TetScaledJacobian(
vtkCell* cell );
776 static double TetShape(
vtkCell* cell );
777 static double TetRelativeSizeSquared(
vtkCell* cell );
778 static double TetShapeandSize(
vtkCell* cell );
779 static double TetDistortion(
vtkCell* cell );
792 static double HexEdgeRatio(
vtkCell* cell );
802 static double HexMedAspectFrobenius(
vtkCell* cell );
813 static double HexMaxAspectFrobenius(
vtkCell* cell );
814 static double HexMaxEdgeRatio(
vtkCell* cell );
815 static double HexSkew(
vtkCell* cell );
816 static double HexTaper(
vtkCell* cell );
817 static double HexVolume(
vtkCell* cell );
818 static double HexStretch(
vtkCell* cell );
819 static double HexDiagonal(
vtkCell* cell );
820 static double HexDimension(
vtkCell* cell );
821 static double HexOddy(
vtkCell* cell );
822 static double HexCondition(
vtkCell* cell );
823 static double HexJacobian(
vtkCell* cell );
824 static double HexScaledJacobian(
vtkCell* cell );
825 static double HexShear(
vtkCell* cell );
826 static double HexShape(
vtkCell* cell );
827 static double HexRelativeSizeSquared(
vtkCell* cell );
828 static double HexShapeAndSize(
vtkCell* cell );
829 static double HexShearAndSize(
vtkCell* cell );
830 static double HexDistortion(
vtkCell* cell );
843 virtual void SetRatio(
int r ) { this->SetSaveCellQuality( r ); }
844 int GetRatio() {
return this->GetSaveCellQuality(); }
867 if ( ! ((cv != 0) ^ (this->Volume != 0)) )
875 this->CompatibilityModeOn();
915 if ( !((cm != 0) ^ (this->CompatibilityMode != 0)) )
919 this->CompatibilityMode = cm;
921 if ( this->CompatibilityMode )
927 vtkGetMacro(CompatibilityMode,
int);
940 static int GetCurrentTriangleNormal(
double point[3],
double normal[3] );
952 static double CurrentTriNormal[3];
959 #endif // vtkMeshQuality_h
void SetTetQualityMeasureToScaledJacobian()
void SetTriangleQualityMeasureToAspectRatio()
void SetTriangleQualityMeasureToCondition()
#define VTK_QUALITY_SHAPE
void SetTetQualityMeasureToMinAngle()
void SetTetQualityMeasureToRelativeSizeSquared()
#define VTK_QUALITY_ASPECT_RATIO
void SetQuadQualityMeasureToTaper()
#define VTK_QUALITY_SHEAR
#define VTK_QUALITY_MAX_ANGLE
int TriangleQualityMeasure
void SetQuadQualityMeasureToRelativeSizeSquared()
#define VTK_QUALITY_DIAGONAL
void SetTriangleQualityMeasureToArea()
void SetTetQualityMeasureToEdgeRatio()
virtual void SetRatio(int r)
These methods are deprecated.
#define VTK_QUALITY_CONDITION
#define VTK_QUALITY_RADIUS_RATIO
void SetTriangleQualityMeasureToRadiusRatio()
void SetQuadQualityMeasureToAspectRatio()
void SetHexQualityMeasureToScaledJacobian()
virtual void Modified()
Update the modification time for this object.
void SetHexQualityMeasureToEdgeRatio()
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
#define VTK_QUALITY_VOLUME
void SetQuadQualityMeasureToWarpage()
#define VTK_QUALITY_DISTORTION
void SetHexQualityMeasureToShearAndSize()
void SetQuadQualityMeasureToShapeAndSize()
abstract superclass for arrays of numeric data
#define VTK_QUALITY_MIN_ANGLE
Calculate functions of quality of the elements of a mesh.
void SetQuadQualityMeasureToScaledJacobian()
#define VTK_QUALITY_MED_ASPECT_FROBENIUS
void SetQuadQualityMeasureToMaxAngle()
void SetTetQualityMeasureToCondition()
void SetTetQualityMeasureToAspectBeta()
void SetQuadQualityMeasureToMedAspectFrobenius()
void SetHexQualityMeasureToShapeAndSize()
void SetTriangleQualityMeasureToEdgeRatio()
void SetTriangleQualityMeasureToDistortion()
void SetTriangleQualityMeasureToScaledJacobian()
void SetQuadQualityMeasureToMaxAspectFrobenius()
#define VTK_QUALITY_WARPAGE
void SetHexQualityMeasureToTaper()
Superclass for algorithms that produce output of the same type as input.
#define VTK_QUALITY_ASPECT_FROBENIUS
void SetHexQualityMeasureToSkew()
void SetHexQualityMeasureToMaxEdgeRatios()
void SetHexQualityMeasureToDistortion()
void SetQuadQualityMeasureToRadiusRatio()
void SetHexQualityMeasureToMaxAspectFrobenius()
void SetTetQualityMeasureToRadiusRatio()
void SetQuadQualityMeasureToShearAndSize()
void SetHexQualityMeasureToJacobian()
#define VTK_QUALITY_STRETCH
void SetHexQualityMeasureToDiagonal()
#define VTK_QUALITY_JACOBIAN
void SetQuadQualityMeasureToStretch()
void SetTetQualityMeasureToAspectFrobenius()
void SetTetQualityMeasureToShapeAndSize()
#define VTK_QUALITY_SHEAR_AND_SIZE
void SetHexQualityMeasureToVolume()
void SetQuadQualityMeasureToShear()
void SetTetQualityMeasureToJacobian()
abstract class to specify cell behavior
void SetQuadQualityMeasureToJacobian()
void SetHexQualityMeasureToShear()
void SetHexQualityMeasureToOddy()
void SetTetQualityMeasureToCollapseRatio()
a simple class to control print indentation
void SetTetQualityMeasureToVolume()
void SetTriangleQualityMeasureToMaxAngle()
void SetQuadQualityMeasureToMinAngle()
void SetQuadQualityMeasureToMaxEdgeRatios()
static vtkDataSetAlgorithm * New()
virtual void SetCompatibilityMode(int cm)
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
void SetHexQualityMeasureToStretch()
void SetTriangleQualityMeasureToShape()
void SetTriangleQualityMeasureToRelativeSizeSquared()
void SetHexQualityMeasureToCondition()
#define VTK_QUALITY_SCALED_JACOBIAN
void SetTriangleQualityMeasureToShapeAndSize()
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
void SetHexQualityMeasureToMedAspectFrobenius()
void SetTetQualityMeasureToDistortion()
void SetQuadQualityMeasureToArea()
#define VTK_QUALITY_RELATIVE_SIZE_SQUARED
vtkDataArray * CellNormals
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
#define VTK_QUALITY_SHAPE_AND_SIZE
void SetQuadQualityMeasureToEdgeRatio()
void SetTetQualityMeasureToAspectRatio()
#define VTK_QUALITY_TAPER
#define VTK_QUALITY_ASPECT_BETA
void SetQuadQualityMeasureToSkew()
void SetQuadQualityMeasureToDistortion()
void SetTetQualityMeasureToShape()
void SetHexQualityMeasureToRelativeSizeSquared()
#define VTK_QUALITY_DIMENSION
#define VTK_QUALITY_EDGE_RATIO
void SetTetQualityMeasureToAspectGamma()
void SetHexQualityMeasureToShape()
void SetQuadQualityMeasureToShape()
void SetTriangleQualityMeasureToMinAngle()
#define VTK_QUALITY_MAX_ASPECT_FROBENIUS
#define VTK_QUALITY_COLLAPSE_RATIO
#define VTK_QUALITY_MAX_EDGE_RATIO
void SetQuadQualityMeasureToCondition()
#define VTK_QUALITY_ASPECT_GAMMA
void SetHexQualityMeasureToDimension()
virtual void SetVolume(int cv)
These methods are deprecated.
void SetQuadQualityMeasureToOddy()
void SetTriangleQualityMeasureToAspectFrobenius()