]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Corrections sur la documentation et le code
authorcg246364 <clarisse.genrault@cea.fr>
Wed, 4 Aug 2021 07:07:19 +0000 (09:07 +0200)
committercg246364 <clarisse.genrault@cea.fr>
Wed, 4 Aug 2021 07:07:19 +0000 (09:07 +0200)
17 files changed:
src/CTestTestfileInstall.cmake
src/OperaAPI/OperaAPI_Volume.cpp
src/OperaAPI/OperaAPI_Volume.h
src/OperaPlugin/OperaPlugin_Plugin.cpp
src/OperaPlugin/OperaPlugin_Volume.cpp
src/OperaPlugin/OperaPlugin_Volume.h
src/OperaPlugin/OperaPlugin_msg_fr.ts
src/OperaPlugin/Test/TestVolume.py
src/OperaPlugin/doc/OperaPlugin.rst
src/OperaPlugin/doc/TUI_volume.rst
src/OperaPlugin/doc/example/volume.py [deleted file]
src/OperaPlugin/doc/examples/volume.py [new file with mode: 0644]
src/OperaPlugin/doc/images/Volume.png [new file with mode: 0644]
src/OperaPlugin/doc/images/Volume_create.png [deleted file]
src/OperaPlugin/doc/volumeFeature.rst
src/OperaPlugin/volume_widget.xml
src/SHAPERGUI/resources/LightApp.xml.in

index b52f407b3bccae657052c89897da31d173f3b119..daabb1b56f7a4f075f8e4fe289efd39b0c5fc9e9 100644 (file)
@@ -47,4 +47,5 @@ SUBDIRS(ConnectorAPI
         ModelGeomAlgo
         Locale
         test_API
+        OperaPlugin
 )
index 2612060d15a19c3f52b0b53abd5c8d0724ed0159..cf7dd40c961ea622b06c668bd6ed05bef99b08a8 100644 (file)
 //
 #include "OperaAPI_Volume.h"
 
-
-
 #include <ModelHighAPI_Dumper.h>
-#include <ModelHighAPI_Double.h>
 #include <ModelHighAPI_Tools.h>
 
-#include <locale>         // std::wstring_convert
-#include <codecvt>        // std::codecvt_utf8
-
 //==================================================================================================
 OperaAPI_Volume::OperaAPI_Volume(const std::shared_ptr<ModelAPI_Feature>& theFeature)
 : ModelHighAPI_Interface(theFeature)
@@ -37,35 +31,32 @@ OperaAPI_Volume::OperaAPI_Volume(const std::shared_ptr<ModelAPI_Feature>& theFea
 
 //==================================================================================================
 OperaAPI_Volume::OperaAPI_Volume(const std::shared_ptr<ModelAPI_Feature>& theFeature,
-                                       const ModelHighAPI_Double& theMedium,
-                                       const std::list<ModelHighAPI_Selection>& theObjectList)
+                                 const std::string& theMedium,
+                                 const std::list<ModelHighAPI_Selection>& theObjectsList)
 : ModelHighAPI_Interface(theFeature)
 {
   if(initialize()) {
-
-    std::wstring w_medium = theMedium.string();
-    std::wstring_convert<std::codecvt_utf8<wchar_t>,wchar_t> cv;
-    std::string medium_str = cv.to_bytes(w_medium);
-
-    fillAttribute(medium_str, medium());
-    setObjectList(theObjectList);
+    fillAttribute(theMedium, medium());
+    setObjectsList(theObjectsList);
   }
 }
 
 //==================================================================================================
-OperaAPI_Volume::~OperaAPI_Volume() {}
+OperaAPI_Volume::~OperaAPI_Volume()
+{
+}
 
 //==================================================================================================
-void OperaAPI_Volume::setMedium(const ModelHighAPI_Double& theMedium)
+void OperaAPI_Volume::setMedium(const std::string& theMedium)
 {
-  fillAttribute(OperaPlugin_Volume::MEDIUM_ID(), medium());
+  fillAttribute(theMedium, medium());
   execute();
 }
 
 //==================================================================================================
-void OperaAPI_Volume::setObjectList(const std::list<ModelHighAPI_Selection>& theObjectList)
+void OperaAPI_Volume::setObjectsList(const std::list<ModelHighAPI_Selection>& theObjectsList)
 {
-  fillAttribute(theObjectList, volumeList());
+  fillAttribute(theObjectsList, objectsList());
   execute();
 }
 
