From 8da73660d3172e5e1143b521d621937ef7badf51 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sun, 8 Jun 2014 08:03:24 +0000
Subject: [PATCH] don't remove degenerate entities by default: it breaks
 geometrical boundary layers; set Geometry.AutoCoherence=2 to active this

---
 Common/DefaultOptions.h | 2 +-
 Geo/Geo.cpp             | 8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 55233156ca..2e6498283e 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -737,7 +737,7 @@ StringXNumber GeneralOptions_Number[] = {
 
 StringXNumber GeometryOptions_Number[] = {
   { F|O, "AutoCoherence" , opt_geometry_auto_coherence , 1. ,
-    "Should all duplicate entities be automatically removed?" },
+    "Should all duplicate entities be automatically removed? (if ==2, also remove degenerate entities)" },
 
   { F,   "Clip" , opt_geometry_clip , 0.,
     "Enable clipping planes? (Plane[i]=2^i, i=0,...,5)" },
diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp
index 14a8128d8e..dc09d2882f 100644
--- a/Geo/Geo.cpp
+++ b/Geo/Geo.cpp
@@ -3085,9 +3085,11 @@ static void ReplaceAllDuplicates(std::vector<std::map<int, int> > &report)
   ReplaceDuplicateCurves(curve_report);
   ReplaceDuplicateSurfaces(surface_report);
 
-  RemoveDegenerateCurves();
-  RemoveDegenerateSurfaces();
-  RemoveDegenerateVolumes();
+  if(CTX::instance()->geom.autoCoherence == 2){
+    RemoveDegenerateCurves();
+    RemoveDegenerateSurfaces();
+    RemoveDegenerateVolumes();
+  }
 }
 
 void ReplaceAllDuplicates()
-- 
GitLab