]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
feat : Add getMediumList in OperaAPI_Tools
authorNicolas RECHATIN <nicolas.rechatin@cea.fr>
Tue, 3 Oct 2023 14:00:28 +0000 (16:00 +0200)
committerNicolas RECHATIN <nicolas.rechatin@cea.fr>
Tue, 3 Oct 2023 14:00:28 +0000 (16:00 +0200)
src/OperaAPI/CMakeLists.txt
src/OperaAPI/OperaAPI.i
src/OperaAPI/OperaAPI_Tools.cpp [new file with mode: 0644]
src/OperaAPI/OperaAPI_Tools.h [new file with mode: 0644]
src/OperaAPI/OperaAPI_swig.h

index 192634bd9499106eef3ad810b5c6aea2937bbecc..05da53cdcd408e2093d8a5c3f96c6cd2faef1fda 100644 (file)
@@ -23,11 +23,13 @@ SET(PROJECT_HEADERS
   OperaAPI.h
   OperaAPI_Volume.h
   OperaAPI_AddNode.h
+  OperaAPI_Tools.h
 )
 
 SET(PROJECT_SOURCES
   OperaAPI_Volume.cpp
   OperaAPI_AddNode.cpp
+  OperaAPI_Tools.cpp
 )
 
 SET(PROJECT_LIBRARIES
index 57223e944fcc8eb69f6f70f38eeaf8a427fe3df1..6268a8b51affa9483d80c9735a787b6773e65c92 100644 (file)
@@ -40,7 +40,9 @@
 // shared pointers
 %shared_ptr(OperaAPI_Volume)
 %shared_ptr(OperaAPI_AddNode)
+%shared_ptr(OperaAPI_Tools)
 
 // all supported interfaces
 %include "OperaAPI_Volume.h"
 %include "OperaAPI_AddNode.h"
+%include "OperaAPI_Tools.h"
diff --git a/src/OperaAPI/OperaAPI_Tools.cpp b/src/OperaAPI/OperaAPI_Tools.cpp
new file mode 100644 (file)
index 0000000..2cec129
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2014-2021  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+#include "OperaAPI_Tools.h"
+
+//=================================================================================================
+static std::list<std::string> OperaAPI_Tools::getMediumList()
+{
+       SessionPtr aSession = ModelAPI_Session::get();
+       DocumentPtr aDocument = aSession->activeDocument();
+       std::list<FeaturePtr> aFeatures = aDocument->allFeatures();
+
+       std::list<std::string> aMediumList;
+       std::list<FeaturePtr>::iterator itFeature = aFeatures.begin();
+       for (; itFeature != aFeatures.end(); ++itFeature)
+               if ((*itFeature)->getKind() == "Volume")
+                       aMediumList.push_back((*itFeature)->data()->string(OperaPlugin_Volume::MEDIUM_ID())->value());
+
+       return aMediumList;
+}
diff --git a/src/OperaAPI/OperaAPI_Tools.h b/src/OperaAPI/OperaAPI_Tools.h
new file mode 100644 (file)
index 0000000..a221a3e
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright (C) 2014-2021  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef OPERAAPI_TOOLS_H_
+#define OPERAAPI_TOOLS_H_
+
+#include "OperaAPI.h"
+
+#include <OperaPlugin_Volume.h>
+
+#include "ModelAPI_Session.h"
+#include <ModelHighAPI_Interface.h>
+#include <ModelHighAPI_Macro.h>
+
+class ModelHighAPI_Double;
+class ModelHighAPI_Selection;
+
+/// \class OperaAPI_Tools
+/// \ingroup CPPHighAPI
+/// \brief Interface for AddNode feature.
+class OperaAPI_Tools : public ModelHighAPI_Interface
+{
+public:
+       /// Get medium list
+       OPERAAPI_EXPORT
+       static std::list<std::string> getMediumList();
+};
+
+#endif // OPERAAPI_TOOLS_H_
index 661e51618f795b5a7a8fa05390875eeefab5acf4..f1cc3497ee602fe50c0101bfb361d8766ce6d221 100644 (file)
@@ -25,5 +25,6 @@
   #include "OperaAPI.h"
   #include "OperaAPI_Volume.h"
   #include "OperaAPI_AddNode.h"
+  #include "OperaAPI_Tools.h"
 
 #endif // OPERAAPI_SWIG_H_