mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-13 18:20:34 +05:00
protect GetSubMesh() from the exception in case of an empty geom group
This commit is contained in:
parent
9463491e24
commit
b42b6351ff
@ -652,6 +652,14 @@ SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShap
|
|||||||
THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
|
THROW_SALOME_CORBA_EXCEPTION("bad subShape reference",
|
||||||
SALOME::BAD_PARAM);
|
SALOME::BAD_PARAM);
|
||||||
|
|
||||||
|
if ( aSubShapeObject->GetType() == GEOM_GROUP )
|
||||||
|
{
|
||||||
|
GEOM::GEOM_Object_var mainGeom = aSubShapeObject->GetMainShape() ;
|
||||||
|
TopoDS_Shape mainShape = _gen_i->GeomObjectToShape(mainGeom);
|
||||||
|
if ( mainShape.IsNull() || !mainShape.IsSame( _impl->GetShapeToMesh() ))
|
||||||
|
THROW_SALOME_CORBA_EXCEPTION("not sub-shape of the main shape", SALOME::BAD_PARAM);
|
||||||
|
}
|
||||||
|
|
||||||
SMESH::SMESH_subMesh_var subMesh;
|
SMESH::SMESH_subMesh_var subMesh;
|
||||||
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(_this());
|
SMESH::SMESH_Mesh_var aMesh = SMESH::SMESH_Mesh::_narrow(_this());
|
||||||
try {
|
try {
|
||||||
@ -660,8 +668,6 @@ SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh(GEOM::GEOM_Object_ptr aSubShap
|
|||||||
//Get or Create the SMESH_subMesh object implementation
|
//Get or Create the SMESH_subMesh object implementation
|
||||||
|
|
||||||
int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
|
int subMeshId = _impl->GetMeshDS()->ShapeToIndex( myLocSubShape );
|
||||||
if ( !subMeshId && ! _impl->GetMeshDS()->IsGroupOfSubShapes( myLocSubShape ))
|
|
||||||
THROW_SALOME_CORBA_EXCEPTION("not sub-shape of the main shape", SALOME::BAD_PARAM);
|
|
||||||
|
|
||||||
subMesh = getSubMesh( subMeshId );
|
subMesh = getSubMesh( subMeshId );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user