ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/selection/SelectionManager.cpp
(Generate patch)

Comparing trunk/src/selection/SelectionManager.cpp (file contents):
Revision 2051 by gezelter, Thu Dec 5 18:19:26 2013 UTC vs.
Revision 2052 by gezelter, Fri Jan 9 19:06:35 2015 UTC

# Line 41 | Line 41
41   */
42  
43   #include "selection/SelectionManager.hpp"
44 #include "primitives/Molecule.hpp"
44   #include "brains/SimInfo.hpp"
45   namespace OpenMD {
46    SelectionManager::SelectionManager(SimInfo* info) : info_(info){
# Line 50 | Line 49 | namespace OpenMD {
49      nObjects_.push_back(info_->getNGlobalBends());
50      nObjects_.push_back(info_->getNGlobalTorsions());
51      nObjects_.push_back(info_->getNGlobalInversions());
52 +    nObjects_.push_back(info_->getNGlobalMolecules());
53  
54      stuntdoubles_.resize(nObjects_[STUNTDOUBLE]);
55      bonds_.resize(nObjects_[BOND]);
56      bends_.resize(nObjects_[BEND]);
57      torsions_.resize(nObjects_[TORSION]);
58      inversions_.resize(nObjects_[INVERSION]);
59 +    molecules_.resize(nObjects_[MOLECULE]);
60      
61      SimInfo::MoleculeIterator mi;
62      Molecule::AtomIterator ai;
# Line 75 | Line 76 | namespace OpenMD {
76          
77      for (mol = info_->beginMolecule(mi); mol != NULL;
78           mol = info_->nextMolecule(mi)) {
79 +      molecules_[mol->getGlobalIndex()] = mol;
80        
81        for(atom = mol->beginAtom(ai); atom != NULL;
82            atom = mol->nextAtom(ai)) {
# Line 202 | Line 204 | namespace OpenMD {
204      i = ss_.bitsets_[INVERSION].nextOffBit(i);
205      return i == -1 ? NULL : inversions_[i];
206    }
207 +  
208 +  Molecule* SelectionManager::beginSelectedMolecule(int& i) {
209 +    i = ss_.bitsets_[MOLECULE].firstOnBit();
210 +    return i == -1 ? NULL : molecules_[i];
211 +  }
212  
213 +  Molecule* SelectionManager::nextSelectedMolecule(int& i) {
214 +    i = ss_.bitsets_[MOLECULE].nextOnBit(i);
215 +    return i == -1 ? NULL : molecules_[i];
216 +  }
217 +
218 +  Molecule* SelectionManager::beginUnselectedMolecule(int& i){
219 +    i = ss_.bitsets_[MOLECULE].firstOffBit();
220 +    return i == -1 ? NULL : molecules_[i];
221 +  }
222 +
223 +  Molecule* SelectionManager::nextUnSelectedMolecule(int& i) {
224 +    i = ss_.bitsets_[MOLECULE].nextOffBit(i);
225 +    return i == -1 ? NULL : molecules_[i];
226 +  }
227 +
228    SelectionManager operator| (const SelectionManager& sman1,
229                                const SelectionManager& sman2) {
230      SelectionManager result(sman1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines