]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
#20537 replace "Basic properties" by Geometry calculation
authorlucasjerome <jerome.lucas@cegsenslab.fr>
Wed, 23 Dec 2020 10:38:19 +0000 (11:38 +0100)
committerlucasjerome <jerome.lucas@cegsenslab.fr>
Wed, 23 Dec 2020 10:38:19 +0000 (11:38 +0100)
28 files changed:
src/FeaturesAPI/FeaturesAPI_GeometryCalculation.cpp
src/FeaturesAPI/FeaturesAPI_GeometryCalculation.h
src/FeaturesPlugin/CMakeLists.txt
src/FeaturesPlugin/FeaturesPlugin_GeometryCalculation.cpp
src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts
src/FeaturesPlugin/Test/TestBasicProperties.py [deleted file]
src/FeaturesPlugin/Test/TestGeometryCalculation.py [new file with mode: 0644]
src/FeaturesPlugin/doc/TUI_basic_properties.rst [deleted file]
src/FeaturesPlugin/doc/TUI_geometry_calculation.rst [new file with mode: 0644]
src/FeaturesPlugin/doc/examples/basic_properties.py [deleted file]
src/FeaturesPlugin/doc/examples/geometry_calculation.py [new file with mode: 0644]
src/FeaturesPlugin/doc/geometryCalculationFeature.rst
src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png [deleted file]
src/FeaturesPlugin/doc/images/basicproperties.png [deleted file]
src/FeaturesPlugin/doc/images/geometryCalculation.png [new file with mode: 0644]
src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png [new file with mode: 0644]
src/FeaturesPlugin/geometry_calculation_widget.xml
src/FeaturesPlugin/icons/basicproperties.png [deleted file]
src/FeaturesPlugin/icons/geometryCalculation.png [new file with mode: 0644]
src/FeaturesPlugin/plugin-Features.xml
src/GeomAlgoAPI/CMakeLists.txt
src/GeomAlgoAPI/GeomAlgoAPI_BasicProperties.cpp [deleted file]
src/GeomAlgoAPI/GeomAlgoAPI_BasicProperties.h [deleted file]
src/GeomAlgoAPI/GeomAlgoAPI_GeometryCalculation.cpp [new file with mode: 0644]
src/GeomAlgoAPI/GeomAlgoAPI_GeometryCalculation.h [new file with mode: 0644]
src/ModuleBase/ModuleBase_WidgetLabel.cpp
src/ModuleBase/ModuleBase_WidgetLabel.h
src/PythonAPI/model/features/__init__.py

index 0a380678e7a506e05054268538fa7b0a6a841c39..666489e0ad0276bf63c146b61c8a2bea7692f01a 100644 (file)
@@ -25,8 +25,8 @@
 #include <ModelHighAPI_Tools.h>
 
 //=================================================================================================
