67 #ifndef __vtkMeshQuality_h
68 #define __vtkMeshQuality_h
70 #include "vtkFiltersVerdictModule.h"
76 #define VTK_QUALITY_EDGE_RATIO 0
77 #define VTK_QUALITY_ASPECT_RATIO 1
78 #define VTK_QUALITY_RADIUS_RATIO 2
79 #define VTK_QUALITY_ASPECT_FROBENIUS 3
80 #define VTK_QUALITY_MED_ASPECT_FROBENIUS 4
81 #define VTK_QUALITY_MAX_ASPECT_FROBENIUS 5
82 #define VTK_QUALITY_MIN_ANGLE 6
83 #define VTK_QUALITY_COLLAPSE_RATIO 7
84 #define VTK_QUALITY_MAX_ANGLE 8
85 #define VTK_QUALITY_CONDITION 9
86 #define VTK_QUALITY_SCALED_JACOBIAN 10
87 #define VTK_QUALITY_SHEAR 11
88 #define VTK_QUALITY_RELATIVE_SIZE_SQUARED 12
89 #define VTK_QUALITY_SHAPE 13
90 #define VTK_QUALITY_SHAPE_AND_SIZE 14
91 #define VTK_QUALITY_DISTORTION 15
92 #define VTK_QUALITY_MAX_EDGE_RATIO 16
93 #define VTK_QUALITY_SKEW 17
94 #define VTK_QUALITY_TAPER 18
95 #define VTK_QUALITY_VOLUME 19
96 #define VTK_QUALITY_STRETCH 20
97 #define VTK_QUALITY_DIAGONAL 21
98 #define VTK_QUALITY_DIMENSION 22
99 #define VTK_QUALITY_ODDY 23
100 #define VTK_QUALITY_SHEAR_AND_SIZE 24
101 #define VTK_QUALITY_JACOBIAN 25
102 #define VTK_QUALITY_WARPAGE 26
103 #define VTK_QUALITY_ASPECT_GAMMA 27
104 #define VTK_QUALITY_AREA 28
105 #define VTK_QUALITY_ASPECT_BETA 29
110 void PrintSelf(ostream& os, vtkIndent indent);
118 vtkSetMacro(SaveCellQuality,
int);
119 vtkGetMacro(SaveCellQuality,
int);
120 vtkBooleanMacro(SaveCellQuality,
int);
132 vtkSetMacro(TriangleQualityMeasure,
int);
133 vtkGetMacro(TriangleQualityMeasure,
int);
203 vtkSetMacro(QuadQualityMeasure,
int);
204 vtkGetMacro(QuadQualityMeasure,
int);
310 vtkSetMacro(TetQualityMeasure,
int);
311 vtkGetMacro(TetQualityMeasure,
int);
389 vtkSetMacro(HexQualityMeasure,
int);
390 vtkGetMacro(HexQualityMeasure,
int);
477 static double TriangleArea( vtkCell* cell );
486 static double TriangleEdgeRatio( vtkCell* cell );
495 static double TriangleAspectRatio( vtkCell* cell );
503 static double TriangleRadiusRatio( vtkCell* cell );
514 static double TriangleAspectFrobenius( vtkCell* cell );
521 static double TriangleMinAngle( vtkCell* cell );
528 static double TriangleMaxAngle( vtkCell* cell );
534 static double TriangleCondition( vtkCell* cell );
540 static double TriangleScaledJacobian( vtkCell* cell );
546 static double TriangleRelativeSizeSquared( vtkCell* cell );
552 static double TriangleShape( vtkCell* cell );
558 static double TriangleShapeAndSize( vtkCell* cell );
564 static double TriangleDistortion( vtkCell* cell );
573 static double QuadEdgeRatio( vtkCell* cell );
584 static double QuadAspectRatio( vtkCell* cell );
599 static double QuadRadiusRatio( vtkCell* cell );
612 static double QuadMedAspectFrobenius( vtkCell* cell );
625 static double QuadMaxAspectFrobenius( vtkCell* cell );
632 static double QuadMinAngle( vtkCell* cell );
634 static double QuadMaxEdgeRatios( vtkCell* cell );
635 static double QuadSkew( vtkCell* cell );
636 static double QuadTaper( vtkCell* cell );
637 static double QuadWarpage( vtkCell* cell );
638 static double QuadArea( vtkCell* cell );
639 static double QuadStretch( vtkCell* cell );
640 static double QuadMaxAngle( vtkCell* cell );
641 static double QuadOddy( vtkCell* cell );
642 static double QuadCondition( vtkCell* cell );
643 static double QuadJacobian( vtkCell* cell );
644 static double QuadScaledJacobian( vtkCell* cell );
645 static double QuadShear( vtkCell* cell );
646 static double QuadShape( vtkCell* cell );
647 static double QuadRelativeSizeSquared( vtkCell* cell );
648 static double QuadShapeAndSize( vtkCell* cell );
649 static double QuadShearAndSize( vtkCell* cell );
650 static double QuadDistortion( vtkCell* cell );
659 static double TetEdgeRatio( vtkCell* cell );
668 static double TetAspectRatio( vtkCell* cell );
676 static double TetRadiusRatio( vtkCell* cell );
688 static double TetAspectFrobenius( vtkCell* cell );
695 static double TetMinAngle( vtkCell* cell );
705 static double TetCollapseRatio( vtkCell* cell );
706 static double TetAspectBeta( vtkCell* cell );
707 static double TetAspectGamma( vtkCell* cell );
708 static double TetVolume( vtkCell* cell );
709 static double TetCondition( vtkCell* cell );
710 static double TetJacobian( vtkCell* cell );
711 static double TetScaledJacobian( vtkCell* cell );
712 static double TetShape( vtkCell* cell );
713 static double TetRelativeSizeSquared( vtkCell* cell );
714 static double TetShapeandSize( vtkCell* cell );
715 static double TetDistortion( vtkCell* cell );
725 static double HexEdgeRatio( vtkCell* cell );
733 static double HexMedAspectFrobenius( vtkCell* cell );
742 static double HexMaxAspectFrobenius( vtkCell* cell );
743 static double HexMaxEdgeRatio( vtkCell* cell );
744 static double HexSkew( vtkCell* cell );
745 static double HexTaper( vtkCell* cell );
746 static double HexVolume( vtkCell* cell );
747 static double HexStretch( vtkCell* cell );
748 static double HexDiagonal( vtkCell* cell );
749 static double HexDimension( vtkCell* cell );
750 static double HexOddy( vtkCell* cell );
751 static double HexCondition( vtkCell* cell );
752 static double HexJacobian( vtkCell* cell );
753 static double HexScaledJacobian( vtkCell* cell );
754 static double HexShear( vtkCell* cell );
755 static double HexShape( vtkCell* cell );
756 static double HexRelativeSizeSquared( vtkCell* cell );
757 static double HexShapeAndSize( vtkCell* cell );
758 static double HexShearAndSize( vtkCell* cell );
759 static double HexDistortion( vtkCell* cell );
769 virtual void SetRatio(
int r ) { this->SetSaveCellQuality( r ); }
770 int GetRatio() {
return this->GetSaveCellQuality(); }
771 vtkBooleanMacro(Ratio,
int);
789 if ( ! ((cv != 0) ^ (this->Volume != 0)) )
797 this->CompatibilityModeOn();
804 vtkBooleanMacro(Volume,
int);
828 if ( !((cm != 0) ^ (this->CompatibilityMode != 0)) )
832 this->CompatibilityMode = cm;
834 if ( this->CompatibilityMode )
840 vtkGetMacro(CompatibilityMode,
int);
841 vtkBooleanMacro(CompatibilityMode,
int);
848 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
852 static int GetCurrentTriangleNormal(
double point[3],
double normal[3] );
864 static double CurrentTriNormal[3];
871 #endif // vtkMeshQuality_h
#define VTK_QUALITY_SHEAR
void SetQuadQualityMeasureToEdgeRatio()
void SetQuadQualityMeasureToWarpage()
void SetQuadQualityMeasureToRelativeSizeSquared()
#define VTK_QUALITY_DIMENSION
void SetHexQualityMeasureToMedAspectFrobenius()
void SetTetQualityMeasureToMinAngle()
void SetHexQualityMeasureToRelativeSizeSquared()
void SetQuadQualityMeasureToRadiusRatio()
void SetTriangleQualityMeasureToAspectFrobenius()
void SetTriangleQualityMeasureToArea()
void SetTriangleQualityMeasureToAspectRatio()
#define VTK_QUALITY_STRETCH
#define VTK_QUALITY_ASPECT_RATIO
void SetHexQualityMeasureToScaledJacobian()
void SetTetQualityMeasureToScaledJacobian()
void SetTetQualityMeasureToEdgeRatio()
void SetHexQualityMeasureToVolume()
void SetQuadQualityMeasureToOddy()
void SetHexQualityMeasureToShapeAndSize()
#define VTK_QUALITY_ASPECT_BETA
void SetQuadQualityMeasureToMaxAngle()
void SetHexQualityMeasureToEdgeRatio()
#define VTK_QUALITY_JACOBIAN
virtual void SetRatio(int r)
void SetTetQualityMeasureToRelativeSizeSquared()
#define VTK_QUALITY_EDGE_RATIO
void SetTetQualityMeasureToCondition()
#define VTK_QUALITY_SHEAR_AND_SIZE
void SetTetQualityMeasureToShapeAndSize()
void SetTriangleQualityMeasureToDistortion()
void SetTriangleQualityMeasureToCondition()
void SetQuadQualityMeasureToMinAngle()
void SetQuadQualityMeasureToMedAspectFrobenius()
void SetQuadQualityMeasureToShearAndSize()
#define VTK_QUALITY_RADIUS_RATIO
void SetQuadQualityMeasureToMaxEdgeRatios()
virtual void SetVolume(int cv)
void SetHexQualityMeasureToSkew()
void SetQuadQualityMeasureToMaxAspectFrobenius()
void SetTriangleQualityMeasureToShape()
void SetQuadQualityMeasureToAspectRatio()
void SetTriangleQualityMeasureToScaledJacobian()
virtual void SetCompatibilityMode(int cm)
#define VTK_QUALITY_VOLUME
#define VTK_QUALITY_RELATIVE_SIZE_SQUARED
#define VTK_QUALITY_MIN_ANGLE
void SetTetQualityMeasureToJacobian()
void SetTetQualityMeasureToDistortion()
#define VTK_QUALITY_DIAGONAL
void SetQuadQualityMeasureToScaledJacobian()
void SetQuadQualityMeasureToJacobian()
#define VTK_QUALITY_WARPAGE
void SetHexQualityMeasureToDiagonal()
void SetQuadQualityMeasureToStretch()
void SetTriangleQualityMeasureToRadiusRatio()
void SetTriangleQualityMeasureToEdgeRatio()
void SetTetQualityMeasureToCollapseRatio()
void SetTetQualityMeasureToAspectBeta()
void SetTetQualityMeasureToAspectFrobenius()
#define VTK_QUALITY_MAX_ASPECT_FROBENIUS
void SetHexQualityMeasureToDistortion()
void SetHexQualityMeasureToJacobian()
void SetTetQualityMeasureToVolume()
#define VTK_QUALITY_SHAPE_AND_SIZE
void SetHexQualityMeasureToMaxEdgeRatios()
void SetHexQualityMeasureToMaxAspectFrobenius()
void SetTriangleQualityMeasureToMinAngle()
#define VTK_QUALITY_TAPER
void SetTetQualityMeasureToRadiusRatio()
void SetQuadQualityMeasureToShapeAndSize()
void SetQuadQualityMeasureToShear()
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void SetTriangleQualityMeasureToRelativeSizeSquared()
#define VTK_QUALITY_MAX_ANGLE
#define VTK_QUALITY_COLLAPSE_RATIO
void SetQuadQualityMeasureToArea()
void SetHexQualityMeasureToStretch()
void SetTriangleQualityMeasureToShapeAndSize()
#define VTK_QUALITY_MED_ASPECT_FROBENIUS
void SetHexQualityMeasureToShearAndSize()
void SetHexQualityMeasureToTaper()
void SetHexQualityMeasureToShear()
void SetHexQualityMeasureToShape()
void SetQuadQualityMeasureToDistortion()
void SetHexQualityMeasureToOddy()
void SetQuadQualityMeasureToSkew()
void SetTetQualityMeasureToAspectRatio()
#define VTK_QUALITY_ASPECT_GAMMA
void SetQuadQualityMeasureToShape()
#define VTK_QUALITY_CONDITION
void SetTriangleQualityMeasureToMaxAngle()
#define VTK_QUALITY_DISTORTION
vtkDataArray * CellNormals
void SetTetQualityMeasureToAspectGamma()
Calculate functions of quality of the elements.
#define VTK_QUALITY_SHAPE
void PrintSelf(ostream &os, vtkIndent indent)
Superclass for algorithms that produce output of the same type as input.
void SetHexQualityMeasureToDimension()
int TriangleQualityMeasure
#define VTK_QUALITY_MAX_EDGE_RATIO
void SetQuadQualityMeasureToTaper()
void SetTetQualityMeasureToShape()
static vtkDataSetAlgorithm * New()
#define VTK_QUALITY_ASPECT_FROBENIUS
#define VTK_QUALITY_SCALED_JACOBIAN
void SetQuadQualityMeasureToCondition()
void SetHexQualityMeasureToCondition()