X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Mesh.cxx;h=ffd77cd554fe8536a9860f2b0e4cf242b6e7e651;hp=c473bd61291d1e30cf64bf204a9f8edeec377003;hb=1bed3bf84e0cef1489aca24c4f6e5d1a9eac8e3d;hpb=bbfbac1990b2cf41334d48f3b15e656f9b2f5aea;ds=sidebyside diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index c473bd612..ffd77cd55 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -210,16 +210,17 @@ int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName) } // Reading groups (sub-meshes are out of scope of MED import functionality) - list aGroupNames = myReader.GetGroupNames(); + list aGroupNames = myReader.GetGroupNamesAndTypes(); if(MYDEBUG) MESSAGE("MEDToMesh - Nb groups = "<::iterator it = aGroupNames.begin(); it != aGroupNames.end(); it++ ) { - SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId ); + list::iterator name_type = aGroupNames.begin(); + for ( ; name_type != aGroupNames.end(); name_type++ ) { + SMESH_Group* aGroup = AddGroup( name_type->second, name_type->first.c_str(), anId ); if ( aGroup ) { - if(MYDEBUG) MESSAGE("MEDToMesh - group added: "<c_str()); + if(MYDEBUG) MESSAGE("MEDToMesh - group added: "<first.c_str()); SMESHDS_Group* aGroupDS = dynamic_cast( aGroup->GetGroupDS() ); if ( aGroupDS ) { - aGroupDS->SetStoreName( it->c_str() ); + aGroupDS->SetStoreName( name_type->first.c_str() ); myReader.GetGroup( aGroupDS ); } } @@ -1080,11 +1081,10 @@ void SMESH_Mesh::RemoveGroup (const int theGroupID) //============================================================================= const SMESH_Hypothesis* SMESH_Mesh::IsLocal1DHypothesis (const TopoDS_Shape& theEdge) { - SMESH_HypoFilter filter( SMESH_HypoFilter::HasDim( 1 )); - filter.AndNot( SMESH_HypoFilter::IsAlgo() ); - filter.AndNot( SMESH_HypoFilter::IsGlobal( GetMeshDS()->ShapeToMesh() )); + SMESH_HypoFilter hypo ( SMESH_HypoFilter::HasDim( 1 )); + hypo.AndNot( hypo.IsAlgo() ).AndNot( hypo.IsAssignedTo( GetMeshDS()->ShapeToMesh() )); - return GetHypothesis( theEdge, filter, true ); + return GetHypothesis( theEdge, hypo, true ); } //============================================================================= @@ -1107,7 +1107,8 @@ bool SMESH_Mesh::IsPropagatedHypothesis (const TopoDS_Shape& theEdge, { int nbChains = _mapPropagationChains.Extent(); for (int i = 1; i <= nbChains; i++) { - const TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromIndex(i); + //const TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromIndex(i); + const SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromIndex(i); if (aChain.Contains(theEdge)) { theMainEdge = _mapPropagationChains.FindKey(i); return true; @@ -1128,7 +1129,7 @@ bool SMESH_Mesh::IsReversedInChain (const TopoDS_Shape& theEdge, if ( !theMainEdge.IsNull() && !theEdge.IsNull() && _mapPropagationChains.Contains( theMainEdge )) { - const TopTools_IndexedMapOfShape& aChain = + const SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromKey( theMainEdge ); int index = aChain.FindIndex( theEdge ); if ( index ) @@ -1144,7 +1145,7 @@ bool SMESH_Mesh::IsReversedInChain (const TopoDS_Shape& theEdge, //============================================================================= void SMESH_Mesh::CleanMeshOnPropagationChain (const TopoDS_Shape& theMainEdge) { - const TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromKey(theMainEdge); + const SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.FindFromKey(theMainEdge); int i, nbEdges = aChain.Extent(); for (i = 1; i <= nbEdges; i++) { TopoDS_Shape anEdge = aChain.FindKey(i); @@ -1211,7 +1212,7 @@ bool SMESH_Mesh::RemovePropagationChain (const TopoDS_Shape& theMainEdge) TopoDS_Vertex anEmptyShape; BRep_Builder BB; BB.MakeVertex(anEmptyShape, gp_Pnt(0,0,0), 0.1); - TopTools_IndexedMapOfShape anEmptyMap; + SMESH_IndexedMapOfShape anEmptyMap; _mapPropagationChains.Substitute(i, anEmptyShape, anEmptyMap); } @@ -1229,7 +1230,7 @@ bool SMESH_Mesh::BuildPropagationChain (const TopoDS_Shape& theMainEdge) // Add new chain, if there is no if (!_mapPropagationChains.Contains(theMainEdge)) { - TopTools_IndexedMapOfShape aNewChain; + SMESH_IndexedMapOfShape aNewChain; _mapPropagationChains.Add(theMainEdge, aNewChain); } @@ -1241,7 +1242,7 @@ bool SMESH_Mesh::BuildPropagationChain (const TopoDS_Shape& theMainEdge) } // Edges, on which the 1D hypothesis will be propagated from - TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.ChangeFromKey(theMainEdge); + SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.ChangeFromKey(theMainEdge); if (aChain.Extent() > 0) { CleanMeshOnPropagationChain(theMainEdge); aChain.Clear(); @@ -1426,4 +1427,4 @@ ostream& SMESH_Mesh::Dump(ostream& save) SMDSAbs_ElementType SMESH_Mesh::GetElementType( const int id, const bool iselem ) { return _myMeshDS->GetElementType( id, iselem ); -} \ No newline at end of file +}