-std::list<double> getBasicProperties(const std::shared_ptr<ModelAPI_Document>& thePart,
-                                     const ModelHighAPI_Selection& theObject)
+std::list<double> getGeometryCalculation(const std::shared_ptr<ModelAPI_Document>& thePart,
+                                         const ModelHighAPI_Selection& theObject)
 {
   FeaturePtr aPointCoodFeat = thePart->addFeature(FeaturesPlugin_GeometryCalculation::ID());
 
index 64e0f87c9317eb0eb7c941b8911aa56b8b4ece77..b1b6cb3122db4726a10d4ea4b618711cdef03b49 100644 (file)
@@ -29,9 +29,9 @@ class ModelAPI_Document;
 class ModelHighAPI_Selection;
 
 /// \ingroup CPPHighAPI
-/// \brief get the basic properties (length, Surface area, volume)
+/// \brief get the geometry calculation (length, Surface area, volume)
 FEATURESAPI_EXPORT
-std::list<double> getBasicProperties(const std::shared_ptr<ModelAPI_Document>& thePart,
-                                     const ModelHighAPI_Selection& theObject);
+std::list<double> getGeometryCalculation(const std::shared_ptr<ModelAPI_Document>& thePart,
+                                         const ModelHighAPI_Selection& theObject);
 
 #endif // FeaturesAPI_GeometryCalculation_H_
\ No newline at end of file
index 83df4b4930c798a206636851135bdc0fc5596352..13db6d7bb99c32edf5fc98fc008a0d11b1268619 100644 (file)
@@ -700,5 +700,5 @@ ADD_UNIT_TESTS(TestExtrusion.py
                TestFillet1D_Wire_3.py
                TestFillet1D_Wire_4.py
                TestFillet1D_Wire_5.py
-               TestBasicProperties.py
+               TestGeometryCalculation.py
 )
index 0b928f24a6bee8f27f52ed8950309b2dc3a1ecf4..6a349920b79cda9517e312aa864c73c0fa79a23e 100644 (file)
@@ -29,7 +29,7 @@
 #include <Config_PropManager.h>
 
 #include <GeomAPI_Shape.h>
-#include <GeomAlgoAPI_BasicProperties.h>
+#include <GeomAlgoAPI_GeometryCalculation.h>
 
 
 #include <iomanip>
@@ -84,12 +84,12 @@ void FeaturesPlugin_GeometryCalculation::attributeChanged(const std::string& the
       double aSurfArea;
       double aVolume;
       std::string aError;
-      if (!GetBasicProperties(aShape,
-                              aTolerance,
-                              aLength,
-                              aSurfArea,
-                              aVolume,
-                              aError))
+      if (!getGeometryCalculation(aShape,
+                                  aTolerance,
+                                  aLength,
+                                  aSurfArea,
+                                  aVolume,
+                                  aError))
          setError("Error in Geometry calculation :" +  aError);
 
       streamL << std::setprecision(14) << aLength;
@@ -100,9 +100,9 @@ void FeaturesPlugin_GeometryCalculation::attributeChanged(const std::string& the
       aValues->setValue(2, aVolume);
     }
 
-    string(LENGTH_ID())->setValue("Length = " +  streamL.str());
-    string(AREA_ID())->setValue("Area = " +  streamA.str());
-    string(VOLUME_ID())->setValue("Volume = " +  streamV.str());
+    string(LENGTH_ID())->setValue(streamL.str());
+    string(AREA_ID())->setValue(streamA.str());
+    string(VOLUME_ID())->setValue(streamV.str());
   }
 }
 
index 2762a5519f2e0211c7e8356fc6a4ea9c9fe5a8bb..7d13694969745d3dfd5288225293134476463517 100644 (file)
       <source>Angular Copy</source>
       <translation>Copie angulaire</translation>
     </message>
+    <message>
+      <source>Bounding box</source>
+      <translation>Boite englobante</translation>
+    </message>
     <message>
       <source>Geometry calculation</source>
-      <translation>Calcul géométrique</translation>
+      <translation>Calcul de la géométrie</translation>
     </message>
     <message>
       <source>Linear copy</source>
       <translation>Pas pour la direction angulaire</translation>
     </message>
   </context>
-
+  <!--Geometry calculation-->
+  <context>
+    <name>GeometryCalculation</name>
+    <message>
+      <source>Geometry calculation</source>
+      <translation>Calcul de la géometrie</translation>
+    </message>
+  </context>
+  <context>
+    <name>GeometryCalculation:main_object</name>
+    <message>
+      <source>Object</source>
+      <translation>Objet</translation>
+    </message>
+  </context>
+  <context>
+  <name>GeometryCalculation</name>
+    <message>
+      <source>Length = </source>
+      <translation>Longueur = </translation>
+    </message>
+    <message>
+      <source>Area = </source>
+      <translation>Surface = </translation>
+    </message>
+    <message>
+      <source>Volume = </source>
+      <translation>Volume = </translation>
+    </message>
+  </context>
   <!-- LinearCopy -->
   <context>
     <name>LinearCopy</name>
       <translation>Deuxième direction</translation>
     </message>
   </context>
