From 885d29542056bd25f6797c5b9d73fb197c20914c Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 30 May 2011 06:35:22 +0000
Subject: [PATCH] allow saving brep/step files

---
 Fltk/menuWindow.cpp   | 8 ++++++++
 Geo/GModelIO_OCC.cpp  | 4 ++--
 Graphics/drawMesh.cpp | 2 +-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp
index cb63cb5f24..5bb8e21520 100644
--- a/Fltk/menuWindow.cpp
+++ b/Fltk/menuWindow.cpp
@@ -235,6 +235,8 @@ static int _save_msh(const char *name){ return mshFileDialog(name); }
 static int _save_pos(const char *name){ return posFileDialog(name); }
 static int _save_options(const char *name){ return optionsFileDialog(name); }
 static int _save_geo(const char *name){ return geoFileDialog(name); }
+static int _save_brep(const char *name){ CreateOutputFile(name, FORMAT_BREP); return 1; }
+static int _save_step(const char *name){ CreateOutputFile(name, FORMAT_STEP); return 1; }
 static int _save_cgns(const char *name){ return cgnsFileDialog(name); }
 static int _save_unv(const char *name){ return unvFileDialog(name); }
 static int _save_vtk(const char *name){ return genericMeshFileDialog
@@ -286,6 +288,8 @@ static int _save_auto(const char *name)
   case FORMAT_POS  : return _save_pos(name);
   case FORMAT_OPT  : return _save_options(name);
   case FORMAT_GEO  : return _save_geo(name);
+  case FORMAT_BREP : return _save_brep(name);
+  case FORMAT_STEP : return _save_step(name);
   case FORMAT_CGNS : return _save_cgns(name);
   case FORMAT_UNV  : return _save_unv(name);
   case FORMAT_VTK  : return _save_vtk(name);
@@ -330,6 +334,10 @@ static void file_save_as_cb(Fl_Widget *w, void *data)
     {"Gmsh Mesh Statistics" TT "*.pos", _save_pos},
     {"Gmsh Options" TT "*.opt", _save_options},
     {"Gmsh Unrolled Geometry" TT "*.geo", _save_geo},
+#if defined(HAVE_OCC)
+    {"OpenCASCADE STEP" TT "*.step", _save_step},
+    {"OpenCASCADE BRep" TT "*.brep", _save_brep},
+#endif
     {"Abaqus INP Mesh" TT "*.inp", _save_inp},
 #if defined(HAVE_LIBCGNS)
     {"CGNS (Experimental)" TT "*.cgns", _save_cgns},
diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp
index c08a12d94c..88969c506e 100644
--- a/Geo/GModelIO_OCC.cpp
+++ b/Geo/GModelIO_OCC.cpp
@@ -969,7 +969,7 @@ int GModel::readOCCIGES(const std::string &fn)
 int GModel::writeOCCBREP(const std::string &fn)
 {
   if (!_occ_internals){
-    Msg::Error("No OCC Model Found");
+    Msg::Error("No OpenCASCADE model found");
     return 0;
   }
   else
@@ -980,7 +980,7 @@ int GModel::writeOCCBREP(const std::string &fn)
 int GModel::writeOCCSTEP(const std::string &fn)
 {
   if (!_occ_internals){
-    Msg::Error("No OCC Model Found");
+    Msg::Error("No OpenCASCADE model found");
     return 0;
   }
   else
diff --git a/Graphics/drawMesh.cpp b/Graphics/drawMesh.cpp
index ca45b85e73..598ba737c3 100644
--- a/Graphics/drawMesh.cpp
+++ b/Graphics/drawMesh.cpp
@@ -315,7 +315,7 @@ static void drawVoronoiDual(std::vector<T*> &elements)
   gl2psDisable(GL2PS_LINE_STIPPLE);
 }
 
-// Routines for filling and drawing the vertex arrays
+// Routine for drawing the vertex arrays
 
 static void drawArrays(drawContext *ctx, GEntity *e, VertexArray *va, GLint type, 
                        bool useNormalArray, int forceColor=0, unsigned int color=0)
-- 
GitLab