| 49 | 
  | 
namespace oopse { | 
| 50 | 
  | 
 | 
| 51 | 
  | 
 | 
| 52 | 
< | 
SelectionEvaluator::SelectionEvaluator(SimInfo* si) : info(si), nameFinder(info), distanceFinder(info), isLoaded_(false){ | 
| 52 | 
> | 
SelectionEvaluator::SelectionEvaluator(SimInfo* si)  | 
| 53 | 
> | 
    : info(si), nameFinder(info), distanceFinder(info), indexFinder(info), isLoaded_(false){ | 
| 54 | 
> | 
     | 
| 55 | 
  | 
    nStuntDouble = info->getNGlobalAtoms() + info->getNRigidBodies(); | 
| 56 | 
  | 
}             | 
| 57 | 
  | 
 | 
| 302 | 
  | 
 | 
| 303 | 
  | 
    std::string variable = boost::any_cast<std::string>(statement[1].value); | 
| 304 | 
  | 
 | 
| 305 | 
< | 
    variables.insert(std::make_pair(variable, expression(statement, 2))); | 
| 305 | 
> | 
    variables.insert(VariablesType::value_type(variable, expression(statement, 2))); | 
| 306 | 
  | 
} | 
| 307 | 
  | 
 | 
| 308 | 
  | 
 | 
| 321 | 
  | 
            int tok = statement[1].tok; | 
| 322 | 
  | 
            if (tok == Token::identifier || (tok & Token::predefinedset) == Token::predefinedset) { | 
| 323 | 
  | 
                std::string variable = boost::any_cast<std::string>(statement[1].value); | 
| 324 | 
< | 
                variables.insert(std::make_pair(variable, statement)); | 
| 324 | 
> | 
                variables.insert(VariablesType::value_type(variable, statement)); | 
| 325 | 
  | 
 | 
| 326 | 
  | 
            } else { | 
| 327 | 
  | 
                evalError("invalid variable name:" + script); | 
| 403 | 
  | 
        if (index < 0 || index >= bs.size()) { | 
| 404 | 
  | 
            invalidIndex(index); | 
| 405 | 
  | 
        } else { | 
| 406 | 
< | 
            bs.setBitOn(index); | 
| 406 | 
> | 
            indexFinder.find(index); | 
| 407 | 
  | 
        } | 
| 408 | 
  | 
    } else if (value.type() == typeid(std::pair<int, int>)) { | 
| 409 | 
  | 
        std::pair<int, int> indexRange= boost::any_cast<std::pair<int, int> >(value); | 
| 411 | 
  | 
        if (indexRange.first < 0 || indexRange.second >= bs.size()) { | 
| 412 | 
  | 
            invalidIndexRange(indexRange); | 
| 413 | 
  | 
        }else { | 
| 414 | 
< | 
            bs.setRangeOn(indexRange.first, indexRange.second); | 
| 414 | 
> | 
            indexFinder.find(indexRange.first, indexRange.second); | 
| 415 | 
  | 
        } | 
| 416 | 
  | 
    } | 
| 417 | 
  | 
 | 
| 418 | 
  | 
    return bs; | 
| 419 | 
  | 
} | 
| 420 | 
  | 
 | 
| 419 | 
– | 
//BitSet SelectionEvaluator::evaluate(int frameNo) { | 
| 420 | 
– | 
// | 
| 421 | 
– | 
//} | 
| 422 | 
– | 
 | 
| 421 | 
  | 
} |