64 #ifndef vtkMeshQuality_h
65 #define vtkMeshQuality_h
73 #define VTK_QUALITY_EDGE_RATIO 0
74 #define VTK_QUALITY_ASPECT_RATIO 1
75 #define VTK_QUALITY_RADIUS_RATIO 2
76 #define VTK_QUALITY_ASPECT_FROBENIUS 3
77 #define VTK_QUALITY_MED_ASPECT_FROBENIUS 4
78 #define VTK_QUALITY_MAX_ASPECT_FROBENIUS 5
79 #define VTK_QUALITY_MIN_ANGLE 6
80 #define VTK_QUALITY_COLLAPSE_RATIO 7
81 #define VTK_QUALITY_MAX_ANGLE 8
82 #define VTK_QUALITY_CONDITION 9
83 #define VTK_QUALITY_SCALED_JACOBIAN 10
84 #define VTK_QUALITY_SHEAR 11
85 #define VTK_QUALITY_RELATIVE_SIZE_SQUARED 12
86 #define VTK_QUALITY_SHAPE 13
87 #define VTK_QUALITY_SHAPE_AND_SIZE 14
88 #define VTK_QUALITY_DISTORTION 15
89 #define VTK_QUALITY_MAX_EDGE_RATIO 16
90 #define VTK_QUALITY_SKEW 17
91 #define VTK_QUALITY_TAPER 18
92 #define VTK_QUALITY_VOLUME 19
93 #define VTK_QUALITY_STRETCH 20
94 #define VTK_QUALITY_DIAGONAL 21
95 #define VTK_QUALITY_DIMENSION 22
96 #define VTK_QUALITY_ODDY 23
97 #define VTK_QUALITY_SHEAR_AND_SIZE 24
98 #define VTK_QUALITY_JACOBIAN 25
99 #define VTK_QUALITY_WARPAGE 26
100 #define VTK_QUALITY_ASPECT_GAMMA 27
101 #define VTK_QUALITY_AREA 28
102 #define VTK_QUALITY_ASPECT_BETA 29
115 vtkSetMacro(SaveCellQuality,
int);
116 vtkGetMacro(SaveCellQuality,
int);
117 vtkBooleanMacro(SaveCellQuality,
int);
129 vtkSetMacro(TriangleQualityMeasure,
int);
130 vtkGetMacro(TriangleQualityMeasure,
int);
200 vtkSetMacro(QuadQualityMeasure,
int);
201 vtkGetMacro(QuadQualityMeasure,
int);
307 vtkSetMacro(TetQualityMeasure,
int);
308 vtkGetMacro(TetQualityMeasure,
int);
386 vtkSetMacro(HexQualityMeasure,
int);
387 vtkGetMacro(HexQualityMeasure,
int);
474 static double TriangleArea(
vtkCell* cell );
483 static double TriangleEdgeRatio(
vtkCell* cell );
492 static double TriangleAspectRatio(
vtkCell* cell );
500 static double TriangleRadiusRatio(
vtkCell* cell );
511 static double TriangleAspectFrobenius(
vtkCell* cell );
518 static double TriangleMinAngle(
vtkCell* cell );
525 static double TriangleMaxAngle(
vtkCell* cell );
531 static double TriangleCondition(
vtkCell* cell );
537 static double TriangleScaledJacobian(
vtkCell* cell );
543 static double TriangleRelativeSizeSquared(
vtkCell* cell );
549 static double TriangleShape(
vtkCell* cell );
555 static double TriangleShapeAndSize(
vtkCell* cell );
561 static double TriangleDistortion(
vtkCell* cell );
570 static double QuadEdgeRatio(
vtkCell* cell );
581 static double QuadAspectRatio(
vtkCell* cell );
596 static double QuadRadiusRatio(
vtkCell* cell );
609 static double QuadMedAspectFrobenius(
vtkCell* cell );
622 static double QuadMaxAspectFrobenius(
vtkCell* cell );
629 static double QuadMinAngle(
vtkCell* cell );
631 static double QuadMaxEdgeRatios(
vtkCell* cell );
632 static double QuadSkew(
vtkCell* cell );
633 static double QuadTaper(
vtkCell* cell );
634 static double QuadWarpage(
vtkCell* cell );
635 static double QuadArea(
vtkCell* cell );
636 static double QuadStretch(
vtkCell* cell );
637 static double QuadMaxAngle(
vtkCell* cell );
638 static double QuadOddy(
vtkCell* cell );
639 static double QuadCondition(
vtkCell* cell );
640 static double QuadJacobian(
vtkCell* cell );
641 static double QuadScaledJacobian(
vtkCell* cell );
642 static double QuadShear(
vtkCell* cell );
643 static double QuadShape(
vtkCell* cell );
644 static double QuadRelativeSizeSquared(
vtkCell* cell );
645 static double QuadShapeAndSize(
vtkCell* cell );
646 static double QuadShearAndSize(
vtkCell* cell );
647 static double QuadDistortion(
vtkCell* cell );
656 static double TetEdgeRatio(
vtkCell* cell );
665 static double TetAspectRatio(
vtkCell* cell );
673 static double TetRadiusRatio(
vtkCell* cell );
685 static double TetAspectFrobenius(
vtkCell* cell );
692 static double TetMinAngle(
vtkCell* cell );
702 static double TetCollapseRatio(
vtkCell* cell );
703 static double TetAspectBeta(
vtkCell* cell );
704 static double TetAspectGamma(
vtkCell* cell );
705 static double TetVolume(
vtkCell* cell );
706 static double TetCondition(
vtkCell* cell );
707 static double TetJacobian(
vtkCell* cell );
708 static double TetScaledJacobian(
vtkCell* cell );
709 static double TetShape(
vtkCell* cell );
710 static double TetRelativeSizeSquared(
vtkCell* cell );
711 static double TetShapeandSize(
vtkCell* cell );
712 static double TetDistortion(
vtkCell* cell );
722 static double HexEdgeRatio(
vtkCell* cell );
730 static double HexMedAspectFrobenius(
vtkCell* cell );
739 static double HexMaxAspectFrobenius(
vtkCell* cell );
740 static double HexMaxEdgeRatio(
vtkCell* cell );
741 static double HexSkew(
vtkCell* cell );
742 static double HexTaper(
vtkCell* cell );
743 static double HexVolume(
vtkCell* cell );
744 static double HexStretch(
vtkCell* cell );
745 static double HexDiagonal(
vtkCell* cell );
746 static double HexDimension(
vtkCell* cell );
747 static double HexOddy(
vtkCell* cell );
748 static double HexCondition(
vtkCell* cell );
749 static double HexJacobian(
vtkCell* cell );
750 static double HexScaledJacobian(
vtkCell* cell );
751 static double HexShear(
vtkCell* cell );
752 static double HexShape(
vtkCell* cell );
753 static double HexRelativeSizeSquared(
vtkCell* cell );
754 static double HexShapeAndSize(
vtkCell* cell );
755 static double HexShearAndSize(
vtkCell* cell );
756 static double HexDistortion(
vtkCell* cell );
766 virtual void SetRatio(
int r ) { this->SetSaveCellQuality( r ); }
767 int GetRatio() {
return this->GetSaveCellQuality(); }
768 vtkBooleanMacro(Ratio,
int);
786 if ( ! ((cv != 0) ^ (this->Volume != 0)) )
794 this->CompatibilityModeOn();
801 vtkBooleanMacro(Volume,
int);
825 if ( !((cm != 0) ^ (this->CompatibilityMode != 0)) )
829 this->CompatibilityMode = cm;
831 if ( this->CompatibilityMode )
837 vtkGetMacro(CompatibilityMode,
int);
838 vtkBooleanMacro(CompatibilityMode,
int);
849 static int GetCurrentTriangleNormal(
double point[3],
double normal[3] );
861 static double CurrentTriNormal[3];
868 #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()
#define VTKFILTERSVERDICT_EXPORT
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()
abstract class to specify cell behavior
void SetQuadQualityMeasureToStretch()
void SetTriangleQualityMeasureToRadiusRatio()
void SetTriangleQualityMeasureToEdgeRatio()
void SetTetQualityMeasureToCollapseRatio()
void SetTetQualityMeasureToAspectBeta()
void SetTetQualityMeasureToAspectFrobenius()
#define VTK_QUALITY_MAX_ASPECT_FROBENIUS
void SetHexQualityMeasureToDistortion()
a simple class to control print indentation
void SetHexQualityMeasureToJacobian()
void SetTetQualityMeasureToVolume()
#define VTK_QUALITY_SHAPE_AND_SIZE
void SetHexQualityMeasureToMaxEdgeRatios()
void SetHexQualityMeasureToMaxAspectFrobenius()
void SetTriangleQualityMeasureToMinAngle()
#define VTK_QUALITY_TAPER
void SetTetQualityMeasureToRadiusRatio()
void SetQuadQualityMeasureToShapeAndSize()
abstract superclass for arrays of numeric data
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 of a mesh.
#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()