From: eap Date: Wed, 11 Mar 2009 15:09:46 +0000 (+0000) Subject: 0020206: EDF SMESH 987: Netgen1D2D3D +submesh X-Git-Tag: V5_1_1rc2~3 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=e49d9ab359218d64774383b4225508849809f06a;p=modules%2Fsmesh.git 0020206: EDF SMESH 987: Netgen1D2D3D +submesh in GetSubMesh(), fix detection of SMESHDS_SubMesh'es of geom groups --- diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index 866fda739..695027dba 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -85,7 +85,7 @@ SMESH_Mesh::SMESH_Mesh(int theLocalId, SMESH_Gen* theGen, bool theIsEmbeddedMode, SMESHDS_Document* theDocument): - _groupId( 0 ) + _groupId( 0 ), _nbSubShapes( 0 ) { MESSAGE("SMESH_Mesh::SMESH_Mesh(int localId)"); _id = theLocalId; @@ -166,6 +166,7 @@ void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape) { _myMeshDS->ShapeToMesh(aShape); _isShapeToMesh = true; + _nbSubShapes = _myMeshDS->MaxShapeIndex(); // fill _mapAncestors int desType, ancType; @@ -822,7 +823,7 @@ SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape) int index = _myMeshDS->ShapeToIndex(aSubShape); // for submeshes on GEOM Group - if ( !index && aSubShape.ShapeType() == TopAbs_COMPOUND ) { + if (( !index || index > _nbSubShapes ) && aSubShape.ShapeType() == TopAbs_COMPOUND ) { TopoDS_Iterator it( aSubShape ); if ( it.More() ) index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );