Salome HOME
Dump Bathymetry data to python script (Feature #13).
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Tool.h
index 29bd4de731d59b217ca4db26dee8a50d42a157c5..35ab64743bb4a04479a8022545858a1d3540872f 100644 (file)
 #ifndef HYDROGUI_TOOL_H
 #define HYDROGUI_TOOL_H
 
-#include <HYDROData_Object.h>
+#include <HYDROData_Image.h>
 
 #include <GraphicsView_Defs.h>
+#include <GraphicsView_ViewPort.h>
+
+#include <TCollection_AsciiString.hxx>
+#include <TCollection_ExtendedString.hxx>
+#include <TCollection_HAsciiString.hxx>
+#include <TCollection_HExtendedString.hxx>
 
 class SUIT_ViewManager;
 
@@ -40,6 +46,70 @@ class HYDROGUI_Prs;
 class HYDROGUI_Tool
 {
 public:
+  /**
+   * \brief Convert \a TCollection_AsciiString to \a QString
+   */
+  static QString                                  ToQString( const TCollection_AsciiString& );
+
+  /**
+   * \brief Convert \a TCollection_ExtendedString to \a QString
+   */
+  static QString                                  ToQString( const TCollection_ExtendedString& );
+
+  /**
+   * \brief Convert \a Handle_TCollection_HAsciiString to \a QString
+   */
+  static QString                                  ToQString( const Handle(TCollection_HAsciiString)& );
+
+  /**
+   * \brief Convert \a Handle_TCollection_HExtendedString to \a QString
+   */
+  static QString                                  ToQString( const Handle(TCollection_HExtendedString)& );
+
+  /**
+   * \brief Convert \a QString to \a TCollection_AsciiString
+   */
+  static TCollection_AsciiString                  ToAsciiString( const QString& );
+
+  /**
+   * \brief Convert \a QString to \a TCollection_ExtendedString
+   */
+  static TCollection_ExtendedString               ToExtString( const QString& );
+
+  /**
+   * \brief Convert \a QString to \a Handle_TCollection_HAsciiString
+   */
+  static Handle(TCollection_HAsciiString)         ToHAsciiString( const QString& );
+
+  /**
+   * \brief Convert \a QString to \a Handle_TCollection_HExtendedString
+   */
+  static Handle(TCollection_HExtendedString)      ToHExtString( const QString& );
+
+  /**
+   * \brief Encode the Lambert93 coordinates to the absolute double value
+   */
+  static void                     LambertToDouble( const int theDegrees,
+                                                   const int theMinutes,
+                                                   const double theSeconds,
+                                                   double& theCoord );
+
+  /**
+   * \brief Decode the Lambert93 coordinates from the absolute double value
+   */
+  static void                     DoubleToLambert( const double theCoord,
+                                                   int& theDegrees,
+                                                   int& theMinutes,
+                                                   double& theSeconds );
+
+  /**
+   * \brief Check that the specified objects are equal.
+   * \param theObj1 first object
+   * \param theObj2 second object
+   */
+  static bool                     IsEqual( const Handle(HYDROData_Object)& theObj1,
+                                           const Handle(HYDROData_Object)& theObj2 );
+
   /**
    * \brief Set the specified view manager to be active on the desktop.
    * \param theModule module
@@ -50,12 +120,10 @@ public:
 
   /**
    * \brief Get sub-objects to build presentations.
-   * \param theGUIModel data model
-   * \param theViewerId viewer id
+   * \param theModule module
    * \param theSeq sequence of sub-objects
    */
-  static void                     GetPrsSubObjects( const HYDROGUI_DataModel* theGUIModel,
-                                                    const int theViewerId,
+  static void                     GetPrsSubObjects( HYDROGUI_Module* theModule,
                                                     HYDROData_SequenceOfObjects& theSeq );
 
   /**
@@ -66,6 +134,83 @@ public:
    */
   static HYDROGUI_Prs*            GetPresentation( const Handle(HYDROData_Object)& theObj,
                                                    const GraphicsView_ObjectList& theObjects );
+
+  /**
+   * \brief Get list of HYDRO presentations from the specified viewport.
+   * \param theViewPort viewport
+   * \return list of HYDRO presentations
+   */
+  static GraphicsView_ObjectList  GetPrsList( GraphicsView_ViewPort* theViewPort );
+
+  /**
+   * \brief Get list of the selected data objects.
+   * \param theModule module
+   * \return list of the selected data objects
+   */
+  static HYDROData_SequenceOfObjects GetSelectedObjects( HYDROGUI_Module* theModule );
+
+  /**
+   * \brief Get the selected data object (first in the selected list).
+   * \param theModule module
+   * \return selected data object
+   */
+  static Handle(HYDROData_Object) GetSelectedObject( HYDROGUI_Module* theModule );
+
+  /**
+   * \brief Find the data object with the specified name.
+   * \param theModule module
+   * \param theName name
+   * \param theObjectKind kind of object
+   * \return data object
+   */
+  static Handle(HYDROData_Object) FindObjectByName( HYDROGUI_Module* theModule,
+                                                    const QString& theName,
+                                                    const ObjectKind theObjectKind = KIND_UNKNOWN );
+
+  /**
+   * \brief Generate name for new object.
+   * \param theModule module
+   * \param thePrefix name prefix
+   * \return generated name
+   */
+  static QString                  GenerateObjectName( HYDROGUI_Module* theModule,
+                                                      const QString& thePrefix );
+
+  /**
+   * \brief Get id of the active GraphicsView view.
+   * \param theModule module
+   * \return view id
+   */
+  static size_t                   GetActiveGraphicsViewId( HYDROGUI_Module* theModule );
+
+  /**
+   * \brief Get list of ids of existing GraphicsView views.
+   * \param theModule module
+   * \return list of view ids
+   */
+  static QList<size_t>            GetGraphicsViewIdList( HYDROGUI_Module* theModule );
+
+  /**
+   * \brief Get the list of references (recursively) for the specified image object
+   * \param theImage image data object
+   * \param theRefObjects list of reference objects
+   * \param theRefNames list of reference object names
+   */
+  static void                     GetObjectReferences( const Handle(HYDROData_Image)& theImage,
+                                                       HYDROData_SequenceOfObjects& theRefObjects,
+                                                       QStringList& theRefNames );
+
+  /**
+   * \brief Get the list of back-references for the specified object
+   * \param theModule module
+   * \param theObj data object
+   * \param theBackRefObjects list of back-reference objects
+   * \param theBackRefNames list of back-reference object names
+   */
+  static void                     GetObjectBackReferences( HYDROGUI_Module* theModule,
+                                                           const Handle(HYDROData_Object)& theObj,
+                                                           HYDROData_SequenceOfObjects& theBackRefObjects,
+                                                           QStringList& theBackRefNames );
 };
 
 #endif