X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMBase%2FGEOMBase.h;h=8d35354dfdab4baab8f30491cf574d351ebf405c;hb=bbafce4b04731f9219f75dc124ec2429d994c202;hp=c118ac7370cc11de203d6c794e422db481af11ad;hpb=409b095d2575bc03423b699dd4416d1d12e53998;p=modules%2Fgeom.git diff --git a/src/GEOMBase/GEOMBase.h b/src/GEOMBase/GEOMBase.h index c118ac737..8d35354df 100644 --- a/src/GEOMBase/GEOMBase.h +++ b/src/GEOMBase/GEOMBase.h @@ -1,36 +1,37 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE // -// 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 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 -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2003-2007 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, 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 +// 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 +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// File : GEOMBase.h -// Author : Damien COQUERET -// Module : GEOM -// $Header$ +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// #ifndef GEOMBASE_H #define GEOMBASE_H +#include "GEOM_GEOMBase.hxx" + // SALOME Includes -#include "GEOM_AISShape.hxx" +#include +#include "GEOM_GenericObjPtr.h" // IDL Headers #include @@ -39,22 +40,10 @@ #include CORBA_SERVER_HEADER(GEOM_Gen) // QT Includes -#include -//#if defined WNT -//#include -//#else -//#define SALOME_WNT_EXPORT -//#endif - -#if defined WNT && defined WIN32 && defined SALOME_WNT_EXPORTS -#define GEOMBASE_WNT_EXPORT __declspec( dllexport ) -#else -#define GEOMBASE_WNT_EXPORT -#endif +#include class GEOM_Actor; class SALOME_ListIO; -class TColStd_MapOfInteger; class QWidget; @@ -62,87 +51,91 @@ class QWidget; // class : GEOMBase // purpose : //================================================================================= -class GEOMBASE_WNT_EXPORT GEOMBase +class GEOMBASE_EXPORT GEOMBase { public : - GEOMBase(); - ~GEOMBase(); - - // SAN -- TO BE REMOVED !!! - static bool Display( GEOM::GEOM_Object_ptr ) {return false;} - static bool AddInStudy( GEOM::GEOM_Object_ptr ) {return false;} - static void DisplaySimulationShape(const TopoDS_Shape& S) {}; - static void EraseSimulationShape() {}; - // SAN -- TO BE REMOVED !!! - /* 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); - - /* 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); - - 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); - - 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); - - 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 ); - + static int GetIndex( const TopoDS_Shape& subshape, const TopoDS_Shape& shape ); + static TopoDS_Shape GetShapeFromIOR( const QString& IOR ); + static bool GetShape( GEOM::GEOM_Object_ptr object, + TopoDS_Shape& shape, + const TopAbs_ShapeEnum type = TopAbs_SHAPE ); + static TopoDS_Shape GetTopoFromSelection( const SALOME_ListIO& IObjects ); + static int GetNameOfSelectedIObjects( const SALOME_ListIO& IObjects, + QString& name, + const bool shapesOnly = false ); + static QString GetShapeTypeString( const TopoDS_Shape& shape ); + + /* Conversions */ + static Handle(GEOM_AISShape) + ConvertIOinGEOMAISShape( const Handle(SALOME_InteractiveObject)& IO, + bool onlyInActiveView = false ); + + static Handle(AIS_InteractiveObject) + GetAIS( const Handle(SALOME_InteractiveObject)& IO, + bool onlyInActiveView = false, + bool onlyGeom = false ); + static QStringList ConvertListOfIOInListOfIOR( const SALOME_ListIO& IObjects ); + + static Handle(GEOM_AISShape) + ConvertIORinGEOMAISShape( const QString& IOR, + bool onlyInActiveView = false ); + static GEOM_Actor* ConvertIORinGEOMActor( const QString& IOR, + bool onlyInActiveView = false ); + + static GEOM::GEOM_Object_ptr + ConvertIOinGEOMObject( const Handle(SALOME_InteractiveObject)& IO ); + + static void ConvertListOfIOInListOfGO( const SALOME_ListIO& IObjects, + GEOM::ListOfGO& geomObjects, + bool shapesOnly = false ); + + static GEOM::GEOM_Object_ptr + GetObjectFromIOR( const QString& IOR ); + + static QString GetIORFromObject( GEOM::GEOM_Object_ptr object ); + /* Geometry */ - static bool VertexToPoint(const TopoDS_Shape& S, gp_Pnt& P); + static bool VertexToPoint( const TopoDS_Shape& shape, gp_Pnt& point ); /* Used just by Plane and Prism */ - 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 */ - 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); + static bool LinearEdgeExtremities( const TopoDS_Shape& shape, + gp_Pnt& point1, gp_Pnt& point2 ); + static void GetBipointDxDyDz( const gp_Pnt& point1, const gp_Pnt& point2, + double& dx, double& dy, double& dz ); /* Simulation management */ - static bool CreateArrowForLinearEdge(const TopoDS_Shape& tds, TopoDS_Shape& ArrowCone); + static TopoDS_Shape CreateArrowForLinearEdge( const TopoDS_Shape& tds ); /* Generates default names */ - static bool SelectionByNameInDialogs(QWidget* aWidget, const QString& userObjectName, const SALOME_ListIO& aList); + static bool SelectionByNameInDialogs( QWidget* widget, + const QString& userObjectName, + const SALOME_ListIO& IObjects ); /* Shows message box with error code */ - static bool DefineDlgPosition(QWidget* aDlg, int& x, int& y); + static void DefineDlgPosition( QWidget* dlg, int& x, int& y ); /* This method generates default names for results of geometrical operations */ - static QString GetDefaultName(const QString& theOperation); + static QString GetDefaultName( const QString& operation, bool extractPrefix = false ); + /* Shows message box with error code and comment */ - static void ShowErrorMessage(const char* theErrorCode, const char* theComment = 0); + static void ShowErrorMessage( const QString& errorCode, const QString& comment = QString() ); /* Gets name of object */ - static QString GetName( GEOM::GEOM_Object_ptr ); + static QString GetName( GEOM::GEOM_Object_ptr object ); - static bool IsShape( GEOM::GEOM_Object_ptr theObj ); -}; + /* Check if object has shape */ + static bool IsShape( GEOM::GEOM_Object_ptr object ); -#endif + /* Get string representation of shape type */ + static QString TypeName( TopAbs_ShapeEnum type, bool capitalize = false ); + + /* Get study entry for the given object */ + static QString GetEntry( GEOM::GEOM_Object_ptr object ); + + /* Publish sub-shape under the main object */ + static void PublishSubObject( GEOM::GEOM_Object_ptr object, const QString& name = QString() ); + + static void Synchronize( QList& left, QList& right ); +}; +#endif // GEOMBASE_H