X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Tool.h;h=370021b5df0215f2697a0b5626e95453f6689124;hb=de7cf9bb0a7a41d6487013c87f4a54d0664cd303;hp=dc2427b78c32d1b45a98611dcb7e5c0dd7892bbb;hpb=2c7a183c127b169bf0d08c30d493d66f2bd8465f;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Tool.h b/src/HYDROGUI/HYDROGUI_Tool.h index dc2427b7..370021b5 100644 --- a/src/HYDROGUI/HYDROGUI_Tool.h +++ b/src/HYDROGUI/HYDROGUI_Tool.h @@ -23,7 +23,7 @@ #ifndef HYDROGUI_TOOL_H #define HYDROGUI_TOOL_H -#include +#include #include #include @@ -39,6 +39,9 @@ class HYDROGUI_DataModel; class HYDROGUI_Module; class HYDROGUI_Prs; +class QDockWidget; +class Handle(HYDROData_Document); + /** * \class HYDROGUI_Tool * \brief This class contains several useful methods. @@ -87,20 +90,17 @@ public: static Handle(TCollection_HExtendedString) ToHExtString( const QString& ); /** - * \brief Encode the Lambert93 coordinates to the absolute double value + * \brief Get the active study id. + * \return active study id */ - static void LambertToDouble( const int theDegrees, - const int theMinutes, - const double theSeconds, - double& theCoord ); + static int GetActiveStudyId(); /** - * \brief Decode the Lambert93 coordinates from the absolute double value + * \brief Get path to the temporary directory. + * \param theToCreate flag used to create a directory if it doesn't exist + * \return path */ - static void DoubleToLambert( const double theCoord, - int& theDegrees, - int& theMinutes, - double& theSeconds ); + static QString GetTempDir( const bool theToCreate ); /** * \brief Set the specified view manager to be active on the desktop. @@ -112,12 +112,10 @@ public: /** * \brief Get sub-objects to build presentations. - * \param theModel data model - * \param theViewerId viewer id + * \param theModule module * \param theSeq sequence of sub-objects */ - static void GetPrsSubObjects( const HYDROGUI_DataModel* theModel, - const int theViewerId, + static void GetPrsSubObjects( HYDROGUI_Module* theModule, HYDROData_SequenceOfObjects& theSeq ); /** @@ -126,7 +124,7 @@ public: * \param theObjects list of existing presentations * \return presentation */ - static HYDROGUI_Prs* GetPresentation( const Handle(HYDROData_Object)& theObj, + static HYDROGUI_Prs* GetPresentation( const Handle(HYDROData_Entity)& theObj, const GraphicsView_ObjectList& theObjects ); /** @@ -148,7 +146,138 @@ public: * \param theModule module * \return selected data object */ - static Handle(HYDROData_Object) GetSelectedObject( HYDROGUI_Module* theModule ); + static Handle(HYDROData_Entity) GetSelectedObject( HYDROGUI_Module* theModule ); + + /** + * \brief Get the geometry data objects from document. + * \param theModule module + * \return sequence of data objects + */ + static HYDROData_SequenceOfObjects GetGeometryObjects( HYDROGUI_Module* theModule ); + + /** + * \brief Get kind of objects the selected partition contains. + * \param theModule module + * \return object kind + */ + static ObjectKind GetSelectedPartition( 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_Entity) FindObjectByName( HYDROGUI_Module* theModule, + const QString& theName, + const ObjectKind theObjectKind = KIND_UNKNOWN ); + + /** + * \brief Find the data objects with the specified names. + * \param theModule module + * \param theNames list of names + * \param theObjectKind kind of object + * \return list of data objects + */ + static HYDROData_SequenceOfObjects FindObjectsByNames( HYDROGUI_Module* theModule, + const QStringList& theNames, + const ObjectKind theObjectKind = KIND_UNKNOWN ); + + /** + * \brief Generate name for new object. + * \param theModule module + * \param thePrefix name prefix + * \param theUsedNames list of already used names + * \return generated name + */ + static QString GenerateObjectName( HYDROGUI_Module* theModule, + const QString& thePrefix, + const QStringList& theUsedNames = QStringList() ); + + /** + * \brief Get id of the active view. + * \param theModule module + * \return view id + */ + static size_t GetActiveViewId( HYDROGUI_Module* theModule, + const QString& theViewId = QString() ); + + /** + * \brief Get id of the active GraphicsView view. + * \param theModule module + * \return view id + */ + static size_t GetActiveGraphicsViewId( HYDROGUI_Module* theModule ); + + /** + * \brief Get id of the active OCC view. + * \param theModule module + * \return view id + */ + static size_t GetActiveOCCViewId( HYDROGUI_Module* theModule ); + + /** + * \brief Get list of ids of existing GraphicsView views. + * \param theModule module + * \return list of view ids + */ + static QList GetGraphicsViewIdList( HYDROGUI_Module* theModule ); + + /** + * \brief Get list of ids of existing OCC views. + * \param theModule module + * \return list of view ids + */ + static QList GetOCCViewIdList( 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_Entity)& theObj, + HYDROData_SequenceOfObjects& theBackRefObjects, + QStringList& theBackRefNames ); + + /** + * \brief Get father dock window for widget + * \param wid widget + * \return dock window + */ + static QDockWidget* WindowDock( QWidget* wid ); + + /** + * \brief Generates the filling color for intersected zone + * \param theModule module + * \param theZoneNames list of intersected zones + * \return result color + */ + static QColor GenerateFillingColor( HYDROGUI_Module* theModule, + const QStringList& theZoneNames ); + + /* + * \brief Generates the filling color for intersected zone + * \param theDoc model document + * \param theZoneNames list of intersected zones + * \return result color + */ + static QColor GenerateFillingColor( const Handle(HYDROData_Document)& theDoc, + const QStringList& theZoneNames ); + }; #endif