X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMBase%2FGEOMBase.h;h=2dc0b7f5a5a62a944ac5434565c98bcfa08e26c4;hb=496cc5f9ba9ea7ae0e2adc8960a697839c145c20;hp=b6de381c5f7a1f41451be93982c0d7cdc252502a;hpb=a596550f89dfafcf288f8d62a2ca2a1be40ca512;p=modules%2Fgeom.git diff --git a/src/GEOMBase/GEOMBase.h b/src/GEOMBase/GEOMBase.h index b6de381c5..2dc0b7f5a 100644 --- a/src/GEOMBase/GEOMBase.h +++ b/src/GEOMBase/GEOMBase.h @@ -1,126 +1,127 @@ -// GEOM GEOMGUI : GUI for Geometry component +// GEOM GEOMGUI : GUI for Geometry component // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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. +// 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. // -// 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. +// 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 +// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// File : GEOMBase.h +// Author : Damien COQUERET // -// -// File : GEOMBase.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: #ifndef GEOMBASE_H #define GEOMBASE_H -#include "GEOMContext.h" +#include "GEOM_GEOMBase.hxx" // SALOME Includes -#include "QAD_Config.h" -#include "SALOME_Selection.h" -#include "GEOM_Actor.h" -#include "GEOM_AISShape.hxx" -#include "GEOM_InteractiveObject.hxx" - -// Open CASCADE Includes -#include +#include // IDL Headers #include #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) +#include CORBA_SERVER_HEADER(GEOM_Gen) + +// QT Includes +#include + +class GEOM_Actor; +class SALOME_ListIO; + +class QWidget; //================================================================================= // class : GEOMBase // purpose : //================================================================================= -class GEOMBase : public QObject +class GEOMBASE_EXPORT GEOMBase { - Q_OBJECT /* for QT compatibility */ - public : - GEOMBase(); - ~GEOMBase(); + /* Selection and objects management */ + static int GetIndex(const TopoDS_Shape& subshape, const TopoDS_Shape& shape, int ShapeType); + static TopoDS_Shape GetShapeFromIOR(QString IOR); + static bool GetShape(const GEOM::GEOM_Object_ptr&, TopoDS_Shape&, + const TopAbs_ShapeEnum = TopAbs_SHAPE); + static bool GetTopoFromSelection(const SALOME_ListIO& aList, TopoDS_Shape& tds); + static int GetNameOfSelectedIObjects(const SALOME_ListIO& aList, QString& aName, + const bool theShapesOnly = false); + static bool GetShapeTypeString(const TopoDS_Shape& aShape, Standard_CString& aTypeString); - static bool CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString& theContext, - const QString& theParent, const QString& theObject); + /* Convertions */ + static GEOM::GEOM_Object_ptr ConvertIOinGEOMShape(const Handle(SALOME_InteractiveObject)& IO, + Standard_Boolean& testResult); + static Handle(GEOM_AISShape) ConvertIOinGEOMAISShape(const Handle(SALOME_InteractiveObject)& IO, + Standard_Boolean& testResult, + bool onlyInActiveView = false); - bool Display(GEOM::GEOM_Shape_ptr aShape, Standard_CString name = ""); - bool AddInStudy(bool selection = false, const Handle(SALOME_InteractiveObject)& anIO = 0); + static Handle(AIS_InteractiveObject) GetAIS(const Handle(SALOME_InteractiveObject)& theIO, + const bool isOnlyInActiveView = false); + static void ConvertListOfIOInListOfIOR(const SALOME_ListIO& aList, + GEOM::string_array& listIOR); - /* Selection and objects management */ - int GetIndex(const TopoDS_Shape& subshape, const TopoDS_Shape& shape, int ShapeType); - TopoDS_Shape GetShapeFromIOR(QString IOR); - bool GetTopoFromSelection(SALOME_Selection *Sel, TopoDS_Shape& tds); - int GetNameOfSelectedIObjects(SALOME_Selection* Sel, QString& aName); - bool GetShapeTypeString(const TopoDS_Shape& aShape, Standard_CString& aTypeString); + static Handle(GEOM_AISShape) ConvertIORinGEOMAISShape(const char * IOR, + Standard_Boolean& testResult, + bool onlyInActiveView = false); + static GEOM_Actor* ConvertIORinGEOMActor(const char * IOR, Standard_Boolean& testResult, + bool onlyInActiveView = false); - /* Convertions */ - GEOM::GEOM_Shape_ptr ConvertIOinGEOMShape(const Handle(SALOME_InteractiveObject)& IO, - Standard_Boolean& testResult); - Handle(GEOM_AISShape) ConvertIOinGEOMAISShape(const Handle(SALOME_InteractiveObject)& IO, - Standard_Boolean& testResult, - bool onlyInActiveView = false); - void ConvertListOfIOInListOfIOR(const SALOME_ListIO& aList, - GEOM::GEOM_Gen::ListOfIOR& listIOR); - - Handle(GEOM_AISShape) ConvertIORinGEOMAISShape(const char * IOR, - Standard_Boolean& testResult, - bool onlyInActiveView = false); - GEOM_Actor* ConvertIORinGEOMActor(const char * IOR, Standard_Boolean& testResult, - bool onlyInActiveView = false); + static GEOM::GEOM_Object_ptr ConvertIOinGEOMObject(const Handle(SALOME_InteractiveObject)& IO, + Standard_Boolean& testResult); + + static void ConvertListOfIOInListOfGO(const SALOME_ListIO& aList, + GEOM::ListOfGO& listGO, + const bool theShapesOnly = false); + + static GEOM::GEOM_Object_ptr GetObjectFromIOR(const char* theIOR); + + static char* GetIORFromObject(const GEOM::GEOM_Object_ptr& theObject); /* Geometry */ - bool VertexToPoint(const TopoDS_Shape& S, gp_Pnt& P); + static bool VertexToPoint(const TopoDS_Shape& S, gp_Pnt& P); /* Used just by Plane and Prism */ - bool LinearEdgeExtremities(const TopoDS_Shape& S, gp_Pnt& P1, gp_Pnt& P2); - void GetBipointDxDyDz(gp_Pnt P1, gp_Pnt P2, double& dx, double& dy, double& dz); + static bool LinearEdgeExtremities(const TopoDS_Shape& S, gp_Pnt& P1, gp_Pnt& P2); + static void GetBipointDxDyDz(gp_Pnt P1, gp_Pnt P2, double& dx, double& dy, double& dz); /* User dialog 1 parameter returned */ - double Parameter(Standard_Boolean& res, - const char* aValue1 = 0, const char* aTitle1 = 0, - const char* aTitle = 0, const double bottom = -1E6, - const double top = +1E6, const int decimals = 6); - - //void SetDisplayedObjectList(); + static double Parameter(Standard_Boolean& res, + const char* aValue1 = 0, const char* aTitle1 = 0, + const char* aTitle = 0, const double bottom = -1E6, + const double top = +1E6, const int decimals = 6); /* Simulation management */ - bool CreateArrowForLinearEdge(const TopoDS_Shape& tds, TopoDS_Shape& ArrowCone); - void DisplaySimulationShape(const TopoDS_Shape& S); - void EraseSimulationShape(); + static bool CreateArrowForLinearEdge(const TopoDS_Shape& tds, TopoDS_Shape& ArrowCone); - /* Method used by dialog boxes called when used has entered a name of object in a LineEdit */ - bool SelectionByNameInDialogs(QWidget* aWidget, const QString& userObjectName, SALOME_Selection *Sel); - bool DefineDlgPosition(QWidget* aDlg, int& x, int& y); + /* Generates default names */ + static bool SelectionByNameInDialogs(QWidget* aWidget, const QString& userObjectName, + const SALOME_ListIO& aList); + /* Shows message box with error code */ + static bool DefineDlgPosition(QWidget* aDlg, int& x, int& y); /* This method generates default names for results of geometrical operations */ static QString GetDefaultName(const QString& theOperation); + /* Shows message box with error code and comment */ + static void ShowErrorMessage(const char* theErrorCode, const char* theComment = 0); - GEOMContext* myGeomGUI; - GEOM::GEOM_Gen_var myGeom; /* Current Geom Component */ - - Quantity_Color myShadingColor; - Handle(AIS_Shape) mySimulationShape; /* AIS shape used only during topo/geom simulations */ - bool mySettings_AddInStudy; + /* Gets name of object */ + static QString GetName(GEOM::GEOM_Object_ptr); + static bool IsShape(GEOM::GEOM_Object_ptr theObj); }; -#endif - +#endif // GEOMBASE_H