}
// Reading groups (sub-meshes are out of scope of MED import functionality)
- list<string> aGroupNames = myReader.GetGroupNames();
+ list<TNameAndType> aGroupNames = myReader.GetGroupNamesAndTypes();
if(MYDEBUG) MESSAGE("MEDToMesh - Nb groups = "<<aGroupNames.size());
int anId;
- for ( list<string>::iterator it = aGroupNames.begin(); it != aGroupNames.end(); it++ ) {
- SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId );
+ list<TNameAndType>::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: "<<it->c_str());
+ if(MYDEBUG) MESSAGE("MEDToMesh - group added: "<<name_type->first.c_str());
SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( aGroup->GetGroupDS() );
if ( aGroupDS ) {
- aGroupDS->SetStoreName( it->c_str() );
+ aGroupDS->SetStoreName( name_type->first.c_str() );
myReader.GetGroup( aGroupDS );
}
}
//=============================================================================
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 );
}
//=============================================================================
{
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;
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 )
//=============================================================================
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);
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);
}
// Add new chain, if there is no
if (!_mapPropagationChains.Contains(theMainEdge)) {
- TopTools_IndexedMapOfShape aNewChain;
+ SMESH_IndexedMapOfShape aNewChain;
_mapPropagationChains.Add(theMainEdge, aNewChain);
}
}
// Edges, on which the 1D hypothesis will be propagated from <theMainEdge>
- TopTools_IndexedMapOfShape& aChain = _mapPropagationChains.ChangeFromKey(theMainEdge);
+ SMESH_IndexedMapOfShape& aChain = _mapPropagationChains.ChangeFromKey(theMainEdge);
if (aChain.Extent() > 0) {
CleanMeshOnPropagationChain(theMainEdge);
aChain.Clear();
save << "===========================================================================" << endl;
return save;
}
+
+//=======================================================================
+//function : GetElementType
+//purpose : Returns type of mesh element with certain id
+//=======================================================================
+SMDSAbs_ElementType SMESH_Mesh::GetElementType( const int id, const bool iselem )
+{
+ return _myMeshDS->GetElementType( id, iselem );
+}