diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index 44be2ace24ef9cd21ea1d0b247b220ae0a9082e7..2dc828e0daa8ff3f6c9f79284f3fefb41c5ce311 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -801,11 +801,11 @@ StringXNumber GeometryOptions_Number[] = { "Display size of normal vectors (in pixels)" }, { F|O, "OCCFixSmallEdges" , opt_geometry_occ_fix_small_edges , 1. , - "Fix small edges in OpenCascade models" }, + "Fix small edges in STEP, IGES and BRep models" }, { F|O, "OCCFixSmallFaces" , opt_geometry_occ_fix_small_faces , 1. , - "Fix small faces in OpenCascade models" }, + "Fix small faces in STEP, IGES and BRep models" }, { F|O, "OCCSewFaces" , opt_geometry_occ_sew_faces , 0. , - "Sew faces in OpenCascade models" }, + "Sew faces in STEP, IGES and BRep models" }, { F|O, "OldCircle" , opt_geometry_old_circle , 0. , "Use old circle description (compatibility option for old Gmsh geometries)" }, { F|O, "OldNewReg" , opt_geometry_old_newreg , 1. , diff --git a/Common/Options.cpp b/Common/Options.cpp index 62b3ba82b91ebfac9bc9f9de5a4bd01a203c13aa..e6c70adf00a67b65625995ffe6a732fb68fef266 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,4 +1,4 @@ -// $Id: Options.cpp,v 1.331 2007-01-23 08:01:07 geuzaine Exp $ +// $Id: Options.cpp,v 1.332 2007-01-24 10:53:04 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -3993,6 +3993,11 @@ double opt_geometry_occ_fix_small_edges(OPT_ARGS_NUM) { if(action & GMSH_SET) CTX.geom.occ_fix_small_edges = val ? 1 : 0; +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) { + WID->geo_butt[11]->value(CTX.geom.occ_fix_small_edges); + } +#endif return CTX.geom.occ_fix_small_edges; } @@ -4000,6 +4005,11 @@ double opt_geometry_occ_fix_small_faces(OPT_ARGS_NUM) { if(action & GMSH_SET) CTX.geom.occ_fix_small_faces = val ? 1 : 0; +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) { + WID->geo_butt[12]->value(CTX.geom.occ_fix_small_faces); + } +#endif return CTX.geom.occ_fix_small_faces; } @@ -4007,6 +4017,11 @@ double opt_geometry_occ_sew_faces(OPT_ARGS_NUM) { if(action & GMSH_SET) CTX.geom.occ_sew_faces = val ? 1 : 0; +#if defined(HAVE_FLTK) + if(WID && (action & GMSH_GUI)) { + WID->geo_butt[13]->value(CTX.geom.occ_sew_faces); + } +#endif return CTX.geom.occ_sew_faces; } diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index 3cee5aa787facd955380b2f885638d473a222610..872bdf898edb56b261906ed207096b3d07ad5c8d 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.506 2007-01-22 16:31:42 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.507 2007-01-24 10:53:04 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -1006,8 +1006,11 @@ void geometry_options_ok_cb(CALLBACK_ARGS) opt_geometry_surfaces_num(0, GMSH_SET, WID->geo_butt[6]->value()); opt_geometry_volumes_num(0, GMSH_SET, WID->geo_butt[7]->value()); opt_geometry_auto_coherence(0, GMSH_SET, WID->geo_butt[8]->value()); - opt_geometry_highlight_orphans(0, GMSH_SET, WID->geo_butt[10]->value()); opt_geometry_light(0, GMSH_SET, WID->geo_butt[9]->value()); + opt_geometry_highlight_orphans(0, GMSH_SET, WID->geo_butt[10]->value()); + opt_geometry_occ_fix_small_edges(0, GMSH_SET, WID->geo_butt[11]->value()); + opt_geometry_occ_fix_small_faces(0, GMSH_SET, WID->geo_butt[12]->value()); + opt_geometry_occ_sew_faces(0, GMSH_SET, WID->geo_butt[13]->value()); opt_geometry_normals(0, GMSH_SET, WID->geo_value[0]->value()); opt_geometry_tangents(0, GMSH_SET, WID->geo_value[1]->value()); diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index 4062120690d6d64cdc801856b6b4de27c3cf5422..6ed6dc40fa574832319c94b55e1e56c995c20139 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.593 2007-01-22 16:31:42 geuzaine Exp $ +// $Id: GUI.cpp,v 1.594 2007-01-24 10:53:04 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -2084,14 +2084,31 @@ void GUI::create_option_window() Fl_Group *o = new Fl_Group(L + WB, WB + BH, width - 2 * WB, height - 2 * WB - BH, "General"); o->hide(); - geo_butt[8] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 1 * BH, BW, BH, "Remove duplicate entities automatically"); + geo_value[2] = new Fl_Value_Input(L + 2 * WB, 2 * WB + 1 * BH, IW, BH, "Geometrical tolerance"); + geo_value[2]->align(FL_ALIGN_RIGHT); + geo_value[2]->callback(geometry_options_ok_cb); + + geo_butt[8] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 2 * BH, BW, BH, "Remove duplicate entities in GEO models"); geo_butt[8]->type(FL_TOGGLE_BUTTON); geo_butt[8]->callback(geometry_options_ok_cb); - geo_value[2] = new Fl_Value_Input(L + 2 * WB, 2 * WB + 2 * BH, IW, BH, "Geometrical tolerance"); - geo_value[2]->align(FL_ALIGN_RIGHT); - geo_value[2]->callback(geometry_options_ok_cb); + geo_butt[11] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 3 * BH, BW, BH, "Remove small edges in STEP, IGES and BRep models"); + geo_butt[11]->type(FL_TOGGLE_BUTTON); + geo_butt[11]->callback(geometry_options_ok_cb); + + geo_butt[12] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 4 * BH, BW, BH, "Remove small faces in STEP, IGES and BRep models"); + geo_butt[12]->type(FL_TOGGLE_BUTTON); + geo_butt[12]->callback(geometry_options_ok_cb); + geo_butt[13] = new Fl_Check_Button(L + 2 * WB, 2 * WB + 5 * BH, BW, BH, "Sew faces in STEP, IGES and BRep models"); + geo_butt[13]->type(FL_TOGGLE_BUTTON); + geo_butt[13]->callback(geometry_options_ok_cb); + +#if !defined(HAVE_OCC) + geo_butt[11]->deactivate(); + geo_butt[12]->deactivate(); + geo_butt[13]->deactivate(); +#endif o->end(); } {