X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileJoint.cxx;h=a1ed652a702e9f9ff53e858b992982964589860d;hb=d5f2b9cd2ec721b8411ed143dee57234e576c369;hp=2db32825aed766b1c7abaf0edb37a6ce386a32ee;hpb=870ec551af6f9cbc738ecac4db6f919d34f4d421;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileJoint.cxx b/src/MEDLoader/MEDFileJoint.cxx index 2db32825a..a1ed652a7 100644 --- a/src/MEDLoader/MEDFileJoint.cxx +++ b/src/MEDLoader/MEDFileJoint.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -18,7 +18,6 @@ // #include "MEDFileJoint.hxx" -#include "MEDFileUtilities.hxx" #include "MEDLoader.hxx" #include "MEDLoaderBase.hxx" #include "MEDFileSafeCaller.txx" @@ -30,11 +29,11 @@ extern med_geometry_type typmai[MED_N_CELL_FIXED_GEO]; extern INTERP_KERNEL::NormalizedCellType typmai2[MED_N_CELL_FIXED_GEO]; extern med_geometry_type typmai3[34]; -using namespace ParaMEDMEM; +using namespace MEDCoupling; std::size_t MEDFileJointCorrespondence::getHeapMemorySizeWithoutChildren() const { - return sizeof(MEDCouplingAutoRefCountObjectPtr); + return sizeof(MCAuto); } std::vector MEDFileJointCorrespondence::getDirectChildrenWithNull() const @@ -175,15 +174,15 @@ bool MEDFileJointCorrespondence::isEqual(const MEDFileJointCorrespondence *other return true; } -MEDFileJointCorrespondence *MEDFileJointCorrespondence::deepCpy() const +MEDFileJointCorrespondence *MEDFileJointCorrespondence::deepCopy() const { - MEDCouplingAutoRefCountObjectPtr ret=new MEDFileJointCorrespondence(*this); + MCAuto ret=new MEDFileJointCorrespondence(*this); return ret.retn(); } MEDFileJointCorrespondence *MEDFileJointCorrespondence::shallowCpy() const { - MEDCouplingAutoRefCountObjectPtr ret=new MEDFileJointCorrespondence(*this); + MCAuto ret=new MEDFileJointCorrespondence(*this); return ret.retn(); } @@ -223,7 +222,7 @@ MEDFileJointOneStep::MEDFileJointOneStep():_order(-1),_iteration(-1) std::size_t MEDFileJointOneStep::getHeapMemorySizeWithoutChildren() const { - return _correspondences.capacity()*sizeof(MEDCouplingAutoRefCountObjectPtr); + return _correspondences.capacity()*sizeof(MCAuto); } std::vector MEDFileJointOneStep::getDirectChildrenWithNull() const @@ -276,7 +275,7 @@ MEDFileJointOneStep::MEDFileJointOneStep(med_idt fid, const std::string& mName, &loc_ent_type, &loc_geo_type, &rem_ent_type, &rem_geo_type, &num_entity)); if ( num_entity > 0 ) { - MEDCouplingAutoRefCountObjectPtr correspondence=DataArrayInt::New(); + MCAuto correspondence=DataArrayInt::New(); correspondence->alloc(num_entity*2, 1); MEDFILESAFECALLERRD0(MEDsubdomainCorrespondenceRd,(fid, mName.c_str(), jointName.c_str(), order, iteration, loc_ent_type, loc_geo_type, rem_ent_type, rem_geo_type, correspondence->getPointer())); @@ -313,7 +312,7 @@ void MEDFileJointOneStep::write(const std::string& fileName, int mode, const std void MEDFileJointOneStep::writeLL(med_idt fid, const std::string& localMeshName, const std::string& jointName) const { - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_correspondences.begin();it!=_correspondences.end();it++) + for(std::vector< MCAuto >::const_iterator it=_correspondences.begin();it!=_correspondences.end();it++) { (*it)->writeLL(fid, localMeshName, jointName, getOrder(), getIteration()); } @@ -358,7 +357,7 @@ bool MEDFileJointOneStep::isEqual(const MEDFileJointOneStep *other) const if ( getNumberOfCorrespondences() != other->getNumberOfCorrespondences() ) return false; - std::vector found( getNumberOfCorrespondences(), false ); + std::vector found( getNumberOfCorrespondences(), false ); for(int i=0; i > correspondences(_correspondences.size()); + std::vector< MCAuto > correspondences(_correspondences.size()); std::size_t i=0; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_correspondences.begin();it!=_correspondences.end();it++,i++) + for(std::vector< MCAuto >::const_iterator it=_correspondences.begin();it!=_correspondences.end();it++,i++) if((const MEDFileJointCorrespondence *)*it) - correspondences[i]=(*it)->deepCpy(); - MEDCouplingAutoRefCountObjectPtr ret= new MEDFileJointOneStep; + correspondences[i]=(*it)->deepCopy(); + MCAuto ret= new MEDFileJointOneStep; ret->_correspondences=correspondences; return ret.retn(); } MEDFileJointOneStep *MEDFileJointOneStep::shallowCpy() const { - MEDCouplingAutoRefCountObjectPtr ret=new MEDFileJointOneStep(*this); + MCAuto ret=new MEDFileJointOneStep(*this); return ret.retn(); } @@ -405,12 +404,13 @@ std::string MEDFileJointOneStep::simpleRepr() const std::ostringstream oss; oss << "(*************************************)\n(* JOINT_ONE_STEP INFORMATION: *)\n(*************************************)\n"; oss << "- Number of the correspondences : <<" << _correspondences.size() << ">>\n"; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_correspondences.begin();it!=_correspondences.end();it++) + for(std::vector< MCAuto >::const_iterator it=_correspondences.begin();it!=_correspondences.end();it++) { oss << (*it)->simpleRepr(); } return oss.str(); } + INTERP_KERNEL::NormalizedCellType MEDFileJointOneStep::convertGeometryType(med_geometry_type geotype) { INTERP_KERNEL::NormalizedCellType result=INTERP_KERNEL::NORM_ERROR; @@ -424,9 +424,10 @@ INTERP_KERNEL::NormalizedCellType MEDFileJointOneStep::convertGeometryType(med_g } return result; } + std::size_t MEDFileJoint::getHeapMemorySizeWithoutChildren() const { - return _joint.capacity()*sizeof(MEDCouplingAutoRefCountObjectPtr); + return _joint.capacity()*sizeof(MCAuto); } std::vector MEDFileJoint::getDirectChildrenWithNull() const @@ -495,33 +496,13 @@ MEDFileJoint::MEDFileJoint(med_idt fid, const std::string& mName, int curJoint) } } -/*! - * Writes \a this joint into a MED file specified by its name. - * \param [in] fileName - the MED file name. - * \param [in] mode - the writing mode. For more on \a mode, see \ref AdvMEDLoaderBasics. - * - 2 - erase; an existing file is removed. - * - 1 - append; same data should not be present in an existing file. - * - 0 - overwrite; same data present in an existing file is overwritten. - * \throw If the mesh name is not set. - * \throw If \a mode == 1 and the same data is present in an existing file. - */ -void MEDFileJoint::write(const std::string& fileName, int mode) const -{ - med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod); - std::ostringstream oss; oss << "MEDFileJoint : error on attempt to write in file : \"" << fileName << "\""; - MEDFileUtilities::CheckMEDCode(fid,fid,oss.str()); - write(fid); -} - -void MEDFileJoint::write(med_idt fid) const +void MEDFileJoint::writeLL(med_idt fid) const { // if ( _loc_mesh_name.empty() ) // throw INTERP_KERNEL::Exception("MEDFileJoint::write : name of a local mesh not defined!"); MEDFILESAFECALLERWR0(MEDsubdomainJointCr,(fid,getLocalMeshName().c_str(),getJointName().c_str(),getDescription().c_str(),getDomainNumber(),getRemoteMeshName().c_str())); - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joint.begin();it!=_joint.end();it++) { + for(std::vector< MCAuto >::const_iterator it=_joint.begin();it!=_joint.end();it++) (*it)->writeLL(fid, getLocalMeshName(),getJointName()); - } } void MEDFileJoint::pushStep(MEDFileJointOneStep* step) @@ -566,40 +547,42 @@ bool MEDFileJoint::isEqual(const MEDFileJoint *other) const return false; if(_domain_number!=other->_domain_number) return false; - std::vector found( getNumberOfSteps(), false ); - for(int i=0; igetNumberOfSteps()) + return false; + std::vector found(nbTS,false); + for(int i=0;iisEqual(other->getStepAtPos(j))) + if(!found[j] && getStepAtPos(i)->isEqual(other->getStepAtPos(j))) { - found[ j ] = true; + found[j]=true; break; } } - if ( j == getNumberOfSteps() ) + if(j==nbTS) return false; } return true; } -MEDFileJoint *MEDFileJoint::deepCpy() const +MEDFileJoint *MEDFileJoint::deepCopy() const { - std::vector< MEDCouplingAutoRefCountObjectPtr > joint(_joint.size()); + std::vector< MCAuto > joint(_joint.size()); std::size_t i=0; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joint.begin();it!=_joint.end();it++,i++) + for(std::vector< MCAuto >::const_iterator it=_joint.begin();it!=_joint.end();it++,i++) if((const MEDFileJointOneStep *)*it) - joint[i]=(*it)->deepCpy(); - MEDCouplingAutoRefCountObjectPtr ret=MEDFileJoint::New(); + joint[i]=(*it)->deepCopy(); + MCAuto ret=MEDFileJoint::New(); ret->_joint=joint; return ret.retn(); } MEDFileJoint *MEDFileJoint::shallowCpy() const { - MEDCouplingAutoRefCountObjectPtr ret=new MEDFileJoint(*this); + MCAuto ret=new MEDFileJoint(*this); return ret.retn(); } @@ -630,7 +613,7 @@ std::string MEDFileJoint::simpleRepr() const oss << "- Description : <<" << getDescription() << ">>\n"; oss << "- Joint name : <<" << getJointName() << ">>\n"; oss << "- Domain number : " << getDomainNumber() << "\n"; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joint.begin();it!=_joint.end();it++) + for(std::vector< MCAuto >::const_iterator it=_joint.begin();it!=_joint.end();it++) { oss << (*it)->simpleRepr(); } @@ -654,21 +637,10 @@ MEDFileJoints *MEDFileJoints::New(med_idt fid, const std::string& meshName) return new MEDFileJoints( fid, meshName ); } -void MEDFileJoints::write(med_idt fid) const -{ - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joints.begin();it!=_joints.end();it++) - { - (*it)->write(fid); - } -} - -void MEDFileJoints::write(const std::string& fileName, int mode) const +void MEDFileJoints::writeLL(med_idt fid) const { - med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod); - std::ostringstream oss; oss << "MEDFileJoints : error on attempt to write in file : \"" << fileName << "\""; - MEDFileUtilities::CheckMEDCode(fid,fid,oss.str()); - write(fid); + for(std::vector< MCAuto >::const_iterator it=_joints.begin();it!=_joints.end();it++) + (*it)->writeLL(fid); } std::string MEDFileJoints::getMeshName() const @@ -716,7 +688,7 @@ std::vector MEDFileJoints::getJointsNames() const { std::vector ret(_joints.size()); int i=0; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joints.begin();it!=_joints.end();it++,i++) + for(std::vector< MCAuto >::const_iterator it=_joints.begin();it!=_joints.end();it++,i++) { const MEDFileJoint *f=(*it); if(f) @@ -735,7 +707,7 @@ std::vector MEDFileJoints::getJointsNames() const bool MEDFileJoints::changeJointNames(const std::vector< std::pair >& modifTab) { bool ret=false; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::iterator it=_joints.begin();it!=_joints.end();it++) + for(std::vector< MCAuto >::iterator it=_joints.begin();it!=_joints.end();it++) { MEDFileJoint *cur(*it); if(cur) @@ -792,27 +764,27 @@ MEDFileJoints::MEDFileJoints(med_idt fid, const std::string& meshName) _joints.push_back(MEDFileJoint::New(fid,meshName,i)); } -MEDFileJoints *MEDFileJoints::deepCpy() const +MEDFileJoints *MEDFileJoints::deepCopy() const { - std::vector< MEDCouplingAutoRefCountObjectPtr > joints(_joints.size()); + std::vector< MCAuto > joints(_joints.size()); std::size_t i=0; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joints.begin();it!=_joints.end();it++,i++) + for(std::vector< MCAuto >::const_iterator it=_joints.begin();it!=_joints.end();it++,i++) if((const MEDFileJoint *)*it) - joints[i]=(*it)->deepCpy(); - MEDCouplingAutoRefCountObjectPtr ret=MEDFileJoints::New(); + joints[i]=(*it)->deepCopy(); + MCAuto ret=MEDFileJoints::New(); ret->_joints=joints; return ret.retn(); } std::size_t MEDFileJoints::getHeapMemorySizeWithoutChildren() const { - return _joints.capacity()*(sizeof(MEDCouplingAutoRefCountObjectPtr)); + return _joints.capacity()*(sizeof(MCAuto)); } std::vector MEDFileJoints::getDirectChildrenWithNull() const { std::vector ret; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_joints.begin();it!=_joints.end();it++) + for(std::vector< MCAuto >::const_iterator it=_joints.begin();it!=_joints.end();it++) ret.push_back((const MEDFileJoint *)*it); return ret; } @@ -832,7 +804,7 @@ void MEDFileJoints::simpleReprWithoutHeader(std::ostream& oss) const std::vector jns=getJointsNames(); for(int i=0;i >::const_iterator it=_joints.begin();it!=_joints.end();it++) + for(std::vector< MCAuto >::const_iterator it=_joints.begin();it!=_joints.end();it++) { oss << (*it)->simpleRepr(); }