mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 01:10:35 +05:00
parent
882ff39283
commit
ad1d7c52f7
@ -26,16 +26,17 @@
|
||||
|
||||
#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"
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
@ -98,9 +99,9 @@ bool DriverMED_W_Field::Set(SMESHDS_Mesh * mesh,
|
||||
_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 );
|
||||
if ( t != _elemType ) continue;
|
||||
|
||||
|
@ -1000,9 +1000,11 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::PerformInternal(LowLevelWriter myM
|
||||
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();
|
||||
@ -1029,6 +1031,15 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::PerformInternal(LowLevelWriter myM
|
||||
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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user