From 0c5bb0e216e5da165d977b8567965a1972bfecb1 Mon Sep 17 00:00:00 2001
From: Thomas Toulorge <thomas.toulorge@mines-paristech.fr>
Date: Tue, 4 Nov 2014 15:21:36 +0000
Subject: [PATCH] Modified blob creation in mesh quality optimizer to take
 "onlyValidity" parameter into account

---
 .../MeshQualityOptimizer.cpp                   | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
index 90794527f8..0c76ca9f93 100644
--- a/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
+++ b/contrib/MeshQualityOptimizer/MeshQualityOptimizer.cpp
@@ -27,6 +27,7 @@ struct QualPatchDefParameters : public MeshOptPatchDef
   virtual int inPatch(const SPoint3 &badBary, double limDist,
                       MElement *el, GEntity* gEnt) const;
 private:
+  bool _onlyValidity;
   bool _excludeQuad, _excludeHex, _excludePrism, _excludeBL;
   double _idealJacMin, _invCondNumMin;
   double _distanceFactor;
@@ -35,6 +36,7 @@ private:
 
 QualPatchDefParameters::QualPatchDefParameters(const MeshQualOptParameters &p)
 {
+  _onlyValidity = p.onlyValidity;
   _excludeQuad = p.excludeQuad;
   _excludeHex = p.excludeHex;
   _excludePrism = p.excludePrism;
@@ -73,12 +75,16 @@ double QualPatchDefParameters::elBadness(MElement *el, GEntity* gEnt) const
       if (itBLEl != blc->_toFirst.end()) return 1.;
     }
   }
-//  double jMin, jMax;
-//  el->idealJacRange(jMin, jMax);
-//  return jMin-_idealJacMin;
-  double iCNMin, iCNMax;
-  el->signedInvCondNumRange(iCNMin, iCNMax);
-  return iCNMin-_invCondNumMin;
+  if (_onlyValidity) {
+    double jMin, jMax;
+    el->idealJacRange(jMin, jMax);
+    return jMin-_idealJacMin;
+  }
+  else {
+    double iCNMin, iCNMax;
+    el->signedInvCondNumRange(iCNMin, iCNMax);
+    return iCNMin-_invCondNumMin;
+  }
 }
 
 
-- 
GitLab