Salome HOME
21680: EDF 2288 SMESH: creation of 0D elements from other elements
[modules/smesh.git] / src / SMESH_I / SMESH_Group_i.cxx
index a24d869bcbe5e7c2ba9a7ccba3e9d1674494757a..1b99653c62b603bf02ac844ca10080faba71b668 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
@@ -196,6 +196,7 @@ SMESH::ElementType SMESH_GroupBase_i::GetType()
     case SMDSAbs_Face:      aType = SMESH::FACE;   break;
     case SMDSAbs_Volume:    aType = SMESH::VOLUME; break;
     case SMDSAbs_0DElement: aType = SMESH::ELEM0D; break;
+    case SMDSAbs_Ball:      aType = SMESH::BALL;   break;
     default:                aType = SMESH::ALL;    break;
     }
     return aType;
@@ -464,12 +465,15 @@ SMESH::long_array* SMESH_GroupBase_i::GetListOfID()
 
   SMESH::long_array_var aRes = new SMESH::long_array();
   SMESHDS_GroupBase* aGroupDS = GetGroupDS();
-  if (aGroupDS) {
+  if (aGroupDS)
+  {
     int aSize = aGroupDS->Extent();
     aRes->length(aSize);
     for (int i = 0; i < aSize; i++)
       aRes[i] = aGroupDS->GetID(i+1);
-    return aRes._retn();
+
+    if ( 0 < aSize && aSize < 100 ) // for comfortable testing ;)
+      std::sort( &aRes[0], &aRes[0]+aSize );
   }
   MESSAGE("get list of IDs of a vague group");
   return aRes._retn();