Salome HOME
Fix to take into account qudratic edges also.
authorakl <akl@opencascade.com>
Fri, 17 May 2013 12:26:06 +0000 (12:26 +0000)
committerakl <akl@opencascade.com>
Fri, 17 May 2013 12:26:06 +0000 (12:26 +0000)
src/OBJECT/SMESH_Object.cxx
src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx

index c4ddc1cd03c839e83ab6110b604a377f7dabeff8..b4fcbf6dbf6563622362420662bc3275ae7a4b34 100644 (file)
@@ -523,7 +523,7 @@ bool SMESH_VisualObjDef::GetEdgeNodes( const int theElemId,
   if ( anElem == 0 )
     return false;
     
   if ( anElem == 0 )
     return false;
     
-  int nbNodes = anElem->NbNodes();
+  int nbNodes = anElem->NbCornerNodes();
 
   if ( theEdgeNum < 0 || theEdgeNum > 3 || (nbNodes != 3 && nbNodes != 4) || theEdgeNum > nbNodes )
     return false;
 
   if ( theEdgeNum < 0 || theEdgeNum > 3 || (nbNodes != 3 && nbNodes != 4) || theEdgeNum > nbNodes )
     return false;
@@ -531,7 +531,7 @@ bool SMESH_VisualObjDef::GetEdgeNodes( const int theElemId,
   vector<int> anIds( nbNodes );
   SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
   int i = 0;
   vector<int> anIds( nbNodes );
   SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
   int i = 0;
-  while( anIter->more() )
+  while( anIter->more() && i < nbNodes )
     anIds[ i++ ] = anIter->next()->GetID();
 
   if ( theEdgeNum < nbNodes - 1 )
     anIds[ i++ ] = anIter->next()->GetID();
 
   if ( theEdgeNum < nbNodes - 1 )
index db7aafdb40b3c8e453c0be2a9726243433ec1b56..8059552fe5d1b6808061459f136aaecdd659d7df 100755 (executable)
@@ -305,7 +305,7 @@ static bool findTriangles (const SMDS_MeshNode *    theNode1,
   SMDS_ElemIteratorPtr it = theNode1->GetInverseElementIterator();
   while (it->more()) {
     const SMDS_MeshElement* elem = it->next();
   SMDS_ElemIteratorPtr it = theNode1->GetInverseElementIterator();
   while (it->more()) {
     const SMDS_MeshElement* elem = it->next();
-    if (elem->GetType() == SMDSAbs_Face && elem->NbNodes() == 3)
+    if (elem->GetType() == SMDSAbs_Face && elem->NbCornerNodes() == 3)
       emap.insert(elem);
   }
   it = theNode2->GetInverseElementIterator();
       emap.insert(elem);
   }
   it = theNode2->GetInverseElementIterator();