diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 5647542c4d9020691acab2521a0e0ea3770cbd32..3570ac3637b5702a70d2e46a9aa232d2c53cdf01 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,5 @@ +4.10.1 (Work-in-progress): small bug fixes. + 4.10.0 (April 25, 2022): more flexible homology/cohomology workflow in the API; "Attractor" field is now just a synonym for the newer (and more efficient) "Distance" field; periodic bsplines now use the same default multiplicities in diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cc3c7c669a2a166867bd04ea0af4991efcc275e..a4d32e7ddca94c64400b30ea050ecf736c5febc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,7 @@ opt(ZIPPER "Enable Zip file compression/decompression" OFF) set(GMSH_MAJOR_VERSION 4) set(GMSH_MINOR_VERSION 10) -set(GMSH_PATCH_VERSION 0) +set(GMSH_PATCH_VERSION 1) if(NOT GMSH_EXTRA_VERSION) set(GMSH_EXTRA_VERSION "") endif() diff --git a/doc/texinfo/version.texi b/doc/texinfo/version.texi index b30862eea925209bbaa3b9c8f9e4b1d345ff48be..27a785272077d43b400bb728ae9fc97d8d8d9a72 100644 --- a/doc/texinfo/version.texi +++ b/doc/texinfo/version.texi @@ -1,4 +1,4 @@ @c This file was generated by cmake: do not edit manually! -@set GMSH-VERSION 4.10.0 (development version) +@set GMSH-VERSION 4.10.1 (development version) @set GITLAB-PREFIX https://gitlab.onelab.info/gmsh/gmsh/blob/master diff --git a/src/common/Context.h b/src/common/Context.h index 3a6cfa99465a456cdfa2042ddbfdd9476542e4d4..fde6d0b98e8a021f425bc2fdcdac6703af16ea9a 100644 --- a/src/common/Context.h +++ b/src/common/Context.h @@ -93,6 +93,7 @@ struct contextGeometryOptions { // geometry algorithms int oldCircle, oldNewreg, oldRuledSurface; int extrudeSplinePoints, extrudeReturnLateral; + std::string pipeDefaultTrihedron; int autoCoherence; int autoExtrude; // FIXME: temporary for auto-extrude testing double tolerance, toleranceBoolean, snap[3], transform[3][3], offset[3]; diff --git a/src/common/DefaultOptions.h b/src/common/DefaultOptions.h index 7387edc9166b24bc869aa35b2c0c03d4b8eb6cb2..68b39ea39b4c43493cbc736d901629a05f9f7106 100644 --- a/src/common/DefaultOptions.h +++ b/src/common/DefaultOptions.h @@ -161,6 +161,9 @@ StringXString GeometryOptions_String[] = { "OpenCASCADE behavior); the option should be set before importing the STEP or " "IGES file"}, + { F|O, "PipeDefaultTrihedron" , opt_geometry_pipe_default_trihedron, + "DiscreteTrihedron" , "Default trihedron type when creating pipes" }, + { 0, nullptr , nullptr , "" , nullptr } } ; diff --git a/src/common/Options.cpp b/src/common/Options.cpp index c2ab1061613871682b8dcc6adcf312808c355dd3..21578b6b7dcfb0740e62c208d1e9f559176a248b 100644 --- a/src/common/Options.cpp +++ b/src/common/Options.cpp @@ -1430,6 +1430,12 @@ std::string opt_geometry_occ_target_unit(OPT_ARGS_STR) return CTX::instance()->geom.occTargetUnit; } +std::string opt_geometry_pipe_default_trihedron(OPT_ARGS_STR) +{ + if(action & GMSH_SET) CTX::instance()->geom.pipeDefaultTrihedron = val; + return CTX::instance()->geom.pipeDefaultTrihedron; +} + std::string opt_solver_socket_name(OPT_ARGS_STR) { if(action & GMSH_SET) CTX::instance()->solver.socketName = val; diff --git a/src/common/Options.h b/src/common/Options.h index c9b1c63183a417fa8c2a6003ec3c3c8057589d96..2c9b95f008b6facd0949984218eca1179f18144a 100644 --- a/src/common/Options.h +++ b/src/common/Options.h @@ -68,6 +68,7 @@ std::string opt_geometry_double_clicked_curve_command(OPT_ARGS_STR); std::string opt_geometry_double_clicked_surface_command(OPT_ARGS_STR); std::string opt_geometry_double_clicked_volume_command(OPT_ARGS_STR); std::string opt_geometry_occ_target_unit(OPT_ARGS_STR); +std::string opt_geometry_pipe_default_trihedron(OPT_ARGS_STR); std::string opt_solver_socket_name(OPT_ARGS_STR); std::string opt_solver_name(OPT_ARGS_STR); std::string opt_solver_name0(OPT_ARGS_STR); diff --git a/src/geo/GModelIO_OCC.cpp b/src/geo/GModelIO_OCC.cpp index c471d335d853d5e5644666034e3c8a54911e98dc..a150bd63b588192e24c618d9b63264c9edca1d17 100644 --- a/src/geo/GModelIO_OCC.cpp +++ b/src/geo/GModelIO_OCC.cpp @@ -3190,7 +3190,7 @@ bool OCC_Internals::_extrudePerDim( // DiscreteTrihedron seems the most robust; CorrectedFrenet e.g. fails on // very simple cases with straight extrusions. GeomFill_Trihedron mode = GeomFill_IsDiscreteTrihedron; - if(trihedron == "" || trihedron == "DiscreteTrihedron") + if(trihedron == "DiscreteTrihedron") mode = GeomFill_IsDiscreteTrihedron; else if(trihedron == "CorrectedFrenet") mode = GeomFill_IsCorrectedFrenet; @@ -3315,8 +3315,10 @@ bool OCC_Internals::addPipe(const std::vector<std::pair<int, int> > &inDimTags, std::vector<std::pair<int, int> > &outDimTags, const std::string &trihedron) { + std::string t = trihedron; + if(t.empty()) t = CTX::instance()->geom.pipeDefaultTrihedron; return _extrude(2, inDimTags, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., wireTag, - outDimTags, nullptr, trihedron); + outDimTags, nullptr, t); } bool OCC_Internals::_fillet(int mode, const std::vector<int> &volumeTags,