From deaf839b4bb020527a0390e6b1d4880e8edf53d7 Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 14 May 2009 12:33:57 +0000 Subject: [PATCH] 0020042: EDF 864 SMESH: Mesh of holes (GHS3D/BLSurf) fix findShapeID() for triangle near seam geom edge --- src/GHS3DPlugin_GHS3D.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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() ); -- 2.39.2