-  
-  <!-- Geometry calculation -->
-  <context>
-    <name>GeometryCalculation</name>
-    <message>
-      <source>Geometry calculation</source>
-      <translation>Calcul géométrique</translation>
-    </message>
-    <message>
-      <source>GeometryCalculation:Object</source>
-      <translation>Objet</translation>
-    </message>
-    <message>
-      <source>GeometryCalculation:Length</source>
-      <translation>Longueur</translation>
-    </message>
-    <message>
-      <source>GeometryCalculation:Area</source>
-      <translation>Surface</translation>
-    </message>
-    <message>
-      <source>GeometryCalculation:Volume</source>
-      <translation>Volume</translation>
-    </message>
-  </context>
   <!-- Measurement -->
   <context>
     <name>Measurement</name>
diff --git a/src/FeaturesPlugin/Test/TestBasicProperties.py b/src/FeaturesPlugin/Test/TestBasicProperties.py
deleted file mode 100644 (file)
index 2604c9a..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright (C) 2014-2020  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
-#
-
-"""
-      Unit test of ...
-"""
-#=========================================================================
-# Initialization of the test
-#=========================================================================
-
-import salome
-
-import os
-import math
-
-from ModelAPI import *
-from salome.shaper import model
-
-
-
-__updated__ = "2020-11-12"
-
-
-#=========================================================================
-# test basic properties
-#=========================================================================
-def test_Basic_properties():
-
-    model.begin()
-    file_path = os.path.join(os.getenv("DATA_DIR"),"Shapes","Brep","box1.brep")
-    partSet = model.moduleDocument()
-    Part_1 = model.addPart(partSet)
-    Part_1_doc = Part_1.document()
-    Import_1 = model.addImport(Part_1_doc,file_path)
-    model.do()
-    
-    myDelta = 1e-6
-    Props = model.getBasicProperties(Part_1_doc,model.selection("SOLID", "box1_1"))
-
-    print(" Basic Properties:")
-    print(" Wires length: ", Props[0])
-    print(" Surface area: ", Props[1])
-    print(" Volume      : ", Props[2]) 
-    
-    aReflength = 2400
-    aReslength = Props[0]
-    assert (math.fabs(aReslength - aReflength) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aReflength, aReslength)
-
-    aRefSurface = 240000
-    aResSurface = Props[1]
-    assert (math.fabs(aResSurface - aRefSurface) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aRefSurface, aResSurface)
-
-    aRefVolume = 8000000
-    aResVolume = Props[2]
-    assert (math.fabs(aResVolume - aRefVolume) < myDelta), "The volume is wrong: expected = {0}, real = {1}".format(aRefVolume, aResVolume)
-
-    
-if __name__ == '__main__':
-
-    test_Basic_properties()
-        
-    #=========================================================================
-    # End of test
-    #=========================================================================
diff --git a/src/FeaturesPlugin/Test/TestGeometryCalculation.py b/src/FeaturesPlugin/Test/TestGeometryCalculation.py
new file mode 100644 (file)
index 0000000..a3e1f1e
--- /dev/null
@@ -0,0 +1,80 @@
+# Copyright (C) 2014-2020  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
+#
+
+"""
+      Unit test of ...
+"""
+#=========================================================================
+# Initialization of the test
+#=========================================================================
+
+import salome
+
+import os
+import math
+
+from ModelAPI import *
+from salome.shaper import model
+
+
+
+__updated__ = "2020-11-12"
+
+
+#=========================================================================
+# test Geometry calculation
+#=========================================================================
+def test_Geometry_Calculation():
+
+    model.begin()
+    file_path = os.path.join(os.getenv("DATA_DIR"),"Shapes","Brep","box1.brep")
+    partSet = model.moduleDocument()
+    Part_1 = model.addPart(partSet)
+    Part_1_doc = Part_1.document()
+    Import_1 = model.addImport(Part_1_doc,file_path)
+    model.do()
+    
+    myDelta = 1e-6
+    Props = model.getGeometryCalculation(Part_1_doc,model.selection("SOLID", "box1_1"))
+
+    print(" Geometry calculation:")
+    print(" Wires length: ", Props[0])
+    print(" Surface area: ", Props[1])
+    print(" Volume      : ", Props[2]) 
+    
+    aReflength = 2400
+    aReslength = Props[0]
+    assert (math.fabs(aReslength - aReflength) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aReflength, aReslength)
+
+    aRefSurface = 240000
+    aResSurface = Props[1]
+    assert (math.fabs(aResSurface - aRefSurface) < myDelta), "The surface is wrong: expected = {0}, real = {1}".format(aRefSurface, aResSurface)
+
+    aRefVolume = 8000000
+    aResVolume = Props[2]
+    assert (math.fabs(aResVolume - aRefVolume) < myDelta), "The volume is wrong: expected = {0}, real = {1}".format(aRefVolume, aResVolume)
+
+    
+if __name__ == '__main__':
+
+    test_Geometry_Calculation()
+        
+    #=========================================================================
+    # End of test
+    #=========================================================================
diff --git a/src/FeaturesPlugin/doc/TUI_basic_properties.rst b/src/FeaturesPlugin/doc/TUI_basic_properties.rst
deleted file mode 100644 (file)
index 8e6eeaf..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-  .. _tui_basic_properties:
-
-Get basic properties
-====================
-
-.. literalinclude:: examples/basic_properties.py 
-    :linenos:
-    :language: python
-
-:download:`Download this script <examples/basic_properties.py>`
-   
diff --git a/src/FeaturesPlugin/doc/TUI_geometry_calculation.rst b/src/FeaturesPlugin/doc/TUI_geometry_calculation.rst
new file mode 100644 (file)
index 0000000..43a8f06
--- /dev/null
@@ -0,0 +1,12 @@
+
+  .. _tui_geometry_calculation:
+
+Get Geometry Calculation
+========================
+
+.. literalinclude:: examples/geometry_calculation.py 
+    :linenos:
+    :language: python
+
+:download:`Download this script <examples/geometry_calculation.py>`
+   
diff --git a/src/FeaturesPlugin/doc/examples/basic_properties.py b/src/FeaturesPlugin/doc/examples/basic_properties.py
deleted file mode 100644 (file)
index ab42848..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-import os
-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)
-properties = model.getBasicProperties(Part_1_doc,model.selection("SOLID", "Box_1_1"))
-print(" length: ", properties[0])
-print(" area: ", properties[1])
-print(" volume: ", properties[2]) 
-model.end()
\ No newline at end of file
diff --git a/src/FeaturesPlugin/doc/examples/geometry_calculation.py b/src/FeaturesPlugin/doc/examples/geometry_calculation.py
new file mode 100644 (file)
index 0000000..e1e340a
--- /dev/null
@@ -0,0 +1,13 @@
+import os
+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)
+properties = model.getGeometryCalculation(Part_1_doc,model.selection("SOLID", "Box_1_1"))
+print(" length: ", properties[0])
+print(" area: ", properties[1])
+print(" volume: ", properties[2]) 
+model.end()
\ No newline at end of file
index 1b0dea0bd5c75367b2f0dc9a2ab85412a990248f..2487d531713b9ed14c85bc97d936517cbf88136a 100644 (file)
@@ -1,22 +1,22 @@
-.. |basicproperties.icon|    image:: images/basicproperties.png
+.. |GeometryCalculation.icon|    image:: images/geometryCalculation.png
 
 Geometry calculation
 ====================
 
 The **Geometry calculation** feature displays basic properties of sub-elements of a geometrical object (shape).
 
