VTK  9.3.0
vtkMeshQuality.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2003-2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
54 #ifndef vtkMeshQuality_h
55 #define vtkMeshQuality_h
56 
57 #include "vtkDataSetAlgorithm.h"
58 #include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_2_0
59 #include "vtkFiltersVerdictModule.h" // For export macro
60 
61 VTK_ABI_NAMESPACE_BEGIN
62 class vtkCell;
63 class vtkDataArray;
64 class vtkDoubleArray;
65 class vtkMeshQualityFunctor;
66 
67 class VTKFILTERSVERDICT_EXPORT vtkMeshQuality : public vtkDataSetAlgorithm
68 {
69 private:
70  friend class vtkMeshQualityFunctor;
71 
72 public:
73  void PrintSelf(ostream& os, vtkIndent indent) override;
75  static vtkMeshQuality* New();
76 
78 
84  vtkSetMacro(SaveCellQuality, vtkTypeBool);
85  vtkGetMacro(SaveCellQuality, vtkTypeBool);
86  vtkBooleanMacro(SaveCellQuality, vtkTypeBool);
88 
90 
97  vtkSetMacro(LinearApproximation, bool);
98  vtkGetMacro(LinearApproximation, bool);
99  vtkBooleanMacro(LinearApproximation, bool);
101 
106  {
107  AREA = 28,
108  ASPECT_FROBENIUS = 3,
109  ASPECT_GAMMA = 27,
110  ASPECT_RATIO = 1,
111  COLLAPSE_RATIO = 7,
112  CONDITION = 9,
113  DIAGONAL = 21,
114  DIMENSION = 22,
115  DISTORTION = 15,
116  EDGE_RATIO = 0,
117  EQUIANGLE_SKEW = 29,
118  EQUIVOLUME_SKEW = 30,
119  JACOBIAN = 25,
120  MAX_ANGLE = 8,
121  MAX_ASPECT_FROBENIUS = 5,
122  MAX_EDGE_RATIO = 16,
123  MAX_STRETCH = 31,
124  MEAN_ASPECT_FROBENIUS = 32,
125  MEAN_RATIO = 33,
126  MED_ASPECT_FROBENIUS = 4,
127  MIN_ANGLE = 6,
128  NODAL_JACOBIAN_RATIO = 34,
129  NORMALIZED_INRADIUS = 35,
130  ODDY = 23,
131  RADIUS_RATIO = 2,
132  RELATIVE_SIZE_SQUARED = 12,
133  SCALED_JACOBIAN = 10,
134  SHAPE = 13,
135  SHAPE_AND_SIZE = 14,
136  SHEAR = 11,
137  SHEAR_AND_SIZE = 24,
138  SKEW = 17,
139  SQUISH_INDEX = 36,
140  STRETCH = 20,
141  TAPER = 18,
142  VOLUME = 19,
143  WARPAGE = 26,
144  TOTAL_QUALITY_MEASURE_TYPES = 37,
145  NONE = TOTAL_QUALITY_MEASURE_TYPES
146  };
147 
151  static const char* QualityMeasureNames[];
152 
154 
161  vtkSetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes);
162  virtual void SetTriangleQualityMeasure(int measure)
163  {
164  this->SetTriangleQualityMeasure(static_cast<QualityMeasureTypes>(measure));
165  }
166  vtkGetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes);
168  {
169  this->SetTriangleQualityMeasure(QualityMeasureTypes::AREA);
170  }
172  {
173  this->SetTriangleQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
174  }
176  {
177  this->SetTriangleQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
178  }
180  {
181  this->SetTriangleQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
182  }
184  {
185  this->SetTriangleQualityMeasure(QualityMeasureTypes::ASPECT_FROBENIUS);
186  }
188  {
189  this->SetTriangleQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
190  }
192  {
193  this->SetTriangleQualityMeasure(QualityMeasureTypes::MAX_ANGLE);
194  }
196  {
197  this->SetTriangleQualityMeasure(QualityMeasureTypes::CONDITION);
198  }
200  {
201  this->SetTriangleQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
202  }
204  {
205  this->SetTriangleQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
206  }
208  {
209  this->SetTriangleQualityMeasure(QualityMeasureTypes::SHAPE);
210  }
212  {
213  this->SetTriangleQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
214  }
216  {
217  this->SetTriangleQualityMeasure(QualityMeasureTypes::DISTORTION);
218  }
220  {
221  this->SetTriangleQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
222  }
224  {
225  this->SetTriangleQualityMeasure(QualityMeasureTypes::NORMALIZED_INRADIUS);
226  }
228 
230 
242  vtkSetEnumMacro(QuadQualityMeasure, QualityMeasureTypes);
243  virtual void SetQuadQualityMeasure(int measure)
244  {
245  this->SetQuadQualityMeasure(static_cast<QualityMeasureTypes>(measure));
246  }
247  vtkGetEnumMacro(QuadQualityMeasure, QualityMeasureTypes);
249  {
250  this->SetQuadQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
251  }
253  {
254  this->SetQuadQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
255  }
257  {
258  this->SetQuadQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
259  }
261  {
262  this->SetQuadQualityMeasure(QualityMeasureTypes::MED_ASPECT_FROBENIUS);
263  }
265  {
266  this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
267  }
269  {
270  this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_EDGE_RATIO);
271  }
272  void SetQuadQualityMeasureToSkew() { this->SetQuadQualityMeasure(QualityMeasureTypes::SKEW); }
273  void SetQuadQualityMeasureToTaper() { this->SetQuadQualityMeasure(QualityMeasureTypes::TAPER); }
275  {
276  this->SetQuadQualityMeasure(QualityMeasureTypes::WARPAGE);
277  }
278  void SetQuadQualityMeasureToArea() { this->SetQuadQualityMeasure(QualityMeasureTypes::AREA); }
280  {
281  this->SetQuadQualityMeasure(QualityMeasureTypes::STRETCH);
282  }
284  {
285  this->SetQuadQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
286  }
288  {
289  this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_ANGLE);
290  }
291  void SetQuadQualityMeasureToOddy() { this->SetQuadQualityMeasure(QualityMeasureTypes::ODDY); }
293  {
294  this->SetQuadQualityMeasure(QualityMeasureTypes::CONDITION);
295  }
297  {
298  this->SetQuadQualityMeasure(QualityMeasureTypes::JACOBIAN);
299  }
301  {
302  this->SetQuadQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
303  }
304  void SetQuadQualityMeasureToShear() { this->SetQuadQualityMeasure(QualityMeasureTypes::SHEAR); }
305  void SetQuadQualityMeasureToShape() { this->SetQuadQualityMeasure(QualityMeasureTypes::SHAPE); }
307  {
308  this->SetQuadQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
309  }
311  {
312  this->SetQuadQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
313  }
315  {
316  this->SetQuadQualityMeasure(QualityMeasureTypes::SHEAR_AND_SIZE);
317  }
319  {
320  this->SetQuadQualityMeasure(QualityMeasureTypes::DISTORTION);
321  }
323  {
324  this->SetQuadQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
325  }
327 
329 
337  virtual void SetTetQualityMeasure(int measure)
338  {
339  this->SetTetQualityMeasure(static_cast<QualityMeasureTypes>(measure));
340  }
343  {
344  this->SetTetQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
345  }
347  {
348  this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
349  }
351  {
352  this->SetTetQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
353  }
355  {
356  this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_FROBENIUS);
357  }
359  {
360  this->SetTetQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
361  }
363  {
364  this->SetTetQualityMeasure(QualityMeasureTypes::COLLAPSE_RATIO);
365  }
367  {
368  this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_GAMMA);
369  }
370  void SetTetQualityMeasureToVolume() { this->SetTetQualityMeasure(QualityMeasureTypes::VOLUME); }
372  {
373  this->SetTetQualityMeasure(QualityMeasureTypes::CONDITION);
374  }
376  {
377  this->SetTetQualityMeasure(QualityMeasureTypes::JACOBIAN);
378  }
380  {
381  this->SetTetQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
382  }
383  void SetTetQualityMeasureToShape() { this->SetTetQualityMeasure(QualityMeasureTypes::SHAPE); }
385  {
386  this->SetTetQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
387  }
389  {
390  this->SetTetQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
391  }
393  {
394  this->SetTetQualityMeasure(QualityMeasureTypes::DISTORTION);
395  }
397  {
398  this->SetTetQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
399  }
401  {
402  this->SetTetQualityMeasure(QualityMeasureTypes::EQUIVOLUME_SKEW);
403  }
405  {
406  this->SetTetQualityMeasure(QualityMeasureTypes::MEAN_RATIO);
407  }
409  {
410  this->SetTetQualityMeasure(QualityMeasureTypes::NORMALIZED_INRADIUS);
411  }
413  {
414  this->SetTetQualityMeasure(QualityMeasureTypes::SQUISH_INDEX);
415  }
417 
419 
424  vtkSetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes);
425  virtual void SetPyramidQualityMeasure(int measure)
426  {
427  this->SetPyramidQualityMeasure(static_cast<QualityMeasureTypes>(measure));
428  }
429  vtkGetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes);
431  {
432  this->SetPyramidQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
433  }
435  {
436  this->SetPyramidQualityMeasure(QualityMeasureTypes::JACOBIAN);
437  }
439  {
440  this->SetPyramidQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
441  }
443  {
444  this->SetPyramidQualityMeasure(QualityMeasureTypes::SHAPE);
445  }
447  {
448  this->SetPyramidQualityMeasure(QualityMeasureTypes::VOLUME);
449  }
451 
453 
459  vtkSetEnumMacro(WedgeQualityMeasure, QualityMeasureTypes);
460  virtual void SetWedgeQualityMeasure(int measure)
461  {
462  this->SetWedgeQualityMeasure(static_cast<QualityMeasureTypes>(measure));
463  }
464  vtkGetEnumMacro(WedgeQualityMeasure, QualityMeasureTypes);
466  {
467  this->SetWedgeQualityMeasure(QualityMeasureTypes::CONDITION);
468  }
470  {
471  this->SetWedgeQualityMeasure(QualityMeasureTypes::DISTORTION);
472  }
474  {
475  this->SetWedgeQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
476  }
478  {
479  this->SetWedgeQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
480  }
482  {
483  this->SetWedgeQualityMeasure(QualityMeasureTypes::JACOBIAN);
484  }
486  {
487  this->SetWedgeQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
488  }
490  {
491  this->SetWedgeQualityMeasure(QualityMeasureTypes::MAX_STRETCH);
492  }
494  {
495  this->SetWedgeQualityMeasure(QualityMeasureTypes::MEAN_ASPECT_FROBENIUS);
496  }
498  {
499  this->SetWedgeQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
500  }
501  void SetWedgeQualityMeasureToShape() { this->SetWedgeQualityMeasure(QualityMeasureTypes::SHAPE); }
503  {
504  this->SetWedgeQualityMeasure(QualityMeasureTypes::VOLUME);
505  }
507 
509 
518  virtual void SetHexQualityMeasure(int measure)
519  {
520  this->SetHexQualityMeasure(static_cast<QualityMeasureTypes>(measure));
521  }
524  {
525  this->SetHexQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
526  }
528  {
529  this->SetHexQualityMeasure(QualityMeasureTypes::MED_ASPECT_FROBENIUS);
530  }
532  {
533  this->SetHexQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
534  }
536  {
537  this->SetHexQualityMeasure(QualityMeasureTypes::MAX_EDGE_RATIO);
538  }
539  void SetHexQualityMeasureToSkew() { this->SetHexQualityMeasure(QualityMeasureTypes::SKEW); }
540  void SetHexQualityMeasureToTaper() { this->SetHexQualityMeasure(QualityMeasureTypes::TAPER); }
541  void SetHexQualityMeasureToVolume() { this->SetHexQualityMeasure(QualityMeasureTypes::VOLUME); }
542  void SetHexQualityMeasureToStretch() { this->SetHexQualityMeasure(QualityMeasureTypes::STRETCH); }
544  {
545  this->SetHexQualityMeasure(QualityMeasureTypes::DIAGONAL);
546  }
548  {
549  this->SetHexQualityMeasure(QualityMeasureTypes::DIMENSION);
550  }
551  void SetHexQualityMeasureToOddy() { this->SetHexQualityMeasure(QualityMeasureTypes::ODDY); }
553  {
554  this->SetHexQualityMeasure(QualityMeasureTypes::CONDITION);
555  }
557  {
558  this->SetHexQualityMeasure(QualityMeasureTypes::JACOBIAN);
559  }
561  {
562  this->SetHexQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
563  }
564  void SetHexQualityMeasureToShear() { this->SetHexQualityMeasure(QualityMeasureTypes::SHEAR); }
565  void SetHexQualityMeasureToShape() { this->SetHexQualityMeasure(QualityMeasureTypes::SHAPE); }
567  {
568  this->SetHexQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
569  }
571  {
572  this->SetHexQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
573  }
575  {
576  this->SetHexQualityMeasure(QualityMeasureTypes::SHEAR_AND_SIZE);
577  }
579  {
580  this->SetHexQualityMeasure(QualityMeasureTypes::DISTORTION);
581  }
583  {
584  this->SetHexQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
585  }
587  {
588  this->SetHexQualityMeasure(QualityMeasureTypes::NODAL_JACOBIAN_RATIO);
589  }
591 
595  static double TriangleArea(vtkCell* cell);
596 
604  static double TriangleEdgeRatio(vtkCell* cell);
605 
613  static double TriangleAspectRatio(vtkCell* cell);
614 
622  static double TriangleRadiusRatio(vtkCell* cell);
623 
633  static double TriangleAspectFrobenius(vtkCell* cell);
634 
638  static double TriangleMinAngle(vtkCell* cell);
639 
643  static double TriangleMaxAngle(vtkCell* cell);
644 
648  static double TriangleCondition(vtkCell* cell);
649 
653  static double TriangleScaledJacobian(vtkCell* cell);
654 
661  static double TriangleRelativeSizeSquared(vtkCell* cell);
662 
666  static double TriangleShape(vtkCell* cell);
667 
674  static double TriangleShapeAndSize(vtkCell* cell);
675 
679  static double TriangleDistortion(vtkCell* cell);
680 
684  static double TriangleEquiangleSkew(vtkCell* cell);
685 
691  static double TriangleNormalizedInradius(vtkCell* cell);
692 
700  static double QuadEdgeRatio(vtkCell* cell);
701 
709  static double QuadAspectRatio(vtkCell* cell);
710 
721  static double QuadRadiusRatio(vtkCell* cell);
722 
732  static double QuadMedAspectFrobenius(vtkCell* cell);
733 
743  static double QuadMaxAspectFrobenius(vtkCell* cell);
744 
748  static double QuadMinAngle(vtkCell* cell);
749 
753  static double QuadMaxEdgeRatio(vtkCell* cell);
754 
760  static double QuadSkew(vtkCell* cell);
761 
766  static double QuadTaper(vtkCell* cell);
767 
773  static double QuadWarpage(vtkCell* cell);
774 
779  static double QuadArea(vtkCell* cell);
780 
785  static double QuadStretch(vtkCell* cell);
786 
790  static double QuadMaxAngle(vtkCell* cell);
791 
797  static double QuadOddy(vtkCell* cell);
798 
804  static double QuadCondition(vtkCell* cell);
805 
811  static double QuadJacobian(vtkCell* cell);
812 
818  static double QuadScaledJacobian(vtkCell* cell);
819 
824  static double QuadShear(vtkCell* cell);
825 
830  static double QuadShape(vtkCell* cell);
831 
840  static double QuadRelativeSizeSquared(vtkCell* cell);
841 
849  static double QuadShapeAndSize(vtkCell* cell);
850 
858  static double QuadShearAndSize(vtkCell* cell);
859 
865  static double QuadDistortion(vtkCell* cell);
866 
870  static double QuadEquiangleSkew(vtkCell* cell);
871 
879  static double TetEdgeRatio(vtkCell* cell);
880 
888  static double TetAspectRatio(vtkCell* cell);
889 
897  static double TetRadiusRatio(vtkCell* cell);
898 
909  static double TetAspectFrobenius(vtkCell* cell);
910 
914  static double TetMinAngle(vtkCell* cell);
915 
922  static double TetCollapseRatio(vtkCell* cell);
923 
929  static double TetAspectGamma(vtkCell* cell);
930 
935  static double TetVolume(vtkCell* cell);
936 
941  static double TetCondition(vtkCell* cell);
942 
947  static double TetJacobian(vtkCell* cell);
948 
954  static double TetScaledJacobian(vtkCell* cell);
955 
960  static double TetShape(vtkCell* cell);
961 
970  static double TetRelativeSizeSquared(vtkCell* cell);
971 
979  static double TetShapeAndSize(vtkCell* cell);
980 
986  static double TetDistortion(vtkCell* cell);
987 
991  static double TetEquiangleSkew(vtkCell* cell);
992 
996  static double TetEquivolumeSkew(vtkCell* cell);
997 
1003  static double TetMeanRatio(vtkCell* cell);
1004 
1010  static double TetNormalizedInradius(vtkCell* cell);
1011 
1015  static double TetSquishIndex(vtkCell* cell);
1016 
1020  static double PyramidEquiangleSkew(vtkCell* cell);
1021 
1026  static double PyramidJacobian(vtkCell* cell);
1027 
1032  static double PyramidScaledJacobian(vtkCell* cell);
1033 
1039  static double PyramidShape(vtkCell* cell);
1040 
1044  static double PyramidVolume(vtkCell* cell);
1045 
1050  static double WedgeCondition(vtkCell* cell);
1051 
1056  static double WedgeDistortion(vtkCell* cell);
1057 
1063  static double WedgeEdgeRatio(vtkCell* cell);
1064 
1068  static double WedgeEquiangleSkew(vtkCell* cell);
1069 
1074  static double WedgeJacobian(vtkCell* cell);
1075 
1080  static double WedgeMaxAspectFrobenius(vtkCell* cell);
1081 
1087  static double WedgeMaxStretch(vtkCell* cell);
1088 
1094  static double WedgeMeanAspectFrobenius(vtkCell* cell);
1095 
1105  static double WedgeScaledJacobian(vtkCell* cell);
1106 
1112  static double WedgeShape(vtkCell* cell);
1113 
1117  static double WedgeVolume(vtkCell* cell);
1118 
1126  static double HexEdgeRatio(vtkCell* cell);
1127 
1132  static double HexMedAspectFrobenius(vtkCell* cell);
1133 
1138  static double HexMaxAspectFrobenius(vtkCell* cell);
1139 
1143  static double HexMaxEdgeRatio(vtkCell* cell);
1144 
1150  static double HexSkew(vtkCell* cell);
1151 
1156  static double HexTaper(vtkCell* cell);
1157 
1162  static double HexVolume(vtkCell* cell);
1163 
1168  static double HexStretch(vtkCell* cell);
1169 
1174  static double HexDiagonal(vtkCell* cell);
1175 
1181  static double HexDimension(vtkCell* cell);
1182 
1188  static double HexOddy(vtkCell* cell);
1189 
1194  static double HexCondition(vtkCell* cell);
1195 
1201  static double HexJacobian(vtkCell* cell);
1202 
1208  static double HexScaledJacobian(vtkCell* cell);
1209 
1214  static double HexShear(vtkCell* cell);
1215 
1220  static double HexShape(vtkCell* cell);
1221 
1230  static double HexRelativeSizeSquared(vtkCell* cell);
1231 
1239  static double HexShapeAndSize(vtkCell* cell);
1240 
1248  static double HexShearAndSize(vtkCell* cell);
1249 
1255  static double HexDistortion(vtkCell* cell);
1256 
1260  static double HexEquiangleSkew(vtkCell* cell);
1261 
1266  static double HexNodalJacobianRatio(vtkCell* cell);
1267 
1278  virtual void SetRatio(vtkTypeBool r) { this->SetSaveCellQuality(r); }
1279  vtkTypeBool GetRatio() { return this->GetSaveCellQuality(); }
1280  vtkBooleanMacro(Ratio, vtkTypeBool);
1281 
1283 
1300  VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1301  virtual void SetVolume(vtkTypeBool cv)
1302  {
1303  if (!((cv != 0) ^ (this->Volume != 0)))
1304  {
1305  return;
1306  }
1307  this->Modified();
1308  this->Volume = cv;
1309  if (this->Volume)
1310  {
1311  this->CompatibilityMode = 1;
1312  }
1313  }
1314  VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1315  vtkTypeBool GetVolume() { return this->Volume; }
1316  VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1317  void VolumeOn()
1318  {
1319  if (!this->Volume)
1320  {
1321  this->Volume = 1;
1322  this->Modified();
1323  }
1324  }
1325  VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1326  void VolumeOff()
1327  {
1328  if (this->Volume)
1329  {
1330  this->Volume = 0;
1331  this->Modified();
1332  }
1333  }
1335 
1337 
1364  VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1365  virtual void SetCompatibilityMode(vtkTypeBool cm)
1366  {
1367  if (!((cm != 0) ^ (this->CompatibilityMode != 0)))
1368  {
1369  return;
1370  }
1371  this->CompatibilityMode = cm;
1372  this->Modified();
1373  if (this->CompatibilityMode)
1374  {
1375  this->Volume = 1;
1376  this->TetQualityMeasure = QualityMeasureTypes::RADIUS_RATIO;
1377  }
1378  }
1379  VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1380  vtkGetMacro(CompatibilityMode, vtkTypeBool);
1381  VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1382  void CompatibilityModeOn()
1383  {
1384  if (!this->CompatibilityMode)
1385  {
1386  this->CompatibilityMode = 1;
1387  this->Modified();
1388  }
1389  }
1390  VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1391  void CompatibilityModeOff()
1392  {
1393  if (this->CompatibilityMode)
1394  {
1395  this->CompatibilityMode = 0;
1396  this->Modified();
1397  }
1398  }
1400 
1401 protected:
1403  ~vtkMeshQuality() override = default;
1404 
1406 
1415 
1416  using CellQualityType = double (*)(vtkCell*);
1423 
1424  // VTK_DEPRECATED_IN_9_2_0 Those 2 attributes need to be removed, and instance in the code as
1425  // well.
1428 
1429  // Variables used to store the average size (2D: area / 3D: volume)
1430  static double TriangleAverageSize;
1431  static double QuadAverageSize;
1432  static double TetAverageSize;
1433  static double PyramidAverageSize;
1434  static double WedgeAverageSize;
1435  static double HexAverageSize;
1436 
1437 private:
1438  vtkMeshQuality(const vtkMeshQuality&) = delete;
1439  void operator=(const vtkMeshQuality&) = delete;
1440 };
1441 
1442 VTK_ABI_NAMESPACE_END
1443 #endif // vtkMeshQuality_h
abstract class to specify cell behavior
Definition: vtkCell.h:50
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:45
Superclass for algorithms that produce output of the same type as input.
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition: vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Calculate functions of quality of the elements of a mesh.
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 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.
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.
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.
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.
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 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.
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.
static vtkMeshQuality * New()
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.
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()
static double TetShapeAndSize(vtkCell *cell)
Calculate the shape and size of a tetrahedron.
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
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.
@ mode
Definition: vtkX3D.h:247
int vtkTypeBool
Definition: vtkABI.h:64
#define VTK_DEPRECATED_IN_9_2_0(reason)