-// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 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
#include "SMESH_Mesh_i.hxx"
#include "SMESH_subMesh_i.hxx"
-#include CORBA_CLIENT_HEADER(SALOME_ModuleCatalog)
-
#include <utilities.h>
#include <Utils_ExceptHandlers.hxx>
#include <SALOMEDS_wrap.hxx>
#include <SALOMEDS_Attributes_wrap.hxx>
-#include <SALOME_KernelServices.hxx>
+#include "SALOME_KernelServices.hxx"
+#include "SALOME_ModuleCatalog_impl.hxx"
#include <TCollection_AsciiString.hxx>
#include <TopoDS_Solid.hxx>
#include <cctype>
-#ifdef _DEBUG_
-static int MYDEBUG = 0;
-#else
-static int MYDEBUG = 0;
-#endif
-
using namespace std;
//=============================================================================
bool SMESH_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR)
{
- if(MYDEBUG) MESSAGE("CanPublishInStudy - "<<!CORBA::is_nil(getStudyServant()));
+ MESSAGE("CanPublishInStudy - "<<!CORBA::is_nil(getStudyServant()));
if ( !myIsEnablePublish )
return false;
if( !aGroup->_is_nil() )
return true;
- if(MYDEBUG) MESSAGE("CanPublishInStudy--CANT");
+ MESSAGE("CanPublishInStudy--CANT");
return false;
}
return aSO._retn();
}
-//=======================================================================
-//function : GetStudyPtr
-//purpose : Get study from naming service
-//=======================================================================
-SALOMEDS::Study_var SMESH_Gen_i::getStudyServant()
-{
- return SALOMEDS::Study::_duplicate(KERNEL::getStudyServant());
-}
-
//=======================================================================
//function : objectToServant
//purpose :
//purpose :
//=======================================================================
-static SALOMEDS::SObject_ptr publish(CORBA::Object_ptr theIOR,
- SALOMEDS::SObject_ptr theFatherObject,
- const int theTag = 0,
- const char* thePixMap = 0,
- const bool theSelectable = true)
+SALOMEDS::SObject_ptr SMESH_Gen_i::publish(CORBA::Object_ptr theIOR,
+ SALOMEDS::SObject_ptr theFatherObject,
+ const int theTag,
+ const char* thePixMap,
+ const bool theSelectable)
{
- SALOMEDS::Study_var theStudy = SMESH_Gen_i::getStudyServant();
- SALOMEDS::SObject_wrap SO = SMESH_Gen_i::ObjectToSObject( theIOR );
+ SALOMEDS::Study_var theStudy = getStudyServant();
+ SALOMEDS::SObject_wrap SO = ObjectToSObject( theIOR );
SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
SALOMEDS::UseCaseBuilder_wrap useCaseBuilder = theStudy->GetUseCaseBuilder();
bool isNewSO = false, isInUseCaseTree = false;
//purpose :
//=======================================================================
-static void addReference (SALOMEDS::SObject_ptr theSObject,
- CORBA::Object_ptr theToObject,
- int theTag = 0)
+void SMESH_Gen_i::addReference (SALOMEDS::SObject_ptr theSObject, CORBA::Object_ptr theToObject, int theTag)
{
SALOMEDS::Study_var aStudy = SMESH_Gen_i::getStudyServant();
SALOMEDS::SObject_wrap aToObjSO = SMESH_Gen_i::ObjectToSObject( theToObject );
*/
//=============================================================================
-SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::SObject_ptr theSObject,
+SALOMEDS::SObject_ptr SMESH_Gen_i::PublishInStudy(SALOMEDS::SObject_ptr /*theSObject*/,
CORBA::Object_ptr theIOR,
const char* theName)
- throw (SALOME::SALOME_Exception)
{
Unexpect aCatch(SALOME_SalomeException);
SALOMEDS::SObject_wrap aSO;
return aSO._retn();
if ( CORBA::is_nil( theIOR ))
return aSO._retn();
- if(MYDEBUG) MESSAGE("PublishInStudy");
+ MESSAGE("PublishInStudy");
// Publishing a mesh
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow( theIOR );
aMesh = aGroup->GetMesh();
aSO = PublishGroup( aMesh, aGroup, aShapeObject, theName );
}
- if(MYDEBUG) MESSAGE("PublishInStudy_END");
+ MESSAGE("PublishInStudy_END");
return aSO._retn();
}
//=======================================================================
//function : PublishComponent
-//purpose :
+//purpose :
//=======================================================================
SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent()
{
- if(MYDEBUG) MESSAGE("PublishComponent");
+ MESSAGE("PublishComponent");
if ( !myIsEnablePublish )
return SALOMEDS::SComponent::_nil();
SALOMEDS::StudyBuilder_var aStudyBuilder = getStudyServant()->NewBuilder();
SALOMEDS::UseCaseBuilder_wrap useCaseBuilder = getStudyServant()->GetUseCaseBuilder();
- std::string compDataType = ComponentDataType(); // SMESH module's data type
- std::string ior = SMESH_Gen_i::GetORB()->object_to_string( SMESH_Gen::_this() ); // IOR of this SMESH engine
-
+ CORBA::String_var compDataType = ComponentDataType(); // SMESH module's data type
+ std::string ior;
+ {
+ CORBA::String_var iorString = GetORB()->object_to_string( SMESH_Gen::_this() );
+ ior = std::string( iorString.in() ); // IOR of this SMESH engine
+ }
// Find study component which corresponds to this SMESH engine
SALOMEDS::SComponent_wrap father;
SALOMEDS::SComponent_wrap f_i = citer->Value();
CORBA::String_var ior_i;
bool ok = f_i->ComponentIOR(ior_i.out());
- if ( ok && compDataType == f_i->ComponentDataType() && ior == ior_i.in()) {
+ CORBA::String_var cdt(f_i->ComponentDataType());
+ if ( ok && strcmp( compDataType.in(), cdt.in() ) == 0 && ior == ior_i.in())
+ {
father = f_i;
break;
}
}
-
+
if ( !CORBA::is_nil( father ) ) {
// check that the component is added to the use case browser
if ( !useCaseBuilder->IsUseCaseNode( father ) ) {
// If component for this SMESH engine does not exist in the study, create it
- SALOME_ModuleCatalog::ModuleCatalog_var aCat =
- SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") );
+ SALOME_ModuleCatalog::ModuleCatalog_var aCat = this->getModuleCatalog();
if ( CORBA::is_nil( aCat ) )
return father._retn();
- SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( compDataType.c_str() );
+ SALOME_ModuleCatalog::Acomponent_var aComp = aCat->GetComponent( compDataType.in() );
if ( CORBA::is_nil( aComp ) )
return father._retn();
SALOMEDS::GenericAttribute_wrap anAttr;
SALOMEDS::AttributePixMap_wrap aPixmap;
- father = aStudyBuilder->NewComponent( compDataType.c_str() );
+ father = aStudyBuilder->NewComponent( compDataType.in() );
aStudyBuilder->DefineComponentInstance( father, SMESH_Gen::_this() );
anAttr = aStudyBuilder->FindOrCreateAttribute( father, "AttributePixMap" );
aPixmap = anAttr;
// (to support tree representation customization and drag-n-drop)
useCaseBuilder->SetRootCurrent();
useCaseBuilder->Append( father ); // component object is added as the top level item
- if(MYDEBUG) MESSAGE("PublishComponent--END");
+ MESSAGE("PublishComponent--END");
return father._retn();
}
return SALOMEDS::SObject::_nil();
if ( CORBA::is_nil( theMesh ))
return SALOMEDS::SObject::_nil();
- if(MYDEBUG) MESSAGE("PublishMesh--IN");
+ MESSAGE("PublishMesh--IN");
// find or publish a mesh
}
}
- if(MYDEBUG) MESSAGE("PublishMesh_END");
+ MESSAGE("PublishMesh_END");
return aMeshSO._retn();
}
SMESH_Gen_i::PublishHypothesis (SMESH::SMESH_Hypothesis_ptr theHyp,
const char* theName)
{
- if(MYDEBUG) MESSAGE("PublishHypothesis");
+ MESSAGE("PublishHypothesis");
if ( !myIsEnablePublish )
return SALOMEDS::SObject::_nil();
if (theHyp->_is_nil())
SetName( aHypSO, theName, hypType.in() );
- if(MYDEBUG) MESSAGE("PublishHypothesis--END")
+ MESSAGE("PublishHypothesis--END");
return aHypSO._retn();
}
{
if ( isGroupOnFilter ) // GetTypes() can be very long on GroupOnFilter!
{
- SMESH::long_array_var nbByType = mesh_i->GetNbElementsByType();
+ SMESH::smIdType_array_var nbByType = mesh_i->GetNbElementsByType();
isEmpty = ( nbByType[ grp->GetType() ] == 0 );
}
else
SMESH_Gen_i::GetMeshOrSubmeshByShape (SMESH::SMESH_Mesh_ptr theMesh,
GEOM::GEOM_Object_ptr theShape)
{
- if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape")
+ MESSAGE("GetMeshOrSubmeshByShape");
SALOMEDS::SObject_wrap aMeshOrSubMesh;
if (theMesh->_is_nil() || ( theShape->_is_nil() && theMesh->HasShapeToMesh()))
return aMeshOrSubMesh._retn();
aMeshOrSubMesh = ObjectToSObject( aSubMesh );
}
}
- if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape--END")
+ MESSAGE("GetMeshOrSubmeshByShape--END");
return aMeshOrSubMesh._retn();
}
GEOM::GEOM_Object_ptr theShape,
SMESH::SMESH_Hypothesis_ptr theHyp)
{
- if(MYDEBUG) MESSAGE("AddHypothesisToShape")
+ MESSAGE("AddHypothesisToShape");
if (theMesh->_is_nil() ||
theHyp->_is_nil() || (theShape->_is_nil()
&& theMesh->HasShapeToMesh()) )
addReference( AHR, theHyp );
- if(MYDEBUG) MESSAGE("AddHypothesisToShape--END")
+ MESSAGE("AddHypothesisToShape--END");
return true;
}