mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-24 16:30:34 +05:00
[Bug PAL7784] REGR: wrong Export-Import Mesh in med
This commit is contained in:
parent
298f5a9bb3
commit
776e25bc46
@ -193,10 +193,10 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
|
||||
aFamilies.push_back(aFreeVolumesFam);
|
||||
}
|
||||
|
||||
DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
|
||||
aNullFam->SetId(0);
|
||||
aNullFam->myType = SMDSAbs_All;
|
||||
aFamilies.push_back(aNullFam);
|
||||
//DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
|
||||
//aNullFam->SetId(0);
|
||||
//aNullFam->myType = SMDSAbs_All;
|
||||
//aFamilies.push_back(aNullFam);
|
||||
|
||||
return aFamilies;
|
||||
}
|
||||
|
@ -38,6 +38,12 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef _DEBUG_
|
||||
static int MYDEBUG = 0;
|
||||
#else
|
||||
static int MYDEBUG = 0;
|
||||
#endif
|
||||
|
||||
#define _EDF_NODE_IDS_
|
||||
|
||||
using namespace MED;
|
||||
@ -136,7 +142,7 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
|
||||
Status aResult = DRS_FAIL;
|
||||
try{
|
||||
myFamilies.clear();
|
||||
MESSAGE("Perform - myFile : "<<myFile);
|
||||
if(MYDEBUG) MESSAGE("Perform - myFile : "<<myFile);
|
||||
PWrapper aMed = CrWrapper(myFile);
|
||||
|
||||
aResult = DRS_EMPTY;
|
||||
@ -153,30 +159,33 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
|
||||
} else {
|
||||
aMeshName = myMeshName;
|
||||
}
|
||||
MESSAGE("Perform - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
|
||||
if(MYDEBUG) MESSAGE("Perform - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
|
||||
if(aMeshName != aMeshInfo->GetName()) continue;
|
||||
aResult = DRS_OK;
|
||||
//TInt aMeshDim = aMeshInfo->GetDim();
|
||||
|
||||
// Reading MED families to the temporary structure
|
||||
//------------------------------------------------
|
||||
TInt aNbFams = aMed->GetNbFamilies(aMeshInfo);
|
||||
MESSAGE("Read " << aNbFams << " families");
|
||||
TErr anErr;
|
||||
TInt aNbFams = aMed->GetNbFamilies(aMeshInfo);
|
||||
if(MYDEBUG) MESSAGE("Read " << aNbFams << " families");
|
||||
for (TInt iFam = 0; iFam < aNbFams; iFam++) {
|
||||
PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo, iFam+1);
|
||||
TInt aFamId = aFamilyInfo->GetId();
|
||||
MESSAGE("Family " << aFamId << " :");
|
||||
|
||||
PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo,iFam+1,&anErr);
|
||||
if(anErr >= 0){
|
||||
TInt aFamId = aFamilyInfo->GetId();
|
||||
if(MYDEBUG) MESSAGE("Family " << aFamId << " :");
|
||||
|
||||
DriverMED_FamilyPtr aFamily (new DriverMED_Family);
|
||||
|
||||
|
||||
TInt aNbGrp = aFamilyInfo->GetNbGroup();
|
||||
MESSAGE("belong to " << aNbGrp << " groups");
|
||||
if(MYDEBUG) MESSAGE("belong to " << aNbGrp << " groups");
|
||||
for (TInt iGr = 0; iGr < aNbGrp; iGr++) {
|
||||
string aGroupName = aFamilyInfo->GetGroupName(iGr);
|
||||
MESSAGE(aGroupName);
|
||||
if(MYDEBUG) MESSAGE(aGroupName);
|
||||
aFamily->AddGroupName(aGroupName);
|
||||
}
|
||||
myFamilies[aFamId] = aFamily;
|
||||
}
|
||||
}
|
||||
|
||||
// Reading MED nodes to the corresponding SMDS structure
|
||||
@ -221,7 +230,7 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
|
||||
|
||||
EBooleen anIsNodeNum = aNodeInfo->IsElemNum();
|
||||
TInt aNbElems = aNodeInfo->GetNbElem();
|
||||
MESSAGE("Perform - aNodeInfo->GetNbElem() = "<<aNbElems<<"; anIsNodeNum = "<<anIsNodeNum);
|
||||
if(MYDEBUG) MESSAGE("Perform - aNodeInfo->GetNbElem() = "<<aNbElems<<"; anIsNodeNum = "<<anIsNodeNum);
|
||||
for(TInt iElem = 0; iElem < aNbElems; iElem++){
|
||||
double aCoords[3] = {0.0, 0.0, 0.0};
|
||||
for(TInt iDim = 0; iDim < 3; iDim++)
|
||||
@ -263,8 +272,8 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
|
||||
PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom);
|
||||
EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX;
|
||||
TInt aNbElems = aCellInfo->GetNbElem();
|
||||
MESSAGE("Perform - anEntity = "<<anEntity<<"; anIsElemNum = "<<anIsElemNum);
|
||||
MESSAGE("Perform - aGeom = "<<aGeom<<"; aNbElems = "<<aNbElems);
|
||||
if(MYDEBUG) MESSAGE("Perform - anEntity = "<<anEntity<<"; anIsElemNum = "<<anIsElemNum);
|
||||
if(MYDEBUG) MESSAGE("Perform - aGeom = "<<aGeom<<"; aNbElems = "<<aNbElems);
|
||||
|
||||
for(int iElem = 0; iElem < aNbElems; iElem++){
|
||||
TInt aNbNodes = -1;
|
||||
@ -487,7 +496,7 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform()
|
||||
INFOS("Unknown exception was cought !!!");
|
||||
aResult = DRS_FAIL;
|
||||
}
|
||||
MESSAGE("Perform - aResult status = "<<aResult);
|
||||
if(MYDEBUG) MESSAGE("Perform - aResult status = "<<aResult);
|
||||
return aResult;
|
||||
}
|
||||
|
||||
@ -496,7 +505,7 @@ list<string> DriverMED_R_SMESHDS_Mesh::GetMeshNames(Status& theStatus)
|
||||
list<string> aMeshNames;
|
||||
|
||||
try {
|
||||
MESSAGE("GetMeshNames - myFile : " << myFile);
|
||||
if(MYDEBUG) MESSAGE("GetMeshNames - myFile : " << myFile);
|
||||
theStatus = DRS_OK;
|
||||
PWrapper aMed = CrWrapper(myFile);
|
||||
|
||||
@ -549,7 +558,7 @@ list<string> DriverMED_R_SMESHDS_Mesh::GetGroupNames()
|
||||
void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup)
|
||||
{
|
||||
string aGroupName (theGroup->GetStoreName());
|
||||
MESSAGE("Get Group " << aGroupName);
|
||||
if(MYDEBUG) MESSAGE("Get Group " << aGroupName);
|
||||
|
||||
map<int, DriverMED_FamilyPtr>::iterator aFamsIter = myFamilies.begin();
|
||||
for (; aFamsIter != myFamilies.end(); aFamsIter++)
|
||||
|
@ -35,7 +35,6 @@
|
||||
#include "SMDS_MeshNode.hxx"
|
||||
#include "utilities.h"
|
||||
|
||||
#include "MED_Factory.hxx"
|
||||
#include "MED_Utilities.hxx"
|
||||
|
||||
#define _EDF_NODE_IDS_
|
||||
@ -53,7 +52,8 @@ DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh():
|
||||
myDoGroupOfVolumes (false)
|
||||
{}
|
||||
|
||||
void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName, MED::EVersion theId)
|
||||
void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName,
|
||||
MED::EVersion theId)
|
||||
{
|
||||
myMed = CrWrapper(theFileName,theId);
|
||||
Driver_SMESHDS_Mesh::SetFile(theFileName);
|
||||
@ -384,7 +384,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
SMDS_MED_ENTITY = eARETE;
|
||||
#endif
|
||||
SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
|
||||
TInt aNbConnectivity = MED::GetNbConn(SMDS_MED_ENTITY,eSEG2,aMeshDimension);
|
||||
TInt aNbConnectivity = MED::GetNbConnectivities(eSEG2);
|
||||
MED::TIntVector anElemNums(aNbElems);
|
||||
MED::TIntVector aFamilyNums(aNbElems);
|
||||
MED::TIntVector aConnectivity(aNbElems*aNbConnectivity);
|
||||
@ -424,7 +424,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
#ifdef _ELEMENTS_BY_DIM_
|
||||
SMDS_MED_ENTITY = eFACE;
|
||||
#endif
|
||||
TInt aNbTriaConn = MED::GetNbConn(SMDS_MED_ENTITY,eTRIA3,aMeshDimension);
|
||||
TInt aNbTriaConn = MED::GetNbConnectivities(eTRIA3);
|
||||
MED::TIntVector anTriaElemNums;
|
||||
anTriaElemNums.reserve(aNbElems);
|
||||
MED::TIntVector aTriaFamilyNums;
|
||||
@ -432,7 +432,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
MED::TIntVector aTriaConn;
|
||||
aTriaConn.reserve(aNbElems*aNbTriaConn);
|
||||
|
||||
TInt aNbQuadConn = MED::GetNbConn(SMDS_MED_ENTITY,eQUAD4,aMeshDimension);
|
||||
TInt aNbQuadConn = MED::GetNbConnectivities(eQUAD4);
|
||||
MED::TIntVector aQuadElemNums;
|
||||
aQuadElemNums.reserve(aNbElems);
|
||||
MED::TIntVector aQuadFamilyNums;
|
||||
@ -531,7 +531,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
#ifdef _ELEMENTS_BY_DIM_
|
||||
SMDS_MED_ENTITY = eMAILLE;
|
||||
#endif
|
||||
TInt aNbTetraConn = MED::GetNbConn(SMDS_MED_ENTITY,eTETRA4,aMeshDimension);
|
||||
TInt aNbTetraConn = MED::GetNbConnectivities(eTETRA4);
|
||||
MED::TIntVector anTetraElemNums;
|
||||
anTetraElemNums.reserve(aNbElems);
|
||||
MED::TIntVector aTetraFamilyNums;
|
||||
@ -539,7 +539,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
MED::TIntVector aTetraConn;
|
||||
aTetraConn.reserve(aNbElems*aNbTetraConn);
|
||||
|
||||
TInt aNbPyraConn = MED::GetNbConn(SMDS_MED_ENTITY,ePYRA5,aMeshDimension);
|
||||
TInt aNbPyraConn = MED::GetNbConnectivities(ePYRA5);
|
||||
MED::TIntVector anPyraElemNums;
|
||||
anPyraElemNums.reserve(aNbElems);
|
||||
MED::TIntVector aPyraFamilyNums;
|
||||
@ -547,7 +547,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
MED::TIntVector aPyraConn;
|
||||
aPyraConn.reserve(aNbElems*aNbPyraConn);
|
||||
|
||||
TInt aNbPentaConn = MED::GetNbConn(SMDS_MED_ENTITY,ePENTA6,aMeshDimension);
|
||||
TInt aNbPentaConn = MED::GetNbConnectivities(ePENTA6);
|
||||
MED::TIntVector anPentaElemNums;
|
||||
anPentaElemNums.reserve(aNbElems);
|
||||
MED::TIntVector aPentaFamilyNums;
|
||||
@ -555,7 +555,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
||||
MED::TIntVector aPentaConn;
|
||||
aPentaConn.reserve(aNbElems*aNbPentaConn);
|
||||
|
||||
TInt aNbHexaConn = MED::GetNbConn(SMDS_MED_ENTITY,eHEXA8,aMeshDimension);
|
||||
TInt aNbHexaConn = MED::GetNbConnectivities(eHEXA8);
|
||||
MED::TIntVector aHexaElemNums;
|
||||
aHexaElemNums.reserve(aNbElems);
|
||||
MED::TIntVector aHexaFamilyNums;
|
||||
|
Loading…
Reference in New Issue
Block a user