Salome HOME
PAL10237. Add GetHypothesesSets()
authoreap <eap@opencascade.com>
Tue, 1 Nov 2005 10:12:45 +0000 (10:12 +0000)
committereap <eap@opencascade.com>
Tue, 1 Nov 2005 10:12:45 +0000 (10:12 +0000)
src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
src/SMESHGUI/SMESHGUI_HypothesesUtils.h

index 96f59ae..585562c 100644 (file)
@@ -66,14 +66,7 @@ namespace SMESH{
   typedef map<string,SMESHGUI_GenericHypothesisCreator*> THypCreatorMap;
   THypCreatorMap myHypCreatorMap;
 
-  void addMap(const THypothesisDataMap& theMap,
-              THypothesisDataMap& toMap)
-  {
-    THypothesisDataMap::const_iterator it;
-    for (it = theMap.begin(); it != theMap.end(); it++)
-      toMap.insert(*it);
-  }
-
+  list<HypothesesSet*> myListOfHypothesesSets;
 
   void processHypothesisStatus(const int theHypStatus,
                               SMESH::SMESH_Hypothesis_ptr theHyp,
@@ -160,8 +153,12 @@ namespace SMESH{
          bool ok = reader.parse(source);
          file.close();
          if (ok) {
-           addMap(aXmlHandler->myHypothesesMap, myHypothesesMap);
-           addMap(aXmlHandler->myAlgorithmsMap, myAlgorithmsMap);
+            myHypothesesMap.insert( aXmlHandler->myHypothesesMap.begin(),
+                                    aXmlHandler->myHypothesesMap.end() );
+            myAlgorithmsMap.insert( aXmlHandler->myAlgorithmsMap.begin(),
+                                    aXmlHandler->myAlgorithmsMap.end() );
+            myListOfHypothesesSets.splice( myListOfHypothesesSets.begin(),
+                                           aXmlHandler->myListOfHypothesesSets );
          }
          else {
            SUIT_MessageBox::error1(SMESHGUI::desktop(),
@@ -215,6 +212,37 @@ namespace SMESH{
   }
 
 
+  QStringList GetHypothesesSets()
+  {
+    QStringList aSetNameList;
+
+    // Init list of available hypotheses, if needed
+    InitAvailableHypotheses();
+
+    list<HypothesesSet*>::iterator hypoSet = myListOfHypothesesSets.begin();
+    for ( ; hypoSet != myListOfHypothesesSets.end(); ++hypoSet )
+    {
+      HypothesesSet* aSet = *hypoSet;
+      if ( aSet && aSet->AlgoList.count() ) {
+        aSetNameList.append( aSet->HypoSetName );
+      }
+    }
+
+    return aSetNameList;
+  }
+
+  HypothesesSet* GetHypothesesSet(const QString theSetName)
+  {
+    list<HypothesesSet*>::iterator hypoSet = myListOfHypothesesSets.begin();
+    for ( ; hypoSet != myListOfHypothesesSets.end(); ++hypoSet )
+    {
+      HypothesesSet* aSet = *hypoSet;
+      if ( aSet && aSet->HypoSetName == theSetName )
+        return aSet;
+    }
+    return 0;
+  }
+
   HypothesisData* GetHypothesisData (const char* aHypType)
   {
     HypothesisData* aHypData = 0;
index 0edd779..a3b9326 100644 (file)
@@ -42,6 +42,7 @@
 #include <vector>
 
 class HypothesisData;
+class HypothesesSet;
 class SMESHGUI_GenericHypothesisCreator;
 class SALOMEDSClient_SObject;
 
@@ -53,6 +54,10 @@ namespace SMESH{
                                       const int theDim = -1, 
                                       const bool isAux = false);
 
+  QStringList GetHypothesesSets();
+
+  HypothesesSet* GetHypothesesSet(const QString theSetName);
+
   HypothesisData* GetHypothesisData(const char* aHypType);
 
   SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType);