Salome HOME
Fix regressions caused by improvements
[modules/smesh.git] / src / StdMeshers / StdMeshers_FaceSide.cxx
index 3fd0305636b9a9c3b8208d154a12aca4055c249d..377a79c5d2e907bc4de64ea09ab44d69624eb17d 100644 (file)
@@ -113,7 +113,6 @@ StdMeshers_FaceSide::StdMeshers_FaceSide(const TopoDS_Face&   theFace,
 
   int nbDegen = 0;
   list<TopoDS_Edge>::iterator edge = theEdges.begin();
-  TopoDS_Iterator vExp;
   for ( int index = 0; edge != theEdges.end(); ++index, ++edge )
   {
     int i = theIsForward ? index : nbEdges-index-1;
@@ -150,7 +149,7 @@ StdMeshers_FaceSide::StdMeshers_FaceSide(const TopoDS_Face&   theFace,
       }
       else
       {
-        const TopoDS_Vertex& V = TopoDS::Vertex( vExp.Value() );
+        const TopoDS_Vertex& V = SMESH_MesherHelper::IthVertex( 0, *edge );
         Handle(Geom_Curve) C3d = new Geom_Line( BRep_Tool::Pnt( V ), gp::DX() );
         myC3dAdaptor[i].Load( C3d, 0, 0.5 * BRep_Tool::Tolerance( V ));
       }
@@ -717,7 +716,7 @@ bool StdMeshers_FaceSide::GetEdgeNodes(size_t                        i,
   {
     if ( mesh->HasModificationsToDiscard() ) // check nb of nodes on the EDGE sub-mesh
     {
-      int iQuad    = sm->GetElements()->next()->IsQuadratic();
+      int iQuad    = sm->NbElements() ? sm->GetElements()->next()->IsQuadratic() : 0;
       int nbExpect = sm->NbElements() - 1 + iQuad * sm->NbElements();
       if ( nbExpect != sm->NbNodes() ) // some nodes are moved from the EDGE by MergeNodes()
       {