| 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 |  | } | 
| 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()); | 
| 190 |  | //  break; | 
| 277 |  | break; | 
| 278 |  | case Token::z: | 
| 279 |  | propertyValue = sd->getPos().z(); | 
| 280 | + | break; | 
| 281 | + | case Token::r: | 
| 282 | + | propertyValue = sd->getPos().length(); | 
| 283 |  | break; | 
| 284 |  | default: | 
| 285 |  | unrecognizedAtomProperty(property); | 
| 448 |  | } | 
| 449 |  |  | 
| 450 |  |  | 
| 451 | + | OpenMDBitSet SelectionEvaluator::hull() { | 
| 452 | + | OpenMDBitSet bs(nStuntDouble); | 
| 453 | + |  | 
| 454 | + | bs = hullFinder.findHull(); | 
| 455 | + |  | 
| 456 | + | return bs; | 
| 457 | + | } | 
| 458 | + |  | 
| 459 | + |  | 
| 460 | + |  | 
| 461 |  | RealType SelectionEvaluator::getCharge(Atom* atom) { | 
| 462 |  | RealType charge =0.0; | 
| 463 |  | AtomType* atomType = atom->getAtomType(); |