X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDCoupling%2FMEDCouplingUMesh_internal.cxx;h=9bf681736475ebd16957fc2e34381e25cd8ad03a;hb=2ae2dc6fcedbf241c7637284b3c7bde12aded04a;hp=031a6d5eacf92102d189543f4ae45fe72c7f2c97;hpb=e4063d87dbb8dad309dc1880af096d521934cf24;p=tools%2Fmedcoupling.git diff --git a/src/MEDCoupling/MEDCouplingUMesh_internal.cxx b/src/MEDCoupling/MEDCouplingUMesh_internal.cxx index 031a6d5ea..9bf681736 100755 --- a/src/MEDCoupling/MEDCouplingUMesh_internal.cxx +++ b/src/MEDCoupling/MEDCouplingUMesh_internal.cxx @@ -510,6 +510,11 @@ void MEDCouplingUMesh::fillCellIdsToKeepFromNodeIds(const mcIdType *begin, const MCAuto cellIdsKept=DataArrayIdType::New(); cellIdsKept->alloc(0,1); checkConnectivityFullyDefined(); mcIdType tmp=-1; + if(getNodalConnectivity()->empty()) + { + cellIdsKeptArr=cellIdsKept.retn(); + return; + } mcIdType sz=getNodalConnectivity()->getMaxValue(tmp); sz=std::max(sz,ToIdType(0))+1; std::vector fastFinder(sz,false); for(const mcIdType *work=begin;work!=end;work++) @@ -801,7 +806,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::buildExtrudedMeshFromThisLowLev(mcIdType nbO for(mcIdType iz=0;iz(),newConnIPtr[iz*nbOf2DCells])); + std::transform(newConnIPtr+1,newConnIPtr+1+nbOf2DCells,newConnIPtr+1+iz*nbOf2DCells,std::bind(std::plus(),std::placeholders::_1,newConnIPtr[iz*nbOf2DCells])); const mcIdType *posOfTypeOfCell(newConnIPtr); for(std::vector::const_iterator iter=newc.begin();iter!=newc.end();iter++,newConnPtr++) { @@ -1342,7 +1347,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshesLL(const std::vectorgetNumberOfCells()); const mcIdType *curCI=(*it)->_nodal_connec_index->begin(); const mcIdType *curC=(*it)->_nodal_connec->begin(); - cIPtr=std::transform(curCI+1,curCI+curNbOfCell+1,cIPtr,std::bind2nd(std::plus(),offset)); + cIPtr=std::transform(curCI+1,curCI+curNbOfCell+1,cIPtr,std::bind(std::plus(),std::placeholders::_1,offset)); for(mcIdType j=0;j rConnBg(connEnd); std::reverse_iterator rConnEnd(connBg+1); - std::transform(rConnBg,rConnEnd,ii,std::bind2nd(std::plus(),deltaz)); + std::transform(rConnBg,rConnEnd,ii,std::bind(std::plus(),std::placeholders::_1,deltaz)); std::size_t nbOfRadFaces=std::distance(connBg+1,connEnd); for(std::size_t i=0;i