-The basic properties displayed in the property panel are length, area and volume.
+The geometry calculation displayed in the property panel are length, area and volume.
 
 **Apply** button does not generate any result and has the same effect as **Cancel** for this feature.  
 
-To display basic properties in the active part:
+To display geometry calculation in the active part:
 
 #. select in the Main Menu *Inspection - > Geometry calculation* item  or
-#. click |basicproperties.icon| **Geometry calculation** button in the toolbar
+#. click |GeometryCalculation.icon| **Geometry calculation** button in the toolbar
 
-The basic properties can be displayed for a selected object in the property panel : 
+The geometry calculation can be displayed for a selected object in the property panel : 
 
-.. figure:: images/basicPropertiesPropertyPanel.png
+.. figure:: images/geometryCalculationPropertyPanel.png
    :align: center
 
    Geometry calculation
@@ -25,14 +25,14 @@ Input fields:
 
 - **Object** contains an object selected in 3D OCC viewer or object browser. 
 
-The basic properties displayed can be selected.
+The geometry calculation displayed can be selected.
 
 **TUI Command**:
 
-.. py:function:: model.GetBasicProperties(Part_doc, shape)
+.. py:function:: model.getGeometryCalculation(Part_doc, shape)
 
     :param part: The current part object.
     :param object: A shape in format *model.selection("type", shape)*.
     :return: list containing length, area and volume.
 
