vtkMeshQualityExtended.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __vtkMeshQualityExtended_h
00034 #define __vtkMeshQualityExtended_h
00035
00036 #include "vtkMeshQuality.h"
00037 #include "vtkMimxFilterWin32Header.h"
00038
00039 class vtkCell;
00040 class vtkDataArray;
00041
00042
00043 #define VTK_QUALITY_EDGE_COLLAPSE 30
00044 #define VTK_QUALITY_ANGLE_OUT_OF_BOUNDS 31
00045
00046 class VTK_MIMXFILTER_EXPORT vtkMeshQualityExtended : public vtkMeshQuality
00047 {
00048 public:
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050 vtkTypeRevisionMacro(vtkMeshQualityExtended,vtkMeshQuality);
00051 static vtkMeshQualityExtended* New();
00052
00053
00054
00055
00056
00057
00058
00059 void SetHexQualityMeasureToEdgeCollapse()
00060 {
00061 this->SetHexQualityMeasure( VTK_QUALITY_EDGE_COLLAPSE );
00062 }
00063 void SetHexQualityMeasureToAngleOutOfBounds()
00064 {
00065 this->SetHexQualityMeasure( VTK_QUALITY_ANGLE_OUT_OF_BOUNDS );
00066 }
00067
00068 void SetTetQualityMeasureToEdgeCollapse()
00069 {
00070 this->SetTetQualityMeasure( VTK_QUALITY_EDGE_COLLAPSE );
00071 }
00072 void SetTetQualityMeasureToAngleOutOfBounds()
00073 {
00074 this->SetTetQualityMeasure( VTK_QUALITY_ANGLE_OUT_OF_BOUNDS );
00075 }
00076
00077 void SetQuadQualityMeasureToEdgeCollapse()
00078 {
00079 this->SetQuadQualityMeasure( VTK_QUALITY_EDGE_COLLAPSE );
00080 }
00081 void SetQuadQualityMeasureToAngleOutOfBounds()
00082 {
00083 this->SetQuadQualityMeasure( VTK_QUALITY_ANGLE_OUT_OF_BOUNDS );
00084 }
00085
00086 void SetTriangleQualityMeasureToEdgeCollapse()
00087 {
00088 this->SetTriangleQualityMeasure( VTK_QUALITY_EDGE_COLLAPSE );
00089 }
00090 void SetTriangleQualityMeasureToAngleOutOfBounds()
00091 {
00092 this->SetTriangleQualityMeasure( VTK_QUALITY_ANGLE_OUT_OF_BOUNDS );
00093 }
00094
00095 vtkSetMacro(MetricTolerance, double);
00096 vtkGetMacro(MetricTolerance, double);
00097
00098
00099
00100
00101
00102
00103
00104
00105 static double HexEdgeCollapse( vtkCell* cell );
00106 static double HexAngleOutOfBounds(vtkCell* cell);
00107 static double TriangleEdgeCollapse( vtkCell* cell);
00108 static double QuadEdgeCollapse( vtkCell* cell);
00109 static double TetEdgeCollapse( vtkCell* cell);
00110 static double TriangleAngleOutOfBounds( vtkCell* cell);
00111 static double QuadAngleOutOfBounds( vtkCell* cell);
00112 static double TetAngleOutOfBounds( vtkCell* cell);
00113
00114 protected:
00115 vtkMeshQualityExtended();
00116 ~vtkMeshQualityExtended();
00117
00118 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00119
00120 private:
00121 vtkMeshQualityExtended( const vtkMeshQualityExtended& );
00122 void operator = ( const vtkMeshQualityExtended& );
00123
00124 double MetricTolerance;
00125 };
00126
00127 #endif // vtkMeshQualityExtended_h