Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/World.cpp

    rdc11c9 r3839e5  
    8585
    8686void World::setDomain(const Matrix &mat){
    87   OBSERVE;
    8887  *cell_size = mat;
    8988}
     
    9190void World::setDomain(double * matrix)
    9291{
    93   OBSERVE;
    9492  Matrix M = ReturnFullMatrixforSymmetric(matrix);
    9593  cell_size->setM(M);
     
    102100void World::setDefaultName(std::string name)
    103101{
    104   OBSERVE;
    105102  defaultName = name;
    106103};
     
    234231    atomIdPool_t::iterator iter=atomIdPool.begin();
    235232    atomId_t id = iter->first;
    236     range<atomId_t> newRange = makeRange(id+1,iter->last);
     233    pair<atomId_t,atomId_t> newRange = make_pair(id+1,iter->second);
    237234    // we wont use this iterator anymore, so we don't care about invalidating
    238235    atomIdPool.erase(iter);
    239     if(newRange.first<newRange.last){
     236    if(newRange.first<newRange.second){
    240237      atomIdPool.insert(newRange);
    241238    }
     
    247244
    248245void World::releaseAtomId(atomId_t id){
    249   atomIdPool.insert(makeRange(id,id+1));
     246  atomIdPool.insert(make_pair(id,id+1));
    250247  defragAtomIdPool();
    251248}
     
    253250bool World::reserveAtomId(atomId_t id){
    254251  if(id>=currAtomId ){
    255     range<atomId_t> newRange = makeRange(currAtomId,id);
    256     if(newRange.first<newRange.last){
     252    pair<atomId_t,atomId_t> newRange = make_pair(currAtomId,id);
     253    if(newRange.first<newRange.second){
    257254      atomIdPool.insert(newRange);
    258255    }
     
    263260  // look for a range that matches the request
    264261  for(atomIdPool_t::iterator iter=atomIdPool.begin();iter!=atomIdPool.end();++iter){
    265     if(iter->isBefore(id)){
    266       // we have covered all available ranges... nothing to be found here
     262    if(iter->first>id){
     263      // we have coverd all available ranges... nothing to be found here
    267264      break;
    268265    }
    269266    // no need to check first, since it has to be <=id, since otherwise we would have broken out
    270     if(!iter->isBeyond(id)){
     267    if(iter->second > id){
    271268      // we found a matching range... get the id from this range
    272269
    273270      // split up this range at the point of id
    274       range<atomId_t> bottomRange = makeRange(iter->first,id);
    275       range<atomId_t> topRange = makeRange(id+1,iter->last);
     271      pair<atomId_t,atomId_t> bottomRange = make_pair(iter->first,id);
     272      pair<atomId_t,atomId_t> topRange = make_pair(id+1,iter->second);
    276273      // remove this range
    277274      atomIdPool.erase(iter);
    278       if(bottomRange.first<bottomRange.last){
     275      if(bottomRange.first<bottomRange.second){
    279276        atomIdPool.insert(bottomRange);
    280277      }
    281       if(topRange.first<topRange.last){
     278      if(topRange.first<topRange.second){
    282279        atomIdPool.insert(topRange);
    283280      }
     
    301298    atomIdPool_t::iterator next = iter;
    302299    next++;
    303     if(next!=atomIdPool.end() && (next->first==iter->last)){
     300    if(next!=atomIdPool.end() && (next->first==iter->second)){
    304301      // merge the two ranges
    305       range<atomId_t> newRange = makeRange(iter->first,next->last);
     302      pair<atomId_t,atomId_t> newRange = make_pair(iter->first,next->second);
    306303      atomIdPool.erase(iter);
    307304      atomIdPool.erase(next);
     
    317314    atomIdPool_t::iterator iter = atomIdPool.end();
    318315    iter--;
    319     if(iter->last==currAtomId){
     316    if(iter->second==currAtomId){
    320317      currAtomId=iter->first;
    321318      atomIdPool.erase(iter);
     
    333330    moleculeIdPool_t::iterator iter=moleculeIdPool.begin();
    334331    moleculeId_t id = iter->first;
    335     range<moleculeId_t> newRange = makeRange(id+1,iter->last);
     332    pair<moleculeId_t,moleculeId_t> newRange = make_pair(id+1,iter->second);
    336333    // we wont use this iterator anymore, so we don't care about invalidating
    337334    moleculeIdPool.erase(iter);
    338     if(newRange.first<newRange.last){
     335    if(newRange.first<newRange.second){
    339336      moleculeIdPool.insert(newRange);
    340337    }
     
    346343
    347344void World::releaseMoleculeId(moleculeId_t id){
    348   moleculeIdPool.insert(makeRange(id,id+1));
     345  moleculeIdPool.insert(make_pair(id,id+1));
    349346  defragMoleculeIdPool();
    350347}
     
    352349bool World::reserveMoleculeId(moleculeId_t id){
    353350  if(id>=currMoleculeId ){
    354     range<moleculeId_t> newRange = makeRange(currMoleculeId,id);
    355     if(newRange.first<newRange.last){
     351    pair<moleculeId_t,moleculeId_t> newRange = make_pair(currMoleculeId,id);
     352    if(newRange.first<newRange.second){
    356353      moleculeIdPool.insert(newRange);
    357354    }
     
    362359  // look for a range that matches the request
    363360  for(moleculeIdPool_t::iterator iter=moleculeIdPool.begin();iter!=moleculeIdPool.end();++iter){
    364     if(iter->isBefore(id)){
     361    if(iter->first>id){
    365362      // we have coverd all available ranges... nothing to be found here
    366363      break;
    367364    }
    368365    // no need to check first, since it has to be <=id, since otherwise we would have broken out
    369     if(!iter->isBeyond(id)){
     366    if(iter->second > id){
    370367      // we found a matching range... get the id from this range
    371368
    372369      // split up this range at the point of id
    373       range<moleculeId_t> bottomRange = makeRange(iter->first,id);
    374       range<moleculeId_t> topRange = makeRange(id+1,iter->last);
     370      pair<moleculeId_t,moleculeId_t> bottomRange = make_pair(iter->first,id);
     371      pair<moleculeId_t,moleculeId_t> topRange = make_pair(id+1,iter->second);
    375372      // remove this range
    376373      moleculeIdPool.erase(iter);
    377       if(bottomRange.first<bottomRange.last){
     374      if(bottomRange.first<bottomRange.second){
    378375        moleculeIdPool.insert(bottomRange);
    379376      }
    380       if(topRange.first<topRange.last){
     377      if(topRange.first<topRange.second){
    381378        moleculeIdPool.insert(topRange);
    382379      }
     
    400397    moleculeIdPool_t::iterator next = iter;
    401398    next++;
    402     if(next!=moleculeIdPool.end() && (next->first==iter->last)){
     399    if(next!=moleculeIdPool.end() && (next->first==iter->second)){
    403400      // merge the two ranges
    404       range<moleculeId_t> newRange = makeRange(iter->first,next->last);
     401      pair<moleculeId_t,moleculeId_t> newRange = make_pair(iter->first,next->second);
    405402      moleculeIdPool.erase(iter);
    406403      moleculeIdPool.erase(next);
     
    416413    moleculeIdPool_t::iterator iter = moleculeIdPool.end();
    417414    iter--;
    418     if(iter->last==currMoleculeId){
     415    if(iter->second==currMoleculeId){
    419416      currMoleculeId=iter->first;
    420417      moleculeIdPool.erase(iter);
Note: See TracChangeset for help on using the changeset viewer.