]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
PAL13473 (Build repetitive mesh):
authoreap <eap@opencascade.com>
Wed, 6 Dec 2006 15:36:30 +0000 (15:36 +0000)
committereap <eap@opencascade.com>
Wed, 6 Dec 2006 15:36:30 +0000 (15:36 +0000)
add a) int GetObjectId(CORBA::Object_ptr),
b) TInterface::_var_type GetObjectByOldId( const int oldID )

src/SMESH_I/SMESH_Gen_i.hxx

index e0a316c05816ec426154e04fb0d49358a06c92f9..de1e50e0c65e2e8abebdeb2694649cf14f24e80b 100644 (file)
@@ -104,6 +104,15 @@ public:
   void mapOldToNew( const int oldId, const int newId ) {
     mapIdToId[ oldId ] = newId;
   }
+  // get old id by a new one
+  int getOldId( const int newId ) {
+    map<int, int>::iterator imap;
+    for ( imap = mapIdToId.begin(); imap != mapIdToId.end(); ++imap ) {
+      if ( imap->second == newId )
+        return imap->first;
+    }
+    return 0;
+  }
     
 private:
   // get next free object identifier
@@ -399,6 +408,21 @@ public:
   // Register an object in a StudyContext; return object id
   int RegisterObject(CORBA::Object_ptr theObject);
 
+  // Return id of registered object
+  int GetObjectId(CORBA::Object_ptr theObject);
+
+  // Return an object that previously had an oldID
+  template<class TInterface> 
+  typename TInterface::_var_type GetObjectByOldId( const int oldID )
+  {
+    if ( StudyContext* myStudyContext = GetCurrentStudyContext() ) {
+      string ior = myStudyContext->getIORbyOldId( oldID );
+      if ( !ior.empty() )
+        return TInterface::_narrow(GetORB()->string_to_object( ior.c_str() ));
+    }
+    return TInterface::_nil();
+  }
+
   // Get current study ID
   int GetCurrentStudyID()
   { return myCurrentStudy->_is_nil() ? -1 : myCurrentStudy->StudyId(); }