| 46 |  | #include "primitives/StuntDouble.hpp" | 
| 47 |  | namespace oopse { | 
| 48 |  |  | 
| 49 | + | class SimInfo; | 
| 50 |  | /** | 
| 51 |  | * @class SelectionManager SelectionManager.hpp "selection/SelectionManager.hpp" | 
| 52 |  | * @brief | 
| 53 |  | */ | 
| 54 |  | class SelectionManager { | 
| 55 |  | public: | 
| 56 | < | SelectionManager(int size) {bsSelection_.resize(size);} | 
| 56 | > | SelectionManager(SimInfo* info); | 
| 57 |  |  | 
| 58 |  | void addSelection(StuntDouble* sd) { | 
| 59 |  | bsSelection_.setBitOn(sd->getGlobalIndex()); | 
| 107 |  | BitSet getSelectionSet() { | 
| 108 |  | return bsSelection_; | 
| 109 |  | } | 
| 110 | + |  | 
| 111 | + |  | 
| 112 | + | StuntDouble* beginSelected(int& i); | 
| 113 | + | StuntDouble* nextSelected(int& i); | 
| 114 | + |  | 
| 115 | + | StuntDouble* beginUnselected(int& i); | 
| 116 | + | StuntDouble* nextUnSelected(int& i); | 
| 117 | + |  | 
| 118 | + | SelectionManager& operator&= (const SelectionManager &sman) { | 
| 119 | + | bsSelection_ &= sman.bsSelection_; | 
| 120 | + | return *this; | 
| 121 | + | } | 
| 122 |  |  | 
| 123 | < | private: | 
| 123 | > | SelectionManager& operator|= (const SelectionManager &sman) { | 
| 124 | > | bsSelection_ |= sman.bsSelection_; | 
| 125 | > | return *this; | 
| 126 | > | } | 
| 127 |  |  | 
| 128 | + | SelectionManager& operator^= (const SelectionManager &sman) { | 
| 129 | + | bsSelection_ ^= sman.bsSelection_; | 
| 130 | + | return *this; | 
| 131 | + | } | 
| 132 | + |  | 
| 133 | + | SelectionManager& operator-= (const SelectionManager &sman) { | 
| 134 | + | bsSelection_ -= sman.bsSelection_; | 
| 135 | + | return *this; | 
| 136 | + | } | 
| 137 | + |  | 
| 138 | + | friend SelectionManager operator| (const SelectionManager& sman1, const SelectionManager& sman2); | 
| 139 | + | friend SelectionManager operator& (const SelectionManager& sman1, const SelectionManager& sman2); | 
| 140 | + | friend SelectionManager operator^ (const SelectionManager& sman1, const SelectionManager& sman2); | 
| 141 | + | friend SelectionManager operator-(const SelectionManager& sman1, const SelectionManager& sman2); | 
| 142 | + |  | 
| 143 | + | private: | 
| 144 | + | SimInfo* info_; | 
| 145 |  | BitSet bsSelection_; | 
| 146 | + | std::vector<StuntDouble*> stuntdoubles_; | 
| 147 |  | }; | 
| 148 |  |  | 
| 149 |  | } |