Salome HOME
0020042: EDF 864 SMESH: Mesh of holes (GHS3D/BLSurf)
authoreap <eap@opencascade.com>
Thu, 14 May 2009 12:33:57 +0000 (12:33 +0000)
committereap <eap@opencascade.com>
Thu, 14 May 2009 12:33:57 +0000 (12:33 +0000)
     fix findShapeID() for triangle near seam geom edge

src/GHS3DPlugin_GHS3D.cxx

index 360ae87aca8ef08e1ad96c61e1b33451011dd3f4..8c30c7ca71fcb4561ba4640d12f11dd48ea4bfb8 100644 (file)
@@ -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() );