@@ -78,16 +69,16 @@ void OperaAPI_Volume::dump(ModelHighAPI_Dumper& theDumper) const
   AttributeStringPtr anAttrMedium = aBase->string(OperaPlugin_Volume::MEDIUM_ID());
   theDumper << aBase << " = model.addVolume(" << aDocName << ", " << anAttrMedium << ", ";
 
-  AttributeSelectionListPtr anAttrList = aBase->selectionList(OperaPlugin_Volume::VOLUME_LIST_ID());
+  AttributeSelectionListPtr anAttrList =
+    aBase->selectionList(OperaPlugin_Volume::OBJECTS_LIST_ID());
   theDumper << anAttrList << ")" << std::endl;
 }
 
 //==================================================================================================
 VolumePtr addVolume(const std::shared_ptr<ModelAPI_Document>& thePart,
-                    const ModelHighAPI_Double& theMedium,
-                    const std::list<ModelHighAPI_Selection>& theObjectList)
+                    const std::string& theMedium,
+                    const std::list<ModelHighAPI_Selection>& theObjectsList)
 {
   std::shared_ptr<ModelAPI_Feature> aFeature = thePart->addFeature(OperaAPI_Volume::ID());
-  //aFeature->selectionList(OperaPlugin_Volume::VOLUME_LIST_ID())->setGeometricalSelection(true);
-  return VolumePtr(new OperaAPI_Volume(aFeature, theMedium, theObjectList));
+  return VolumePtr(new OperaAPI_Volume(aFeature, theMedium, theObjectsList));
 }
index 46842b0181a2e4d8fbdd2fae5147e15f2af16eb8..78aca037423bfb6c7432c1cca9b302769867e1d6 100644 (file)
 #include <ModelHighAPI_Interface.h>
 #include <ModelHighAPI_Macro.h>
 
-class ModelHighAPI_Double;
 class ModelHighAPI_Selection;
 
 /// \class OperaAPI_Volume
 /// \ingroup CPPHighAPI
-/// \brief Interface for primitive Box feature.
+/// \brief Interface for Volume feature.
 class OperaAPI_Volume: public ModelHighAPI_Interface
 {
 public:
@@ -42,8 +41,8 @@ public:
   /// Constructor with values.
   OPERAAPI_EXPORT
   explicit OperaAPI_Volume(const std::shared_ptr<ModelAPI_Feature>& theFeature,
-                  const ModelHighAPI_Double& theMedium,
-                  const std::list<ModelHighAPI_Selection>& theObjectList);
+                           const std::string& theMedium,
+                           const std::list<ModelHighAPI_Selection>& theObjectList);
 
   /// Destructor.
   OPERAAPI_EXPORT
@@ -51,17 +50,17 @@ public:
 
   INTERFACE_2(OperaPlugin_Volume::ID(),
               medium, OperaPlugin_Volume::MEDIUM_ID(),
-              ModelAPI_AttributeString, /** Volume medium */,
-              volumeList, OperaPlugin_Volume::VOLUME_LIST_ID(),
-              ModelAPI_AttributeSelectionList, /** Group list*/)
+              ModelAPI_AttributeString, /** Medium */,
+              objectsList, OperaPlugin_Volume::OBJECTS_LIST_ID(),
+              ModelAPI_AttributeSelectionList, /** Objects list*/)
 
   /// Set medium
   OPERAAPI_EXPORT
-  void setMedium(const ModelHighAPI_Double& theMedium);
+  void setMedium(const std::string& theMedium);
 
   /// Set main objects list.
   OPERAAPI_EXPORT
-  void setObjectList(const std::list<ModelHighAPI_Selection>& theObjectList);
+  void setObjectsList(const std::list<ModelHighAPI_Selection>& theObjectsList);
 
   /// Dump wrapped feature
   OPERAAPI_EXPORT
@@ -75,7 +74,7 @@ typedef std::shared_ptr<OperaAPI_Volume> VolumePtr;
 /// \brief Create Volume feature.
 OPERAAPI_EXPORT
 VolumePtr addVolume(const std::shared_ptr<ModelAPI_Document>& thePart,
-                 const ModelHighAPI_Double& theMedium,
-                 const std::list<ModelHighAPI_Selection>& theObjectList);
+                    const std::string& theMedium,
+                    const std::list<ModelHighAPI_Selection>& theObjectsList);
 
-#endif // OperaAPI_Volume_H_
+#endif // OPERAAPI_VOLUME_H_
index e5791e5167693f05bd81bf9b18f5cc653c9a0ab7..894925751c8bcf529ff952bc4bfb5bcde0ddcd9b 100644 (file)
@@ -23,8 +23,6 @@
 #include <ModelAPI_Session.h>
 
 #include <string>
