From: eap Date: Thu, 14 May 2009 12:33:57 +0000 (+0000) Subject: 0020042: EDF 864 SMESH: Mesh of holes (GHS3D/BLSurf) X-Git-Tag: V5_1_2~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=deaf839b4bb020527a0390e6b1d4880e8edf53d7;p=plugins%2Fghs3dplugin.git 0020042: EDF 864 SMESH: Mesh of holes (GHS3D/BLSurf) fix findShapeID() for triangle near seam geom edge --- diff --git a/src/GHS3DPlugin_GHS3D.cxx b/src/GHS3DPlugin_GHS3D.cxx index 360ae87..8c30c7c 100644 --- a/src/GHS3DPlugin_GHS3D.cxx +++ b/src/GHS3DPlugin_GHS3D.cxx @@ -578,10 +578,14 @@ static int findShapeID(SMESH_Mesh& mesh, BRepAdaptor_Surface surface( geomFace ); gp_XY UV(0,0); const SMDS_MeshNode* nodes[3] = { node1, node2, node3 }; + const SMDS_MeshNode* nNotOnSeamEdge = 0; + for ( int n = 0; !nNotOnSeamEdge && n < 3; ++n ) + if ( !helper.IsSeamShape( nodes[n]->GetPosition()->GetShapeId() )) + nNotOnSeamEdge = nodes[n]; for ( int n = 0; n < 3; ++n ) { const SMDS_MeshNode* node = nodes[n]; - gp_XY uv = helper.GetNodeUV( geomFace, node ); + gp_XY uv = helper.GetNodeUV( geomFace, node, nNotOnSeamEdge ); // check that uv is correct gp_Pnt nodePnt ( node->X(), node->Y(), node->Z() );