-**See Also** a sample TUI Script of :ref:`tui_basic_properties` operation.
\ No newline at end of file
+**See Also** a sample TUI Script of :ref:`tui_geometry_calculation` operation.
\ No newline at end of file
diff --git a/src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png b/src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png
deleted file mode 100644 (file)
index 17f8cd7..0000000
Binary files a/src/FeaturesPlugin/doc/images/basicPropertiesPropertyPanel.png and /dev/null differ
diff --git a/src/FeaturesPlugin/doc/images/basicproperties.png b/src/FeaturesPlugin/doc/images/basicproperties.png
deleted file mode 100644 (file)
index f46c0da..0000000
Binary files a/src/FeaturesPlugin/doc/images/basicproperties.png and /dev/null differ
diff --git a/src/FeaturesPlugin/doc/images/geometryCalculation.png b/src/FeaturesPlugin/doc/images/geometryCalculation.png
new file mode 100644 (file)
index 0000000..f46c0da
Binary files /dev/null and b/src/FeaturesPlugin/doc/images/geometryCalculation.png differ
diff --git a/src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png b/src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png
new file mode 100644 (file)
index 0000000..17f8cd7
Binary files /dev/null and b/src/FeaturesPlugin/doc/images/geometryCalculationPropertyPanel.png differ
index 73c6bcc07ae0547b13ed3f92b0540aebbaf55f39..55979378c069f47ec159e6016f45d6331082a2a2 100644 (file)
@@ -7,7 +7,7 @@
                   geometrical_selection="true">
     <validator id="GeomValidators_ShapeType" parameters="line,edge,wire,face,shell,solid,compsolid,compound"/>
   </shape_selector>
-  <label id="length" isSelectable = "true"/>
-  <label id="area" isSelectable = "true"/>
-  <label id="volume" isSelectable = "true"/>
+  <label id="length" label="Length = " isSelectable = "true"/>
+  <label id="area" label="Area = " isSelectable = "true"/>
+  <label id="volume" label="Volume = " isSelectable = "true"/>
 </source>
