VTK  9.2.6
vtkMeshQuality.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMeshQuality.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14 Copyright 2003-2008 Sandia Corporation.
15 Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
16 license for use of this work by or on behalf of the
17 U.S. Government. Redistribution and use in source and binary forms, with
18 or without modification, are permitted provided that this Notice and any
19 statement of authorship are reproduced on all copies.
20
21 Contact: dcthomp@sandia.gov,pppebay@sandia.gov
22
23=========================================================================*/
70
71#ifndef vtkMeshQuality_h
72#define vtkMeshQuality_h
73
74#include "vtkDataSetAlgorithm.h"
75#include "vtkDeprecation.h" // For deprecation
76#include "vtkFiltersVerdictModule.h" // For export macro
77
78class vtkCell;
79class vtkDataArray;
80class vtkDoubleArray;
81class vtkMeshQualityFunctor;
82
83class VTKFILTERSVERDICT_EXPORT vtkMeshQuality : public vtkDataSetAlgorithm
84{
85private:
87
88public:
89 void PrintSelf(ostream& os, vtkIndent indent) override;
92
94
102 vtkBooleanMacro(SaveCellQuality, vtkTypeBool);
104
106
113 vtkSetMacro(LinearApproximation, bool);
114 vtkGetMacro(LinearApproximation, bool);
115 vtkBooleanMacro(LinearApproximation, bool);
117
163
167 static const char* QualityMeasureNames[];
168
170
178 virtual void SetTriangleQualityMeasure(int measure)
179 {
180 this->SetTriangleQualityMeasure(static_cast<QualityMeasureTypes>(measure));
181 }
243
244
246
259 virtual void SetQuadQualityMeasure(int measure)
260 {
261 this->SetQuadQualityMeasure(static_cast<QualityMeasureTypes>(measure));
262 }
342
343
345
353 virtual void SetTetQualityMeasure(int measure)
354 {
355 this->SetTetQualityMeasure(static_cast<QualityMeasureTypes>(measure));
356 }
432
433
435
441 virtual void SetPyramidQualityMeasure(int measure)
442 {
443 this->SetPyramidQualityMeasure(static_cast<QualityMeasureTypes>(measure));
444 }
466
467
469
476 virtual void SetWedgeQualityMeasure(int measure)
477 {
478 this->SetWedgeQualityMeasure(static_cast<QualityMeasureTypes>(measure));
479 }
522
523
525
534 virtual void SetHexQualityMeasure(int measure)
535 {
536 this->SetHexQualityMeasure(static_cast<QualityMeasureTypes>(measure));
537 }
606
607
611 static double TriangleArea(vtkCell* cell);
612
620 static double TriangleEdgeRatio(vtkCell* cell);
621
629 static double TriangleAspectRatio(vtkCell* cell);
630
638 static double TriangleRadiusRatio(vtkCell* cell);
639
649 static double TriangleAspectFrobenius(vtkCell* cell);
650
654 static double TriangleMinAngle(vtkCell* cell);
655
659 static double TriangleMaxAngle(vtkCell* cell);
660
664 static double TriangleCondition(vtkCell* cell);
665
669 static double TriangleScaledJacobian(vtkCell* cell);
670
678
682 static double TriangleShape(vtkCell* cell);
683
690 static double TriangleShapeAndSize(vtkCell* cell);
691
695 static double TriangleDistortion(vtkCell* cell);
696
700 static double TriangleEquiangleSkew(vtkCell* cell);
701
708
716 static double QuadEdgeRatio(vtkCell* cell);
717
725 static double QuadAspectRatio(vtkCell* cell);
726
737 static double QuadRadiusRatio(vtkCell* cell);
738
748 static double QuadMedAspectFrobenius(vtkCell* cell);
749
759 static double QuadMaxAspectFrobenius(vtkCell* cell);
760
764 static double QuadMinAngle(vtkCell* cell);
765
769 static double QuadMaxEdgeRatio(vtkCell* cell);
770
776 static double QuadSkew(vtkCell* cell);
777
782 static double QuadTaper(vtkCell* cell);
783
789 static double QuadWarpage(vtkCell* cell);
790
795 static double QuadArea(vtkCell* cell);
796
801 static double QuadStretch(vtkCell* cell);
802
806 static double QuadMaxAngle(vtkCell* cell);
807
813 static double QuadOddy(vtkCell* cell);
814
820 static double QuadCondition(vtkCell* cell);
821
827 static double QuadJacobian(vtkCell* cell);
828
834 static double QuadScaledJacobian(vtkCell* cell);
835
840 static double QuadShear(vtkCell* cell);
841
846 static double QuadShape(vtkCell* cell);
847
856 static double QuadRelativeSizeSquared(vtkCell* cell);
857
865 static double QuadShapeAndSize(vtkCell* cell);
866
874 static double QuadShearAndSize(vtkCell* cell);
875
881 static double QuadDistortion(vtkCell* cell);
882
886 static double QuadEquiangleSkew(vtkCell* cell);
887
895 static double TetEdgeRatio(vtkCell* cell);
896
904 static double TetAspectRatio(vtkCell* cell);
905
913 static double TetRadiusRatio(vtkCell* cell);
914
925 static double TetAspectFrobenius(vtkCell* cell);
926
930 static double TetMinAngle(vtkCell* cell);
931
938 static double TetCollapseRatio(vtkCell* cell);
939
945 static double TetAspectGamma(vtkCell* cell);
946
951 static double TetVolume(vtkCell* cell);
952
957 static double TetCondition(vtkCell* cell);
958
963 static double TetJacobian(vtkCell* cell);
964
970 static double TetScaledJacobian(vtkCell* cell);
971
976 static double TetShape(vtkCell* cell);
977
986 static double TetRelativeSizeSquared(vtkCell* cell);
987
995 static double TetShapeAndSize(vtkCell* cell);
996
1002 static double TetDistortion(vtkCell* cell);
1003
1007 static double TetEquiangleSkew(vtkCell* cell);
1008
1012 static double TetEquivolumeSkew(vtkCell* cell);
1013
1019 static double TetMeanRatio(vtkCell* cell);
1020
1026 static double TetNormalizedInradius(vtkCell* cell);
1027
1031 static double TetSquishIndex(vtkCell* cell);
1032
1036 static double PyramidEquiangleSkew(vtkCell* cell);
1037
1042 static double PyramidJacobian(vtkCell* cell);
1043
1048 static double PyramidScaledJacobian(vtkCell* cell);
1049
1055 static double PyramidShape(vtkCell* cell);
1056
1060 static double PyramidVolume(vtkCell* cell);
1061
1066 static double WedgeCondition(vtkCell* cell);
1067
1072 static double WedgeDistortion(vtkCell* cell);
1073
1079 static double WedgeEdgeRatio(vtkCell* cell);
1080
1084 static double WedgeEquiangleSkew(vtkCell* cell);
1085
1090 static double WedgeJacobian(vtkCell* cell);
1091
1096 static double WedgeMaxAspectFrobenius(vtkCell* cell);
1097
1103 static double WedgeMaxStretch(vtkCell* cell);
1104
1110 static double WedgeMeanAspectFrobenius(vtkCell* cell);
1111
1121 static double WedgeScaledJacobian(vtkCell* cell);
1122
1128 static double WedgeShape(vtkCell* cell);
1129
1133 static double WedgeVolume(vtkCell* cell);
1134
1142 static double HexEdgeRatio(vtkCell* cell);
1143
1148 static double HexMedAspectFrobenius(vtkCell* cell);
1149
1154 static double HexMaxAspectFrobenius(vtkCell* cell);
1155
1159 static double HexMaxEdgeRatio(vtkCell* cell);
1160
1166 static double HexSkew(vtkCell* cell);
1167
1172 static double HexTaper(vtkCell* cell);
1173
1178 static double HexVolume(vtkCell* cell);
1179
1184 static double HexStretch(vtkCell* cell);
1185
1190 static double HexDiagonal(vtkCell* cell);
1191
1197 static double HexDimension(vtkCell* cell);
1198
1204 static double HexOddy(vtkCell* cell);
1205
1210 static double HexCondition(vtkCell* cell);
1211
1217 static double HexJacobian(vtkCell* cell);
1218
1224 static double HexScaledJacobian(vtkCell* cell);
1225
1230 static double HexShear(vtkCell* cell);
1231
1236 static double HexShape(vtkCell* cell);
1237
1246 static double HexRelativeSizeSquared(vtkCell* cell);
1247
1255 static double HexShapeAndSize(vtkCell* cell);
1256
1264 static double HexShearAndSize(vtkCell* cell);
1265
1271 static double HexDistortion(vtkCell* cell);
1272
1276 static double HexEquiangleSkew(vtkCell* cell);
1277
1282 static double HexNodalJacobianRatio(vtkCell* cell);
1283
1294 virtual void SetRatio(vtkTypeBool r) { this->SetSaveCellQuality(r); }
1296 vtkBooleanMacro(Ratio, vtkTypeBool);
1297
1299
1316 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1317 virtual void SetVolume(vtkTypeBool cv)
1318 {
1319 if (!((cv != 0) ^ (this->Volume != 0)))
1320 {
1321 return;
1322 }
1323 this->Modified();
1324 this->Volume = cv;
1325 if (this->Volume)
1326 {
1327 this->CompatibilityMode = 1;
1328 }
1329 }
1330 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1331 vtkTypeBool GetVolume() { return this->Volume; }
1332 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1334 {
1335 if (!this->Volume)
1336 {
1337 this->Volume = 1;
1338 this->Modified();
1339 }
1340 }
1341 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1343 {
1344 if (this->Volume)
1345 {
1346 this->Volume = 0;
1347 this->Modified();
1348 }
1349 }
1350
1351
1353
1380 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1382 {
1383 if (!((cm != 0) ^ (this->CompatibilityMode != 0)))
1384 {
1385 return;
1386 }
1387 this->CompatibilityMode = cm;
1388 this->Modified();
1389 if (this->CompatibilityMode)
1390 {
1391 this->Volume = 1;
1393 }
1394 }
1395 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1397 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1399 {
1400 if (!this->CompatibilityMode)
1401 {
1402 this->CompatibilityMode = 1;
1403 this->Modified();
1404 }
1405 }
1406 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1408 {
1409 if (this->CompatibilityMode)
1410 {
1411 this->CompatibilityMode = 0;
1412 this->Modified();
1413 }
1414 }
1415
1416
1417protected:
1419 ~vtkMeshQuality() override = default;
1420
1422
1431
1432 using CellQualityType = double (*)(vtkCell*);
1439
1440 // VTK_DEPRECATED_IN_9_2_0 Those 2 attributes need to be removed, and instance in the code as
1441 // well.
1444
1445 // Variables used to store the average size (2D: area / 3D: volume)
1446 static double TriangleAverageSize;
1447 static double QuadAverageSize;
1448 static double TetAverageSize;
1449 static double PyramidAverageSize;
1450 static double WedgeAverageSize;
1451 static double HexAverageSize;
1452
1453private:
1454 vtkMeshQuality(const vtkMeshQuality&) = delete;
1455 void operator=(const vtkMeshQuality&) = delete;
1456};
1457
1458#endif // vtkMeshQuality_h
abstract class to specify cell behavior
Definition vtkCell.h:58
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
void SetQuadQualityMeasureToSkew()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
virtual void SetWedgeQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of wedges.
static double QuadWarpage(vtkCell *cell)
Calculate the warpage of a quadrilateral.
void SetHexQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToEquivolumeSkew()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadTaper(vtkCell *cell)
Calculate the taper of a quadrilateral.
virtual void SetTetQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetWedgeQualityMeasureToMeanAspectFrobenius()
Set/Get the particular estimator used to measure the quality of wedges.
void SetTriangleQualityMeasureToArea()
Set/Get the particular estimator used to function the quality of triangles.
vtkGetEnumMacro(HexQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetWedgeQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of wedges.
static double TetNormalizedInradius(vtkCell *cell)
Calculate the normalized in-radius of a tetrahedron.
static double HexOddy(vtkCell *cell)
Calculate the oddy of a hexahedron.
void SetWedgeQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of wedges.
virtual void SetTriangleQualityMeasure(int measure)
Set/Get the particular estimator used to function the quality of triangles.
static double WedgeScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian a wedge.
static double TetAspectGamma(vtkCell *cell)
Calculate the aspect gamma of a tetrahedron.
void SetPyramidQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of pyramids.
static double WedgeMaxStretch(vtkCell *cell)
Calculate the max stretch of a wedge.
void SetPyramidQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetTetQualityMeasureToMinAngle()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexShear(vtkCell *cell)
Calculate the shear of a hexahedron.
static double HexScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a hexahedron.
virtual void SetPyramidQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of pyramids.
void SetTriangleQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to function the quality of triangles.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
void SetQuadQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToDiagonal()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetHexQualityMeasureToMedAspectFrobenius()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of tetrahedra.
virtual void SetRatio(vtkTypeBool r)
These methods are deprecated.
void SetWedgeQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of wedges.
static double QuadAverageSize
static double QuadJacobian(vtkCell *cell)
Calculate the Jacobian of a quadrilateral.
void SetTriangleQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to function the quality of triangles.
static double PyramidJacobian(vtkCell *cell)
Calculate the Jacobian of a pyramid.
QualityMeasureTypes TriangleQualityMeasure
QualityMeasureTypes
Enum which lists the Quality Measures Types.
void VolumeOff()
These methods are deprecated.
void SetQuadQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleNormalizedInradius(vtkCell *cell)
Calculate the normalized in-radius of a triangle.
static double WedgeShape(vtkCell *cell)
Calculate the shape of a wedge.
static double WedgeEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a wedge.
static double TriangleEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a triangle.
void SetHexQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double WedgeMeanAspectFrobenius(vtkCell *cell)
Calculate the mean aspect Frobenius of a wedge.
static double PyramidVolume(vtkCell *cell)
Calculate the volume of a pyramid.
static double QuadOddy(vtkCell *cell)
Calculate the oddy of a quadrilateral.
static double QuadAspectRatio(vtkCell *cell)
Calculate the aspect ratio of a planar quadrilateral.
static double TriangleAspectFrobenius(vtkCell *cell)
Calculate the Frobenius condition number of the transformation matrix from an equilateral triangle to...
vtkSetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to function the quality of triangles.
static double TetMeanRatio(vtkCell *cell)
Calculate the mean ratio of a tetrahedron.
static double QuadEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a quadrilateral.
static double QuadScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a quadrilateral.
vtkSetEnumMacro(WedgeQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of wedges.
static double HexMaxEdgeRatio(vtkCell *cell)
Calculate the maximum edge ratio of a hexahedron at its center.
void SetHexQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexShapeAndSize(vtkCell *cell)
Calculate the shape and size of a hexahedron.
static double QuadShear(vtkCell *cell)
Calculate the shear of a quadrilateral.
void SetHexQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of hexahedra.
vtkGetEnumMacro(WedgeQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of wedges.
void SetQuadQualityMeasureToAspectRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleShapeAndSize(vtkCell *cell)
Calculate the product of shape and relative size of a triangle.
vtkTypeBool GetRatio()
static double HexTaper(vtkCell *cell)
Calculate the taper of a hexahedron.
static vtkMeshQuality * New()
void SetTriangleQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to function the quality of triangles.
CellQualityType GetTriangleQualityMeasureFunction()
virtual void SetQuadQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToSquishIndex()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TetJacobian(vtkCell *cell)
Calculate the Jacobian of a tetrahedron.
static double HexDistortion(vtkCell *cell)
Calculate the distortion of a hexahedron.
static double TetCollapseRatio(vtkCell *cell)
Calculate the collapse ratio of a tetrahedron.
static double TriangleDistortion(vtkCell *cell)
Calculate the distortion of a triangle.
static double HexVolume(vtkCell *cell)
Calculate the volume of a hexahedron.
void SetQuadQualityMeasureToMaxEdgeRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToShear()
Set/Get the particular estimator used to measure the quality of hexahedra.
vtkGetEnumMacro(QuadQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double QuadArea(vtkCell *cell)
Calculate the area of a quadrilateral.
void SetTriangleQualityMeasureToAspectRatio()
Set/Get the particular estimator used to function the quality of triangles.
void SetHexQualityMeasureToStretch()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TetEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a tetrahedron.
void SetQuadQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToNormalizedInradius()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double HexRelativeSizeSquared(vtkCell *cell)
Calculate the relative size squared of a hexahedron.
void SetTetQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of tetrahedra.
vtkSetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of pyramids.
void SetQuadQualityMeasureToShear()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double PyramidShape(vtkCell *cell)
Calculate the shape of a pyramid.
QualityMeasureTypes QuadQualityMeasure
CellQualityType GetTetQualityMeasureFunction()
static double HexShape(vtkCell *cell)
Calculate the shape of a hexahedron.
void SetHexQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TetAverageSize
static double TriangleScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a triangle.
void SetHexQualityMeasureToDimension()
Set/Get the particular estimator used to measure the quality of hexahedra.
virtual vtkTypeBool GetSaveCellQuality()
This variable controls whether or not cell quality is stored as cell data in the resulting mesh or di...
static double TetRelativeSizeSquared(vtkCell *cell)
Calculate the relative size squared of a tetrahedron.
void SetTriangleQualityMeasureToNormalizedInradius()
Set/Get the particular estimator used to function the quality of triangles.
static double TriangleEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a triangle.
QualityMeasureTypes TetQualityMeasure
static double TriangleShape(vtkCell *cell)
Calculate the shape of a triangle.
void SetTetQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadMedAspectFrobenius(vtkCell *cell)
Calculate the average Frobenius aspect of the 4 corner triangles of a planar quadrilateral,...
static double TriangleCondition(vtkCell *cell)
Calculate the condition number of a triangle.
static double WedgeDistortion(vtkCell *cell)
Calculate the distortion of a wedge.
static double HexEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a hexahedron.
void SetQuadQualityMeasureToTaper()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetWedgeQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of wedges.
CellQualityType GetWedgeQualityMeasureFunction()
static double TetMinAngle(vtkCell *cell)
Calculate the minimal (nonoriented) dihedral angle of a tetrahedron, expressed in degrees.
void SetTetQualityMeasureToAspectRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTriangleQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to function the quality of triangles.
static double WedgeEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a wedge.
void SetHexQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double QuadCondition(vtkCell *cell)
Calculate the condition number of a quadrilateral.
void SetPyramidQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetQuadQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToShapeAndSize()
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 SetQuadQualityMeasureToShearAndSize()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double HexAverageSize
vtkGetEnumMacro(TetQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToMaxEdgeRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TriangleAspectRatio(vtkCell *cell)
Calculate the aspect ratio of a triangle.
static double TetSquishIndex(vtkCell *cell)
Calculate the squish index of a tetrahedron.
static double HexJacobian(vtkCell *cell)
Calculate the Jacobian of a hexahedron.
void SetQuadQualityMeasureToMedAspectFrobenius()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
vtkGetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of pyramids.
static double PyramidEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a pyramid.
static double TetDistortion(vtkCell *cell)
Calculate the distortion of a tetrahedron.
static double QuadShapeAndSize(vtkCell *cell)
Calculate the shape and size of a quadrilateral.
void SetWedgeQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of wedges.
static double TriangleMaxAngle(vtkCell *cell)
Calculate the maximal (nonoriented) angle of a triangle, expressed in degrees.
void SetTriangleQualityMeasureToCondition()
Set/Get the particular estimator used to function the quality of triangles.
static double TetCondition(vtkCell *cell)
Calculate the condition number of a tetrahedron.
void SetWedgeQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of wedges.
void SetTetQualityMeasureToMeanRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TriangleRadiusRatio(vtkCell *cell)
Calculate the radius ratio of a triangle.
void SetWedgeQualityMeasureToMaxStretch()
Set/Get the particular estimator used to measure the quality of wedges.
static double TetScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a tetrahedron.
static double QuadEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a quadrilateral.
~vtkMeshQuality() override=default
void SetTetQualityMeasureToAspectFrobenius()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadShearAndSize(vtkCell *cell)
Calculate the shear and size of a quadrilateral.
static double HexDimension(vtkCell *cell)
Calculate the dimension of a hexahedron.
friend class vtkMeshQualityFunctor
void SetHexQualityMeasureToTaper()
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.
void SetQuadQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double HexStretch(vtkCell *cell)
Calculate the stretch of a hexahedron.
QualityMeasureTypes HexQualityMeasure
static double QuadMaxAngle(vtkCell *cell)
Calculate the maximum (nonoriented) angle of a quadrilateral, expressed in degrees.
void SetHexQualityMeasureToNodalJacobianRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double QuadStretch(vtkCell *cell)
Calculate the stretch of a quadrilateral.
void SetWedgeQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of wedges.
void SetTriangleQualityMeasureToAspectFrobenius()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
virtual void SetCompatibilityMode(vtkTypeBool cm)
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
void SetHexQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of hexahedra.
double(*)(vtkCell *) CellQualityType
static double HexEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a hexahedron.
void SetTetQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of tetrahedra.
CellQualityType GetQuadQualityMeasureFunction()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetHexQualityMeasureToShearAndSize()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double QuadMaxAspectFrobenius(vtkCell *cell)
Calculate the maximal Frobenius aspect of the 4 corner triangles of a planar quadrilateral,...
vtkTypeBool GetVolume()
These methods are deprecated.
vtkTypeBool SaveCellQuality
void SetHexQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TetAspectFrobenius(vtkCell *cell)
Calculate the Frobenius condition number of the transformation matrix from a regular tetrahedron to a...
static double HexMaxAspectFrobenius(vtkCell *cell)
Calculate the maximal Frobenius aspect of the 8 corner tetrahedra of a hexahedron,...
void SetQuadQualityMeasureToArea()
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.
static double TriangleAverageSize
static double HexShearAndSize(vtkCell *cell)
Calculate the shear and size of a hexahedron.
static double HexSkew(vtkCell *cell)
Calculate the skew of a hexahedron.
void SetTetQualityMeasureToCollapseRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
vtkTypeBool Volume
static double TetEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a tetrahedron.
void SetTriangleQualityMeasureToMaxAngle()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToMaxAngle()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static const char * QualityMeasureNames[]
Array which lists the Quality Measures Names.
void VolumeOn()
These methods are deprecated.
vtkTypeBool CompatibilityMode
void SetTetQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadShape(vtkCell *cell)
Calculate the shear of a quadrilateral.
vtkSetEnumMacro(TetQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTetQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToOddy()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexMedAspectFrobenius(vtkCell *cell)
Calculate the average Frobenius aspect of the 8 corner tetrahedra of a hexahedron,...
void SetTetQualityMeasureToShapeAndSize()
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.
static double TriangleRelativeSizeSquared(vtkCell *cell)
Calculate the square of the relative size of a triangle.
static double QuadRadiusRatio(vtkCell *cell)
Calculate the radius ratio of a planar quadrilateral.
static double QuadRelativeSizeSquared(vtkCell *cell)
Calculate the relative size squared of a quadrilateral.
virtual void SetSaveCellQuality(vtkTypeBool)
This variable controls whether or not cell quality is stored as cell data in the resulting mesh or di...
static double TetEquivolumeSkew(vtkCell *cell)
Calculate the equivolume skew of a tetrahedron.
static double TetVolume(vtkCell *cell)
Calculate the volume of a tetrahedron.
static double QuadSkew(vtkCell *cell)
Calculate the skew of a quadrilateral.
static double PyramidScaledJacobian(vtkCell *cell)
Calculate the Jacobian of a pyramid.
static double PyramidAverageSize
void SetWedgeQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of wedges.
static double QuadDistortion(vtkCell *cell)
Calculate the distortion of a quadrilateral.
void SetPyramidQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetTetQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToOddy()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double WedgeJacobian(vtkCell *cell)
Calculate the Jacobian of a wedge.
QualityMeasureTypes PyramidQualityMeasure
static double QuadMaxEdgeRatio(vtkCell *cell)
Calculate the maximum edge length ratio of a quadrilateral at quad center.
void SetHexQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
CellQualityType GetPyramidQualityMeasureFunction()
static double WedgeCondition(vtkCell *cell)
Calculate the condition number of a wedge.
void SetTetQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToMinAngle()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double WedgeVolume(vtkCell *cell)
Calculate the volume of a wedge.
vtkSetEnumMacro(QuadQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleMinAngle(vtkCell *cell)
Calculate the minimal (nonoriented) angle of a triangle, expressed in degrees.
vtkSetEnumMacro(HexQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexDiagonal(vtkCell *cell)
Calculate the diagonal of a hexahedron.
void SetTriangleQualityMeasureToShape()
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.
static double TriangleArea(vtkCell *cell)
Calculate the area of a triangle.
CellQualityType GetHexQualityMeasureFunction()
void CompatibilityModeOff()
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
static double TetShapeAndSize(vtkCell *cell)
Calculate the shape and size of a tetrahedron.
void CompatibilityModeOn()
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
vtkGetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to function the quality of triangles.
void SetTetQualityMeasureToAspectGamma()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadMinAngle(vtkCell *cell)
Calculate the minimal (nonoriented) angle of a quadrilateral, expressed in degrees.
void SetQuadQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
virtual void SetHexQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTriangleQualityMeasureToDistortion()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToMinAngle()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToStretch()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TetRadiusRatio(vtkCell *cell)
Calculate the radius ratio of a tetrahedron.
static double HexNodalJacobianRatio(vtkCell *cell)
Calculate the nodal Jacobian ratio of a hexahedron.
static double WedgeAverageSize
virtual void SetVolume(vtkTypeBool cv)
These methods are deprecated.
static double TetAspectRatio(vtkCell *cell)
Calculate the aspect ratio of a tetrahedron.
void SetWedgeQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of wedges.
QualityMeasureTypes WedgeQualityMeasure
static double WedgeMaxAspectFrobenius(vtkCell *cell)
Calculate the max aspect Frobenius of a wedge.
static double TetShape(vtkCell *cell)
Calculate the shape of a tetrahedron.
void SetPyramidQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetQuadQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double HexCondition(vtkCell *cell)
Calculate the condition of a hexahedron.
virtual void Modified()
Update the modification time for this object.
int vtkTypeBool
Definition vtkABI.h:69
#define vtkDataArray
#define VTK_DEPRECATED_IN_9_2_0(reason)