31 #ifndef __vtkCellQuality_h
32 #define __vtkCellQuality_h
67 RELATIVE_SIZE_SQUARED,
93 vtkSetMacro(QualityMeasure,
int);
94 vtkGetMacro(QualityMeasure,
int);
97 void SetQualityMeasureToArea ()
99 this->SetQualityMeasure(AREA);
101 void SetQualityMeasureToAspectBeta ()
103 this->SetQualityMeasure(ASPECT_BETA);
105 void SetQualityMeasureToAspectFrobenius ()
107 this->SetQualityMeasure(ASPECT_FROBENIUS);
109 void SetQualityMeasureToAspectGamma ()
111 this->SetQualityMeasure(ASPECT_GAMMA);
113 void SetQualityMeasureToAspectRatio ()
115 this->SetQualityMeasure(ASPECT_RATIO);
117 void SetQualityMeasureToCollapseRatio ()
119 this->SetQualityMeasure(COLLAPSE_RATIO);
121 void SetQualityMeasureToCondition ()
123 this->SetQualityMeasure(CONDITION);
125 void SetQualityMeasureToDiagonal ()
127 this->SetQualityMeasure(DIAGONAL);
129 void SetQualityMeasureToDimension ()
133 void SetQualityMeasureToDistortion ()
135 this->SetQualityMeasure(DISTORTION);
137 void SetQualityMeasureToJacobian ()
139 this->SetQualityMeasure(JACOBIAN);
141 void SetQualityMeasureToMaxAngle ()
143 this->SetQualityMeasure(MAX_ANGLE);
145 void SetQualityMeasureToMaxAspectFrobenius ()
147 this->SetQualityMeasure(MAX_ASPECT_FROBENIUS);
149 void SetQualityMeasureToMaxEdgeRatio ()
151 this->SetQualityMeasure(MAX_EDGE_RATIO);
153 void SetQualityMeasureToMedAspectFrobenius ()
155 this->SetQualityMeasure(MED_ASPECT_FROBENIUS);
157 void SetQualityMeasureToMinAngle ()
159 this->SetQualityMeasure(MIN_ANGLE);
161 void SetQualityMeasureToOddy ()
163 this->SetQualityMeasure(ODDY);
165 void SetQualityMeasureToRadiusRatio ()
167 this->SetQualityMeasure(RADIUS_RATIO);
169 void SetQualityMeasureToRelativeSizeSquared ()
171 this->SetQualityMeasure(RELATIVE_SIZE_SQUARED);
173 void SetQualityMeasureToScaledJacobian ()
175 this->SetQualityMeasure(SCALED_JACOBIAN);
177 void SetQualityMeasureToShapeAndSize ()
179 this->SetQualityMeasure(SHAPE_AND_SIZE);
181 void SetQualityMeasureToShape ()
183 this->SetQualityMeasure(SHAPE);
185 void SetQualityMeasureToShearAndSize ()
187 this->SetQualityMeasure(SHEAR_AND_SIZE);
189 void SetQualityMeasureToShear ()
191 this->SetQualityMeasure(SHEAR);
193 void SetQualityMeasureToSkew ()
195 this->SetQualityMeasure(SKEW);
197 void SetQualityMeasureToStretch ()
199 this->SetQualityMeasure(STRETCH);
201 void SetQualityMeasureToTaper ()
203 this->SetQualityMeasure(TAPER);
205 void SetQualityMeasureToVolume ()
207 this->SetQualityMeasure(VOLUME);
209 void SetQualityMeasureToWarpage ()
211 this->SetQualityMeasure(WARPAGE);
219 vtkSetMacro(UnsupportedGeometry,
double);
220 vtkGetMacro(UnsupportedGeometry,
double);
229 vtkSetMacro(UndefinedQuality,
double);
230 vtkGetMacro(UndefinedQuality,
double);
233 double TriangleStripArea (
vtkCell*);
246 double ComputeTriangleQuality (
vtkCell*);
257 double ComputeQuadQuality (
vtkCell*);
265 double ComputeTetQuality (
vtkCell*);
273 double ComputeHexQuality (
vtkCell*);
278 double ComputeTriangleStripQuality (
vtkCell*);
282 double ComputePixelQuality (
vtkCell*);
292 static int GetCurrentTriangleNormal (
double point [3],
double normal [3]);
293 static double CurrentTriNormal [3];
313 #endif // vtkCellQuality_h