| 51 |  |  | 
| 52 |  |  | 
| 53 |  | SelectionEvaluator::SelectionEvaluator(SimInfo* si) | 
| 54 | < | : info(si), nameFinder(info), distanceFinder(info), indexFinder(info), | 
| 54 | > | : info(si), nameFinder(info), distanceFinder(info), hullFinder(info), | 
| 55 | > | indexFinder(info), | 
| 56 |  | isLoaded_(false){ | 
| 57 |  | nStuntDouble = info->getNGlobalAtoms() + info->getNGlobalRigidBodies(); | 
| 58 |  | } | 
| 181 |  | break; | 
| 182 |  | case Token::within: | 
| 183 |  | withinInstruction(instruction, stack.top()); | 
| 184 | + | break; | 
| 185 | + | case Token::hull: | 
| 186 | + | stack.push(hull()); | 
| 187 |  | break; | 
| 188 |  | //case Token::selected: | 
| 189 |  | //  stack.push(getSelectionSet()); | 
| 440 |  | bs = indexFinder.find(indexRange.first, indexRange.second); | 
| 441 |  | } | 
| 442 |  | } | 
| 443 | + |  | 
| 444 | + | return bs; | 
| 445 | + | } | 
| 446 |  |  | 
| 447 | + |  | 
| 448 | + | OpenMDBitSet SelectionEvaluator::hull() { | 
| 449 | + | OpenMDBitSet bs(nStuntDouble); | 
| 450 | + |  | 
| 451 | + | bs = hullFinder.findHull(); | 
| 452 | + |  | 
| 453 |  | return bs; | 
| 454 |  | } | 
| 455 |  |  | 
| 456 |  |  | 
| 457 | + |  | 
| 458 |  | RealType SelectionEvaluator::getCharge(Atom* atom) { | 
| 459 |  | RealType charge =0.0; | 
| 460 |  | AtomType* atomType = atom->getAtomType(); |