| 70 |  | namespace oopse { | 
| 71 |  |  | 
| 72 |  | DumpReader::DumpReader(SimInfo* info, const std::string& filename) | 
| 73 | < | : info_(info), filename_(filename), isScanned_(false), nframes_(0) { | 
| 73 | > | : info_(info), filename_(filename), isScanned_(false), nframes_(0), needCOMprops_(false) { | 
| 74 |  |  | 
| 75 |  | #ifdef IS_MPI | 
| 76 |  |  | 
| 240 |  | } | 
| 241 |  |  | 
| 242 |  | readSet(whichFrame); | 
| 243 | + |  | 
| 244 | + | if (needCOMprops_) { | 
| 245 | + | Snapshot* s = info_->getSnapshotManager()->getCurrentSnapshot(); | 
| 246 | + | Vector3d com; | 
| 247 | + | Vector3d comvel; | 
| 248 | + | Vector3d comw; | 
| 249 | + | if (needPos_ && needVel_){ | 
| 250 | + | info_->getComAll(com, comvel); | 
| 251 | + | comw = info_->getAngularMomentum(); | 
| 252 | + | }else{ | 
| 253 | + | com = info_->getCom(); | 
| 254 | + | comvel = 0.0; | 
| 255 | + | comw   = 0.0; | 
| 256 | + | } | 
| 257 | + | s->setCOMprops(com, comvel, comw); | 
| 258 | + | } | 
| 259 | + |  | 
| 260 |  | } | 
| 261 |  |  | 
| 262 |  | void DumpReader::readSet(int whichFrame) { | 
| 355 |  | } | 
| 356 |  | std::string type = tokenizer.nextToken(); | 
| 357 |  | int size = type.size(); | 
| 358 | + |  | 
| 359 |  | for(int i = 0; i < size; ++i) { | 
| 360 |  | switch(type[i]) { | 
| 361 |  |  | 
| 416 |  | integrableObject->setJ(ji); | 
| 417 |  | } | 
| 418 |  | } | 
| 419 | + | break; | 
| 420 |  | } | 
| 421 |  | case 'f': { | 
| 422 |  |  |