-#include <memory>
-#include <iostream>
 
 // the only created instance of this plugin
 static OperaPlugin_Plugin* MY_PRIMITIVES_INSTANCE = new OperaPlugin_Plugin();
index 4c41960aec2a53b6f078ef494f1ea1209d0bebfd..57393a226d90bb89e5c6ee69e4e4c34988ee4e9d 100644 (file)
 //
 #include <OperaPlugin_Volume.h>
 
-#include <ModelAPI_AttributeInteger.h>
 #include <ModelAPI_AttributeString.h>
 #include <ModelAPI_AttributeSelectionList.h>
-#include <ModelAPI_AttributeIntArray.h>
 #include <ModelAPI_Data.h>
 #include <ModelAPI_Document.h>
 #include <ModelAPI_ResultBody.h>
 #include <ModelAPI_Tools.h>
 
-#include <GeomAlgoAPI_Copy.h>
-#include <GeomAlgoAPI_Tools.h>
-
 #include <sstream>
 #include <memory>
-#include <iostream>
 
 //=================================================================================================
 OperaPlugin_Volume::OperaPlugin_Volume() // Nothing to do during instantiation
@@ -66,7 +60,7 @@ void OperaPlugin_Volume::initAttributes()
   data()->addAttribute(MEDIUM_ID(), ModelAPI_AttributeString::typeId());
 
   // Get Objects
-  data()->addAttribute(VOLUME_LIST_ID(), ModelAPI_AttributeSelectionList::typeId());
+  data()->addAttribute(OBJECTS_LIST_ID(), ModelAPI_AttributeSelectionList::typeId());
 }
 
 //=================================================================================================
@@ -81,7 +75,7 @@ void OperaPlugin_Volume::execute()
 
   int aResultIndex = 0;
 