diff --git a/src/FeaturesPlugin/icons/basicproperties.png b/src/FeaturesPlugin/icons/basicproperties.png
deleted file mode 100644 (file)
index f46c0da..0000000
Binary files a/src/FeaturesPlugin/icons/basicproperties.png and /dev/null differ
diff --git a/src/FeaturesPlugin/icons/geometryCalculation.png b/src/FeaturesPlugin/icons/geometryCalculation.png
new file mode 100644 (file)
index 0000000..f46c0da
Binary files /dev/null and b/src/FeaturesPlugin/icons/geometryCalculation.png differ
index 18f26315dfd3f79fc2c8e9e47a79d8a01aba1501..dca9eb668df364925b00838729f0850be74ae330 100644 (file)
         <source path="fillet1d_widget.xml"/>
       </feature>
       <feature id="Fillet" title="Fillet" tooltip="Perform fillet on face or edge"
-               icon="icons/Features/fillet.png" auto_preview="false" helpfile="filletFeature.html">
+               icon="icons/Features/fillet.png" auto_preview="true" helpfile="filletFeature.html">
         <source path="fillet_widget.xml"/>
       </feature>
       <feature id="Chamfer" title="Chamfer" tooltip="Perform chamfer on face or edge"
   <workbench id="Inspection">
     <group id="Calculation">
       <feature id="GeometryCalculation" title="Geometry calculation" tooltip="Calculate properties of objects"
-               icon="icons/Features/basicproperties.png" helpfile="geometryCalculationFeature.html" abort_confirmation="false">
+               icon="icons/Features/geometryCalculation.png" helpfile="geometryCalculationFeature.html" abort_confirmation="false">
         <source path="geometry_calculation_widget.xml"/>
       </feature>
       <feature id="Measurement" title="Measurement" tooltip="Calculate properties of objects"
