| 140 | } |
| 141 | |
| 142 | void BiIndexBase::checkIndexes() |
| 143 | { |
| 144 | assert(mIndexFace.size() == mIndexBack.size()); |
| 145 | |
| 146 | // check that index is unique |
| 147 | std::vector<bool> vec; |
| 148 | size_t count = mIndexFace.size(); |
| 149 | |
| 150 | vec.reserve(count); |
| 151 | for (size_t pos = 0; pos < count; ++pos) |
| 152 | vec.push_back(false); |
| 153 | |
| 154 | for (size_t pos = 0; pos < count; ++pos) |
| 155 | { |
| 156 | size_t index = mIndexBack[pos]; |
| 157 | MYGUI_ASSERT(index < count, "Invalid index"); |
| 158 | |
| 159 | index = mIndexFace[pos]; |
| 160 | MYGUI_ASSERT(index < count, "Invalid index"); |
| 161 | |
| 162 | MYGUI_ASSERT(!vec[index], "Invalid index"); |
| 163 | vec[index] = true; |
| 164 | } |
| 165 | |
| 166 | // check for index cross-reference |
| 167 | for (size_t pos = 0; pos < count; ++pos) |
| 168 | { |
| 169 | size_t index = mIndexFace[pos]; |
| 170 | MYGUI_ASSERT(mIndexBack[index] == pos, "Invalid index: cross-reference"); |
| 171 | } |
| 172 | } |
| 173 | |
| 174 | } // namespace MyGUI |