From: eap Date: Thu, 9 Mar 2017 08:08:50 +0000 (+0300) Subject: IPAL54027: Projection algo is very long on a face with many edges X-Git-Tag: V8_3_0b1 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=e6bf0d9d162cab0224e4faced242e16c9b3aeb15;p=plugins%2Fnetgenplugin.git IPAL54027: Projection algo is very long on a face with many edges args of StdMeshers_FaceSide::GetFaceWires() changed --- diff --git a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx index fc8705f..be4aa07 100644 --- a/src/NETGENPlugin/NETGENPlugin_Mesher.cxx +++ b/src/NETGENPlugin/NETGENPlugin_Mesher.cxx @@ -926,7 +926,7 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry& occgeom, // get all nodes from connected const bool isQuad = smDS->IsQuadratic(); - StdMeshers_FaceSide fSide( face, edges, _mesh, isForwad, isQuad ); + StdMeshers_FaceSide fSide( face, edges, _mesh, isForwad, isQuad, &helper ); const vector& points = fSide.GetUVPtStruct(); if ( points.empty() ) return false; // invalid node params? @@ -2789,7 +2789,7 @@ bool NETGENPlugin_Mesher::Compute() helper.SetSubShape( F ); TSideVector wires = StdMeshers_FaceSide::GetFaceWires( F, *_mesh, /*skipMediumNodes=*/true, - error, viscousMesh ); + error, &helper, viscousMesh ); error = AddSegmentsToMesh( *_ngMesh, occgeo, wires, helper, nodeVec ); if ( !error ) error = SMESH_ComputeError::New(); diff --git a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx index b3eb49e..5cc5607 100644 --- a/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx +++ b/src/NETGENPlugin/NETGENPlugin_NETGEN_2D_ONLY.cxx @@ -355,7 +355,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh, // get all EDGEs of a FACE // ------------------------ TSideVector wires = - StdMeshers_FaceSide::GetFaceWires( F, aMesh, ignoreMediumNodes, faceErr, proxyMesh ); + StdMeshers_FaceSide::GetFaceWires( F, aMesh, ignoreMediumNodes, faceErr, &helper, proxyMesh ); if ( faceErr && !faceErr->IsOK() ) continue; int nbWires = wires.size();