20#if MYGUI_DEBUG_MODE == 1
26 _index = mIndexFace.size();
30 if (_index == mIndexFace.size())
33 index = mIndexFace.size();
35 mIndexFace.push_back(_index);
36 mIndexBack.push_back(_index);
41 index = mIndexFace[_index];
43 size_t count = mIndexFace.size();
44 for (
size_t pos = 0; pos < count; ++pos)
46 if (mIndexFace[pos] >= index)
49 mIndexFace.insert(mIndexFace.begin() + _index, index);
52 mIndexBack.push_back(0);
53 for (
size_t pos = 0; pos < count; ++pos)
55 mIndexBack[mIndexFace[pos]] = pos;
59#if MYGUI_DEBUG_MODE == 1
68#if MYGUI_DEBUG_MODE == 1
74 size_t index = mIndexFace[_index];
76 mIndexFace.erase(mIndexFace.begin() + _index);
77 mIndexBack.pop_back();
79 size_t count = mIndexFace.size();
80 for (
size_t pos = 0; pos < count; ++pos)
82 if (mIndexFace[pos] > index)
84 mIndexBack[mIndexFace[pos]] = pos;
87#if MYGUI_DEBUG_MODE == 1
121#if MYGUI_DEBUG_MODE == 1
126 std::swap(mIndexFace[_index1], mIndexFace[_index2]);
127 std::swap(mIndexBack[mIndexFace[_index1]], mIndexBack[mIndexFace[_index2]]);
133#if MYGUI_DEBUG_MODE == 1
138 std::swap(mIndexBack[_index1], mIndexBack[_index2]);
139 std::swap(mIndexFace[mIndexBack[_index1]], mIndexFace[mIndexBack[_index2]]);
144 assert(mIndexFace.size() == mIndexBack.size());
147 std::vector<bool> vec;
148 size_t count = mIndexFace.size();
151 for (
size_t pos = 0; pos < count; ++pos)
152 vec.push_back(
false);
154 for (
size_t pos = 0; pos < count; ++pos)
156 size_t index = mIndexBack[pos];
159 index = mIndexFace[pos];
167 for (
size_t pos = 0; pos < count; ++pos)
169 size_t index = mIndexFace[pos];
170 MYGUI_ASSERT(mIndexBack[index] == pos,
"Invalid index: cross-reference");