Salome HOME
0021556: EDF 2222 SMESH: 3D mesh after projection impossible
authoreap <eap@opencascade.com>
Mon, 23 Apr 2012 16:20:19 +0000 (16:20 +0000)
committereap <eap@opencascade.com>
Mon, 23 Apr 2012 16:20:19 +0000 (16:20 +0000)
   In projectBy2DSimilarity() check U on edge before setting

src/StdMeshers/StdMeshers_Projection_2D.cxx

index 77a8d7559b54e880e4ba34ac3a74327eaf206de1..17bde5c85eed37d1f8bf7dcaf86882284d1b9b64 100644 (file)
@@ -734,9 +734,11 @@ namespace {
           }
           case SMDS_TOP_EDGE: {
             TopoDS_Shape srcEdge = srcHelper.GetSubShapeByNode( srcNode, srcHelper.GetMeshDS() );
-            TopoDS_Shape tgtEdge = shape2ShapeMap( srcEdge, /*isSrc=*/true );
+            TopoDS_Edge  tgtEdge = TopoDS::Edge( shape2ShapeMap( srcEdge, /*isSrc=*/true ));
+            tgtMeshDS->SetNodeOnEdge( n, TopoDS::Edge( tgtEdge ));
             double U = srcHelper.GetNodeU( TopoDS::Edge( srcEdge ), srcNode );
-            tgtMeshDS->SetNodeOnEdge( n, TopoDS::Edge( tgtEdge ), U);
+            helper.CheckNodeU( tgtEdge, n, U, Precision::PConfusion());
+            n->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition( U )));
             break;
           }
           case SMDS_TOP_VERTEX: {