#include "DriverMED_W_Field.h"
-#include "MED_TFile.hxx"
#include "DriverMED.hxx"
#include "DriverMED_W_SMESHDS_Mesh.h"
#include "MED_Factory.hxx"
+#include "MED_TFile.hxx"
#include "MED_Utilities.hxx"
#include "MED_Wrapper.hxx"
#include "SMDS_IteratorOnIterators.hxx"
#include "SMDS_MeshElement.hxx"
#include "SMDS_SetIterator.hxx"
#include "SMESHDS_Mesh.hxx"
+#include "SMESH_TypeDefs.hxx"
//================================================================================
/*!
_nbElemsByGeom.resize( 1, std::make_pair( SMDSEntity_Last, 0 ));
// count nb of elems of each geometry
- for ( int iG = 0; iG < SMDSEntity_Last; ++iG )
+ SMDSAbs_EntityType geom = SMDSEntity_0D;
+ for ( ; geom < SMDSEntity_Last; SMESHUtils::Increment( geom ))
{
- SMDSAbs_EntityType geom = (SMDSAbs_EntityType) iG;
- SMDSAbs_ElementType t = SMDS_MeshCell::ElemType( geom );
+ SMDSAbs_ElementType t = SMDS_MeshCell::ElemType( geom );
if ( t != _elemType ) continue;
nbElems = mesh->GetMeshInfo().NbElements( geom );
theIsElemNames);
TInt aNbNodes = MED::GetNbNodes(aElemTypeData->_geomType);
+
elemIterator = myMesh->elementsIterator( aElemTypeData->_smdsType );
if ( aElemTypeData->_smdsType == SMDSAbs_0DElement && ! nodesOf0D.empty() )
elemIterator = iterVecIter;
+
while ( elemIterator->more() )
{
const SMDS_MeshElement* anElem = elemIterator->next();
if ( ++iElem == aCellInfo->GetNbElem() )
break;
}
+ // fix numbers of added SMDSAbs_0DElement
+ if ( aElemTypeData->_smdsType == SMDSAbs_0DElement && ! nodesOf0D.empty() )
+ {
+ iElem = myMesh->Nb0DElements();
+ TInt elem0DNum = FromSmIdType<TInt>( myMesh->MaxElementID() + 1 );
+ for ( size_t i = 0; i < nodesOf0D.size(); ++i )
+ aCellInfo->SetElemNum( iElem++, elem0DNum++);
+ }
+
// store data in a file
myMed->SetCellInfo(aCellInfo);
}