X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMGUI%2FGeometryGUI.h;h=2688dcc5518b118ad18dfc3c6d616d8fd74b586e;hb=2d64222b28ca071049b6513ce70eb3d00ea1d1cd;hp=a82efcb25bf99c14dadee59c352c46c4360f9158;hpb=57c06196d908503052c2c6f2e465a032a7e9dcdb;p=modules%2Fgeom.git diff --git a/src/GEOMGUI/GeometryGUI.h b/src/GEOMGUI/GeometryGUI.h index a82efcb25..2688dcc55 100644 --- a/src/GEOMGUI/GeometryGUI.h +++ b/src/GEOMGUI/GeometryGUI.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -19,6 +19,7 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // GEOM GEOMGUI : GUI for Geometry component // File : GeometryGUI.h // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) @@ -41,12 +42,29 @@ // OCCT Includes #include +#include // IDL headers #include "SALOMEconfig.h" #include CORBA_CLIENT_HEADER(SALOMEDS) -typedef QMap GUIMap; +// minimum allowed value for deflection coefficient +#define DEFLECTION_MIN 1e-06 + +//Define separators +#define NAME_SEPARATOR '_' // character used to separate parameter names +#define DIGIT_SEPARATOR ':' // character used to separate numeric parameter values (color = r:g:b) + +#define VISIBILITY_PROP "Visibility" //Object visibility property +#define OPACITY_PROP "Opacity" //Object opacity property +#define TRANSPARENCY_PROP "Transparency" //Object transparency property +#define DISPLAY_MODE_PROP "DisplayMode" //Object display mode property +#define ISOS_PROP "Isos" //Number of the Isos property of the object +#define COLOR_PROP "Color" //Color of the object +#define VECTOR_MODE_PROP "VectorMode" //Vector mode property +#define DEFLECTION_COEFF_PROP "DeflectionCoeff" //Deflection coeff property +#define MARKER_TYPE_PROP "MarkerType" // Marker type property + class QDialog; class QMenu; @@ -54,6 +72,7 @@ class GEOMGUI_OCCSelector; class LightApp_VTKSelector; class LightApp_Selection; class SUIT_ViewManager; +class SalomeApp_Study; //================================================================================= // class : GeometryGUI @@ -74,17 +93,18 @@ public: virtual void initialize( CAM_Application* ); virtual QString engineIOR() const; - static bool InitGeomGen(); //BugID IPAL9186: SRN: To be called by Python scripts + static Handle(Graphic3d_HArray1OfBytes) getTexture( SalomeApp_Study*, int, int&, int& ); + + static bool InitGeomGen(); - static GEOM::GEOM_Gen_var GetGeomGen();// { return GeometryGUI::myComponentGeom; } + static GEOM::GEOM_Gen_var GetGeomGen(); static CORBA::Object_var ClientSObjectToObject (_PTR(SObject) theSObject); static SALOMEDS::Study_var ClientStudyToStudy (_PTR(Study) theStudy); - GEOM_Client& GetShapeReader() { return myShapeReader; } - Standard_CString& GetFatherior() { return myFatherior; } - //void SetState( const int state ) { myState = state; } - //int GetState() const { return myState; } + static void Modified( bool = true ); + + GEOM_Client& GetShapeReader() { static SHAPE_READER(myShapeReader);return myShapeReader; } // Get active dialog box QDialog* GetActiveDialogBox(){ return myActiveDialogBox; } @@ -96,16 +116,9 @@ public: void EmitSignalCloseAllDialogs(); void EmitSignalDefaultStepValueChanged( double newVal ); + // Process action void OnGUIEvent( int id ); -// virtual bool SetSettings(); -// virtual void SupportedViewType ( int* buffer, int bufferSize ); - virtual void BuildPresentation( const Handle(SALOME_InteractiveObject)&, SUIT_ViewWindow* = 0 ); - -// virtual void DefinePopup( QString & theContext, QString & theParent, QString & theObject); -// virtual bool CustomPopup( QAD_Desktop* parent, QMenu* popup, const QString& theContext, -// const QString& theParent, const QString& theObject ); - // The Working Plane management void SetWorkingPlane( gp_Ax3 wp ) { myWorkingPlane = wp; } gp_Ax3 GetWorkingPlane() { return myWorkingPlane; } @@ -150,23 +163,30 @@ protected: private: GEOMGUI* getLibrary( const QString& libraryName ); void createGeomAction( const int id, const QString& po_id, - const QString& icon_id = QString(""), - const int key = 0, const bool toggle = false ); + const QString& icon_id = QString(""), + const int key = 0, const bool toggle = false, + const QString& shortcutAction = QString() ); void createPopupItem( const int, const QString& clients, const QString& types, - const bool isSingle = false, const int isVisible = -1, - const bool isExpandAll = false, const bool isOCC = false, - const int parentId = -1 ); + const bool isSingle = false, const int isVisible = -1, + const bool isExpandAll = false, const bool isOCC = false, + const int parentId = -1 ); + + void createOriginAndBaseVectors(); public: static GEOM::GEOM_Gen_var myComponentGeom; // GEOM engine!!! + private: + + typedef QMap TextureMap; + typedef QMap StudyTextureMap; + typedef QMap GUIMap; + GUIMap myGUIMap; // GUI libraries map QDialog* myActiveDialogBox; // active dialog box - GEOM_Client myShapeReader; // geom shape reader - Standard_CString myFatherior; - int myState; // identify a method gp_Ax3 myWorkingPlane; QMap myRules; // popup rules + static StudyTextureMap myTextureMap; // texture map QList myOCCSelectors; QList myVTKSelectors; @@ -174,7 +194,7 @@ private: LightApp_Displayer* myDisplayer; int myLocalSelectionMode; //Select Only -friend class DisplayGUI; + friend class DisplayGUI; }; #endif