mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-11-15 10:08:34 +05:00
0021530: EDF 2176 SMESH: Projection 1D-2D with compounds
+ static GEOM::GEOM_Object_ptr EntryOrShapeToGeomObject (const std::string& theEntry, + const TopoDS_Shape& theShape); + static void SaveToStream( const std::string& studyEntry, std::ostream & stream);
This commit is contained in:
parent
08e8a82bb2
commit
b9b021a25d
@ -31,6 +31,33 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
//=======================================================================
|
||||
//function : EntryOrShapeToGeomObject
|
||||
//purpose : Return GEOM Object by its sytudy entry or TopoDS_Shape
|
||||
//=======================================================================
|
||||
|
||||
GEOM::GEOM_Object_ptr
|
||||
StdMeshers_ObjRefUlils::EntryOrShapeToGeomObject (const std::string& theEntry,
|
||||
const TopoDS_Shape& theShape)
|
||||
{
|
||||
GEOM::GEOM_Object_var geom = GEOM::GEOM_Object::_nil();
|
||||
|
||||
// try by entry
|
||||
if (SMESH_Gen_i* gen = SMESH_Gen_i::GetSMESHGen()) {
|
||||
SALOMEDS::Study_var study = gen->GetCurrentStudy();
|
||||
if ( ! theEntry.empty() && ! study->_is_nil() ) {
|
||||
SALOMEDS::SObject_var sobj= study->FindObjectID( theEntry.c_str() );
|
||||
CORBA::Object_var obj = gen->SObjectToObject( sobj );
|
||||
geom = GEOM::GEOM_Object::_narrow( obj );
|
||||
}
|
||||
}
|
||||
// try by TopoDS_Shape
|
||||
if ( geom->_is_nil() )
|
||||
geom = ShapeToGeomObject( theShape );
|
||||
|
||||
return geom._retn();
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Store the shape in the stream
|
||||
@ -104,3 +131,17 @@ void StdMeshers_ObjRefUlils::SaveToStream( CORBA::Object_ptr obj,
|
||||
if ( ! ok )
|
||||
stream << " NULL_OBJECT ";
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SaveToStream
|
||||
//purpose : Store the study entry of object in the stream
|
||||
//=======================================================================
|
||||
|
||||
void StdMeshers_ObjRefUlils::SaveToStream( const std::string& studyEntry,
|
||||
std::ostream & stream)
|
||||
{
|
||||
if ( studyEntry.find_first_not_of( ' ' ) == std::string::npos )
|
||||
stream << " NULL_OBJECT ";
|
||||
else
|
||||
stream << " " << studyEntry;
|
||||
}
|
||||
|
@ -65,6 +65,12 @@ public:
|
||||
return TopoDS_Shape();
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Return GEOM Object by its sytudy entry or TopoDS_Shape
|
||||
*/
|
||||
static GEOM::GEOM_Object_ptr EntryOrShapeToGeomObject (const std::string& theEntry,
|
||||
const TopoDS_Shape& theShape);
|
||||
|
||||
/*!
|
||||
* \brief Store the shape in the stream
|
||||
* \param theShape - shape to store
|
||||
@ -77,14 +83,14 @@ public:
|
||||
* \param stream - the stream
|
||||
* \retval TopoDS_Shape - resulting shape
|
||||
*/
|
||||
static TopoDS_Shape LoadFromStream( std::istream & stream);
|
||||
static TopoDS_Shape LoadFromStream( std::istream & stream );
|
||||
|
||||
/*!
|
||||
* \brief Store the CORBA object in the stream
|
||||
* \param obj - object to store
|
||||
* \param stream - the stream
|
||||
*/
|
||||
static void SaveToStream( CORBA::Object_ptr obj, std::ostream & stream);
|
||||
static void SaveToStream( CORBA::Object_ptr obj, std::ostream & stream );
|
||||
|
||||
/*!
|
||||
* \brief Retrieve a CORBA object from the stream
|
||||
@ -107,6 +113,14 @@ public:
|
||||
}
|
||||
return TInterface::_nil();
|
||||
}
|
||||
|
||||
/*!
|
||||
* \brief Store the study entry of object in the stream
|
||||
* \param studyEntry - the study entry
|
||||
* \param stream - the stream
|
||||
*/
|
||||
static void SaveToStream( const std::string& studyEntry, std::ostream & stream);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user