]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
More precise error description
authoreap <eap@opencascade.com>
Wed, 10 Oct 2012 11:29:08 +0000 (11:29 +0000)
committereap <eap@opencascade.com>
Wed, 10 Oct 2012 11:29:08 +0000 (11:29 +0000)
src/StdMeshers/StdMeshers_Projection_2D.cxx

index 60917a9fcd4be63af82cf9d32e1dcbd1de7a2031..ad6f45e572bdb05ebb40db1b893de3c05d572e1b 100644 (file)
@@ -794,8 +794,18 @@ bool StdMeshers_Projection_2D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape&
   if ( !TAssocTool::FindSubShapeAssociation( tgtFace, tgtMesh, srcShape, srcMesh,
                                              shape2ShapeMap)  ||
        !shape2ShapeMap.IsBound( tgtFace ))
+  {
+    if ( srcShape.ShapeType() == TopAbs_FACE )
+    {
+      int nbE1 = TAssocTool::Count( tgtFace, TopAbs_EDGE, /*ignoreSame=*/true );
+      int nbE2 = TAssocTool::Count( srcShape, TopAbs_EDGE, /*ignoreSame=*/true );
+      if ( nbE1 != nbE2 )
+        return error(COMPERR_BAD_SHAPE,
+                     SMESH_Comment("Different number of edges in source and target faces: ")
+                     << nbE2 << " and " << nbE1 );
+    }
     return error(COMPERR_BAD_SHAPE,"Topology of source and target faces seems different" );
-
+  }
   TopoDS_Face srcFace = TopoDS::Face( shape2ShapeMap( tgtFace ).Oriented(TopAbs_FORWARD));
 
   // ----------------------------------------------