Salome HOME
Update copyrights 2014.
[modules/smesh.git] / src / StdMeshers / StdMeshers_Import_1D2D.cxx
index 5acc4bdc5e0336ae14f871a626687b07b9b33c0f..6aff7c2078072f33b097a32f716a5e43b500b2fe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014  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
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -226,7 +226,7 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
           typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_NodeIteratorPtr > iterator;
           existingNodes.insert( iterator( eSM->GetNodes() ), iterator() );
         }
-      } 
+      }
   }
   // octree to find existing nodes
   SMESH_OctreeNode existingNodeOcTr( existingNodes );
@@ -513,7 +513,7 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
           int sId = editor.FindShape( edge );
           nbEdges += subShapeIDs.count( sId );
         }
-        if ( nbEdges < 2 )
+        if ( nbEdges < 2 && !helper.IsRealSeam( s ))
           return false; // weird
         if ( nbEdges > 2 )
           return error( COMPERR_BAD_INPUT_MESH, "Source elements overlap one another");
@@ -601,8 +601,8 @@ bool StdMeshers_Import_1D2D::Compute(SMESH_Mesh & theMesh, const TopoDS_Shape &
   for ( size_t iE = 0; iE < edges.size(); ++iE )
   {
     SMESH_subMesh * sm = theMesh.GetSubMesh( edges[iE] );
-    if ( SMESH_Algo::isDegenerated( edges[iE] ))
-      sm->SetIsAlwaysComputed( true );
+    // if ( SMESH_Algo::isDegenerated( edges[iE] ))
+    //   sm->SetIsAlwaysComputed( true );
     sm->ComputeStateEngine(SMESH_subMesh::CHECK_COMPUTE_STATE);
     if ( sm->GetComputeState() != SMESH_subMesh::COMPUTE_OK )
       return error(SMESH_Comment("Failed to create segments on the edge ")