X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHUtils%2FSMESH_Delaunay.cxx;h=2a2809cc98e75f5845c7fd26a295e56f039bf2eb;hb=86ca5611705a674ccb26c7ea2176cf518bec24f5;hp=e53bfd8fcda9257d91bf8ca1026e9f07e372cab1;hpb=d92118a7a570fd784e024a7a893a67a4fc8f112c;p=modules%2Fsmesh.git diff --git a/src/SMESHUtils/SMESH_Delaunay.cxx b/src/SMESHUtils/SMESH_Delaunay.cxx index e53bfd8fc..2a2809cc9 100644 --- a/src/SMESHUtils/SMESH_Delaunay.cxx +++ b/src/SMESHUtils/SMESH_Delaunay.cxx @@ -193,21 +193,22 @@ const BRepMesh_Triangle* SMESH_Delaunay::FindTriangle( const gp_XY& nodeUVs[1] = _triaDS->GetNode( nodeIDs[1] ).Coord(); nodeUVs[2] = _triaDS->GetNode( nodeIDs[2] ).Coord(); - if ( _triaDS->GetNode( nodeIDs[0] ).Movability() == BRepMesh_Frontier && - _triaDS->GetNode( nodeIDs[1] ).Movability() == BRepMesh_Frontier && - _triaDS->GetNode( nodeIDs[2] ).Movability() == BRepMesh_Frontier ) + SMESH_MeshAlgos::GetBarycentricCoords( uv, + nodeUVs[0], nodeUVs[1], nodeUVs[2], + bc[0], bc[1] ); + if ( bc[0] >= 0 && bc[1] >= 0 && bc[0] + bc[1] <= 1 ) { - SMESH_MeshAlgos::GetBarycentricCoords( uv, - nodeUVs[0], nodeUVs[1], nodeUVs[2], - bc[0], bc[1] ); - if ( bc[0] >= 0 && bc[1] >= 0 && bc[0] + bc[1] <= 1 ) + if ( _triaDS->GetNode( nodeIDs[0] ).Movability() != BRepMesh_Frontier || + _triaDS->GetNode( nodeIDs[1] ).Movability() != BRepMesh_Frontier || + _triaDS->GetNode( nodeIDs[2] ).Movability() != BRepMesh_Frontier ) { - bc[2] = 1 - bc[0] - bc[1]; - triaNodes[0] = nodeIDs[0] - 1; - triaNodes[1] = nodeIDs[1] - 1; - triaNodes[2] = nodeIDs[2] - 1; - return tria; + return 0; } + bc[2] = 1 - bc[0] - bc[1]; + triaNodes[0] = nodeIDs[0] - 1; + triaNodes[1] = nodeIDs[1] - 1; + triaNodes[2] = nodeIDs[2] - 1; + return tria; } // look for a neighbor triangle, which is adjacent to a link intersected