IPAL54027: Projection algo is very long on a face with many edges
args of StdMeshers_FaceSide::GetFaceWires() changed
This commit is contained in:
parent
7a5a26b77a
commit
6a883c4b4a
@ -926,7 +926,7 @@ bool NETGENPlugin_Mesher::FillNgMesh(netgen::OCCGeometry& occgeom,
|
|||||||
|
|
||||||
// get all nodes from connected <edges>
|
// get all nodes from connected <edges>
|
||||||
const bool isQuad = smDS->IsQuadratic();
|
const bool isQuad = smDS->IsQuadratic();
|
||||||
StdMeshers_FaceSide fSide( face, edges, _mesh, isForwad, isQuad );
|
StdMeshers_FaceSide fSide( face, edges, _mesh, isForwad, isQuad, &helper );
|
||||||
const vector<UVPtStruct>& points = fSide.GetUVPtStruct();
|
const vector<UVPtStruct>& points = fSide.GetUVPtStruct();
|
||||||
if ( points.empty() )
|
if ( points.empty() )
|
||||||
return false; // invalid node params?
|
return false; // invalid node params?
|
||||||
@ -2789,7 +2789,7 @@ bool NETGENPlugin_Mesher::Compute()
|
|||||||
helper.SetSubShape( F );
|
helper.SetSubShape( F );
|
||||||
TSideVector wires =
|
TSideVector wires =
|
||||||
StdMeshers_FaceSide::GetFaceWires( F, *_mesh, /*skipMediumNodes=*/true,
|
StdMeshers_FaceSide::GetFaceWires( F, *_mesh, /*skipMediumNodes=*/true,
|
||||||
error, viscousMesh );
|
error, &helper, viscousMesh );
|
||||||
error = AddSegmentsToMesh( *_ngMesh, occgeo, wires, helper, nodeVec );
|
error = AddSegmentsToMesh( *_ngMesh, occgeo, wires, helper, nodeVec );
|
||||||
|
|
||||||
if ( !error ) error = SMESH_ComputeError::New();
|
if ( !error ) error = SMESH_ComputeError::New();
|
||||||
|
@ -355,7 +355,7 @@ bool NETGENPlugin_NETGEN_2D_ONLY::Compute(SMESH_Mesh& aMesh,
|
|||||||
// get all EDGEs of a FACE
|
// get all EDGEs of a FACE
|
||||||
// ------------------------
|
// ------------------------
|
||||||
TSideVector wires =
|
TSideVector wires =
|
||||||
StdMeshers_FaceSide::GetFaceWires( F, aMesh, ignoreMediumNodes, faceErr, proxyMesh );
|
StdMeshers_FaceSide::GetFaceWires( F, aMesh, ignoreMediumNodes, faceErr, &helper, proxyMesh );
|
||||||
if ( faceErr && !faceErr->IsOK() )
|
if ( faceErr && !faceErr->IsOK() )
|
||||||
continue;
|
continue;
|
||||||
int nbWires = wires.size();
|
int nbWires = wires.size();
|
||||||
|
Loading…
Reference in New Issue
Block a user