X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Utils.h;h=5b2e0b89ba662fb1caa7aa102767b8e7f04a880c;hp=690cd26335c6c4ce2ea3b6d7ee1330013984dc05;hb=30ce546b0c5099ad1112929e2db94810e683e54b;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813 diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index 690cd2633..5b2e0b89b 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -1,34 +1,51 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // -// 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. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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 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. // -// 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 +// 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 +// -#ifndef SMESHGUI_Utils_HeaderFile -#define SMESHGUI_Utils_HeaderFile +// SMESH SMESHGUI : GUI for SMESH component +// File : SMESHGUI_Utils.h +// Author : Open CASCADE S.A.S. +// +#ifndef SMESHGUI_UTILS_H +#define SMESHGUI_UTILS_H +// SMESH includes #include "SMESH_SMESHGUI.hxx" +// CORBA includes #include -#include "SALOMEDSClient_definitions.hxx" -#include "SALOME_InteractiveObject.hxx" -#include "LightApp_DataOwner.h" +// SALOME KERNEL includes +#include +#include + +// SALOME GUI includes +#include +#include -class QString; +//OCC includes +#include + +#include +#include CORBA_CLIENT_HEADER(SMESH_Mesh) class SUIT_ViewWindow; class SUIT_Desktop; @@ -44,19 +61,21 @@ class SalomeApp_Study; class SalomeApp_Module; class LightApp_SelectionMgr; -namespace SMESH { +class SMDS_MeshFace; +namespace SMESH +{ SMESHGUI_EXPORT SUIT_Desktop* - GetDesktop(const CAM_Module* theModule); + GetDesktop( const CAM_Module* ); SMESHGUI_EXPORT LightApp_SelectionMgr* - GetSelectionMgr(const SalomeApp_Module* theModule); + GetSelectionMgr( const SalomeApp_Module* ); SMESHGUI_EXPORT SalomeApp_Study* - GetAppStudy(const CAM_Module* theModule); + GetAppStudy( const CAM_Module* ); SMESHGUI_EXPORT SUIT_ResourceMgr* @@ -64,21 +83,20 @@ SMESHGUI_EXPORT SMESHGUI_EXPORT _PTR(Study) - GetCStudy(const SalomeApp_Study* theStudy); + GetCStudy( const SalomeApp_Study* ); SMESHGUI_EXPORT - CORBA::Object_var DataOwnerToObject(const LightApp_DataOwnerPtr& theOwner); + CORBA::Object_var DataOwnerToObject( const LightApp_DataOwnerPtr& ); template typename TInterface::_var_type - DataOwnerToInterface(const LightApp_DataOwnerPtr& theDataOwner) + DataOwnerToInterface( const LightApp_DataOwnerPtr& theDataOwner ) { CORBA::Object_var anObj = DataOwnerToObject(theDataOwner); if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + return TInterface::_narrow(anObj); return TInterface::_nil(); } - SMESHGUI_EXPORT SUIT_Study* GetActiveStudy(); @@ -89,67 +107,114 @@ SMESHGUI_EXPORT _PTR(Study) GetActiveStudyDocument(); SMESHGUI_EXPORT - _PTR(SObject) FindSObject(CORBA::Object_ptr theObject); + _PTR(SObject) FindSObject( CORBA::Object_ptr ); SMESHGUI_EXPORT - void SetName (_PTR(SObject) theSObject, const char* theName); + void SetName( _PTR(SObject), const QString& ); SMESHGUI_EXPORT - void SetValue (_PTR(SObject) theSObject, const char* theValue); - void setFileType (_PTR(SObject) theSObject, const char* theValue); - void setFileName (_PTR(SObject) theSObject, const char* theValue); + void SetValue( _PTR(SObject), const QString& ); + void setFileType( _PTR(SObject), const QString& ); + void setFileName( _PTR(SObject), const QString& ); SMESHGUI_EXPORT - CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject, - _PTR(Study) theStudy); + CORBA::Object_var SObjectToObject( _PTR(SObject), + _PTR(Study) ); SMESHGUI_EXPORT - CORBA::Object_var SObjectToObject(_PTR(SObject) theSObject); + CORBA::Object_var SObjectToObject( _PTR(SObject) ); template typename TInterface::_var_type - SObjectToInterface(_PTR(SObject) theSObject) + SObjectToInterface( _PTR(SObject) theSObject ) { CORBA::Object_var anObj = SObjectToObject(theSObject); if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + return TInterface::_narrow(anObj); return TInterface::_nil(); } SMESHGUI_EXPORT - CORBA::Object_var IObjectToObject(const Handle(SALOME_InteractiveObject)& theIO); + _PTR(SObject) ObjectToSObject( CORBA::Object_ptr ); + +SMESHGUI_EXPORT + CORBA::Object_var IObjectToObject( const Handle(SALOME_InteractiveObject)& ); template typename TInterface::_var_type - IObjectToInterface(const Handle(SALOME_InteractiveObject)& theIO) + IObjectToInterface( const Handle(SALOME_InteractiveObject)& theIO ) { CORBA::Object_var anObj = IObjectToObject(theIO); if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + return TInterface::_narrow(anObj); return TInterface::_nil(); } SMESHGUI_EXPORT - CORBA::Object_var IORToObject(const char* theIOR); + CORBA::Object_var IORToObject( const QString& ); template typename TInterface::_var_type - IORToInterface(const char* theIOR) + IORToInterface( const QString& theIOR ) { - CORBA::Object_var anObj = IORToObject(theIOR); - if(!CORBA::is_nil(anObj)) - return TInterface::_narrow(anObj); + CORBA::Object_var anObj = IORToObject( theIOR ); + if ( !CORBA::is_nil( anObj ) ) + return TInterface::_narrow( anObj ); return TInterface::_nil(); } SMESHGUI_EXPORT - int GetNameOfSelectedIObjects (LightApp_SelectionMgr*, QString& theName); + int GetNameOfSelectedIObjects( LightApp_SelectionMgr*, QString& ); + +SMESHGUI_EXPORT + _PTR(SObject) GetMeshOrSubmesh( _PTR(SObject) ); SMESHGUI_EXPORT - _PTR(SObject) GetMeshOrSubmesh (_PTR(SObject) theSObject); + void ModifiedMesh( _PTR(SObject), bool, bool = false ); SMESHGUI_EXPORT - void ModifiedMesh (_PTR(SObject) theSObject, bool theIsNot, bool isEmptyMesh=false); + void ShowHelpFile( const QString& ); + /*! + * \brief Return the normal to a face + * \param theFace - input face + * \retval gp_XYZ - normal to a face + */ SMESHGUI_EXPORT - void ShowHelpFile (QString theHelpFileName); + gp_XYZ getNormale( const SMDS_MeshFace* theFace ); + + + // type to use instead of SMESH_IDSource_var for automatic UnRegister() + typedef SALOME::GenericObj_wrap IDSource_wrap; + + /*! + * \brief Class useful to convert a string returned from a CORBA call + * to other string types w/o memory leak. + * + * Usage (of instantiations): QString s = toQStr( objVar->GetName() ); + * std::string ss = toStdStr( objVar->GetName() ); + */ + template < class _STRING > + class toStrT : public _STRING { + CORBA::String_var myStr; + public: + toStrT( char* s ): _STRING( s ), myStr(s) + {} + operator const char*() const + { return myStr.in(); } + }; + // Instantiations: + struct toQStr : public toStrT< QString > { + toQStr( char* s ): toStrT< QString >(s) {} + }; + struct toStdStr : public toStrT< std::string > { + toStdStr( char* s ): toStrT< std::string >(s) {} + }; + + QString fromUtf8( const char* txt ); + QString fromUtf8( const std::string& txt ); + struct toUtf8: public std::string + { + toUtf8( const QString& txt ); + operator const char*() const { return c_str(); } + }; } -#endif +#endif // SMESHGUI_UTILS_H