#include "SMESH_Hypothesis_i.hxx"
#include "SMESH_Algo_i.hxx"
#include "SMESH_Group_i.hxx"
+#include "SMESH_subMesh_i.hxx"
#include "SMESH.hxx"
{
if(MYDEBUG) MESSAGE("GetMeshOrSubmeshByShape")
SALOMEDS::SObject_var aMeshOrSubMesh;
- if ( theShape->_is_nil() || theMesh->_is_nil() )
+ if (theMesh->_is_nil() || ( theShape->_is_nil() && theMesh->HasShapeToMesh()))
return aMeshOrSubMesh._retn();
+
+ TopoDS_Shape aShape;
+ if(theMesh->HasShapeToMesh())
+ aShape = GeomObjectToShape( theShape );
+ else
+ aShape = SMESH_Mesh::PseudoShape();
- TopoDS_Shape aShape = GeomObjectToShape( theShape );
SMESH_Mesh_i* mesh_i = objectToServant<SMESH_Mesh_i>( theMesh );
if ( !aShape.IsNull() && mesh_i && mesh_i->GetImpl().GetMeshDS() ) {
{
if(MYDEBUG) MESSAGE("AddHypothesisToShape")
if (theStudy->_is_nil() || theMesh->_is_nil() ||
- theHyp->_is_nil() || theShape->_is_nil() )
+ theHyp->_is_nil() || (theShape->_is_nil()
+ && theMesh->HasShapeToMesh()) )
return false;
SALOMEDS::SObject_var aMeshSO = ObjectToSObject( theStudy, theMesh );
SMESH::SMESH_Hypothesis_ptr theHyp)
{
if (theStudy->_is_nil() || theMesh->_is_nil() ||
- theHyp->_is_nil() || theShape->_is_nil() )
+ theHyp->_is_nil() || (theShape->_is_nil()
+ && theMesh->HasShapeToMesh()))
return false;
SALOMEDS::SObject_var aHypSO = ObjectToSObject( theStudy, theHyp );