// 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
//
//
//
#ifndef _SMESH_GEN_I_HXX_
#define _SMESH_GEN_I_HXX_
+#include "SMESH.hxx"
+
#include <SALOMEconfig.h>
#include CORBA_SERVER_HEADER(SMESH_Gen)
#include CORBA_SERVER_HEADER(SMESH_Mesh)
// ===========================================================
// Study context - stores study-connected objects references
// ==========================================================
-class StudyContext
+class SMESH_I_EXPORT StudyContext
{
public:
// constructor
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
// ===========================================================
// SMESH module's engine
// ==========================================================
-class SMESH_Gen_i:
+class SMESH_I_EXPORT SMESH_Gen_i:
public virtual POA_SMESH::SMESH_Gen,
public virtual Engines_Component_i
{
// Interface methods
// *****************************************
+ // Set current study
+ void SetEmbeddedMode( CORBA::Boolean theMode );
+ // Get current study
+ CORBA::Boolean IsEmbeddedMode();
+
// Set current study
void SetCurrentStudy( SALOMEDS::Study_ptr theStudy );
// Get current study
SMESH::SMESH_Mesh_ptr CreateMesh( GEOM::GEOM_Object_ptr theShapeObject )
throw ( SALOME::SALOME_Exception );
+ // Create empty mesh
+ SMESH::SMESH_Mesh_ptr CreateEmptyMesh()
+ throw ( SALOME::SALOME_Exception );
+
// Create mesh(es) and import data from UNV file
SMESH::SMESH_Mesh_ptr CreateMeshesFromUNV( const char* theFileName )
throw ( SALOME::SALOME_Exception );
const SMESH::object_array& theListOfSubShape )
throw ( SALOME::SALOME_Exception );
- // Return geometrical object the given element is built on
+ // Return geometrical object the given element is built on. Publish it in study.
GEOM::GEOM_Object_ptr GetGeometryByMeshElement( SMESH::SMESH_Mesh_ptr theMesh,
CORBA::Long theElementID,
const char* theGeomName)
throw ( SALOME::SALOME_Exception );
+ // Return geometrical object the given element is built on. Don't publish it in study.
+ GEOM::GEOM_Object_ptr FindGeometryByMeshElement( SMESH::SMESH_Mesh_ptr theMesh,
+ CORBA::Long theElementID)
+ throw ( SALOME::SALOME_Exception );
+
// ****************************************************
// Interface inherited methods (from SALOMEDS::Driver)
// ****************************************************
// 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(); }
GEOM_Client* myShapeReader; // Shape reader
SALOMEDS::Study_var myCurrentStudy; // Current study
+ CORBA::Boolean myIsEmbeddedMode; // Current mode
// Dump Python: trace of API methods calls
std::map < int, Handle(TColStd_HSequenceOfAsciiString) > myPythonScripts;