Salome HOME
fix case of 2 edges
authoreap <eap@opencascade.com>
Fri, 12 Feb 2010 08:15:06 +0000 (08:15 +0000)
committereap <eap@opencascade.com>
Fri, 12 Feb 2010 08:15:06 +0000 (08:15 +0000)
src/StdMeshers/StdMeshers_RadialQuadrangle_1D2D.cxx

index a94600a30891408b3617cc088db003668cea7ce0..6911ee752312fca7ab383ad6f36466b0b755ca7f 100644 (file)
@@ -544,11 +544,10 @@ bool StdMeshers_RadialQuadrangle_1D2D::Compute(SMESH_Mesh&         aMesh,
     map< double, const SMDS_MeshNode* > theNodes;
     if ( !GetSortedNodesOnEdge(aMesh.GetMeshDS(),CircEdge,true,theNodes) )
       return error("Circular edge is incorrectly meshed");
-    if (theNodes.size()%2 == 0 )
-      return error("Circular edge is incorrectly meshed, number of segments must be even");
 
-    CNodes.clear();
     map< double, const SMDS_MeshNode* >::iterator itn = theNodes.begin();
+    CNodes.clear();
+    CNodes.push_back( itn->second );
     double fang = (*itn).first;
     itn++;
     for(; itn != theNodes.end(); itn++ ) {
@@ -560,7 +559,6 @@ bool StdMeshers_RadialQuadrangle_1D2D::Compute(SMESH_Mesh&         aMesh,
     }
     const SMDS_MeshNode* NF = theNodes.begin()->second;
     const SMDS_MeshNode* NL = theNodes.rbegin()->second;
-    CNodes.push_back( NF );
     P1 = gp_Pnt( NF->X(), NF->Y(), NF->Z() );
     gp_Pnt P2( NL->X(), NL->Y(), NL->Z() );
     P0 = aCirc->Location();