index af8c0acf6476b86c3e54edf425d9fc1fb223f81d..3900e711bdfb3b102ce6b2ad716971855cd3cc86 100644 (file)
@@ -33,7 +33,7 @@ SET(PROJECT_HEADERS
     GeomAlgoAPI_Prism.h
     GeomAlgoAPI_Revolution.h
     GeomAlgoAPI_Boolean.h
-    GeomAlgoAPI_BasicProperties.h
+    GeomAlgoAPI_GeometryCalculation.h
     GeomAlgoAPI_ThroughAll.h
     GeomAlgoAPI_Rotation.h
     GeomAlgoAPI_Translation.h
@@ -99,7 +99,7 @@ SET(PROJECT_SOURCES
     GeomAlgoAPI_Prism.cpp
     GeomAlgoAPI_Revolution.cpp
     GeomAlgoAPI_Boolean.cpp
-    GeomAlgoAPI_BasicProperties.cpp
+    GeomAlgoAPI_GeometryCalculation.cpp
     GeomAlgoAPI_ThroughAll.cpp
     GeomAlgoAPI_Rotation.cpp
     GeomAlgoAPI_Translation.cpp
diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_BasicProperties.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_BasicProperties.cpp
deleted file mode 100644 (file)
index 10a540b..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright (C) 2014-2020  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 "GeomAlgoAPI_BasicProperties.h"
-
-#include <GProp_GProps.hxx>
-#include <TopoDS_Shape.hxx>
-#include <BRepGProp.hxx>
-#include <TopExp_Explorer.hxx>
-#include <Standard_ErrorHandler.hxx>
-
-//=================================================================================================
-bool GetBasicProperties(const std::shared_ptr<GeomAPI_Shape>& theShape,
-                        const double theTolerance,
-                        Standard_Real& theLength,
-                        Standard_Real& theSurfArea,
-                        Standard_Real& theVolume,
-                        std::string& theError)
-{
-
-  #ifdef _DEBUG
-  std::cout << "GetBasicProperties " << std::endl;
-  #endif
-
-  if (!theShape.get()) {
-    theError = "GetBasicProperties : An invalid argument";
-    return false;
-  }
-
-  TopoDS_Shape aShape = theShape->impl<TopoDS_Shape>();
-
-  //Compute the parameters
-  GProp_GProps LProps, SProps;
-  Standard_Real anEps = theTolerance >= 0 ? theTolerance : 1.e-6;
-  try {
-    OCC_CATCH_SIGNALS;
-    BRepGProp::LinearProperties(aShape, LProps, Standard_True);
-    theLength = LProps.Mass();
-
-    BRepGProp::SurfaceProperties(aShape, SProps, anEps, Standard_True);
-    theSurfArea = SProps.Mass();
-
-    theVolume = 0.0;
-    if (aShape.ShapeType() < TopAbs_SHELL) {
-      for (TopExp_Explorer Exp (aShape, TopAbs_SOLID); Exp.More(); Exp.Next()) {
-        GProp_GProps VProps;
-        BRepGProp::VolumeProperties(Exp.Current(), VProps, anEps, Standard_True);
-        theVolume += VProps.Mass();
-      }
-    }
-  }
-  catch (Standard_Failure& aFail) {
-    theError = aFail.GetMessageString();
-    return false;
-  }
-
-  return true;
-
-}
\ No newline at end of file
diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_BasicProperties.h b/src/GeomAlgoAPI/GeomAlgoAPI_BasicProperties.h
deleted file mode 100644 (file)
index 6ad8974..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2014-2020  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 GeomAlgoAPI_BasicProperties_H_
-#define GeomAlgoAPI_BasicProperties_H_
-
-#include <GeomAlgoAPI.h>
-#include <GeomAPI_Shape.h>
-#include <Standard_TypeDef.hxx>
-
-/// Run chamfer operation with two distances or with a distance and an angle .
-  /// \param theShape      the shape
-  /// \param theTolerance  tolerance desirated
-  /// \param theLength     length calculated
-  /// \param theSurfArea   Surface Area calculated
-  /// \param theVolume     Volume calculated
-  /// \param theError      error
-GEOMALGOAPI_EXPORT
-bool GetBasicProperties(const std::shared_ptr<GeomAPI_Shape>& theShape,
-                        const Standard_Real theTolerance,
-                        Standard_Real& theLength,
-                        Standard_Real& theSurfArea,
-                        Standard_Real& theVolume,
-                        std::string& theError);
-
-#endif
diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_GeometryCalculation.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_GeometryCalculation.cpp
new file mode 100644 (file)
index 0000000..43af83c
--- /dev/null
@@ -0,0 +1,75 @@
+// Copyright (C) 2014-2020  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 "GeomAlgoAPI_GeometryCalculation.h"
+
+#include <GProp_GProps.hxx>
+#include <TopoDS_Shape.hxx>
+#include <BRepGProp.hxx>
+#include <TopExp_Explorer.hxx>
+#include <Standard_ErrorHandler.hxx>
+
+//=================================================================================================
+bool getGeometryCalculation(const std::shared_ptr<GeomAPI_Shape>& theShape,
+                            const double theTolerance,
+                            Standard_Real& theLength,
+                            Standard_Real& theSurfArea,
+                            Standard_Real& theVolume,
+                            std::string& theError)
+{
+
+  #ifdef _DEBUG
+  std::cout << "getGeometryCalculation " << std::endl;
+  #endif
+
+  if (!theShape.get()) {
+    theError = "getGeometryCalculation : An invalid argument";
+    return false;
+  }
+
+  TopoDS_Shape aShape = theShape->impl<TopoDS_Shape>();
+
+  //Compute the parameters
+  GProp_GProps aLProps, aSProps;
+  Standard_Real anEps = theTolerance >= 0 ? theTolerance : 1.e-6;
+  try {
+    OCC_CATCH_SIGNALS;
+    BRepGProp::LinearProperties(aShape, aLProps, Standard_True);
+    theLength = aLProps.Mass();
+
+    BRepGProp::SurfaceProperties(aShape, aSProps, anEps, Standard_True);
+    theSurfArea = aSProps.Mass();
+
+    theVolume = 0.0;
+    if (aShape.ShapeType() < TopAbs_SHELL) {
+      for (TopExp_Explorer anExp (aShape, TopAbs_SOLID); anExp.More(); anExp.Next()) {
+        GProp_GProps aVProps;
+        BRepGProp::VolumeProperties(anExp.Current(), aVProps, anEps, Standard_True);
+        theVolume += aVProps.Mass();
+      }
+    }
+  }
+  catch (Standard_Failure& aFail) {
+    theError = aFail.GetMessageString();
+    return false;
+  }
+
+  return true;
+
+}
\ No newline at end of file
diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_GeometryCalculation.h b/src/GeomAlgoAPI/GeomAlgoAPI_GeometryCalculation.h
new file mode 100644 (file)
index 0000000..df1f2f2
--- /dev/null
@@ -0,0 +1,42 @@
+// Copyright (C) 2014-2020  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 GeomAlgoAPI_GeometryCalculation_H_
+#define GeomAlgoAPI_GeometryCalculation_H_
+
+#include <GeomAlgoAPI.h>
+#include <GeomAPI_Shape.h>
+#include <Standard_TypeDef.hxx>
+
+/// Run chamfer operation with two distances or with a distance and an angle .
+  /// \param theShape      the shape
+  /// \param theTolerance  tolerance desirated
+  /// \param theLength     length calculated
+  /// \param theSurfArea   Surface Area calculated
+  /// \param theVolume     Volume calculated
+  /// \param theError      error
+GEOMALGOAPI_EXPORT
+bool getGeometryCalculation(const std::shared_ptr<GeomAPI_Shape>& theShape,
+                            const Standard_Real theTolerance,
+                            Standard_Real& theLength,
+                            Standard_Real& theSurfArea,
+                            Standard_Real& theVolume,
+                            std::string& theError);
+
+#endif
index 7e3f86de0ab80bdf75d1b2397dfeb846dd64de43..3aada3be8f18d931932198afab119e009d2d47fa 100644 (file)
@@ -37,6 +37,9 @@ ModuleBase_WidgetLabel::ModuleBase_WidgetLabel(QWidget* theParent,
 : ModuleBase_ModelWidget(theParent, theData)
 {
   QString aText = translate(theData->getProperty("title"));
+
+  myPrefix  = theData->getProperty(ATTR_LABEL);
+
   bool aIsHtml = theData->getBooleanAttribute(ATTR_HTML_STYLE, false);
 
   QString aLabelIcon = QString::fromStdString(theData->getProperty("icon"));
@@ -99,7 +102,11 @@ bool ModuleBase_WidgetLabel::restoreValueCustom()
         aText = ModuleBase_Tools::translate(myFeature->getKind(), aMsg);
       }
     }
-    myLabel->setText(aText);
+    if (myPrefix == "") {
+      myLabel->setText(aText);
+    } else {
+      myLabel->setText( ModuleBase_Tools::translate(myFeature->getKind(), myPrefix) + aText);
+    }
   }
   return true;
 }
index be90456c0c49989f467758f874bb8d37fdfc4592..6c01efad9cd49faf5ee4409c8e76e89af21e33f6 100644 (file)
@@ -61,6 +61,8 @@ protected:
 
   /// A label control
   QLabel* myLabel;
+  /// prefix for label
+  std::string myPrefix;
 };
 
 #endif
index 354362e09fc346b35888d0d83fc345ef33bc7ae3..418c38931235931adcc8c2af8b12515022e3ce5f 100644 (file)
@@ -30,7 +30,7 @@ from FeaturesAPI import addRecover
 from FeaturesAPI import addFillet, addChamfer
 from FeaturesAPI import addFusionFaces
 from FeaturesAPI import measureLength, measureDistance, measureRadius, measureAngle
-from FeaturesAPI import getBasicProperties
+from FeaturesAPI import getGeometryCalculation
 from FeaturesAPI import addRemoveResults
 from FeaturesAPI import addCopy, addImportResult
 from FeaturesAPI import addDefeaturing