| 55 |  | #include "selection/DistanceFinder.hpp" | 
| 56 |  | #include "selection/HullFinder.hpp" | 
| 57 |  | #include "selection/IndexFinder.hpp" | 
| 58 | < | #include "utils/OpenMDBitSet.hpp" | 
| 58 | > | #include "selection/SelectionSet.hpp" | 
| 59 |  | #include "primitives/StuntDouble.hpp" | 
| 60 |  | #include "utils/StringUtils.hpp" | 
| 61 |  | namespace OpenMD { | 
| 73 |  | bool loadScriptString(const std::string& script); | 
| 74 |  | bool loadScriptFile(const std::string& filename); | 
| 75 |  |  | 
| 76 | < | OpenMDBitSet evaluate(); | 
| 77 | < | OpenMDBitSet evaluate(int frame); | 
| 76 | > | SelectionSet evaluate(); | 
| 77 | > | SelectionSet evaluate(int frame); | 
| 78 |  |  | 
| 79 |  | /** | 
| 80 |  | * Tests if the result from evaluation of script is dynamic. | 
| 97 |  | } | 
| 98 |  |  | 
| 99 |  | std::string getLine() { | 
| 100 | < | int ichBegin = lineIndices[pc]; | 
| 101 | < | int ichEnd; | 
| 100 | > | std::size_t ichBegin = lineIndices[pc]; | 
| 101 | > | std::size_t ichEnd; | 
| 102 |  | if ((ichEnd = script.find('\r', ichBegin)) == std::string::npos && | 
| 103 |  | (ichEnd = script.find('\n', ichBegin)) == std::string::npos) { | 
| 104 |  | ichEnd = script.size(); | 
| 128 |  |  | 
| 129 |  | bool loadScriptFileInternal(const std::string& filename); | 
| 130 |  |  | 
| 131 | < |  | 
| 131 | > | SelectionSet createSelectionSets(); | 
| 132 |  | void clearDefinitionsAndLoadPredefined(); | 
| 133 |  |  | 
| 134 |  | void define(); | 
| 135 | < | void select(OpenMDBitSet& bs); | 
| 136 | < | void select(OpenMDBitSet& bs, int frame); | 
| 135 | > | void select(SelectionSet& bs); | 
| 136 | > | void select(SelectionSet& bs, int frame); | 
| 137 |  | void predefine(const std::string& script); | 
| 138 |  |  | 
| 139 | < | void instructionDispatchLoop(OpenMDBitSet& bs); | 
| 140 | < | void instructionDispatchLoop(OpenMDBitSet& bs, int frame); | 
| 139 | > | void instructionDispatchLoop(SelectionSet& bs); | 
| 140 | > | void instructionDispatchLoop(SelectionSet& bs, int frame); | 
| 141 |  |  | 
| 142 | < | void withinInstruction(const Token& instruction, OpenMDBitSet& bs); | 
| 143 | < | void withinInstruction(const Token& instruction, OpenMDBitSet& bs, int frame); | 
| 144 | < | OpenMDBitSet allInstruction(); | 
| 142 | > | void withinInstruction(const Token& instruction, SelectionSet& bs); | 
| 143 | > | void withinInstruction(const Token& instruction, SelectionSet& bs, int frame); | 
| 144 | > | SelectionSet allInstruction(); | 
| 145 |  |  | 
| 146 | < | OpenMDBitSet comparatorInstruction(const Token& instruction); | 
| 147 | < | OpenMDBitSet comparatorInstruction(const Token& instruction, int frame); | 
| 148 | < | void compareProperty(StuntDouble* sd, OpenMDBitSet& bs, int property, int comparator, float comparisonValue); | 
| 149 | < | void compareProperty(StuntDouble* sd, OpenMDBitSet& bs, int property, int comparator, float comparisonValue, int frame); | 
| 150 | < | OpenMDBitSet nameInstruction(const std::string& name); | 
| 151 | < | OpenMDBitSet indexInstruction(const boost::any& value); | 
| 152 | < | OpenMDBitSet expression(const std::vector<Token>& tokens, int pc); | 
| 153 | < | OpenMDBitSet expression(const std::vector<Token>& tokens, int pc, int frame); | 
| 146 | > | SelectionSet comparatorInstruction(const Token& instruction); | 
| 147 | > | SelectionSet comparatorInstruction(const Token& instruction, int frame); | 
| 148 | > | void compareProperty(StuntDouble* sd, SelectionSet& bs, int property, int comparator, float comparisonValue); | 
| 149 | > | void compareProperty(StuntDouble* sd, SelectionSet& bs, int property, int comparator, float comparisonValue, int frame); | 
| 150 | > | void compareProperty(Molecule* mol, SelectionSet& bs, int property, int comparator, float comparisonValue); | 
| 151 | > | void compareProperty(Molecule* mol, SelectionSet& bs, int property, int comparator, float comparisonValue, int frame); | 
| 152 | > | SelectionSet nameInstruction(const std::string& name); | 
| 153 | > | SelectionSet indexInstruction(const boost::any& value); | 
| 154 | > | SelectionSet expression(const std::vector<Token>& tokens, int pc); | 
| 155 | > | SelectionSet expression(const std::vector<Token>& tokens, int pc, int frame); | 
| 156 |  |  | 
| 157 | < | OpenMDBitSet lookupValue(const std::string& variable); | 
| 157 | > | SelectionSet lookupValue(const std::string& variable); | 
| 158 |  |  | 
| 159 | < | OpenMDBitSet hull(); | 
| 160 | < | OpenMDBitSet hull(int frame); | 
| 159 | > | SelectionSet hull(); | 
| 160 | > | SelectionSet hull(int frame); | 
| 161 |  |  | 
| 162 |  | void evalError(const std::string& message) { | 
| 163 |  | sprintf( painCave.errMsg, | 
| 178 |  | void unrecognizedAtomProperty(int property){ | 
| 179 |  | evalError("unrecognized atom property"); | 
| 180 |  | } | 
| 181 | + |  | 
| 182 | + | void unrecognizedMoleculeProperty(int property){ | 
| 183 | + | evalError("unrecognized molecule property"); | 
| 184 | + | } | 
| 185 |  |  | 
| 186 |  | void unrecognizedIdentifier(const std::string& identifier) { | 
| 187 |  | evalError("unrecognized identifier:" + identifier); | 
| 226 |  | DistanceFinder distanceFinder; | 
| 227 |  | HullFinder hullFinder; | 
| 228 |  | IndexFinder indexFinder; | 
| 229 | < | int nStuntDouble;   //nGLOBALatoms + nGLOBALrigidbodies | 
| 229 | > | vector<int> nObjects; | 
| 230 |  |  | 
| 231 |  | typedef std::map<std::string, boost::any > VariablesType; | 
| 232 |  | VariablesType variables; |