From a162289e8427c9cc347ae20ae2b1e41875dd6e2f Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Tue, 26 Oct 2010 16:23:13 +0000
Subject: [PATCH] better default factory

---
 Geo/GModel.cpp | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 1783b3f1d2..c6ad48039e 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -136,9 +136,13 @@ GModel::GModel(std::string name)
   list.push_back(this);
   // at the moment we always create (at least an empty) GEO model
   _createGEOInternals();
+
 #if defined(HAVE_OCC)
-  _factory = new OCCFactory();
+  setFactory("OpenCASCADE");
+#else
+  setFactory("Gmsh");
 #endif
+
 #if defined(HAVE_MESH)
   _fields = new FieldManager();
 #endif
@@ -181,17 +185,17 @@ int GModel::setCurrent(GModel *m)
 void GModel::setFactory(std::string name)
 {
   if(_factory) delete _factory;
-  _factory = new GeoFactory(); //creates by default a GeoFactory
-  if(name == "Gmsh") {
-    _factory = new GeoFactory();
-  }
-  else if(name == "OpenCASCADE"){
+  if(name == "OpenCASCADE"){
 #if defined(HAVE_OCC)
     _factory = new OCCFactory();
 #else
-    Msg::Error("Missing OpenCASCADE support");
+    Msg::Error("Missing OpenCASCADE support: using Gmsh GEO factory instead");
+    _factory = new GeoFactory();
 #endif
   }
+  else{
+    _factory = new GeoFactory();
+  }
 }
 
 GModel *GModel::findByName(std::string name)
-- 
GitLab