ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/applications/staticProps/RadialDistrFunc.cpp
(Generate patch)

Comparing trunk/OOPSE-2.0/src/applications/staticProps/RadialDistrFunc.cpp (file contents):
Revision 1994 by tim, Thu Feb 10 18:14:03 2005 UTC vs.
Revision 1995 by tim, Thu Feb 10 22:37:21 2005 UTC

# Line 42 | Line 42
42   #include <algorithm>
43  
44   #include "RadialDistrFunc.hpp"
45 <
45 > #include "io/DumpReader.hpp"
46 > #include "primitives/Molecule.hpp"
47   namespace oopse {
48  
49   RadialDistrFunc::        RadialDistrFunc(SimInfo* info, const std::string& filename, const std::string& sele1, const std::string& sele2)
50          : info_(info), currentSnapshot_(NULL), dumpFilename_(filename), step_(1),
51 <          selectionScript1_(sele1), selectionScript2_(sele2), evaluator1_(info), evaluator2_(info){
51 >          selectionScript1_(sele1), selectionScript2_(sele2), evaluator1_(info), evaluator2_(info), seleMan1_(info), seleMan2_(info){
52            
53      evaluator1_.loadScriptString(sele1);
54      evaluator2_.loadScriptString(sele2);
55  
56 <    if (!evaluator1_->isDynamic()) {
57 <            seleMan1_.setSelectionSet(evaluator1_->evaluate());
56 >    if (!evaluator1_.isDynamic()) {
57 >            seleMan1_.setSelectionSet(evaluator1_.evaluate());
58      }
59 <    if (!evaluator2_->isDynamic()) {
60 <            seleMan2_.setSelectionSet(evaluator2_->evaluate());
59 >    if (!evaluator2_.isDynamic()) {
60 >            seleMan2_.setSelectionSet(evaluator2_.evaluate());
61      }
62  
63   }
64  
65   void RadialDistrFunc::process() {
66 <
66 >    Molecule* mol;
67 >    RigidBody* rb;
68 >    SimInfo::MoleculeIterator mi;
69 >    Molecule::RigidBodyIterator rbIter;
70      preProcess();
71      
72      DumpReader reader(info_, dumpFilename_);    
73 <    int nFrames = reader->getNFrames();
73 >    int nFrames = reader.getNFrames();
74      nProcessed_ = nFrames / step_ + 1;
75      for (int i = 0; i < nFrames; i += step_) {
76 <        reader->readFrame(i);
76 >        reader.readFrame(i);
77          currentSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot();
78  
79 <        if (evaluator1_->isDynamic()) {
80 <            seleMan1_.setSelectionSet(evaluator1_->evaluate());
79 >        if (evaluator1_.isDynamic()) {
80 >            seleMan1_.setSelectionSet(evaluator1_.evaluate());
81          }
82 <        if (evaluator2_->isDynamic()) {
83 <            seleMan2_.setSelectionSet(evaluator2_->evaluate());
82 >        if (evaluator2_.isDynamic()) {
83 >            seleMan2_.setSelectionSet(evaluator2_.evaluate());
84          }
85  
86 +        for (mol = info_->beginMolecule(mi); mol != NULL; mol = info_->nextMolecule(mi)) {
87 +
88 +            //change the positions of atoms which belong to the rigidbodies
89 +            for (rb = mol->beginRigidBody(rbIter); rb != NULL; rb = mol->nextRigidBody(rbIter)) {
90 +                rb->updateAtoms();
91 +            }
92 +        }
93 +        
94          initalizeHistogram();
95  
96          StuntDouble* sd1;
97          int j;
98 <        for (sd1 = seleMan1_->beginSelected(j); sd1 != NULL; sd1 = seleMan1_->nextSelected(j)) {
98 >        for (sd1 = seleMan1_.beginSelected(j); sd1 != NULL; sd1 = seleMan1_.nextSelected(j)) {
99  
100              StuntDouble* sd2;
101              int k;
102 <            for (sd2 = seleMan2_->beginSelected(k); sd2 != NULL; sd2 = seleMan2_->nextSelected(k)) {
102 >            for (sd2 = seleMan2_.beginSelected(k); sd2 != NULL; sd2 = seleMan2_.nextSelected(k)) {
103                  collectHistogram(sd1, sd2);
104              }            
105          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines