62 #ifndef vtkMeshQuality_h 63 #define vtkMeshQuality_h 66 #include "vtkFiltersVerdictModule.h" 71 #define VTK_QUALITY_EDGE_RATIO 0 72 #define VTK_QUALITY_ASPECT_RATIO 1 73 #define VTK_QUALITY_RADIUS_RATIO 2 74 #define VTK_QUALITY_ASPECT_FROBENIUS 3 75 #define VTK_QUALITY_MED_ASPECT_FROBENIUS 4 76 #define VTK_QUALITY_MAX_ASPECT_FROBENIUS 5 77 #define VTK_QUALITY_MIN_ANGLE 6 78 #define VTK_QUALITY_COLLAPSE_RATIO 7 79 #define VTK_QUALITY_MAX_ANGLE 8 80 #define VTK_QUALITY_CONDITION 9 81 #define VTK_QUALITY_SCALED_JACOBIAN 10 82 #define VTK_QUALITY_SHEAR 11 83 #define VTK_QUALITY_RELATIVE_SIZE_SQUARED 12 84 #define VTK_QUALITY_SHAPE 13 85 #define VTK_QUALITY_SHAPE_AND_SIZE 14 86 #define VTK_QUALITY_DISTORTION 15 87 #define VTK_QUALITY_MAX_EDGE_RATIO 16 88 #define VTK_QUALITY_SKEW 17 89 #define VTK_QUALITY_TAPER 18 90 #define VTK_QUALITY_VOLUME 19 91 #define VTK_QUALITY_STRETCH 20 92 #define VTK_QUALITY_DIAGONAL 21 93 #define VTK_QUALITY_DIMENSION 22 94 #define VTK_QUALITY_ODDY 23 95 #define VTK_QUALITY_SHEAR_AND_SIZE 24 96 #define VTK_QUALITY_JACOBIAN 25 97 #define VTK_QUALITY_WARPAGE 26 98 #define VTK_QUALITY_ASPECT_GAMMA 27 99 #define VTK_QUALITY_AREA 28 100 #define VTK_QUALITY_ASPECT_BETA 29 130 vtkSetMacro(TriangleQualityMeasure,
int);
131 vtkGetMacro(TriangleQualityMeasure,
int);
196 vtkSetMacro(QuadQualityMeasure,
int);
197 vtkGetMacro(QuadQualityMeasure,
int);
261 vtkSetMacro(TetQualityMeasure,
int);
262 vtkGetMacro(TetQualityMeasure,
int);
308 vtkSetMacro(HexQualityMeasure,
int);
309 vtkGetMacro(HexQualityMeasure,
int);
359 static double TriangleArea(
vtkCell* cell);
371 static double TriangleEdgeRatio(
vtkCell* cell);
383 static double TriangleAspectRatio(
vtkCell* cell);
395 static double TriangleRadiusRatio(
vtkCell* cell);
409 static double TriangleAspectFrobenius(
vtkCell* cell);
418 static double TriangleMinAngle(
vtkCell* cell);
427 static double TriangleMaxAngle(
vtkCell* cell);
436 static double TriangleCondition(
vtkCell* cell);
444 static double TriangleScaledJacobian(
vtkCell* cell);
452 static double TriangleRelativeSizeSquared(
vtkCell* cell);
460 static double TriangleShape(
vtkCell* cell);
467 static double TriangleShapeAndSize(
vtkCell* cell);
475 static double TriangleDistortion(
vtkCell* cell);
487 static double QuadEdgeRatio(
vtkCell* cell);
500 static double QuadAspectRatio(
vtkCell* cell);
516 static double QuadRadiusRatio(
vtkCell* cell);
531 static double QuadMedAspectFrobenius(
vtkCell* cell);
546 static double QuadMaxAspectFrobenius(
vtkCell* cell);
555 static double QuadMinAngle(
vtkCell* cell);
557 static double QuadMaxEdgeRatios(
vtkCell* cell);
558 static double QuadSkew(
vtkCell* cell);
559 static double QuadTaper(
vtkCell* cell);
560 static double QuadWarpage(
vtkCell* cell);
561 static double QuadArea(
vtkCell* cell);
562 static double QuadStretch(
vtkCell* cell);
563 static double QuadMaxAngle(
vtkCell* cell);
564 static double QuadOddy(
vtkCell* cell);
565 static double QuadCondition(
vtkCell* cell);
566 static double QuadJacobian(
vtkCell* cell);
567 static double QuadScaledJacobian(
vtkCell* cell);
568 static double QuadShear(
vtkCell* cell);
569 static double QuadShape(
vtkCell* cell);
570 static double QuadRelativeSizeSquared(
vtkCell* cell);
571 static double QuadShapeAndSize(
vtkCell* cell);
572 static double QuadShearAndSize(
vtkCell* cell);
573 static double QuadDistortion(
vtkCell* cell);
585 static double TetEdgeRatio(
vtkCell* cell);
597 static double TetAspectRatio(
vtkCell* cell);
609 static double TetRadiusRatio(
vtkCell* cell);
624 static double TetAspectFrobenius(
vtkCell* cell);
633 static double TetMinAngle(
vtkCell* cell);
645 static double TetCollapseRatio(
vtkCell* cell);
646 static double TetAspectBeta(
vtkCell* cell);
647 static double TetAspectGamma(
vtkCell* cell);
648 static double TetVolume(
vtkCell* cell);
649 static double TetCondition(
vtkCell* cell);
650 static double TetJacobian(
vtkCell* cell);
651 static double TetScaledJacobian(
vtkCell* cell);
652 static double TetShape(
vtkCell* cell);
653 static double TetRelativeSizeSquared(
vtkCell* cell);
654 static double TetShapeandSize(
vtkCell* cell);
655 static double TetDistortion(
vtkCell* cell);
668 static double HexEdgeRatio(
vtkCell* cell);
678 static double HexMedAspectFrobenius(
vtkCell* cell);
689 static double HexMaxAspectFrobenius(
vtkCell* cell);
690 static double HexMaxEdgeRatio(
vtkCell* cell);
691 static double HexSkew(
vtkCell* cell);
692 static double HexTaper(
vtkCell* cell);
693 static double HexVolume(
vtkCell* cell);
694 static double HexStretch(
vtkCell* cell);
695 static double HexDiagonal(
vtkCell* cell);
696 static double HexDimension(
vtkCell* cell);
697 static double HexOddy(
vtkCell* cell);
698 static double HexCondition(
vtkCell* cell);
699 static double HexJacobian(
vtkCell* cell);
700 static double HexScaledJacobian(
vtkCell* cell);
701 static double HexShear(
vtkCell* cell);
702 static double HexShape(
vtkCell* cell);
703 static double HexRelativeSizeSquared(
vtkCell* cell);
704 static double HexShapeAndSize(
vtkCell* cell);
705 static double HexShearAndSize(
vtkCell* cell);
706 static double HexDistortion(
vtkCell* cell);
743 if (!((cv != 0) ^ (this->Volume != 0)))
751 this->CompatibilityModeOn();
788 if (!((cm != 0) ^ (this->CompatibilityMode != 0)))
792 this->CompatibilityMode = cm;
794 if (this->CompatibilityMode)
813 static int GetCurrentTriangleNormal(
double point[3],
double normal[3]);
825 static double CurrentTriNormal[3];
832 #endif // vtkMeshQuality_h #define VTK_QUALITY_SHEAR
void SetQuadQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToWarpage()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
#define VTK_QUALITY_DIMENSION
void SetHexQualityMeasureToMedAspectFrobenius()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToMinAngle()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTriangleQualityMeasureToAspectFrobenius()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToArea()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToAspectRatio()
Set/Get the particular estimator used to function the quality of triangles.
#define VTK_QUALITY_STRETCH
#define VTK_QUALITY_ASPECT_RATIO
void SetHexQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTetQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToOddy()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of hexahedra.
#define VTK_QUALITY_ASPECT_BETA
virtual void SetVolume(vtkTypeBool cv)
These methods are deprecated.
void SetQuadQualityMeasureToMaxAngle()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
#define VTK_QUALITY_JACOBIAN
void SetTetQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of tetrahedra.
#define VTK_QUALITY_EDGE_RATIO
void SetTetQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of tetrahedra.
#define VTK_QUALITY_SHEAR_AND_SIZE
void SetTetQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTriangleQualityMeasureToDistortion()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToCondition()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToMinAngle()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToMedAspectFrobenius()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToShearAndSize()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
#define VTK_QUALITY_RADIUS_RATIO
void SetQuadQualityMeasureToMaxEdgeRatios()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToSkew()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTriangleQualityMeasureToShape()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToAspectRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTriangleQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to function the quality of triangles.
#define VTK_QUALITY_VOLUME
#define VTK_QUALITY_RELATIVE_SIZE_SQUARED
#define VTK_QUALITY_MIN_ANGLE
void SetTetQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTetQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of tetrahedra.
#define VTK_QUALITY_DIAGONAL
void SetQuadQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
#define VTK_QUALITY_WARPAGE
vtkTypeBool SaveCellQuality
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetHexQualityMeasureToDiagonal()
Set/Get the particular estimator used to measure the quality of hexahedra.
abstract class to specify cell behavior
void SetQuadQualityMeasureToStretch()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTriangleQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to function the quality of triangles.
void SetTetQualityMeasureToCollapseRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTetQualityMeasureToAspectBeta()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTetQualityMeasureToAspectFrobenius()
Set/Get the particular estimator used to measure the quality of tetrahedra.
#define VTK_QUALITY_MAX_ASPECT_FROBENIUS
void SetHexQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of hexahedra.
a simple class to control print indentation
void SetHexQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of tetrahedra.
vtkTypeBool GetVolume()
These methods are deprecated.
#define VTK_QUALITY_SHAPE_AND_SIZE
void SetHexQualityMeasureToMaxEdgeRatios()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetHexQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTriangleQualityMeasureToMinAngle()
Set/Get the particular estimator used to function the quality of triangles.
#define VTK_QUALITY_TAPER
void SetTetQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
abstract superclass for arrays of numeric data
void SetQuadQualityMeasureToShear()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called within ProcessRequest when a request asks the algorithm to do its work.
void SetTriangleQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to function the quality of triangles.
#define VTK_QUALITY_MAX_ANGLE
virtual void Modified()
Update the modification time for this object.
#define VTK_QUALITY_COLLAPSE_RATIO
void SetQuadQualityMeasureToArea()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToStretch()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTriangleQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to function the quality of triangles.
#define VTK_QUALITY_MED_ASPECT_FROBENIUS
void SetHexQualityMeasureToShearAndSize()
Set/Get the particular estimator used to measure the quality of hexahedra.
virtual void SetRatio(vtkTypeBool r)
These methods are deprecated.
void SetHexQualityMeasureToTaper()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetHexQualityMeasureToShear()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetHexQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of hexahedra.
virtual void SetCompatibilityMode(vtkTypeBool cm)
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
void SetQuadQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToOddy()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToSkew()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToAspectRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
#define VTK_QUALITY_ASPECT_GAMMA
void SetQuadQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
#define VTK_QUALITY_CONDITION
void SetTriangleQualityMeasureToMaxAngle()
Set/Get the particular estimator used to function the quality of triangles.
#define VTK_QUALITY_DISTORTION
vtkDataArray * CellNormals
void SetTetQualityMeasureToAspectGamma()
Set/Get the particular estimator used to measure the quality of tetrahedra.
Calculate functions of quality of the elements of a mesh.
#define VTK_QUALITY_SHAPE
Superclass for algorithms that produce output of the same type as input.
void SetHexQualityMeasureToDimension()
Set/Get the particular estimator used to measure the quality of hexahedra.
int TriangleQualityMeasure
vtkTypeBool CompatibilityMode
#define VTK_QUALITY_MAX_EDGE_RATIO
void SetQuadQualityMeasureToTaper()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static vtkDataSetAlgorithm * New()
#define VTK_QUALITY_ASPECT_FROBENIUS
#define VTK_QUALITY_SCALED_JACOBIAN
void SetQuadQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of hexahedra.