Salome HOME
0022523: [CEA 1096] Add a colomn "biquadratic" in "Mesh Information"
[modules/smesh.git] / src / SMESH_PY / smeshstudytools.py
index 7281fe51961b1920b2fc4d3009745997028a7e57..a043765799c6872dff1abbb53f15badbb03d5c47 100644 (file)
@@ -1,11 +1,11 @@
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # 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.
+# 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
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
+
+## \package smeshstudytools Python API to access SMESH objects in the study.
+
+## \defgroup smeshstudytools Accessing SMESH object in the study
+#  \{ 
+#  \details
+#  Module \b smeshstudytools provides a new class SMeshStudyTools to facilitate the
+#  use of mesh objects in Salome study.
+#  \}
+
 """
 This module provides a new class :class:`SMeshStudyTools` to facilitate the
 use of mesh objects in Salome study.
@@ -27,11 +37,19 @@ import salome
 SMESH = None    # SMESH module is loaded only when needed
 
 from salome.kernel.studyedit import getStudyEditor
-try:
-    from salome.gui import helper
-except ImportError:
-    pass
-
+from salome.kernel.deprecation import is_called_by_sphinx
+if not is_called_by_sphinx():
+  from salome.gui import helper
+
+## This class provides several methods to manipulate mesh objects in Salome
+#  study. The parameter \em studyEditor defines a \b StudyEditor
+#  object used to access the study. If \b None, the method returns a 
+#  \b StudyEditor object on the current study.
+#
+#  \b editor
+#  This instance attribute contains the underlying \b StudyEditor object. 
+#  It can be used to access the study but the attribute itself should not be modified.
+#  \ingroup smeshstudytools
 class SMeshStudyTools:
     """
     This class provides several methods to manipulate mesh objects in Salome
@@ -57,13 +75,18 @@ class SMeshStudyTools:
         self.editor = studyEditor
         self.smeshGui = None
 
+    ## This function updates the tools so that it works on the
+    #  specified study.
     def updateStudy(self, studyId=None):
         """
         This function updates the tools so that it works on the
         specified study.
         """
         self.editor = getStudyEditor(studyId)
-        
+
+    ## Get the mesh item owning the mesh group \em meshGroupItem.
+    #  \param  meshGroupItem (SObject) mesh group belonging to the searched mesh.
+    #  \return The SObject corresponding to the mesh, or None if it was not found.        
     def getMeshFromGroup(self, meshGroupItem):
         """
         Get the mesh item owning the mesh group `meshGroupItem`.
@@ -82,32 +105,38 @@ class SMeshStudyTools:
             meshItem = salome.ObjectToSObject(meshObj)
         return meshItem
 
-
+    ## Returns the MESH object currently selected in the active study.
     def getMeshObjectSelected(self):
-        '''
+        """
         Returns the MESH object currently selected in the active study.
-        '''
+        """
         sobject, entry = helper.getSObjectSelected()
         meshObject = self.getMeshObjectFromEntry(entry)
         return meshObject
 
+    ## Returns the MESH object associated to the specified entry,
+    #  (the entry is the identifier of an item in the objects browser).
     def getMeshObjectFromEntry(self, entry):
-        '''
+        """
         Returns the MESH object associated to the specified entry,
         (the entry is the identifier of an item in the objects browser).
-        '''
+        """
         if entry is None:
             return None
-        import smesh
-        smesh.SetCurrentStudy(self.editor.study)
+        import SMESH
+        from salome.smesh import smeshBuilder
+        smesh = smeshBuilder.New(self.editor.study)
+
         meshObject=smesh.IDToObject(entry)
         return meshObject
-
+    
+    ## Returns the SMESH object associated to the specified \em SObject,
+    #  (the SObject is an item in the objects browser).
     def getMeshObjectFromSObject(self, sobject):
-        '''
+        """
         Returns the SMESH object associated to the specified SObject,
         (the SObject is an item in the objects browser).
-        '''
+        """
         if sobject is None:
             return None
         
@@ -115,11 +144,13 @@ class SMeshStudyTools:
         meshObject = obj._narrow(SMESH.SMESH_Mesh)
         return meshObject
 
+    ## Display the SMESH object associated to the specified \em entry
+    #  (the entry is the identifier of an item in the objects browser).
     def displayMeshObjectFromEntry(self,entry):
-        '''
+        """
         Display the SMESH object associated to the specified entry
         (the entry is the identifier of an item in the objects browser).    
-        '''
+        """
         if self.smeshGui is None:
             self.smeshGui = salome.ImportComponentGUI("SMESH")
 
@@ -154,13 +185,17 @@ class SMeshStudyTools:
 def TEST_createBoxMesh():
     theStudy = helper.getActiveStudy()
     
-    import geompy
-    geompy.init_geom(theStudy)
+    import GEOM
+    from salome.geom import geomBuilder
+    geompy = geomBuilder.New(theStudy)
+    
     box = geompy.MakeBoxDXDYDZ(200, 200, 200)
 
-    import smesh, SMESH, SALOMEDS    
-    smesh.SetCurrentStudy(theStudy)
-    import StdMeshers
+    import SMESH, SALOMEDS
+    from salome.smesh import smeshBuilder
+    smesh = smeshBuilder.New(theStudy) 
+
+    from salome.StdMeshers import StdMeshersBuilder
     boxmesh = smesh.Mesh(box)
     Regular_1D = boxmesh.Segment()
     Nb_Segments_1 = Regular_1D.NumberOfSegments(15)