Salome HOME
21680: EDF 2288 SMESH: creation of 0D elements from other elements
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Selection.cxx
index ba4183ac553a3a2c00da54caad7f0f66067b6a94..efa3c236148fb3fdd621d82b67d9f9039fd4e99b 100644 (file)
@@ -23,8 +23,9 @@
 // SMESH SMESHGUI_Selection
 // File   : SMESHGUI_Selection.cxx
 // Author : Alexander SOLOVYOV, Open CASCADE S.A.S.
-// SMESH includes
 //
+
+// SMESH includes
 #include "SMESHGUI_Selection.h"
 
 #include "SMESHGUI_Utils.h"
@@ -148,7 +149,7 @@ SMESH_Actor* SMESHGUI_Selection::getActor( int ind ) const
 
 //=======================================================================
 //function : elemTypes
-//purpose  : may return {'Elem0d' 'Edge' 'Face' 'Volume'} at most
+//purpose  : may return {'Elem0d' 'Edge' 'Face' 'Volume' 'BallElem'} at most
 //=======================================================================
 
 QList<QVariant> SMESHGUI_Selection::elemTypes( int ind ) const
@@ -159,6 +160,7 @@ QList<QVariant> SMESHGUI_Selection::elemTypes( int ind ) const
     TVisualObjPtr object = actor->GetObject();
     if ( object ) {
       if ( object->GetNbEntities( SMDSAbs_0DElement )) types.append( "Elem0d" );
+      if ( object->GetNbEntities( SMDSAbs_Ball )) types.append( "BallElem" );
       if ( object->GetNbEntities( SMDSAbs_Edge )) types.append( "Edge" );
       if ( object->GetNbEntities( SMDSAbs_Face )) types.append( "Face" );
       if ( object->GetNbEntities( SMDSAbs_Volume )) types.append( "Volume" );
@@ -248,7 +250,7 @@ QString SMESHGUI_Selection::shrinkMode( int ind ) const
 
 //=======================================================================
 //function : entityMode
-//purpose  : may return {'Elem0d' 'Edge' 'Face' 'Volume'} at most
+//purpose  : may return {'Elem0d' 'Edge' 'Face' 'Volume' 'BallElem' } at most
 //=======================================================================
 
 QList<QVariant> SMESHGUI_Selection::entityMode( int ind ) const
@@ -261,6 +263,7 @@ QList<QVariant> SMESHGUI_Selection::entityMode( int ind ) const
     if ( aMode & SMESH_Actor::eFaces      ) types.append( "Face"   );
     if ( aMode & SMESH_Actor::eEdges      ) types.append( "Edge"   );
     if ( aMode & SMESH_Actor::e0DElements ) types.append( "Elem0d" );
+    if ( aMode & SMESH_Actor::eBallElem ) types.append( "BallElem" );
   }
   return types;
 }
@@ -428,6 +431,7 @@ int SMESHGUI_Selection::dim( int ind ) const
           case SMESH::FACE  : dim = std::max( dim, 2 ); break;
           case SMESH::VOLUME: dim = std::max( dim, 3 ); break;
           case SMESH::ELEM0D: dim = std::max( dim, 0 ); break;
+          case SMESH::BALL  : dim = std::max( dim, 0 ); break;
           default:;
           }
       }
@@ -547,7 +551,7 @@ int SMESHGUI_Selection::type( const QString& entry, _PTR(Study) study )
     return -1;
 
   if( objComponent->GetIOR()==obj->GetIOR() )
-    return COMPONENT;
+    return SMESH::COMPONENT;
 
   int aLevel = obj->Depth() - objComponent->Depth(),
       aFTag = objFather->Tag(),
@@ -558,16 +562,16 @@ int SMESHGUI_Selection::type( const QString& entry, _PTR(Study) study )
   {
   case 1:
     if (anOTag >= SMESH::Tag_FirstMeshRoot)
-      res = MESH;
+      res = SMESH::MESH;
     break;
   case 2:
     switch (aFTag)
     {
     case SMESH::Tag_HypothesisRoot:
-      res = HYPOTHESIS;
+      res = SMESH::HYPOTHESIS;
       break;
     case SMESH::Tag_AlgorithmsRoot:
-      res = ALGORITHM;
+      res = SMESH::ALGORITHM;
       break;
     }
     break;
@@ -575,25 +579,25 @@ int SMESHGUI_Selection::type( const QString& entry, _PTR(Study) study )
     switch (aFTag)
     {
     case SMESH::Tag_SubMeshOnVertex:
-      res = SUBMESH_VERTEX;
+      res = SMESH::SUBMESH_VERTEX;
       break;
     case SMESH::Tag_SubMeshOnEdge:
-      res = SUBMESH_EDGE;
+      res = SMESH::SUBMESH_EDGE;
       break;
     case SMESH::Tag_SubMeshOnFace:
-      res = SUBMESH_FACE;
+      res = SMESH::SUBMESH_FACE;
       break;
     case SMESH::Tag_SubMeshOnSolid:
-      res = SUBMESH_SOLID;
+      res = SMESH::SUBMESH_SOLID;
       break;
     case SMESH::Tag_SubMeshOnCompound:
-      res = SUBMESH_COMPOUND;
+      res = SMESH::SUBMESH_COMPOUND;
       break;
     default:
       if (aFTag >= SMESH::Tag_FirstGroup)
-        res = GROUP;
+        res = SMESH::GROUP;
       else
-        res = SUBMESH;
+        res = SMESH::SUBMESH;
     }
     break;
   }
@@ -610,29 +614,29 @@ QString SMESHGUI_Selection::typeName( const int t )
 {
   switch( t )
   {
-  case HYPOTHESIS:
+  case SMESH::HYPOTHESIS:
     return "Hypothesis";
-  case ALGORITHM:
+  case SMESH::ALGORITHM:
     return "Algorithm";
-  case MESH:
+  case SMESH::MESH:
     return "Mesh";
-  case SUBMESH:
+  case SMESH::SUBMESH:
     return "SubMesh";
-  case MESHorSUBMESH:
+  case SMESH::MESHorSUBMESH:
     return "Mesh or submesh";
-  case SUBMESH_VERTEX:
+  case SMESH::SUBMESH_VERTEX:
     return "Mesh vertex";
-  case SUBMESH_EDGE:
+  case SMESH::SUBMESH_EDGE:
     return "Mesh edge";
-  case SUBMESH_FACE:
+  case SMESH::SUBMESH_FACE:
     return "Mesh face";
-  case SUBMESH_SOLID:
+  case SMESH::SUBMESH_SOLID:
     return "Mesh solid";
-  case SUBMESH_COMPOUND:
+  case SMESH::SUBMESH_COMPOUND:
     return "Mesh compound";
-  case GROUP:
+  case SMESH::GROUP:
     return "Group";
-  case COMPONENT:
+  case SMESH::COMPONENT:
     return "Component";
   default:
     return "Unknown";