Changes in src/World.cpp [3839e5:dc11c9]
- File:
-
- 1 edited
-
src/World.cpp (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/World.cpp
r3839e5 rdc11c9 85 85 86 86 void World::setDomain(const Matrix &mat){ 87 OBSERVE; 87 88 *cell_size = mat; 88 89 } … … 90 91 void World::setDomain(double * matrix) 91 92 { 93 OBSERVE; 92 94 Matrix M = ReturnFullMatrixforSymmetric(matrix); 93 95 cell_size->setM(M); … … 100 102 void World::setDefaultName(std::string name) 101 103 { 104 OBSERVE; 102 105 defaultName = name; 103 106 }; … … 231 234 atomIdPool_t::iterator iter=atomIdPool.begin(); 232 235 atomId_t id = iter->first; 233 pair<atomId_t,atomId_t> newRange = make_pair(id+1,iter->second);236 range<atomId_t> newRange = makeRange(id+1,iter->last); 234 237 // we wont use this iterator anymore, so we don't care about invalidating 235 238 atomIdPool.erase(iter); 236 if(newRange.first<newRange. second){239 if(newRange.first<newRange.last){ 237 240 atomIdPool.insert(newRange); 238 241 } … … 244 247 245 248 void World::releaseAtomId(atomId_t id){ 246 atomIdPool.insert(make _pair(id,id+1));249 atomIdPool.insert(makeRange(id,id+1)); 247 250 defragAtomIdPool(); 248 251 } … … 250 253 bool World::reserveAtomId(atomId_t id){ 251 254 if(id>=currAtomId ){ 252 pair<atomId_t,atomId_t> newRange = make_pair(currAtomId,id);253 if(newRange.first<newRange. second){255 range<atomId_t> newRange = makeRange(currAtomId,id); 256 if(newRange.first<newRange.last){ 254 257 atomIdPool.insert(newRange); 255 258 } … … 260 263 // look for a range that matches the request 261 264 for(atomIdPool_t::iterator iter=atomIdPool.begin();iter!=atomIdPool.end();++iter){ 262 if(iter-> first>id){263 // we have cover d all available ranges... nothing to be found here265 if(iter->isBefore(id)){ 266 // we have covered all available ranges... nothing to be found here 264 267 break; 265 268 } 266 269 // no need to check first, since it has to be <=id, since otherwise we would have broken out 267 if( iter->second > id){270 if(!iter->isBeyond(id)){ 268 271 // we found a matching range... get the id from this range 269 272 270 273 // split up this range at the point of id 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);274 range<atomId_t> bottomRange = makeRange(iter->first,id); 275 range<atomId_t> topRange = makeRange(id+1,iter->last); 273 276 // remove this range 274 277 atomIdPool.erase(iter); 275 if(bottomRange.first<bottomRange. second){278 if(bottomRange.first<bottomRange.last){ 276 279 atomIdPool.insert(bottomRange); 277 280 } 278 if(topRange.first<topRange. second){281 if(topRange.first<topRange.last){ 279 282 atomIdPool.insert(topRange); 280 283 } … … 298 301 atomIdPool_t::iterator next = iter; 299 302 next++; 300 if(next!=atomIdPool.end() && (next->first==iter-> second)){303 if(next!=atomIdPool.end() && (next->first==iter->last)){ 301 304 // merge the two ranges 302 pair<atomId_t,atomId_t> newRange = make_pair(iter->first,next->second);305 range<atomId_t> newRange = makeRange(iter->first,next->last); 303 306 atomIdPool.erase(iter); 304 307 atomIdPool.erase(next); … … 314 317 atomIdPool_t::iterator iter = atomIdPool.end(); 315 318 iter--; 316 if(iter-> second==currAtomId){319 if(iter->last==currAtomId){ 317 320 currAtomId=iter->first; 318 321 atomIdPool.erase(iter); … … 330 333 moleculeIdPool_t::iterator iter=moleculeIdPool.begin(); 331 334 moleculeId_t id = iter->first; 332 pair<moleculeId_t,moleculeId_t> newRange = make_pair(id+1,iter->second);335 range<moleculeId_t> newRange = makeRange(id+1,iter->last); 333 336 // we wont use this iterator anymore, so we don't care about invalidating 334 337 moleculeIdPool.erase(iter); 335 if(newRange.first<newRange. second){338 if(newRange.first<newRange.last){ 336 339 moleculeIdPool.insert(newRange); 337 340 } … … 343 346 344 347 void World::releaseMoleculeId(moleculeId_t id){ 345 moleculeIdPool.insert(make _pair(id,id+1));348 moleculeIdPool.insert(makeRange(id,id+1)); 346 349 defragMoleculeIdPool(); 347 350 } … … 349 352 bool World::reserveMoleculeId(moleculeId_t id){ 350 353 if(id>=currMoleculeId ){ 351 pair<moleculeId_t,moleculeId_t> newRange = make_pair(currMoleculeId,id);352 if(newRange.first<newRange. second){354 range<moleculeId_t> newRange = makeRange(currMoleculeId,id); 355 if(newRange.first<newRange.last){ 353 356 moleculeIdPool.insert(newRange); 354 357 } … … 359 362 // look for a range that matches the request 360 363 for(moleculeIdPool_t::iterator iter=moleculeIdPool.begin();iter!=moleculeIdPool.end();++iter){ 361 if(iter-> first>id){364 if(iter->isBefore(id)){ 362 365 // we have coverd all available ranges... nothing to be found here 363 366 break; 364 367 } 365 368 // no need to check first, since it has to be <=id, since otherwise we would have broken out 366 if( iter->second > id){369 if(!iter->isBeyond(id)){ 367 370 // we found a matching range... get the id from this range 368 371 369 372 // split up this range at the point of id 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);373 range<moleculeId_t> bottomRange = makeRange(iter->first,id); 374 range<moleculeId_t> topRange = makeRange(id+1,iter->last); 372 375 // remove this range 373 376 moleculeIdPool.erase(iter); 374 if(bottomRange.first<bottomRange. second){377 if(bottomRange.first<bottomRange.last){ 375 378 moleculeIdPool.insert(bottomRange); 376 379 } 377 if(topRange.first<topRange. second){380 if(topRange.first<topRange.last){ 378 381 moleculeIdPool.insert(topRange); 379 382 } … … 397 400 moleculeIdPool_t::iterator next = iter; 398 401 next++; 399 if(next!=moleculeIdPool.end() && (next->first==iter-> second)){402 if(next!=moleculeIdPool.end() && (next->first==iter->last)){ 400 403 // merge the two ranges 401 pair<moleculeId_t,moleculeId_t> newRange = make_pair(iter->first,next->second);404 range<moleculeId_t> newRange = makeRange(iter->first,next->last); 402 405 moleculeIdPool.erase(iter); 403 406 moleculeIdPool.erase(next); … … 413 416 moleculeIdPool_t::iterator iter = moleculeIdPool.end(); 414 417 iter--; 415 if(iter-> second==currMoleculeId){418 if(iter->last==currMoleculeId){ 416 419 currMoleculeId=iter->first; 417 420 moleculeIdPool.erase(iter);
Note:
See TracChangeset
for help on using the changeset viewer.