-  AttributeSelectionListPtr aList = selectionList(VOLUME_LIST_ID());
+  AttributeSelectionListPtr aList = selectionList(OBJECTS_LIST_ID());
   std::wstring aBaseName;
   for (int aSelIndex = 0; aSelIndex < aList->size(); aSelIndex++) {
     AttributeSelectionPtr aSel = aList->value(aSelIndex);
@@ -106,9 +100,7 @@ void OperaPlugin_Volume::execute()
     std::set<std::wstring> anExistingNames;
     std::wstring aBaseName = aSel->context() ? aSel->context()->data()->name() :
       aSel->contextFeature()->firstResult()->data()->name();
-    int anInd = 0;
     do {
-      anInd++;
       std::wostringstream aNameStr;
       aNameStr << "Volume_" << aBaseName;
       aName = aNameStr.str();
index e48e2ff5bcf01120310ef4e3efdb94a0b36bb65c..be8b7382414af8b08f290997ce51cc29f13543e7 100644 (file)
@@ -22,7 +22,6 @@
 
 #include <OperaPlugin.h>
 #include <ModelAPI_Feature.h>
-#include <GeomAlgoAPI_Box.h>
 
 class GeomAPI_Shape;
 class ModelAPI_ResultBody;
@@ -49,10 +48,10 @@ class OperaPlugin_Volume : public ModelAPI_Feature
       return MY_MEDIUM_ID;
     }
     /// attribute name of selected entities list
-    inline static const std::string& VOLUME_LIST_ID()
+    inline static const std::string& OBJECTS_LIST_ID()
     {
-      static const std::string MY_VOLUME_LIST_ID("volume_list");
-      return MY_VOLUME_LIST_ID;
+      static const std::string MY_OBJECTS_LIST_ID("objects_list");
+      return MY_OBJECTS_LIST_ID;
     }
 
     // Creates a new part document if needed
index 5d22d90aeb994a363de668a42706b88d61f7a74a..aca1a88156482398b807c9d6ba0d1129a502a869 100644 (file)
@@ -2,56 +2,56 @@
 <!DOCTYPE TS>
 <TS version="2.0" language="fr_FR">
 
-       <context>
-               <name>workshop</name>
-               <message>
-                       <source>Volume</source>
-                       <translation>Volume</translation>
-               </message>
-       </context>
+  <context>
+    <name>workshop</name>
+    <message>
+      <source>Volume</source>
+      <translation>Volume</translation>
+    </message>
+  </context>
 
-       <context>
-               <name>Volume</name>
-               <message>
-                       <source>Volume</source>
-                       <translation>Volume</translation>
-               </message>
-               <message>
-               <source>Create a volume</source>
-               <translation>Créer un volume</translation>
-               </message>
-       </context>
+  <context>
+    <name>Volume</name>
+    <message>
+      <source>Volume</source>
+      <translation>Volume</translation>
+    </message>
+    <message>
+      <source>Create a volume</source>
+      <translation>Créer un volume</translation>
+    </message>
+  </context>
 
-       <context>
-               <name>Volume:medium</name>
-               <message>
-                       <source>Medium</source>
-                       <translation>Milieu</translation>
-               </message>
-               <message>
-                       <source>Please input the volumes medium</source>
-                       <translation>Veuillez indiquer le milieu des volumes</translation>
-               </message>
-       </context>
+  <context>
+    <name>Volume:medium</name>
+    <message>
+      <source>Medium</source>
+      <translation>Milieu</translation>
+    </message>
+    <message>
+      <source>Please input the volumes medium</source>
+      <translation>Veuillez indiquer le milieu des volumes</translation>
+    </message>
+  </context>
 
-       <context>
-               <name>Volume:volume_list</name>
-               <message>
-                       <source>Select solids</source>
-                       <translation>Selectionner les solides</translation>
-               </message>
-               <message>
-                       <source>Select solid objects</source>
-                       <translation>Sélectionnez les solides</translation>
-               </message>
-       </context>
+  <context>
+    <name>Volume:objects_list</name>
+    <message>
+      <source>Objects</source>
+      <translation>Objets</translation>
+    </message>
+    <message>
+      <source>Select solid objects</source>
+      <translation>Sélectionnez les solides</translation>
+    </message>
+  </context>
 
-       <context>
-               <name>Volume:volume_list</name>
-               <message>
-                       <source>Attribute "%1" is not initialized.</source>
-                       <translation>Sélectionnez les solides.</translation>
-               </message>
-       </context>
+  <context>
+    <name>Volume:objects_list</name>
+    <message>
+      <source>Attribute "%1" is not initialized.</source>
+      <translation>Sélectionnez les solides.</translation>
+    </message>
+  </context>
 
 </TS>
index f85f3246dbf7e64b1f970f813f64913b8f09a000..66538bacafe60abe59ea2cbdf49810de6d341a59 100755 (executable)
@@ -45,7 +45,8 @@ Sphere_1 = model.addSphere(Part_1_doc, model.selection("VERTEX", "PartSet/Origin
 Volume_1 = model.addVolume(Part_1_doc, "Air", [model.selection("SOLID", "Box_1_1")])
 
 ### Create a volume from the cylinder and the sphere
-Volume_2 = model.addVolume(Part_1_doc, "Eau", [model.selection("SOLID", "Cylinder_1_1"), model.selection("SOLID", "Sphere_1_1")])
+Volume_2 = model.addVolume(Part_1_doc, "Air", [model.selection("SOLID", "Cylinder_1_1"), model.selection("SOLID", "Sphere_1_1")])
+Volume_2.setMedium("Eau")
 
 #Checks
 from GeomAPI import GeomAPI_Shape
@@ -69,7 +70,7 @@ assert(Volume_3.feature().error() == "Error: Medium cannot be empty.")
 ### Create a volume with no shapes
 Volume_4 = model.addVolume(Part_1_doc, "Error", [])
 model.testNbResults(Volume_4, 0)
-assert(Volume_4.feature().error() == "Attribute \"volume_list\" is not initialized.")
+assert(Volume_4.feature().error() == "Attribute \"objects_list\" is not initialized.")
 
 ### Create a volume with bad shapes
 Volume_5 = model.addVolume(Part_1_doc, "Bad Shape", [model.selection("VERTEX", "PartSet/Origin")])
index 41da0e59a2e7a2347b0486f7a68c24ff2bf66807..f61f280bdf90485c39c5db0d10508ad37dfdd01c 100644 (file)
@@ -4,7 +4,7 @@
 Opera plug-in
 ==================
 
-The Opera plug-in contains features for creation of Opera items. Result of each feature is a solid. The plug-in includes the following features:
+The Opera plug-in provides a set of common operations to ROOT geometry. It implements the following features:
 
 .. toctree::
    :titlesonly:
index f136686c65fb33ff45f9098366e24ede73762c33..3f3ecbd0f031d153f511913e9f0faacbbb7d03ea 100644 (file)
@@ -1,11 +1,11 @@
 
-  .. tui_create_volume:
+  .. _tui_create_volume:
 
-Create Box by points
-====================
+Create Volume
+=============
 
 .. literalinclude:: examples/volume.py
     :linenos:
     :language: python
 
-:download:`Download this script <examples/volume.py>`
+:download:`Download this script <examples/volume.py>` 
diff --git a/src/OperaPlugin/doc/example/volume.py b/src/OperaPlugin/doc/example/volume.py
deleted file mode 100644 (file)
index a21ef53..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-from salome.shaper import model
-
-model.begin()
-partSet = model.moduleDocument()
-Part_1 = model.addPart(partSet)
-Part_1_doc = Part_1.document()
-
-Box_1 = model.addBox(Part_1_doc, 10, 10, 10)
-Volume_1 = model.addVolume(Part_1_doc, "Air", [model.selection("SOLID", "Box_1_1")])
-
-model.do()
-model.end()
diff --git a/src/OperaPlugin/doc/examples/volume.py b/src/OperaPlugin/doc/examples/volume.py
new file mode 100644 (file)
index 0000000..a21ef53
--- /dev/null
@@ -0,0 +1,12 @@
+from salome.shaper import model
+
+model.begin()
+partSet = model.moduleDocument()
+Part_1 = model.addPart(partSet)
+Part_1_doc = Part_1.document()
+
+Box_1 = model.addBox(Part_1_doc, 10, 10, 10)
+Volume_1 = model.addVolume(Part_1_doc, "Air", [model.selection("SOLID", "Box_1_1")])
+
+model.do()
+model.end()
diff --git a/src/OperaPlugin/doc/images/Volume.png b/src/OperaPlugin/doc/images/Volume.png
new file mode 100644 (file)
index 0000000..281fc71
Binary files /dev/null and b/src/OperaPlugin/doc/images/Volume.png differ
diff --git a/src/OperaPlugin/doc/images/Volume_create.png b/src/OperaPlugin/doc/images/Volume_create.png
deleted file mode 100644 (file)
index 63c1f22..0000000
Binary files a/src/OperaPlugin/doc/images/Volume_create.png and /dev/null differ
index 66aa642856692fc8914369c65cfbadf94cda6b9d..8ea5c85480358c963e881804d5a4095075afd11c 100644 (file)
@@ -1,31 +1,33 @@
 .. |Volume_button.icon|    image:: images/Volume_button.png
 
 Volume
--------------
+------
 
-Volume feature creates a box solid.
+Volume feature creates a basic object used in bulding the ROOT geometrical hierarchy.
 
 To create a Volume in the active part:
 
 #. select in the Main Menu *Opera - > Volume* item  or
 #. click |Volume_button.icon| **Volume** button in the toolbar:
 
-Volume is created by a Medium value and a list of solids
+Volume is created by a value and a list of solids
 
-.. figure:: images/Volume_create.png
+.. figure:: images/Volume.png
    :align: center
 
 Input fields:
 
-- **MEDIUM**, **VOLUME_LIST** define medium and shapes of the volume.
+- **Medium** defines the name of the medium; 
+- **Objects** defines the list of solid objects
 
 **TUI Command**:
 
-.. py:function:: model.addVolume(Part_doc, MediumString, model.selection["SOLID", "...", ...])
+.. py:function:: 
+    model.addVolume(Part_doc, medium, model.selection[("SOLID", ...), ...])
 
     :param part: The current part object.
-    :param string: Medium name.
-    :param list: List of solids.
+    :param string: A medium name.
+    :param list: A list of solids.
     :return: Result object.
 
 Result
@@ -36,4 +38,6 @@ One solid for each selected solid in the volume list with according medium
 .. figure:: images/Volume1.png
    :align: center
 
+   Volume created  
+
 **See Also** a sample TUI Script of :ref:`tui_create_volume` operation.
index 8f18a004d74adfe6fda13f3366594f9dcddfc8bd..a0cbd22b747caf44c17006558e3472d21897bd47 100644 (file)
@@ -3,8 +3,8 @@
                label="Medium"
                tooltip="Please input the volumes medium">
   </stringvalue>
-  <multi_selector id="volume_list"
-                  label="Select solids"
+  <multi_selector id="objects_list"
+                  label="Objects"
                   tooltip="Select solid objects"
                   shape_types="solids"
                   concealment="true">
index 33908724f1de83403969f09bfd6e7ce62a43e555..6d303a073013d42b4201ccdc9bd49faba4b430e8 100644 (file)
@@ -22,6 +22,9 @@
     <parameter name="PartSet" value="%SHAPER_ROOT_DIR%/share/salome/resources/shaper"/>
     <parameter name="XGUI" value="%SHAPER_ROOT_DIR%/share/salome/resources/shaper"/>
   </section>
+  <section name="Sketch">
+    <parameter name="operation_cursor" value="1"/>
+  </section>
   <section name="Viewer" >
     <!-- Viewer preferences -->
     <parameter name="face-selection" value="true" />