diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 1783b3f1d22f46f2e231d4662f26db9d3de63873..c6ad48039eddcf6d89fe8babdbadb048a456cbae 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)