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=========================================================================*/
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:
86 friend class vtkMeshQualityFunctor;
87
88public:
89 void PrintSelf(ostream& os, vtkIndent indent) override;
92
94
100 vtkSetMacro(SaveCellQuality, vtkTypeBool);
101 vtkGetMacro(SaveCellQuality, vtkTypeBool);
102 vtkBooleanMacro(SaveCellQuality, vtkTypeBool);
104
106
113 vtkSetMacro(LinearApproximation, bool);
114 vtkGetMacro(LinearApproximation, bool);
115 vtkBooleanMacro(LinearApproximation, bool);
117
122 {
123 AREA = 28,
124 ASPECT_FROBENIUS = 3,
125 ASPECT_GAMMA = 27,
126 ASPECT_RATIO = 1,
127 COLLAPSE_RATIO = 7,
128 CONDITION = 9,
129 DIAGONAL = 21,
130 DIMENSION = 22,
131 DISTORTION = 15,
132 EDGE_RATIO = 0,
133 EQUIANGLE_SKEW = 29,
134 EQUIVOLUME_SKEW = 30,
135 JACOBIAN = 25,
136 MAX_ANGLE = 8,
137 MAX_ASPECT_FROBENIUS = 5,
138 MAX_EDGE_RATIO = 16,
139 MAX_STRETCH = 31,
140 MEAN_ASPECT_FROBENIUS = 32,
141 MEAN_RATIO = 33,
142 MED_ASPECT_FROBENIUS = 4,
143 MIN_ANGLE = 6,
144 NODAL_JACOBIAN_RATIO = 34,
145 NORMALIZED_INRADIUS = 35,
146 ODDY = 23,
147 RADIUS_RATIO = 2,
148 RELATIVE_SIZE_SQUARED = 12,
149 SCALED_JACOBIAN = 10,
150 SHAPE = 13,
151 SHAPE_AND_SIZE = 14,
152 SHEAR = 11,
153 SHEAR_AND_SIZE = 24,
154 SKEW = 17,
155 SQUISH_INDEX = 36,
156 STRETCH = 20,
157 TAPER = 18,
158 VOLUME = 19,
159 WARPAGE = 26,
160 TOTAL_QUALITY_MEASURE_TYPES = 37,
161 NONE = TOTAL_QUALITY_MEASURE_TYPES
162 };
163
167 static const char* QualityMeasureNames[];
168
170
177 vtkSetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes);
178 virtual void SetTriangleQualityMeasure(int measure)
179 {
180 this->SetTriangleQualityMeasure(static_cast<QualityMeasureTypes>(measure));
181 }
182 vtkGetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes);
184 {
185 this->SetTriangleQualityMeasure(QualityMeasureTypes::AREA);
186 }
188 {
189 this->SetTriangleQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
190 }
192 {
193 this->SetTriangleQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
194 }
196 {
197 this->SetTriangleQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
198 }
200 {
201 this->SetTriangleQualityMeasure(QualityMeasureTypes::ASPECT_FROBENIUS);
202 }
204 {
205 this->SetTriangleQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
206 }
208 {
209 this->SetTriangleQualityMeasure(QualityMeasureTypes::MAX_ANGLE);
210 }
212 {
213 this->SetTriangleQualityMeasure(QualityMeasureTypes::CONDITION);
214 }
216 {
217 this->SetTriangleQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
218 }
220 {
221 this->SetTriangleQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
222 }
224 {
225 this->SetTriangleQualityMeasure(QualityMeasureTypes::SHAPE);
226 }
228 {
229 this->SetTriangleQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
230 }
232 {
233 this->SetTriangleQualityMeasure(QualityMeasureTypes::DISTORTION);
234 }
236 {
237 this->SetTriangleQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
238 }
240 {
241 this->SetTriangleQualityMeasure(QualityMeasureTypes::NORMALIZED_INRADIUS);
242 }
244
246
259 virtual void SetQuadQualityMeasure(int measure)
260 {
261 this->SetQuadQualityMeasure(static_cast<QualityMeasureTypes>(measure));
262 }
265 {
266 this->SetQuadQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
267 }
269 {
270 this->SetQuadQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
271 }
273 {
274 this->SetQuadQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
275 }
277 {
278 this->SetQuadQualityMeasure(QualityMeasureTypes::MED_ASPECT_FROBENIUS);
279 }
281 {
282 this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
283 }
285 {
286 this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_EDGE_RATIO);
287 }
288 void SetQuadQualityMeasureToSkew() { this->SetQuadQualityMeasure(QualityMeasureTypes::SKEW); }
289 void SetQuadQualityMeasureToTaper() { this->SetQuadQualityMeasure(QualityMeasureTypes::TAPER); }
291 {
292 this->SetQuadQualityMeasure(QualityMeasureTypes::WARPAGE);
293 }
294 void SetQuadQualityMeasureToArea() { this->SetQuadQualityMeasure(QualityMeasureTypes::AREA); }
296 {
297 this->SetQuadQualityMeasure(QualityMeasureTypes::STRETCH);
298 }
300 {
301 this->SetQuadQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
302 }
304 {
305 this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_ANGLE);
306 }
307 void SetQuadQualityMeasureToOddy() { this->SetQuadQualityMeasure(QualityMeasureTypes::ODDY); }
309 {
310 this->SetQuadQualityMeasure(QualityMeasureTypes::CONDITION);
311 }
313 {
314 this->SetQuadQualityMeasure(QualityMeasureTypes::JACOBIAN);
315 }
317 {
318 this->SetQuadQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
319 }
320 void SetQuadQualityMeasureToShear() { this->SetQuadQualityMeasure(QualityMeasureTypes::SHEAR); }
321 void SetQuadQualityMeasureToShape() { this->SetQuadQualityMeasure(QualityMeasureTypes::SHAPE); }
323 {
324 this->SetQuadQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
325 }
327 {
328 this->SetQuadQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
329 }
331 {
332 this->SetQuadQualityMeasure(QualityMeasureTypes::SHEAR_AND_SIZE);
333 }
335 {
336 this->SetQuadQualityMeasure(QualityMeasureTypes::DISTORTION);
337 }
339 {
340 this->SetQuadQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
341 }
343
345
353 virtual void SetTetQualityMeasure(int measure)
354 {
355 this->SetTetQualityMeasure(static_cast<QualityMeasureTypes>(measure));
356 }
359 {
360 this->SetTetQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
361 }
363 {
364 this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
365 }
367 {
368 this->SetTetQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
369 }
371 {
372 this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_FROBENIUS);
373 }
375 {
376 this->SetTetQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
377 }
379 {
380 this->SetTetQualityMeasure(QualityMeasureTypes::COLLAPSE_RATIO);
381 }
383 {
384 this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_GAMMA);
385 }
386 void SetTetQualityMeasureToVolume() { this->SetTetQualityMeasure(QualityMeasureTypes::VOLUME); }
388 {
389 this->SetTetQualityMeasure(QualityMeasureTypes::CONDITION);
390 }
392 {
393 this->SetTetQualityMeasure(QualityMeasureTypes::JACOBIAN);
394 }
396 {
397 this->SetTetQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
398 }
399 void SetTetQualityMeasureToShape() { this->SetTetQualityMeasure(QualityMeasureTypes::SHAPE); }
401 {
402 this->SetTetQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
403 }
405 {
406 this->SetTetQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
407 }
409 {
410 this->SetTetQualityMeasure(QualityMeasureTypes::DISTORTION);
411 }
413 {
414 this->SetTetQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
415 }
417 {
418 this->SetTetQualityMeasure(QualityMeasureTypes::EQUIVOLUME_SKEW);
419 }
421 {
422 this->SetTetQualityMeasure(QualityMeasureTypes::MEAN_RATIO);
423 }
425 {
426 this->SetTetQualityMeasure(QualityMeasureTypes::NORMALIZED_INRADIUS);
427 }
429 {
430 this->SetTetQualityMeasure(QualityMeasureTypes::SQUISH_INDEX);
431 }
433
435
440 vtkSetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes);
441 virtual void SetPyramidQualityMeasure(int measure)
442 {
443 this->SetPyramidQualityMeasure(static_cast<QualityMeasureTypes>(measure));
444 }
445 vtkGetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes);
447 {
448 this->SetPyramidQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
449 }
451 {
452 this->SetPyramidQualityMeasure(QualityMeasureTypes::JACOBIAN);
453 }
455 {
456 this->SetPyramidQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
457 }
459 {
460 this->SetPyramidQualityMeasure(QualityMeasureTypes::SHAPE);
461 }
463 {
464 this->SetPyramidQualityMeasure(QualityMeasureTypes::VOLUME);
465 }
467
469
476 virtual void SetWedgeQualityMeasure(int measure)
477 {
478 this->SetWedgeQualityMeasure(static_cast<QualityMeasureTypes>(measure));
479 }
482 {
483 this->SetWedgeQualityMeasure(QualityMeasureTypes::CONDITION);
484 }
486 {
487 this->SetWedgeQualityMeasure(QualityMeasureTypes::DISTORTION);
488 }
490 {
491 this->SetWedgeQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
492 }
494 {
495 this->SetWedgeQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
496 }
498 {
499 this->SetWedgeQualityMeasure(QualityMeasureTypes::JACOBIAN);
500 }
502 {
503 this->SetWedgeQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
504 }
506 {
507 this->SetWedgeQualityMeasure(QualityMeasureTypes::MAX_STRETCH);
508 }
510 {
511 this->SetWedgeQualityMeasure(QualityMeasureTypes::MEAN_ASPECT_FROBENIUS);
512 }
514 {
515 this->SetWedgeQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
516 }
517 void SetWedgeQualityMeasureToShape() { this->SetWedgeQualityMeasure(QualityMeasureTypes::SHAPE); }
519 {
520 this->SetWedgeQualityMeasure(QualityMeasureTypes::VOLUME);
521 }
523
525
534 virtual void SetHexQualityMeasure(int measure)
535 {
536 this->SetHexQualityMeasure(static_cast<QualityMeasureTypes>(measure));
537 }
540 {
541 this->SetHexQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
542 }
544 {
545 this->SetHexQualityMeasure(QualityMeasureTypes::MED_ASPECT_FROBENIUS);
546 }
548 {
549 this->SetHexQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
550 }
552 {
553 this->SetHexQualityMeasure(QualityMeasureTypes::MAX_EDGE_RATIO);
554 }
555 void SetHexQualityMeasureToSkew() { this->SetHexQualityMeasure(QualityMeasureTypes::SKEW); }
556 void SetHexQualityMeasureToTaper() { this->SetHexQualityMeasure(QualityMeasureTypes::TAPER); }
557 void SetHexQualityMeasureToVolume() { this->SetHexQualityMeasure(QualityMeasureTypes::VOLUME); }
558 void SetHexQualityMeasureToStretch() { this->SetHexQualityMeasure(QualityMeasureTypes::STRETCH); }
560 {
561 this->SetHexQualityMeasure(QualityMeasureTypes::DIAGONAL);
562 }
564 {
565 this->SetHexQualityMeasure(QualityMeasureTypes::DIMENSION);
566 }
567 void SetHexQualityMeasureToOddy() { this->SetHexQualityMeasure(QualityMeasureTypes::ODDY); }
569 {
570 this->SetHexQualityMeasure(QualityMeasureTypes::CONDITION);
571 }
573 {
574 this->SetHexQualityMeasure(QualityMeasureTypes::JACOBIAN);
575 }
577 {
578 this->SetHexQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
579 }
580 void SetHexQualityMeasureToShear() { this->SetHexQualityMeasure(QualityMeasureTypes::SHEAR); }
581 void SetHexQualityMeasureToShape() { this->SetHexQualityMeasure(QualityMeasureTypes::SHAPE); }
583 {
584 this->SetHexQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
585 }
587 {
588 this->SetHexQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
589 }
591 {
592 this->SetHexQualityMeasure(QualityMeasureTypes::SHEAR_AND_SIZE);
593 }
595 {
596 this->SetHexQualityMeasure(QualityMeasureTypes::DISTORTION);
597 }
599 {
600 this->SetHexQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
601 }
603 {
604 this->SetHexQualityMeasure(QualityMeasureTypes::NODAL_JACOBIAN_RATIO);
605 }
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); }
1295 vtkTypeBool GetRatio() { return this->GetSaveCellQuality(); }
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")
1333 void VolumeOn()
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")
1342 void VolumeOff()
1343 {
1344 if (this->Volume)
1345 {
1346 this->Volume = 0;
1347 this->Modified();
1348 }
1349 }
1351
1353
1380 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1381 virtual void SetCompatibilityMode(vtkTypeBool cm)
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;
1392 this->TetQualityMeasure = QualityMeasureTypes::RADIUS_RATIO;
1393 }
1394 }
1395 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1396 vtkGetMacro(CompatibilityMode, vtkTypeBool);
1397 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1398 void CompatibilityModeOn()
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")
1407 void CompatibilityModeOff()
1408 {
1409 if (this->CompatibilityMode)
1410 {
1411 this->CompatibilityMode = 0;
1412 this->Modified();
1413 }
1414 }
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
abstract superclass for arrays of numeric data
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:34
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.
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.
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.
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.
int vtkTypeBool
Definition vtkABI.h:69
#define VTK_DEPRECATED_IN_9_2_0(reason)