ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/io/DumpReader.cpp
(Generate patch)

Comparing trunk/OOPSE-3.0/src/io/DumpReader.cpp (file contents):
Revision 1958 by tim, Tue Jan 25 21:59:18 2005 UTC vs.
Revision 2002 by tim, Sun Feb 13 06:57:48 2005 UTC

# Line 219 | Line 219 | void DumpReader::readFrame(int whichFrame) {
219   }
220  
221   void DumpReader::readFrame(int whichFrame) {
222 +    int storageLayout = info_->getSnapshotManager()->getStorageLayout();
223 +
224 +    if (storageLayout & DataStorage::dslPosition) {
225 +        needPos_ = true;
226 +    } else {
227 +        needPos_ = false;
228 +    }
229 +
230 +    if (storageLayout & DataStorage::dslVelocity) {
231 +        needVel_ = true;
232 +    } else {
233 +        needVel_ = false;
234 +    }
235 +
236 +    if (storageLayout & DataStorage::dslAmat || storageLayout & DataStorage::dslElectroFrame) {
237 +        needQuaternion_ = true;
238 +    } else {
239 +        needQuaternion_ = false;
240 +    }
241 +
242 +    if (storageLayout & DataStorage::dslAngularMomentum) {
243 +        needAngMom_ = true;
244 +    } else {
245 +        needAngMom_ = false;    
246 +    }
247 +
248      readSet(whichFrame);
249   }
250  
# Line 504 | Line 530 | void DumpReader::parseDumpLine(char *line, StuntDouble
530      pos[0] = tokenizer.nextTokenAsDouble();
531      pos[1] = tokenizer.nextTokenAsDouble();
532      pos[2] = tokenizer.nextTokenAsDouble();
533 <    integrableObject->setPos(pos);
533 >    if (needPos_) {
534 >        integrableObject->setPos(pos);
535 >    }
536      
537      vel[0] = tokenizer.nextTokenAsDouble();
538      vel[1] = tokenizer.nextTokenAsDouble();
539      vel[2] = tokenizer.nextTokenAsDouble();
540 <    integrableObject->setVel(vel);
541 <
540 >    if (needVel_) {
541 >        integrableObject->setVel(vel);
542 >    }
543 >    
544      if (integrableObject->isDirectional()) {
545          
546          q[0] = tokenizer.nextTokenAsDouble();
# Line 529 | Line 559 | void DumpReader::parseDumpLine(char *line, StuntDouble
559          }
560  
561          q.normalize();
562 <              
563 <        integrableObject->setQ(q);
564 <        
562 >        if (needQuaternion_) {          
563 >            integrableObject->setQ(q);
564 >        }
565 >
566          ji[0] = tokenizer.nextTokenAsDouble();
567          ji[1] = tokenizer.nextTokenAsDouble();
568          ji[2] = tokenizer.nextTokenAsDouble();
569 <        integrableObject->setJ(ji);
569 >        if (needAngMom_) {
570 >            integrableObject->setJ(ji);
571 >        }
572      }
573  
574   }
# Line 577 | Line 610 | void DumpReader::parseCommentLine(char* line, Snapshot
610      hmat(2, 2) = tokenizer.nextTokenAsDouble();
611      s->setHmat(hmat);
612      
613 <    //read chi and integrablOfChidt, they should apprear in pair
613 >    //read chi and integralOfChidt, they should apprear in pair
614      if (tokenizer.countTokens() >= 2) {
615          chi = tokenizer.nextTokenAsDouble();
616          integralOfChiDt = tokenizer.nextTokenAsDouble();            

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines