X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileStructureElement.cxx;h=b53ff049a64655dd7087ad90b1e90d605a38dd28;hb=88916ccf9c681624b682d10a62c1ee376324c946;hp=b268b885710657dcafeb73f20a353370792d8d3b;hpb=ed70213dcec0c84ce2853088db411dc63b100f40;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileStructureElement.cxx b/src/MEDLoader/MEDFileStructureElement.cxx index b268b8857..b53ff049a 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-2019 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 @@ -34,6 +34,11 @@ std::string MEDFileSEHolder::getModelName() const return _father->getName(); } +std::string MEDFileSEHolder::getName() const +{ + return _name; +} + void MEDFileSEHolder::setName(const std::string& name) { _name=name; @@ -261,8 +266,38 @@ TypeOfField MEDFileStructureElement::getEntity() const return _tof; } +std::string MEDFileStructureElement::getMeshName() const +{ + return _sup_mesh_name; +} + +std::vector MEDFileStructureElement::getVarAtts() const +{ + std::vector ret; + for(std::vector< MCAuto >::const_iterator it=_var_att.begin();it!=_var_att.end();it++) + if((*it).isNotNull()) + ret.push_back((*it)->getName()); + return ret; +} + +const MEDFileSEVarAtt *MEDFileStructureElement::getVarAtt(const std::string& varName) const +{ + for(std::vector< MCAuto >::const_iterator it=_var_att.begin();it!=_var_att.end();it++) + if((*it).isNotNull()) + if((*it)->getName()==varName) + return *it; + std::ostringstream oss; oss << "MEDFileStructureElement::getVarAtt : no var att with name \"" << varName << "\" !"; + throw INTERP_KERNEL::Exception(oss.str()); +} + //////////////////// +MEDFileStructureElements *MEDFileStructureElements::New(const std::string& fileName, const MEDFileMeshSupports *ms) +{ + MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName)); + return New(fid,ms); +} + MEDFileStructureElements *MEDFileStructureElements::New(med_idt fid, const MEDFileMeshSupports *ms) { return new MEDFileStructureElements(fid,ms); @@ -296,6 +331,7 @@ MEDFileStructureElements::MEDFileStructureElements(med_idt fid, const MEDFileMes _elems.resize(nbSE); for(int i=0;igetMeshName()); + return _sup->getNumberOfNodesInConnOf(se->getEntity(),meshName); +} + +const MEDFileStructureElement *MEDFileStructureElements::getSEWithName(const std::string& seName) const +{ + for(std::vector< MCAuto >::const_iterator it=_elems.begin();it!=_elems.end();it++) + { + if((*it).isNotNull()) + if((*it)->getName()==seName) + return *it; + } + std::ostringstream oss; oss << "MEDFileStructureElements::getSEWithName : no such structure element with name " << seName << " !"; + throw INTERP_KERNEL::Exception(oss.str()); +} + +std::vector MEDFileStructureElements::getVarAttsOf(const std::string& seName) const +{ + const MEDFileStructureElement *se(getSEWithName(seName)); + return se->getVarAtts(); +} + +const MEDFileSEVarAtt *MEDFileStructureElements::getVarAttOf(const std::string &seName, const std::string& varName) const +{ + const MEDFileStructureElement *se(getSEWithName(seName)); + return se->getVarAtt(varName); +} + +const MEDFileUMesh *MEDFileStructureElements::getSupMeshWithName(const std::string& name) const +{ + return _sup->getSupMeshWithName(name); +}