From 87fcebd53816047ad072b81401f9a96202bc4435 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 22 Jul 2020 20:32:34 +0200 Subject: [PATCH] smesh: [skip ci] port Netgen plugin to v6.2 --- .../src/NETGENPlugin/NETGENPlugin_Mesher.cpp | 12 ++++----- .../NETGENPlugin_NETGEN_2D_ONLY.cpp | 27 +++++++++++++++---- .../NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp | 2 +- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp index 88a45132c6..15df587dde 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_Mesher.cpp @@ -99,16 +99,14 @@ namespace nglib { # pragma clang diagnostic pop #endif +//#define NETGEN_VERSION_6_2_1909 + namespace netgen { #if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#ifdef NETGEN_VERSION_6_2_1909 typedef Refinement OCCRefinementSurfaces; - // https://github.com/NGSolve/netgen/commit/bee097b153b43d9346819789534536cd1b773428 - int OCCGenerateMesh(OCCGeometry& geo, shared_ptr& mesh, MeshingParameters& params) - { - //geo.SetOCCParameters(occparam); - auto result = geo.GenerateMesh(mesh, params); - return result; - } +#endif + DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); #elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&, int, int); #elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp index 8707e4505a..4f4f6c2f1b 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cpp @@ -84,9 +84,26 @@ namespace nglib { # pragma clang diagnostic pop #endif +//#define NETGEN_VERSION_6_2_1909 + namespace netgen { #if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) - extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); +#ifdef NETGEN_VERSION_6_2_1909 + // https://github.com/NGSolve/netgen/commit/bee097b153b43d9346819789534536cd1b773428 + int OCCGenerateMesh(OCCGeometry& geo, shared_ptr& mesh, MeshingParameters& mparams) + { + //geo.SetOCCParameters(occparam); + int perfstepsend = mparams.perfstepsend; + if (perfstepsend == netgen::MESHCONST_OPTSURFACE) { + mparams.perfstepsend = netgen::MESHCONST_MESHSURFACE; + } + auto result = geo.GenerateMesh(mesh, mparams); + mparams.perfstepsend = perfstepsend; + return result; + } +#else + DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); +#endif #elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&, int, int); #elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0) @@ -95,7 +112,7 @@ namespace netgen { DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, Mesh*&, int, int, char*); #endif DLL_HEADER extern MeshingParameters mparam; -#if NETGEN_VERSION < NETGEN_VERSION_STRING(6,2) +#ifndef NETGEN_VERSION_6_2_1909 DLL_HEADER extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh); #endif } @@ -316,7 +333,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, netgen::mparam.minh = aMesher.GetDefaultMinSize( aShape, netgen::mparam.maxh ); } // set local size depending on curvature and NOT closeness of EDGEs -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#ifdef NETGEN_VERSION_6_2_1909 // https://github.com/NGSolve/netgen/commit/073e215bb6bc97d8712990cba9cc6e9e1e4d8b2a netgen::mparam.closeedgefac = std::nullopt; #else @@ -324,7 +341,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, #endif //netgen::occparam.resthcloseedgefac = 1.0 + netgen::mparam.grading; occgeoComm.face_maxh = netgen::mparam.maxh; -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#ifdef NETGEN_VERSION_6_2_1909 // https://github.com/NGSolve/netgen/commit/bee097b153b43d9346819789534536cd1b773428 occgeoComm.Analyse(*ngMeshes[0], netgen::mparam); #else @@ -334,7 +351,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, occgeoComm.vmap.Clear(); // set local size according to size of existing segments -#if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) +#ifdef NETGEN_VERSION_6_2_1909 const double factor = netgen::mparam.closeedgefac.value(); #else const double factor = netgen::occparam.resthcloseedgefac; diff --git a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp index 2c63899a71..6154b0482d 100644 --- a/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp +++ b/src/3rdParty/salomesmesh/src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cpp @@ -96,7 +96,7 @@ namespace nglib { } namespace netgen { #if NETGEN_VERSION >= NETGEN_VERSION_STRING(6,2) - extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); + DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&); #elif NETGEN_VERSION >= NETGEN_VERSION_STRING(6,0) DLL_HEADER extern int OCCGenerateMesh (OCCGeometry&, shared_ptr&, MeshingParameters&, int, int); #elif NETGEN_VERSION >= NETGEN_VERSION_STRING(5,0)