67 #ifndef __vtkMeshQuality_h
68 #define __vtkMeshQuality_h
75 #define VTK_QUALITY_EDGE_RATIO 0
76 #define VTK_QUALITY_ASPECT_RATIO 1
77 #define VTK_QUALITY_RADIUS_RATIO 2
78 #define VTK_QUALITY_ASPECT_FROBENIUS 3
79 #define VTK_QUALITY_MED_ASPECT_FROBENIUS 4
80 #define VTK_QUALITY_MAX_ASPECT_FROBENIUS 5
81 #define VTK_QUALITY_MIN_ANGLE 6
82 #define VTK_QUALITY_COLLAPSE_RATIO 7
83 #define VTK_QUALITY_MAX_ANGLE 8
84 #define VTK_QUALITY_CONDITION 9
85 #define VTK_QUALITY_SCALED_JACOBIAN 10
86 #define VTK_QUALITY_SHEAR 11
87 #define VTK_QUALITY_RELATIVE_SIZE_SQUARED 12
88 #define VTK_QUALITY_SHAPE 13
89 #define VTK_QUALITY_SHAPE_AND_SIZE 14
90 #define VTK_QUALITY_DISTORTION 15
91 #define VTK_QUALITY_MAX_EDGE_RATIO 16
92 #define VTK_QUALITY_SKEW 17
93 #define VTK_QUALITY_TAPER 18
94 #define VTK_QUALITY_VOLUME 19
95 #define VTK_QUALITY_STRETCH 20
96 #define VTK_QUALITY_DIAGONAL 21
97 #define VTK_QUALITY_DIMENSION 22
98 #define VTK_QUALITY_ODDY 23
99 #define VTK_QUALITY_SHEAR_AND_SIZE 24
100 #define VTK_QUALITY_JACOBIAN 25
101 #define VTK_QUALITY_WARPAGE 26
102 #define VTK_QUALITY_ASPECT_GAMMA 27
103 #define VTK_QUALITY_AREA 28
104 #define VTK_QUALITY_ASPECT_BETA 29
117 vtkSetMacro(SaveCellQuality,
int);
118 vtkGetMacro(SaveCellQuality,
int);
119 vtkBooleanMacro(SaveCellQuality,
int);
131 vtkSetMacro(TriangleQualityMeasure,
int);
132 vtkGetMacro(TriangleQualityMeasure,
int);
202 vtkSetMacro(QuadQualityMeasure,
int);
203 vtkGetMacro(QuadQualityMeasure,
int);
309 vtkSetMacro(TetQualityMeasure,
int);
310 vtkGetMacro(TetQualityMeasure,
int);
388 vtkSetMacro(HexQualityMeasure,
int);
389 vtkGetMacro(HexQualityMeasure,
int);
476 static double TriangleArea(
vtkCell* cell );
485 static double TriangleEdgeRatio(
vtkCell* cell );
494 static double TriangleAspectRatio(
vtkCell* cell );
502 static double TriangleRadiusRatio(
vtkCell* cell );
513 static double TriangleAspectFrobenius(
vtkCell* cell );
520 static double TriangleMinAngle(
vtkCell* cell );
527 static double TriangleMaxAngle(
vtkCell* cell );
533 static double TriangleCondition(
vtkCell* cell );
539 static double TriangleScaledJacobian(
vtkCell* cell );
545 static double TriangleRelativeSizeSquared(
vtkCell* cell );
551 static double TriangleShape(
vtkCell* cell );
557 static double TriangleShapeAndSize(
vtkCell* cell );
563 static double TriangleDistortion(
vtkCell* cell );
572 static double QuadEdgeRatio(
vtkCell* cell );
583 static double QuadAspectRatio(
vtkCell* cell );
598 static double QuadRadiusRatio(
vtkCell* cell );
611 static double QuadMedAspectFrobenius(
vtkCell* cell );
624 static double QuadMaxAspectFrobenius(
vtkCell* cell );
631 static double QuadMinAngle(
vtkCell* cell );
633 static double QuadMaxEdgeRatios(
vtkCell* cell );
634 static double QuadSkew(
vtkCell* cell );
635 static double QuadTaper(
vtkCell* cell );
636 static double QuadWarpage(
vtkCell* cell );
637 static double QuadArea(
vtkCell* cell );
638 static double QuadStretch(
vtkCell* cell );
639 static double QuadMaxAngle(
vtkCell* cell );
640 static double QuadOddy(
vtkCell* cell );
641 static double QuadCondition(
vtkCell* cell );
642 static double QuadJacobian(
vtkCell* cell );
643 static double QuadScaledJacobian(
vtkCell* cell );
644 static double QuadShear(
vtkCell* cell );
645 static double QuadShape(
vtkCell* cell );
646 static double QuadRelativeSizeSquared(
vtkCell* cell );
647 static double QuadShapeAndSize(
vtkCell* cell );
648 static double QuadShearAndSize(
vtkCell* cell );
649 static double QuadDistortion(
vtkCell* cell );
658 static double TetEdgeRatio(
vtkCell* cell );
667 static double TetAspectRatio(
vtkCell* cell );
675 static double TetRadiusRatio(
vtkCell* cell );
687 static double TetAspectFrobenius(
vtkCell* cell );
694 static double TetMinAngle(
vtkCell* cell );
704 static double TetCollapseRatio(
vtkCell* cell );
705 static double TetAspectBeta(
vtkCell* cell );
706 static double TetAspectGamma(
vtkCell* cell );
707 static double TetVolume(
vtkCell* cell );
708 static double TetCondition(
vtkCell* cell );
709 static double TetJacobian(
vtkCell* cell );
710 static double TetScaledJacobian(
vtkCell* cell );
711 static double TetShape(
vtkCell* cell );
712 static double TetRelativeSizeSquared(
vtkCell* cell );
713 static double TetShapeandSize(
vtkCell* cell );
714 static double TetDistortion(
vtkCell* cell );
724 static double HexEdgeRatio(
vtkCell* cell );
732 static double HexMedAspectFrobenius(
vtkCell* cell );
741 static double HexMaxAspectFrobenius(
vtkCell* cell );
742 static double HexMaxEdgeRatio(
vtkCell* cell );
743 static double HexSkew(
vtkCell* cell );
744 static double HexTaper(
vtkCell* cell );
745 static double HexVolume(
vtkCell* cell );
746 static double HexStretch(
vtkCell* cell );
747 static double HexDiagonal(
vtkCell* cell );
748 static double HexDimension(
vtkCell* cell );
749 static double HexOddy(
vtkCell* cell );
750 static double HexCondition(
vtkCell* cell );
751 static double HexJacobian(
vtkCell* cell );
752 static double HexScaledJacobian(
vtkCell* cell );
753 static double HexShear(
vtkCell* cell );
754 static double HexShape(
vtkCell* cell );
755 static double HexRelativeSizeSquared(
vtkCell* cell );
756 static double HexShapeAndSize(
vtkCell* cell );
757 static double HexShearAndSize(
vtkCell* cell );
758 static double HexDistortion(
vtkCell* cell );
768 virtual void SetRatio(
int r ) { this->SetSaveCellQuality( r ); }
769 int GetRatio() {
return this->GetSaveCellQuality(); }
770 vtkBooleanMacro(Ratio,
int);
788 if ( ! ((cv != 0) ^ (this->Volume != 0)) )
796 this->CompatibilityModeOn();
803 vtkBooleanMacro(Volume,
int);
827 if ( !((cm != 0) ^ (this->CompatibilityMode != 0)) )
831 this->CompatibilityMode = cm;
833 if ( this->CompatibilityMode )
839 vtkGetMacro(CompatibilityMode,
int);
840 vtkBooleanMacro(CompatibilityMode,
int);
851 static int GetCurrentTriangleNormal(
double point[3],
double normal[3] );
863 static double CurrentTriNormal[3];
870 #endif // vtkMeshQuality_h