X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileStructureElement.cxx;h=a43ad258f642c8edbb692310a6d4202d30497fc9;hb=dd75474d950baf8ff862b03cb1685f2a2d562846;hp=e174bf60bd61b2dd9d6ce8d2fbc6ccf8f6ff9fd8;hpb=6ebb06512fe4733596a3e5414d97303d67ee5cc0;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileStructureElement.cxx b/src/MEDLoader/MEDFileStructureElement.cxx index e174bf60b..a43ad258f 100644 --- a/src/MEDLoader/MEDFileStructureElement.cxx +++ b/src/MEDLoader/MEDFileStructureElement.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2017 CEA/DEN, EDF R&D +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -61,17 +61,18 @@ MEDFileSEConstAtt::MEDFileSEConstAtt(med_idt fid, MEDFileStructureElement *fathe std::string modelName(getModelName()); INTERP_KERNEL::AutoPtr constattname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)),profilename(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)); med_attribute_type constatttype; - int nbCompo; + med_int nbCompo; med_entity_type met; - int pflSz; - MEDFILESAFECALLERRD0(MEDstructElementConstAttInfo,(fid,modelName.c_str(),idCstAtt+1,constattname,&constatttype,&nbCompo,&met,profilename,&pflSz)); + med_int miPflSz; + MEDFILESAFECALLERRD0(MEDstructElementConstAttInfo,(fid,modelName.c_str(),idCstAtt+1,constattname,&constatttype,&nbCompo,&met,profilename,&miPflSz)); std::string name(MEDLoaderBase::buildStringFromFortran(constattname,MED_NAME_SIZE)); setName(name); setProfile(MEDLoaderBase::buildStringFromFortran(profilename,MED_NAME_SIZE)); _tof=MEDFileMesh::ConvertFromMEDFileEntity(met); // _val=MEDFileStructureElement::BuildFrom(constatttype); - nbCompo=MEDFileStructureElement::EffectiveNbCompo(constatttype,nbCompo); + nbCompo=MEDFileStructureElement::EffectiveNbCompo(constatttype,FromMedInt(nbCompo)); + mcIdType pflSz = miPflSz; if(pflSz==0 && getProfile().empty()) { switch(met) @@ -140,8 +141,10 @@ MEDFileSEVarAtt::MEDFileSEVarAtt(med_idt fid, MEDFileStructureElement *father, i INTERP_KERNEL::AutoPtr varattname(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)),profilename(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)); med_attribute_type varatttype; { - int pflSz; - MEDFILESAFECALLERRD0(MEDstructElementVarAttInfo,(fid,modelName.c_str(),idVarAtt+1,varattname,&varatttype,&_nb_compo)); + //int pflSz; + med_int nbComp; + MEDFILESAFECALLERRD0(MEDstructElementVarAttInfo,(fid,modelName.c_str(),idVarAtt+1,varattname,&varatttype,&nbComp)); + _nb_compo=FromMedInt(nbComp); } setName(MEDLoaderBase::buildStringFromFortran(varattname,MED_NAME_SIZE)); _gen=MEDFileStructureElement::BuildFrom(varatttype); @@ -174,11 +177,14 @@ MEDFileStructureElement::MEDFileStructureElement(med_idt fid, int idSE, const ME INTERP_KERNEL::AutoPtr modelName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)),supportMeshName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)); med_geometry_type sgeoType; med_entity_type entiyType; - int nConsAttr(0),nVarAttr(0); + med_int nConsAttr(0),nVarAttr(0); { med_bool anyPfl; - int nnode(0),ncell(0); - MEDFILESAFECALLERRD0(MEDstructElementInfo,(fid,idSE+1,modelName,&_id_type,&_dim,supportMeshName,&entiyType,&nnode,&ncell,&sgeoType,&nConsAttr,&anyPfl,&nVarAttr)); + med_int nnode(0),ncell(0),dim(0); + med_geometry_type idType; + MEDFILESAFECALLERRD0(MEDstructElementInfo,(fid,idSE+1,modelName,&idType,&dim,supportMeshName,&entiyType,&nnode,&ncell,&sgeoType,&nConsAttr,&anyPfl,&nVarAttr)); + _id_type=(int)idType; + _dim=FromMedInt(dim); } _name=MEDLoaderBase::buildStringFromFortran(modelName,MED_NAME_SIZE); _sup_mesh_name=MEDLoaderBase::buildStringFromFortran(supportMeshName,MED_NAME_SIZE); @@ -327,7 +333,7 @@ void MEDFileStructureElements::writeLL(med_idt fid) const MEDFileStructureElements::MEDFileStructureElements(med_idt fid, const MEDFileMeshSupports *ms) { - int nbSE(MEDnStructElement(fid)); + med_int nbSE(MEDnStructElement(fid)); _elems.resize(nbSE); for(int i=0;i MEDFileStructureElements::getDynGTAvail() const @@ -371,11 +377,13 @@ const MEDFileStructureElement *MEDFileStructureElements::getWithGT(int idGT) con throw INTERP_KERNEL::Exception(oss.str()); } -int MEDFileStructureElements::getNumberOfNodesPerCellOf(const std::string& seName) const +mcIdType MEDFileStructureElements::getNumberOfNodesPerSE(const std::string& seName) const { + if(seName=="MED_PARTICLE") + return 1; const MEDFileStructureElement *se(getSEWithName(seName)); std::string meshName(se->getMeshName()); - return _sup->getNumberOfNodesPerCellOf(meshName); + return _sup->getNumberOfNodesInConnOf(se->getEntity(),meshName); } const MEDFileStructureElement *MEDFileStructureElements::getSEWithName(const std::string& seName) const @@ -401,3 +409,8 @@ const MEDFileSEVarAtt *MEDFileStructureElements::getVarAttOf(const std::string & const MEDFileStructureElement *se(getSEWithName(seName)); return se->getVarAtt(varName); } + +const MEDFileUMesh *MEDFileStructureElements::getSupMeshWithName(const std::string& name) const +{ + return _sup->getSupMeshWithName(name); +}