VTK
vtkMeshQuality.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMeshQuality.h
5  Language: C++
6 
7  Copyright 2003-2006 Sandia Corporation.
8  Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9  license for use of this work by or on behalf of the
10  U.S. Government. Redistribution and use in source and binary forms, with
11  or without modification, are permitted provided that this Notice and any
12  statement of authorship are reproduced on all copies.
13 
14  Contact: dcthomp@sandia.gov,pppebay@sandia.gov
15 
16 =========================================================================*/
65 #ifndef vtkMeshQuality_h
66 #define vtkMeshQuality_h
67 
68 #include "vtkFiltersVerdictModule.h" // For export macro
69 #include "vtkDataSetAlgorithm.h"
70 
71 class vtkCell;
72 class vtkDataArray;
73 
74 #define VTK_QUALITY_EDGE_RATIO 0
75 #define VTK_QUALITY_ASPECT_RATIO 1
76 #define VTK_QUALITY_RADIUS_RATIO 2
77 #define VTK_QUALITY_ASPECT_FROBENIUS 3
78 #define VTK_QUALITY_MED_ASPECT_FROBENIUS 4
79 #define VTK_QUALITY_MAX_ASPECT_FROBENIUS 5
80 #define VTK_QUALITY_MIN_ANGLE 6
81 #define VTK_QUALITY_COLLAPSE_RATIO 7
82 #define VTK_QUALITY_MAX_ANGLE 8
83 #define VTK_QUALITY_CONDITION 9
84 #define VTK_QUALITY_SCALED_JACOBIAN 10
85 #define VTK_QUALITY_SHEAR 11
86 #define VTK_QUALITY_RELATIVE_SIZE_SQUARED 12
87 #define VTK_QUALITY_SHAPE 13
88 #define VTK_QUALITY_SHAPE_AND_SIZE 14
89 #define VTK_QUALITY_DISTORTION 15
90 #define VTK_QUALITY_MAX_EDGE_RATIO 16
91 #define VTK_QUALITY_SKEW 17
92 #define VTK_QUALITY_TAPER 18
93 #define VTK_QUALITY_VOLUME 19
94 #define VTK_QUALITY_STRETCH 20
95 #define VTK_QUALITY_DIAGONAL 21
96 #define VTK_QUALITY_DIMENSION 22
97 #define VTK_QUALITY_ODDY 23
98 #define VTK_QUALITY_SHEAR_AND_SIZE 24
99 #define VTK_QUALITY_JACOBIAN 25
100 #define VTK_QUALITY_WARPAGE 26
101 #define VTK_QUALITY_ASPECT_GAMMA 27
102 #define VTK_QUALITY_AREA 28
103 #define VTK_QUALITY_ASPECT_BETA 29
104 
105 class VTKFILTERSVERDICT_EXPORT vtkMeshQuality : public vtkDataSetAlgorithm
106 {
107 public:
108  void PrintSelf(ostream& os, vtkIndent indent) override;
110  static vtkMeshQuality* New();
111 
113 
119  vtkSetMacro(SaveCellQuality,vtkTypeBool);
120  vtkGetMacro(SaveCellQuality,vtkTypeBool);
121  vtkBooleanMacro(SaveCellQuality,vtkTypeBool);
123 
125 
133  vtkSetMacro(TriangleQualityMeasure,int);
134  vtkGetMacro(TriangleQualityMeasure,int);
136  {
137  this->SetTriangleQualityMeasure( VTK_QUALITY_AREA );
138  }
140  {
141  this->SetTriangleQualityMeasure( VTK_QUALITY_EDGE_RATIO );
142  }
144  {
145  this->SetTriangleQualityMeasure( VTK_QUALITY_ASPECT_RATIO );
146  }
148  {
149  this->SetTriangleQualityMeasure( VTK_QUALITY_RADIUS_RATIO );
150  }
152  {
153  this->SetTriangleQualityMeasure( VTK_QUALITY_ASPECT_FROBENIUS );
154  }
156  {
157  this->SetTriangleQualityMeasure( VTK_QUALITY_MIN_ANGLE );
158  }
160  {
161  this->SetTriangleQualityMeasure( VTK_QUALITY_MAX_ANGLE );
162  }
164  {
165  this->SetTriangleQualityMeasure( VTK_QUALITY_CONDITION );
166  }
168  {
169  this->SetTriangleQualityMeasure( VTK_QUALITY_SCALED_JACOBIAN );
170  }
172  {
173  this->SetTriangleQualityMeasure( VTK_QUALITY_RELATIVE_SIZE_SQUARED );
174  }
176  {
177  this->SetTriangleQualityMeasure( VTK_QUALITY_SHAPE );
178  }
180  {
181  this->SetTriangleQualityMeasure( VTK_QUALITY_SHAPE_AND_SIZE );
182  }
184  {
185  this->SetTriangleQualityMeasure( VTK_QUALITY_DISTORTION );
186  }
188 
190 
205  vtkSetMacro(QuadQualityMeasure,int);
206  vtkGetMacro(QuadQualityMeasure,int);
208  {
209  this->SetQuadQualityMeasure( VTK_QUALITY_EDGE_RATIO );
210  }
212  {
213  this->SetQuadQualityMeasure( VTK_QUALITY_ASPECT_RATIO );
214  }
216  {
217  this->SetQuadQualityMeasure( VTK_QUALITY_RADIUS_RATIO );
218  }
220  {
221  this->SetQuadQualityMeasure( VTK_QUALITY_MED_ASPECT_FROBENIUS );
222  }
224  {
225  this->SetQuadQualityMeasure( VTK_QUALITY_MAX_ASPECT_FROBENIUS );
226  }
228  {
229  this->SetQuadQualityMeasure( VTK_QUALITY_MAX_EDGE_RATIO );
230  }
232  {
233  this->SetQuadQualityMeasure( VTK_QUALITY_SKEW );
234  }
236  {
237  this->SetQuadQualityMeasure( VTK_QUALITY_TAPER );
238  }
240  {
241  this->SetQuadQualityMeasure( VTK_QUALITY_WARPAGE );
242  }
244  {
245  this->SetQuadQualityMeasure( VTK_QUALITY_AREA );
246  }
248  {
249  this->SetQuadQualityMeasure( VTK_QUALITY_STRETCH );
250  }
252  {
253  this->SetQuadQualityMeasure( VTK_QUALITY_MIN_ANGLE );
254  }
256  {
257  this->SetQuadQualityMeasure( VTK_QUALITY_MAX_ANGLE );
258  }
260  {
261  this->SetQuadQualityMeasure( VTK_QUALITY_ODDY );
262  }
264  {
265  this->SetQuadQualityMeasure( VTK_QUALITY_CONDITION );
266  }
268  {
269  this->SetQuadQualityMeasure( VTK_QUALITY_JACOBIAN );
270  }
272  {
273  this->SetQuadQualityMeasure( VTK_QUALITY_SCALED_JACOBIAN );
274  }
276  {
277  this->SetQuadQualityMeasure( VTK_QUALITY_SHEAR );
278  }
280  {
281  this->SetQuadQualityMeasure( VTK_QUALITY_SHAPE );
282  }
284  {
285  this->SetQuadQualityMeasure( VTK_QUALITY_RELATIVE_SIZE_SQUARED );
286  }
288  {
289  this->SetQuadQualityMeasure( VTK_QUALITY_SHAPE_AND_SIZE );
290  }
292  {
293  this->SetQuadQualityMeasure( VTK_QUALITY_SHEAR_AND_SIZE );
294  }
296  {
297  this->SetQuadQualityMeasure( VTK_QUALITY_DISTORTION );
298  }
300 
302 
312  vtkSetMacro(TetQualityMeasure,int);
313  vtkGetMacro(TetQualityMeasure,int);
315  {
316  this->SetTetQualityMeasure( VTK_QUALITY_EDGE_RATIO );
317  }
319  {
320  this->SetTetQualityMeasure( VTK_QUALITY_ASPECT_RATIO );
321  }
323  {
324  this->SetTetQualityMeasure( VTK_QUALITY_RADIUS_RATIO );
325  }
327  {
328  this->SetTetQualityMeasure( VTK_QUALITY_ASPECT_FROBENIUS );
329  }
331  {
332  this->SetTetQualityMeasure( VTK_QUALITY_MIN_ANGLE );
333  }
335  {
336  this->SetTetQualityMeasure( VTK_QUALITY_COLLAPSE_RATIO );
337  }
339  {
340  this->SetTetQualityMeasure( VTK_QUALITY_ASPECT_BETA );
341  }
343  {
344  this->SetTetQualityMeasure( VTK_QUALITY_ASPECT_GAMMA );
345  }
347  {
348  this->SetTetQualityMeasure( VTK_QUALITY_VOLUME );
349  }
351  {
352  this->SetTetQualityMeasure( VTK_QUALITY_CONDITION );
353  }
355  {
356  this->SetTetQualityMeasure( VTK_QUALITY_JACOBIAN );
357  }
359  {
360  this->SetTetQualityMeasure( VTK_QUALITY_SCALED_JACOBIAN );
361  }
363  {
364  this->SetTetQualityMeasure( VTK_QUALITY_SHAPE );
365  }
367  {
368  this->SetTetQualityMeasure( VTK_QUALITY_RELATIVE_SIZE_SQUARED );
369  }
371  {
372  this->SetTetQualityMeasure( VTK_QUALITY_SHAPE_AND_SIZE );
373  }
375  {
376  this->SetTetQualityMeasure( VTK_QUALITY_DISTORTION );
377  }
379 
381 
392  vtkSetMacro(HexQualityMeasure,int);
393  vtkGetMacro(HexQualityMeasure,int);
395  {
396  this->SetHexQualityMeasure( VTK_QUALITY_EDGE_RATIO );
397  }
399  {
400  this->SetHexQualityMeasure( VTK_QUALITY_MED_ASPECT_FROBENIUS );
401  }
403  {
404  this->SetHexQualityMeasure( VTK_QUALITY_MAX_ASPECT_FROBENIUS );
405  }
407  {
408  this->SetHexQualityMeasure( VTK_QUALITY_MAX_EDGE_RATIO );
409  }
411  {
412  this->SetHexQualityMeasure( VTK_QUALITY_SKEW );
413  }
415  {
416  this->SetHexQualityMeasure( VTK_QUALITY_TAPER );
417  }
419  {
420  this->SetHexQualityMeasure( VTK_QUALITY_VOLUME );
421  }
423  {
424  this->SetHexQualityMeasure( VTK_QUALITY_STRETCH );
425  }
427  {
428  this->SetHexQualityMeasure( VTK_QUALITY_DIAGONAL );
429  }
431  {
432  this->SetHexQualityMeasure( VTK_QUALITY_DIMENSION );
433  }
435  {
436  this->SetHexQualityMeasure( VTK_QUALITY_ODDY );
437  }
439  {
440  this->SetHexQualityMeasure( VTK_QUALITY_CONDITION );
441  }
443  {
444  this->SetHexQualityMeasure( VTK_QUALITY_JACOBIAN );
445  }
447  {
448  this->SetHexQualityMeasure( VTK_QUALITY_SCALED_JACOBIAN );
449  }
451  {
452  this->SetHexQualityMeasure( VTK_QUALITY_SHEAR );
453  }
455  {
456  this->SetHexQualityMeasure( VTK_QUALITY_SHAPE );
457  }
459  {
460  this->SetHexQualityMeasure( VTK_QUALITY_RELATIVE_SIZE_SQUARED );
461  }
463  {
464  this->SetHexQualityMeasure( VTK_QUALITY_SHAPE_AND_SIZE );
465  }
467  {
468  this->SetHexQualityMeasure( VTK_QUALITY_SHEAR_AND_SIZE );
469  }
471  {
472  this->SetHexQualityMeasure( VTK_QUALITY_DISTORTION );
473  }
475 
482  static double TriangleArea( vtkCell* cell );
483 
494  static double TriangleEdgeRatio( vtkCell* cell );
495 
506  static double TriangleAspectRatio( vtkCell* cell );
507 
518  static double TriangleRadiusRatio( vtkCell* cell );
519 
532  static double TriangleAspectFrobenius( vtkCell* cell );
533 
541  static double TriangleMinAngle( vtkCell* cell );
542 
550  static double TriangleMaxAngle( vtkCell* cell );
551 
559  static double TriangleCondition( vtkCell* cell );
560 
567  static double TriangleScaledJacobian( vtkCell* cell );
568 
575  static double TriangleRelativeSizeSquared( vtkCell* cell );
576 
583  static double TriangleShape( vtkCell* cell );
584 
591  static double TriangleShapeAndSize( vtkCell* cell );
592 
599  static double TriangleDistortion( vtkCell* cell );
600 
611  static double QuadEdgeRatio( vtkCell* cell );
612 
624  static double QuadAspectRatio( vtkCell* cell );
625 
640  static double QuadRadiusRatio( vtkCell* cell );
641 
655  static double QuadMedAspectFrobenius( vtkCell* cell );
656 
670  static double QuadMaxAspectFrobenius( vtkCell* cell );
671 
679  static double QuadMinAngle( vtkCell* cell );
680 
681  static double QuadMaxEdgeRatios( vtkCell* cell );
682  static double QuadSkew( vtkCell* cell );
683  static double QuadTaper( vtkCell* cell );
684  static double QuadWarpage( vtkCell* cell );
685  static double QuadArea( vtkCell* cell );
686  static double QuadStretch( vtkCell* cell );
687  static double QuadMaxAngle( vtkCell* cell );
688  static double QuadOddy( vtkCell* cell );
689  static double QuadCondition( vtkCell* cell );
690  static double QuadJacobian( vtkCell* cell );
691  static double QuadScaledJacobian( vtkCell* cell );
692  static double QuadShear( vtkCell* cell );
693  static double QuadShape( vtkCell* cell );
694  static double QuadRelativeSizeSquared( vtkCell* cell );
695  static double QuadShapeAndSize( vtkCell* cell );
696  static double QuadShearAndSize( vtkCell* cell );
697  static double QuadDistortion( vtkCell* cell );
698 
709  static double TetEdgeRatio( vtkCell* cell );
710 
721  static double TetAspectRatio( vtkCell* cell );
722 
733  static double TetRadiusRatio( vtkCell* cell );
734 
748  static double TetAspectFrobenius( vtkCell* cell );
749 
757  static double TetMinAngle( vtkCell* cell );
758 
760 
769  static double TetCollapseRatio( vtkCell* cell );
770  static double TetAspectBeta( vtkCell* cell );
771  static double TetAspectGamma( vtkCell* cell );
772  static double TetVolume( vtkCell* cell );
773  static double TetCondition( vtkCell* cell );
774  static double TetJacobian( vtkCell* cell );
775  static double TetScaledJacobian( vtkCell* cell );
776  static double TetShape( vtkCell* cell );
777  static double TetRelativeSizeSquared( vtkCell* cell );
778  static double TetShapeandSize( vtkCell* cell );
779  static double TetDistortion( vtkCell* cell );
781 
792  static double HexEdgeRatio( vtkCell* cell );
793 
802  static double HexMedAspectFrobenius( vtkCell* cell );
803 
805 
813  static double HexMaxAspectFrobenius( vtkCell* cell );
814  static double HexMaxEdgeRatio( vtkCell* cell );
815  static double HexSkew( vtkCell* cell );
816  static double HexTaper( vtkCell* cell );
817  static double HexVolume( vtkCell* cell );
818  static double HexStretch( vtkCell* cell );
819  static double HexDiagonal( vtkCell* cell );
820  static double HexDimension( vtkCell* cell );
821  static double HexOddy( vtkCell* cell );
822  static double HexCondition( vtkCell* cell );
823  static double HexJacobian( vtkCell* cell );
824  static double HexScaledJacobian( vtkCell* cell );
825  static double HexShear( vtkCell* cell );
826  static double HexShape( vtkCell* cell );
827  static double HexRelativeSizeSquared( vtkCell* cell );
828  static double HexShapeAndSize( vtkCell* cell );
829  static double HexShearAndSize( vtkCell* cell );
830  static double HexDistortion( vtkCell* cell );
832 
843  virtual void SetRatio( vtkTypeBool r ) { this->SetSaveCellQuality( r ); }
844  vtkTypeBool GetRatio() { return this->GetSaveCellQuality(); }
845  vtkBooleanMacro(Ratio,vtkTypeBool);
846 
848 
865  virtual void SetVolume( vtkTypeBool cv )
866  {
867  if ( ! ((cv != 0) ^ (this->Volume != 0)) )
868  {
869  return;
870  }
871  this->Modified();
872  this->Volume = cv;
873  if ( this->Volume )
874  {
875  this->CompatibilityModeOn();
876  }
877  }
879  {
880  return this->Volume;
881  }
882  vtkBooleanMacro(Volume,vtkTypeBool);
884 
886 
914  {
915  if ( !((cm != 0) ^ (this->CompatibilityMode != 0)) )
916  {
917  return;
918  }
919  this->CompatibilityMode = cm;
920  this->Modified();
921  if ( this->CompatibilityMode )
922  {
923  this->Volume = 1;
924  this->TetQualityMeasure = VTK_QUALITY_RADIUS_RATIO;
925  }
926  }
927  vtkGetMacro(CompatibilityMode,vtkTypeBool);
928  vtkBooleanMacro(CompatibilityMode,vtkTypeBool);
930 
931 protected:
933  ~vtkMeshQuality() override;
934 
936 
940  static int GetCurrentTriangleNormal( double point[3], double normal[3] );
941 
947 
950 
952  static double CurrentTriNormal[3];
953 
954 private:
955  vtkMeshQuality( const vtkMeshQuality& ) = delete;
956  void operator = ( const vtkMeshQuality& ) = delete;
957 };
958 
959 #endif // vtkMeshQuality_h
vtkMeshQuality::QuadWarpage
static double QuadWarpage(vtkCell *cell)
vtkMeshQuality::TetCondition
static double TetCondition(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToScaledJacobian
void SetTetQualityMeasureToScaledJacobian()
Definition: vtkMeshQuality.h:358
VTK_QUALITY_AREA
#define VTK_QUALITY_AREA
Definition: vtkMeshQuality.h:102
vtkMeshQuality::SetTriangleQualityMeasureToAspectRatio
void SetTriangleQualityMeasureToAspectRatio()
Definition: vtkMeshQuality.h:143
vtkMeshQuality::SetTriangleQualityMeasureToCondition
void SetTriangleQualityMeasureToCondition()
Definition: vtkMeshQuality.h:163
vtkMeshQuality::HexEdgeRatio
static double HexEdgeRatio(vtkCell *cell)
This is a static function used to calculate the edge ratio of a hexahedron.
VTK_QUALITY_ODDY
#define VTK_QUALITY_ODDY
Definition: vtkMeshQuality.h:97
VTK_QUALITY_SHAPE
#define VTK_QUALITY_SHAPE
Definition: vtkMeshQuality.h:87
vtkMeshQuality::QuadJacobian
static double QuadJacobian(vtkCell *cell)
vtkMeshQuality::HexShapeAndSize
static double HexShapeAndSize(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToMinAngle
void SetTetQualityMeasureToMinAngle()
Definition: vtkMeshQuality.h:330
vtkMeshQuality::SetTetQualityMeasureToRelativeSizeSquared
void SetTetQualityMeasureToRelativeSizeSquared()
Definition: vtkMeshQuality.h:366
vtkMeshQuality::TetScaledJacobian
static double TetScaledJacobian(vtkCell *cell)
vtkMeshQuality::QuadAspectRatio
static double QuadAspectRatio(vtkCell *cell)
This is a static function used to calculate the aspect ratio of a planar quadrilateral.
VTK_QUALITY_ASPECT_RATIO
#define VTK_QUALITY_ASPECT_RATIO
Definition: vtkMeshQuality.h:75
vtkMeshQuality::SetQuadQualityMeasureToTaper
void SetQuadQualityMeasureToTaper()
Definition: vtkMeshQuality.h:235
VTK_QUALITY_SHEAR
#define VTK_QUALITY_SHEAR
Definition: vtkMeshQuality.h:85
VTK_QUALITY_MAX_ANGLE
#define VTK_QUALITY_MAX_ANGLE
Definition: vtkMeshQuality.h:82
vtkMeshQuality::TriangleQualityMeasure
int TriangleQualityMeasure
Definition: vtkMeshQuality.h:943
vtkMeshQuality::SetVolume
virtual void SetVolume(vtkTypeBool cv)
These methods are deprecated.
Definition: vtkMeshQuality.h:865
vtkMeshQuality::SetQuadQualityMeasureToRelativeSizeSquared
void SetQuadQualityMeasureToRelativeSizeSquared()
Definition: vtkMeshQuality.h:283
VTK_QUALITY_DIAGONAL
#define VTK_QUALITY_DIAGONAL
Definition: vtkMeshQuality.h:95
vtkMeshQuality::SetTriangleQualityMeasureToArea
void SetTriangleQualityMeasureToArea()
Definition: vtkMeshQuality.h:135
vtkMeshQuality::SetTetQualityMeasureToEdgeRatio
void SetTetQualityMeasureToEdgeRatio()
Definition: vtkMeshQuality.h:314
vtkMeshQuality::HexMedAspectFrobenius
static double HexMedAspectFrobenius(vtkCell *cell)
This is a static function used to calculate the average Frobenius aspect of the 8 corner tetrahedra o...
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:42
VTK_QUALITY_CONDITION
#define VTK_QUALITY_CONDITION
Definition: vtkMeshQuality.h:83
vtkMeshQuality::QuadMaxAspectFrobenius
static double QuadMaxAspectFrobenius(vtkCell *cell)
This is a static function used to calculate the maximal Frobenius aspect of the 4 corner triangles of...
VTK_QUALITY_RADIUS_RATIO
#define VTK_QUALITY_RADIUS_RATIO
Definition: vtkMeshQuality.h:76
vtkMeshQuality::QuadOddy
static double QuadOddy(vtkCell *cell)
vtkMeshQuality::SetTriangleQualityMeasureToRadiusRatio
void SetTriangleQualityMeasureToRadiusRatio()
Definition: vtkMeshQuality.h:147
vtkMeshQuality::SetQuadQualityMeasureToAspectRatio
void SetQuadQualityMeasureToAspectRatio()
Definition: vtkMeshQuality.h:211
vtkMeshQuality::SetHexQualityMeasureToScaledJacobian
void SetHexQualityMeasureToScaledJacobian()
Definition: vtkMeshQuality.h:446
vtkObject::Modified
virtual void Modified()
Update the modification time for this object.
vtkMeshQuality::TriangleRelativeSizeSquared
static double TriangleRelativeSizeSquared(vtkCell *cell)
This is a static function used to calculate the square of the relative size of a triangle.
vtkMeshQuality::SetHexQualityMeasureToEdgeRatio
void SetHexQualityMeasureToEdgeRatio()
Definition: vtkMeshQuality.h:394
vtkMeshQuality::TriangleEdgeRatio
static double TriangleEdgeRatio(vtkCell *cell)
This is a static function used to calculate the edge ratio of a triangle.
vtkMeshQuality::QuadMedAspectFrobenius
static double QuadMedAspectFrobenius(vtkCell *cell)
This is a static function used to calculate the average Frobenius aspect of the 4 corner triangles of...
VTK_QUALITY_VOLUME
#define VTK_QUALITY_VOLUME
Definition: vtkMeshQuality.h:93
vtkMeshQuality::SetQuadQualityMeasureToWarpage
void SetQuadQualityMeasureToWarpage()
Definition: vtkMeshQuality.h:239
vtkMeshQuality::TetAspectGamma
static double TetAspectGamma(vtkCell *cell)
vtkMeshQuality::TriangleScaledJacobian
static double TriangleScaledJacobian(vtkCell *cell)
This is a static function used to calculate the scaled Jacobian of a triangle.
vtkMeshQuality::QuadShearAndSize
static double QuadShearAndSize(vtkCell *cell)
VTK_QUALITY_DISTORTION
#define VTK_QUALITY_DISTORTION
Definition: vtkMeshQuality.h:89
vtkMeshQuality::QuadMaxAngle
static double QuadMaxAngle(vtkCell *cell)
vtkMeshQuality::SetHexQualityMeasureToShearAndSize
void SetHexQualityMeasureToShearAndSize()
Definition: vtkMeshQuality.h:466
vtkMeshQuality::SetQuadQualityMeasureToShapeAndSize
void SetQuadQualityMeasureToShapeAndSize()
Definition: vtkMeshQuality.h:287
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkMeshQuality::HexQualityMeasure
int HexQualityMeasure
Definition: vtkMeshQuality.h:946
VTK_QUALITY_MIN_ANGLE
#define VTK_QUALITY_MIN_ANGLE
Definition: vtkMeshQuality.h:80
vtkMeshQuality
Calculate functions of quality of the elements of a mesh.
Definition: vtkMeshQuality.h:106
vtkMeshQuality::TriangleCondition
static double TriangleCondition(vtkCell *cell)
This is a static function used to calculate the condition number of a triangle.
vtkMeshQuality::SetQuadQualityMeasureToScaledJacobian
void SetQuadQualityMeasureToScaledJacobian()
Definition: vtkMeshQuality.h:271
vtkMeshQuality::TetAspectFrobenius
static double TetAspectFrobenius(vtkCell *cell)
This is a static function used to calculate the Frobenius condition number of the transformation matr...
VTK_QUALITY_MED_ASPECT_FROBENIUS
#define VTK_QUALITY_MED_ASPECT_FROBENIUS
Definition: vtkMeshQuality.h:78
vtkMeshQuality::TetJacobian
static double TetJacobian(vtkCell *cell)
vtkMeshQuality::SetQuadQualityMeasureToMaxAngle
void SetQuadQualityMeasureToMaxAngle()
Definition: vtkMeshQuality.h:255
vtkMeshQuality::SetTetQualityMeasureToCondition
void SetTetQualityMeasureToCondition()
Definition: vtkMeshQuality.h:350
vtkMeshQuality::HexStretch
static double HexStretch(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToAspectBeta
void SetTetQualityMeasureToAspectBeta()
Definition: vtkMeshQuality.h:338
vtkMeshQuality::SetQuadQualityMeasureToMedAspectFrobenius
void SetQuadQualityMeasureToMedAspectFrobenius()
Definition: vtkMeshQuality.h:219
VTK_QUALITY_SKEW
#define VTK_QUALITY_SKEW
Definition: vtkMeshQuality.h:91
vtkMeshQuality::SetHexQualityMeasureToShapeAndSize
void SetHexQualityMeasureToShapeAndSize()
Definition: vtkMeshQuality.h:462
vtkMeshQuality::SetTriangleQualityMeasureToEdgeRatio
void SetTriangleQualityMeasureToEdgeRatio()
Definition: vtkMeshQuality.h:139
vtkMeshQuality::SetTriangleQualityMeasureToDistortion
void SetTriangleQualityMeasureToDistortion()
Definition: vtkMeshQuality.h:183
vtkMeshQuality::SetTriangleQualityMeasureToScaledJacobian
void SetTriangleQualityMeasureToScaledJacobian()
Definition: vtkMeshQuality.h:167
vtkMeshQuality::SetQuadQualityMeasureToMaxAspectFrobenius
void SetQuadQualityMeasureToMaxAspectFrobenius()
Definition: vtkMeshQuality.h:223
VTK_QUALITY_WARPAGE
#define VTK_QUALITY_WARPAGE
Definition: vtkMeshQuality.h:100
vtkMeshQuality::SetHexQualityMeasureToTaper
void SetHexQualityMeasureToTaper()
Definition: vtkMeshQuality.h:414
vtkDataSetAlgorithm
Superclass for algorithms that produce output of the same type as input.
Definition: vtkDataSetAlgorithm.h:49
VTK_QUALITY_ASPECT_FROBENIUS
#define VTK_QUALITY_ASPECT_FROBENIUS
Definition: vtkMeshQuality.h:77
vtkMeshQuality::SetHexQualityMeasureToSkew
void SetHexQualityMeasureToSkew()
Definition: vtkMeshQuality.h:410
vtkMeshQuality::SetHexQualityMeasureToMaxEdgeRatios
void SetHexQualityMeasureToMaxEdgeRatios()
Definition: vtkMeshQuality.h:406
vtkMeshQuality::SetHexQualityMeasureToDistortion
void SetHexQualityMeasureToDistortion()
Definition: vtkMeshQuality.h:470
vtkMeshQuality::QuadShape
static double QuadShape(vtkCell *cell)
vtkMeshQuality::SetQuadQualityMeasureToRadiusRatio
void SetQuadQualityMeasureToRadiusRatio()
Definition: vtkMeshQuality.h:215
vtkMeshQuality::SetHexQualityMeasureToMaxAspectFrobenius
void SetHexQualityMeasureToMaxAspectFrobenius()
Definition: vtkMeshQuality.h:402
vtkMeshQuality::HexTaper
static double HexTaper(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToRadiusRatio
void SetTetQualityMeasureToRadiusRatio()
Definition: vtkMeshQuality.h:322
vtkX3D::point
@ point
Definition: vtkX3D.h:236
vtkMeshQuality::SetQuadQualityMeasureToShearAndSize
void SetQuadQualityMeasureToShearAndSize()
Definition: vtkMeshQuality.h:291
vtkMeshQuality::QuadCondition
static double QuadCondition(vtkCell *cell)
vtkMeshQuality::SetHexQualityMeasureToJacobian
void SetHexQualityMeasureToJacobian()
Definition: vtkMeshQuality.h:442
VTK_QUALITY_STRETCH
#define VTK_QUALITY_STRETCH
Definition: vtkMeshQuality.h:94
vtkMeshQuality::SetHexQualityMeasureToDiagonal
void SetHexQualityMeasureToDiagonal()
Definition: vtkMeshQuality.h:426
vtkMeshQuality::GetVolume
vtkTypeBool GetVolume()
Definition: vtkMeshQuality.h:878
VTK_QUALITY_JACOBIAN
#define VTK_QUALITY_JACOBIAN
Definition: vtkMeshQuality.h:99
vtkMeshQuality::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkMeshQuality::SetQuadQualityMeasureToStretch
void SetQuadQualityMeasureToStretch()
Definition: vtkMeshQuality.h:247
vtkMeshQuality::SetTetQualityMeasureToAspectFrobenius
void SetTetQualityMeasureToAspectFrobenius()
Definition: vtkMeshQuality.h:326
vtkMeshQuality::GetRatio
vtkTypeBool GetRatio()
Definition: vtkMeshQuality.h:844
vtkMeshQuality::SetTetQualityMeasureToShapeAndSize
void SetTetQualityMeasureToShapeAndSize()
Definition: vtkMeshQuality.h:370
VTK_QUALITY_SHEAR_AND_SIZE
#define VTK_QUALITY_SHEAR_AND_SIZE
Definition: vtkMeshQuality.h:98
vtkMeshQuality::SaveCellQuality
vtkTypeBool SaveCellQuality
Definition: vtkMeshQuality.h:942
vtkMeshQuality::SetHexQualityMeasureToVolume
void SetHexQualityMeasureToVolume()
Definition: vtkMeshQuality.h:418
vtkMeshQuality::TetCollapseRatio
static double TetCollapseRatio(vtkCell *cell)
This is a static function used to calculate the collapse ratio of a tetrahedron.
vtkMeshQuality::SetRatio
virtual void SetRatio(vtkTypeBool r)
These methods are deprecated.
Definition: vtkMeshQuality.h:843
vtkMeshQuality::SetQuadQualityMeasureToShear
void SetQuadQualityMeasureToShear()
Definition: vtkMeshQuality.h:275
vtkMeshQuality::TetMinAngle
static double TetMinAngle(vtkCell *cell)
This is a static function used to calculate the minimal (nonoriented) dihedral angle of a tetrahedron...
vtkMeshQuality::SetTetQualityMeasureToJacobian
void SetTetQualityMeasureToJacobian()
Definition: vtkMeshQuality.h:354
vtkMeshQuality::TriangleArea
static double TriangleArea(vtkCell *cell)
This is a static function used to calculate the area of a triangle.
vtkCell
abstract class to specify cell behavior
Definition: vtkCell.h:60
vtkMeshQuality::SetQuadQualityMeasureToJacobian
void SetQuadQualityMeasureToJacobian()
Definition: vtkMeshQuality.h:267
vtkMeshQuality::SetHexQualityMeasureToShear
void SetHexQualityMeasureToShear()
Definition: vtkMeshQuality.h:450
vtkMeshQuality::SetHexQualityMeasureToOddy
void SetHexQualityMeasureToOddy()
Definition: vtkMeshQuality.h:434
vtkMeshQuality::HexShape
static double HexShape(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToCollapseRatio
void SetTetQualityMeasureToCollapseRatio()
Definition: vtkMeshQuality.h:334
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkMeshQuality::TetEdgeRatio
static double TetEdgeRatio(vtkCell *cell)
This is a static function used to calculate the edge ratio of a tetrahedron.
vtkMeshQuality::HexMaxAspectFrobenius
static double HexMaxAspectFrobenius(vtkCell *cell)
This is a static function used to calculate the maximal Frobenius aspect of the 8 corner tetrahedra o...
vtkMeshQuality::QuadArea
static double QuadArea(vtkCell *cell)
vtkMeshQuality::Volume
vtkTypeBool Volume
Definition: vtkMeshQuality.h:949
vtkMeshQuality::SetTetQualityMeasureToVolume
void SetTetQualityMeasureToVolume()
Definition: vtkMeshQuality.h:346
vtkMeshQuality::SetTriangleQualityMeasureToMaxAngle
void SetTriangleQualityMeasureToMaxAngle()
Definition: vtkMeshQuality.h:159
vtkMeshQuality::SetQuadQualityMeasureToMinAngle
void SetQuadQualityMeasureToMinAngle()
Definition: vtkMeshQuality.h:251
vtkMeshQuality::SetQuadQualityMeasureToMaxEdgeRatios
void SetQuadQualityMeasureToMaxEdgeRatios()
Definition: vtkMeshQuality.h:227
vtkMeshQuality::TriangleMaxAngle
static double TriangleMaxAngle(vtkCell *cell)
This is a static function used to calculate the maximal (nonoriented) angle of a triangle,...
vtkMeshQuality::QuadTaper
static double QuadTaper(vtkCell *cell)
vtkMeshQuality::HexShearAndSize
static double HexShearAndSize(vtkCell *cell)
vtkMeshQuality::QuadQualityMeasure
int QuadQualityMeasure
Definition: vtkMeshQuality.h:944
vtkMeshQuality::SetHexQualityMeasureToStretch
void SetHexQualityMeasureToStretch()
Definition: vtkMeshQuality.h:422
vtkMeshQuality::TetQualityMeasure
int TetQualityMeasure
Definition: vtkMeshQuality.h:945
vtkMeshQuality::SetTriangleQualityMeasureToShape
void SetTriangleQualityMeasureToShape()
Definition: vtkMeshQuality.h:175
vtkMeshQuality::HexDimension
static double HexDimension(vtkCell *cell)
vtkMeshQuality::QuadStretch
static double QuadStretch(vtkCell *cell)
vtkMeshQuality::QuadRelativeSizeSquared
static double QuadRelativeSizeSquared(vtkCell *cell)
vtkMeshQuality::SetTriangleQualityMeasureToRelativeSizeSquared
void SetTriangleQualityMeasureToRelativeSizeSquared()
Definition: vtkMeshQuality.h:171
vtkMeshQuality::SetHexQualityMeasureToCondition
void SetHexQualityMeasureToCondition()
Definition: vtkMeshQuality.h:438
VTK_QUALITY_SCALED_JACOBIAN
#define VTK_QUALITY_SCALED_JACOBIAN
Definition: vtkMeshQuality.h:84
vtkMeshQuality::QuadShear
static double QuadShear(vtkCell *cell)
vtkMeshQuality::SetCompatibilityMode
virtual void SetCompatibilityMode(vtkTypeBool cm)
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
Definition: vtkMeshQuality.h:913
vtkMeshQuality::SetTriangleQualityMeasureToShapeAndSize
void SetTriangleQualityMeasureToShapeAndSize()
Definition: vtkMeshQuality.h:179
vtkMeshQuality::TriangleRadiusRatio
static double TriangleRadiusRatio(vtkCell *cell)
This is a static function used to calculate the radius ratio of a triangle.
vtkMeshQuality::CompatibilityMode
vtkTypeBool CompatibilityMode
Definition: vtkMeshQuality.h:948
vtkMeshQuality::HexScaledJacobian
static double HexScaledJacobian(vtkCell *cell)
vtkMeshQuality::QuadMinAngle
static double QuadMinAngle(vtkCell *cell)
This is a static function used to calculate the minimal (nonoriented) angle of a quadrilateral,...
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:87
vtkMeshQuality::QuadShapeAndSize
static double QuadShapeAndSize(vtkCell *cell)
vtkMeshQuality::QuadEdgeRatio
static double QuadEdgeRatio(vtkCell *cell)
This is a static function used to calculate the edge ratio of a quadrilateral.
vtkMeshQuality::SetHexQualityMeasureToMedAspectFrobenius
void SetHexQualityMeasureToMedAspectFrobenius()
Definition: vtkMeshQuality.h:398
vtkMeshQuality::HexShear
static double HexShear(vtkCell *cell)
vtkMeshQuality::TriangleDistortion
static double TriangleDistortion(vtkCell *cell)
This is a static function used to calculate the distortion of a triangle.
vtkMeshQuality::HexMaxEdgeRatio
static double HexMaxEdgeRatio(vtkCell *cell)
vtkMeshQuality::HexSkew
static double HexSkew(vtkCell *cell)
vtkMeshQuality::TriangleMinAngle
static double TriangleMinAngle(vtkCell *cell)
This is a static function used to calculate the minimal (nonoriented) angle of a triangle,...
vtkMeshQuality::TriangleAspectFrobenius
static double TriangleAspectFrobenius(vtkCell *cell)
This is a static function used to calculate the Frobenius condition number of the transformation matr...
vtkDataSetAlgorithm.h
vtkMeshQuality::SetTetQualityMeasureToDistortion
void SetTetQualityMeasureToDistortion()
Definition: vtkMeshQuality.h:374
vtkMeshQuality::SetQuadQualityMeasureToArea
void SetQuadQualityMeasureToArea()
Definition: vtkMeshQuality.h:243
vtkMeshQuality::GetCurrentTriangleNormal
static int GetCurrentTriangleNormal(double point[3], double normal[3])
A function called by some VERDICT triangle quality functions to test for inverted triangles.
VTK_QUALITY_RELATIVE_SIZE_SQUARED
#define VTK_QUALITY_RELATIVE_SIZE_SQUARED
Definition: vtkMeshQuality.h:86
vtkMeshQuality::TetAspectBeta
static double TetAspectBeta(vtkCell *cell)
vtkMeshQuality::TetRadiusRatio
static double TetRadiusRatio(vtkCell *cell)
This is a static function used to calculate the radius ratio of a tetrahedron.
vtkMeshQuality::CellNormals
vtkDataArray * CellNormals
Definition: vtkMeshQuality.h:951
vtkMeshQuality::TetDistortion
static double TetDistortion(vtkCell *cell)
vtkMeshQuality::HexDistortion
static double HexDistortion(vtkCell *cell)
vtkMeshQuality::TriangleShape
static double TriangleShape(vtkCell *cell)
This is a static function used to calculate the shape of a triangle.
vtkMeshQuality::QuadSkew
static double QuadSkew(vtkCell *cell)
vtkMeshQuality::TetVolume
static double TetVolume(vtkCell *cell)
VTK_QUALITY_SHAPE_AND_SIZE
#define VTK_QUALITY_SHAPE_AND_SIZE
Definition: vtkMeshQuality.h:88
vtkMeshQuality::SetQuadQualityMeasureToEdgeRatio
void SetQuadQualityMeasureToEdgeRatio()
Definition: vtkMeshQuality.h:207
vtkMeshQuality::~vtkMeshQuality
~vtkMeshQuality() override
vtkMeshQuality::SetTetQualityMeasureToAspectRatio
void SetTetQualityMeasureToAspectRatio()
Definition: vtkMeshQuality.h:318
vtkMeshQuality::TetRelativeSizeSquared
static double TetRelativeSizeSquared(vtkCell *cell)
vtkMeshQuality::QuadMaxEdgeRatios
static double QuadMaxEdgeRatios(vtkCell *cell)
VTK_QUALITY_TAPER
#define VTK_QUALITY_TAPER
Definition: vtkMeshQuality.h:92
vtkMeshQuality::TriangleAspectRatio
static double TriangleAspectRatio(vtkCell *cell)
This is a static function used to calculate the aspect ratio of a triangle.
VTK_QUALITY_ASPECT_BETA
#define VTK_QUALITY_ASPECT_BETA
Definition: vtkMeshQuality.h:103
vtkMeshQuality::HexJacobian
static double HexJacobian(vtkCell *cell)
vtkMeshQuality::TetShapeandSize
static double TetShapeandSize(vtkCell *cell)
vtkMeshQuality::SetQuadQualityMeasureToSkew
void SetQuadQualityMeasureToSkew()
Definition: vtkMeshQuality.h:231
vtkMeshQuality::SetQuadQualityMeasureToDistortion
void SetQuadQualityMeasureToDistortion()
Definition: vtkMeshQuality.h:295
vtkMeshQuality::HexRelativeSizeSquared
static double HexRelativeSizeSquared(vtkCell *cell)
vtkMeshQuality::QuadRadiusRatio
static double QuadRadiusRatio(vtkCell *cell)
This is a static function used to calculate the radius ratio of a planar quadrilateral.
vtkMeshQuality::TetShape
static double TetShape(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToShape
void SetTetQualityMeasureToShape()
Definition: vtkMeshQuality.h:362
vtkMeshQuality::SetHexQualityMeasureToRelativeSizeSquared
void SetHexQualityMeasureToRelativeSizeSquared()
Definition: vtkMeshQuality.h:458
VTK_QUALITY_DIMENSION
#define VTK_QUALITY_DIMENSION
Definition: vtkMeshQuality.h:96
VTK_QUALITY_EDGE_RATIO
#define VTK_QUALITY_EDGE_RATIO
Definition: vtkMeshQuality.h:74
vtkMeshQuality::QuadScaledJacobian
static double QuadScaledJacobian(vtkCell *cell)
vtkMeshQuality::SetTetQualityMeasureToAspectGamma
void SetTetQualityMeasureToAspectGamma()
Definition: vtkMeshQuality.h:342
vtkMeshQuality::HexDiagonal
static double HexDiagonal(vtkCell *cell)
vtkMeshQuality::HexOddy
static double HexOddy(vtkCell *cell)
vtkMeshQuality::SetHexQualityMeasureToShape
void SetHexQualityMeasureToShape()
Definition: vtkMeshQuality.h:454
vtkMeshQuality::SetQuadQualityMeasureToShape
void SetQuadQualityMeasureToShape()
Definition: vtkMeshQuality.h:279
vtkMeshQuality::QuadDistortion
static double QuadDistortion(vtkCell *cell)
vtkMeshQuality::SetTriangleQualityMeasureToMinAngle
void SetTriangleQualityMeasureToMinAngle()
Definition: vtkMeshQuality.h:155
vtkMeshQuality::HexVolume
static double HexVolume(vtkCell *cell)
vtkMeshQuality::vtkMeshQuality
vtkMeshQuality()
vtkMeshQuality::TriangleShapeAndSize
static double TriangleShapeAndSize(vtkCell *cell)
This is a static function used to calculate the product of shape and relative size of a triangle.
vtkMeshQuality::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
VTK_QUALITY_MAX_ASPECT_FROBENIUS
#define VTK_QUALITY_MAX_ASPECT_FROBENIUS
Definition: vtkMeshQuality.h:79
vtkMeshQuality::New
static vtkMeshQuality * New()
VTK_QUALITY_COLLAPSE_RATIO
#define VTK_QUALITY_COLLAPSE_RATIO
Definition: vtkMeshQuality.h:81
VTK_QUALITY_MAX_EDGE_RATIO
#define VTK_QUALITY_MAX_EDGE_RATIO
Definition: vtkMeshQuality.h:90
vtkMeshQuality::SetQuadQualityMeasureToCondition
void SetQuadQualityMeasureToCondition()
Definition: vtkMeshQuality.h:263
VTK_QUALITY_ASPECT_GAMMA
#define VTK_QUALITY_ASPECT_GAMMA
Definition: vtkMeshQuality.h:101
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkMeshQuality::HexCondition
static double HexCondition(vtkCell *cell)
vtkMeshQuality::SetHexQualityMeasureToDimension
void SetHexQualityMeasureToDimension()
Definition: vtkMeshQuality.h:430
vtkMeshQuality::TetAspectRatio
static double TetAspectRatio(vtkCell *cell)
This is a static function used to calculate the aspect ratio of a tetrahedron.
vtkMeshQuality::SetQuadQualityMeasureToOddy
void SetQuadQualityMeasureToOddy()
Definition: vtkMeshQuality.h:259
vtkMeshQuality::SetTriangleQualityMeasureToAspectFrobenius
void SetTriangleQualityMeasureToAspectFrobenius()
Definition: vtkMeshQuality.h:151