X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileStructureElement.cxx;h=0eb37f489f64d47061cf6ae2bec34fcfa2494c1c;hb=35287602e212fd35b8a4b11215cb111b929a4875;hp=d2de14def61ade58a031d87ae2df9ddd7e3582c0;hpb=5d5f680dee17d1bae83f6b756358bd5af512d4e4;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileStructureElement.cxx b/src/MEDLoader/MEDFileStructureElement.cxx index d2de14def..0eb37f489 100644 --- a/src/MEDLoader/MEDFileStructureElement.cxx +++ b/src/MEDLoader/MEDFileStructureElement.cxx @@ -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; @@ -266,8 +271,33 @@ 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); @@ -341,11 +371,13 @@ const MEDFileStructureElement *MEDFileStructureElements::getWithGT(int idGT) con throw INTERP_KERNEL::Exception(oss.str()); } -int MEDFileStructureElements::getNumberOfNodesPerCellOf(const std::string& seName) const +int 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 @@ -360,3 +392,19 @@ const MEDFileStructureElement *MEDFileStructureElements::getSEWithName(const std 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); +}