Changes in src/World.cpp [57f243:e472eab]
- File:
-
- 1 edited
-
src/World.cpp (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/World.cpp
r57f243 re472eab 25 25 #include "Helpers/Assert.hpp" 26 26 #include "Box.hpp" 27 #include " LinearAlgebra/Matrix.hpp"27 #include "Matrix.hpp" 28 28 #include "defs.hpp" 29 29 … … 48 48 } 49 49 50 World::AtomCompositeWorld::getAllAtoms(AtomDescriptor descriptor){50 vector<atom*> World::getAllAtoms(AtomDescriptor descriptor){ 51 51 return descriptor.findAll(); 52 52 } 53 53 54 World::AtomCompositeWorld::getAllAtoms(){54 vector<atom*> World::getAllAtoms(){ 55 55 return getAllAtoms(AllAtoms()); 56 56 } … … 234 234 atomIdPool_t::iterator iter=atomIdPool.begin(); 235 235 atomId_t id = iter->first; 236 range<atomId_t> newRange = makeRange(id+1,iter->last);236 pair<atomId_t,atomId_t> newRange = make_pair(id+1,iter->second); 237 237 // we wont use this iterator anymore, so we don't care about invalidating 238 238 atomIdPool.erase(iter); 239 if(newRange.first<newRange. last){239 if(newRange.first<newRange.second){ 240 240 atomIdPool.insert(newRange); 241 241 } … … 247 247 248 248 void World::releaseAtomId(atomId_t id){ 249 atomIdPool.insert(make Range(id,id+1));249 atomIdPool.insert(make_pair(id,id+1)); 250 250 defragAtomIdPool(); 251 251 } … … 253 253 bool World::reserveAtomId(atomId_t id){ 254 254 if(id>=currAtomId ){ 255 range<atomId_t> newRange = makeRange(currAtomId,id);256 if(newRange.first<newRange. last){255 pair<atomId_t,atomId_t> newRange = make_pair(currAtomId,id); 256 if(newRange.first<newRange.second){ 257 257 atomIdPool.insert(newRange); 258 258 } … … 263 263 // look for a range that matches the request 264 264 for(atomIdPool_t::iterator iter=atomIdPool.begin();iter!=atomIdPool.end();++iter){ 265 if(iter-> isBefore(id)){266 // we have cover ed all available ranges... nothing to be found here265 if(iter->first>id){ 266 // we have coverd all available ranges... nothing to be found here 267 267 break; 268 268 } 269 269 // no need to check first, since it has to be <=id, since otherwise we would have broken out 270 if( !iter->isBeyond(id)){270 if(iter->second > id){ 271 271 // we found a matching range... get the id from this range 272 272 273 273 // 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);274 pair<atomId_t,atomId_t> bottomRange = make_pair(iter->first,id); 275 pair<atomId_t,atomId_t> topRange = make_pair(id+1,iter->second); 276 276 // remove this range 277 277 atomIdPool.erase(iter); 278 if(bottomRange.first<bottomRange. last){278 if(bottomRange.first<bottomRange.second){ 279 279 atomIdPool.insert(bottomRange); 280 280 } 281 if(topRange.first<topRange. last){281 if(topRange.first<topRange.second){ 282 282 atomIdPool.insert(topRange); 283 283 } … … 301 301 atomIdPool_t::iterator next = iter; 302 302 next++; 303 if(next!=atomIdPool.end() && (next->first==iter-> last)){303 if(next!=atomIdPool.end() && (next->first==iter->second)){ 304 304 // merge the two ranges 305 range<atomId_t> newRange = makeRange(iter->first,next->last);305 pair<atomId_t,atomId_t> newRange = make_pair(iter->first,next->second); 306 306 atomIdPool.erase(iter); 307 307 atomIdPool.erase(next); … … 317 317 atomIdPool_t::iterator iter = atomIdPool.end(); 318 318 iter--; 319 if(iter-> last==currAtomId){319 if(iter->second==currAtomId){ 320 320 currAtomId=iter->first; 321 321 atomIdPool.erase(iter); … … 333 333 moleculeIdPool_t::iterator iter=moleculeIdPool.begin(); 334 334 moleculeId_t id = iter->first; 335 range<moleculeId_t> newRange = makeRange(id+1,iter->last);335 pair<moleculeId_t,moleculeId_t> newRange = make_pair(id+1,iter->second); 336 336 // we wont use this iterator anymore, so we don't care about invalidating 337 337 moleculeIdPool.erase(iter); 338 if(newRange.first<newRange. last){338 if(newRange.first<newRange.second){ 339 339 moleculeIdPool.insert(newRange); 340 340 } … … 346 346 347 347 void World::releaseMoleculeId(moleculeId_t id){ 348 moleculeIdPool.insert(make Range(id,id+1));348 moleculeIdPool.insert(make_pair(id,id+1)); 349 349 defragMoleculeIdPool(); 350 350 } … … 352 352 bool World::reserveMoleculeId(moleculeId_t id){ 353 353 if(id>=currMoleculeId ){ 354 range<moleculeId_t> newRange = makeRange(currMoleculeId,id);355 if(newRange.first<newRange. last){354 pair<moleculeId_t,moleculeId_t> newRange = make_pair(currMoleculeId,id); 355 if(newRange.first<newRange.second){ 356 356 moleculeIdPool.insert(newRange); 357 357 } … … 362 362 // look for a range that matches the request 363 363 for(moleculeIdPool_t::iterator iter=moleculeIdPool.begin();iter!=moleculeIdPool.end();++iter){ 364 if(iter-> isBefore(id)){364 if(iter->first>id){ 365 365 // we have coverd all available ranges... nothing to be found here 366 366 break; 367 367 } 368 368 // no need to check first, since it has to be <=id, since otherwise we would have broken out 369 if( !iter->isBeyond(id)){369 if(iter->second > id){ 370 370 // we found a matching range... get the id from this range 371 371 372 372 // 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);373 pair<moleculeId_t,moleculeId_t> bottomRange = make_pair(iter->first,id); 374 pair<moleculeId_t,moleculeId_t> topRange = make_pair(id+1,iter->second); 375 375 // remove this range 376 376 moleculeIdPool.erase(iter); 377 if(bottomRange.first<bottomRange. last){377 if(bottomRange.first<bottomRange.second){ 378 378 moleculeIdPool.insert(bottomRange); 379 379 } 380 if(topRange.first<topRange. last){380 if(topRange.first<topRange.second){ 381 381 moleculeIdPool.insert(topRange); 382 382 } … … 400 400 moleculeIdPool_t::iterator next = iter; 401 401 next++; 402 if(next!=moleculeIdPool.end() && (next->first==iter-> last)){402 if(next!=moleculeIdPool.end() && (next->first==iter->second)){ 403 403 // merge the two ranges 404 range<moleculeId_t> newRange = makeRange(iter->first,next->last);404 pair<moleculeId_t,moleculeId_t> newRange = make_pair(iter->first,next->second); 405 405 moleculeIdPool.erase(iter); 406 406 moleculeIdPool.erase(next); … … 416 416 moleculeIdPool_t::iterator iter = moleculeIdPool.end(); 417 417 iter--; 418 if(iter-> last==currMoleculeId){418 if(iter->second==currMoleculeId){ 419 419 currMoleculeId=iter->first; 420 420 moleculeIdPool.erase(iter);
Note:
See TracChangeset
for help on using the changeset viewer.
