Salome HOME
Merge from V6_main 12/11/2012
[modules/smesh.git] / src / StdMeshers / StdMeshers_Import_1D2D.cxx
index 2ecf6c1d7ac286b997aab265b45c6325177a7717..8180f0a027ff93a692f6e7155cd949443c4f0902 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -95,7 +95,7 @@ StdMeshers_Import_1D2D::StdMeshers_Import_1D2D(int hypId, int studyId, SMESH_Gen
   _shapeType = (1 << TopAbs_FACE);
 
   _compatibleHypothesis.push_back("ImportSource2D");
-  _requireDescretBoundary = false;
+  _requireDiscreteBoundary = false;
 }
 
 //=============================================================================
@@ -420,10 +420,14 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
           }
         }
         if ( !nodesOnBoundary )
-          break; // error: free internal link
+        {
+          error("free internal link"); // just for an easier debug
+          break;
+        }
         if ( bndShapes.front().ShapeType() == TopAbs_EDGE &&
              bndShapes.front() != bndShapes.back() )
-          break; // error: link nodes on different geom edges
+          // link nodes on different geom edges
+          return error(COMPERR_BAD_INPUT_MESH, "Source nodes mismatch target vertices");
 
         // find geom edge the link is on
         if ( bndShapes.back().ShapeType() != TopAbs_EDGE )
@@ -433,7 +437,10 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
                                                             bndShapes.front(),
                                                             theMesh, TopAbs_EDGE );
           if ( geomEdge.IsNull() )
-            break; // vertices belong to different edges -> error: free internal link
+          {
+            error("free internal link");
+            break; // vertices belong to different edges
+          }
           bndShapes.push_back( geomEdge );
         }
 
@@ -465,7 +472,7 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
       }
       else if ( nbFaces > 2 )
       {
-        return error( "Non-manifold source mesh");
+        return error( COMPERR_BAD_INPUT_MESH, "Non-manifold source mesh");
       }
     }
     isFaceMeshed = ( link2Nb == linkCount.end() && !linkCount.empty());
@@ -491,12 +498,13 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
         if ( nbEdges < 2 )
           return false; // weird
         if ( nbEdges > 2 )
-          return error( "Source elements overlap one another");
+          return error( COMPERR_BAD_INPUT_MESH, "Source elements overlap one another");
       }
     }
   }
   if ( !isFaceMeshed )
-    return error( "Source elements don't cover totally the geometrical face" );
+    return error( COMPERR_BAD_INPUT_MESH,
+                  "Source elements don't cover totally the geometrical face" );
 
   if ( helper.HasSeam() )
   {