MyGUI: MyGUI_BiIndexBase.h Source File

MyGUI 3.4.3

MyGUI_BiIndexBase.h
Go to the documentation of this file.
1/*
2 * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3 * Distributed under the MIT License
4 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5 */
6
7#ifndef MYGUI_BIINDEX_BASE_H_
8#define MYGUI_BIINDEX_BASE_H_
9
10#include "MyGUI_Prerequest.h"
11#include <vector>
12#include <stddef.h>
13
14namespace MyGUI
15{
16
17 class MYGUI_EXPORT BiIndexBase
18 {
19 public:
20 virtual ~BiIndexBase() = default;
21
22 protected:
23 size_t getIndexCount() const;
24
25 size_t insertItemAt(size_t _index);
26
27 size_t removeItemAt(size_t _index);
28
29 void removeAllItems();
30
31 // на входе индексы пользователя, на выходе реальные индексы
32 size_t convertToBack(size_t _index) const;
33
34 // на входе индексы реальные, на выходе, то что видит пользователь
35 size_t convertToFace(size_t _index) const;
36
37 // меняет местами два индекса, индексы со стороны пользователя
38 void swapItemsFaceAt(size_t _index1, size_t _index2);
39
40 // меняет местами два индекса, индексы со сторонны данных
41 void swapItemsBackAt(size_t _index1, size_t _index2);
42
43 void checkIndexes();
44
45 private:
46 using VectorSizeT = std::vector<size_t>;
47
48 // маппинг с индексов, которые видны наружу
49 // на индексы которые реально используются данными
50 VectorSizeT mIndexFace;
51
52 // маппинг с индексов, которые используют данные
53 // на индексы которые виндны наружу
54 VectorSizeT mIndexBack;
55 };
56
57} // namespace MyGUI
58
59#endif // MYGUI_BIINDEX_BASE_H_
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition MyGUI_Platform.h:77
MyGUI_Prerequest.h
MyGUI::BiIndexBase
Definition MyGUI_BiIndexBase.h:18
MyGUI::BiIndexBase::checkIndexes
void checkIndexes()
Definition MyGUI_BiIndexBase.cpp:142
MyGUI::BiIndexBase::removeAllItems
void removeAllItems()
Definition MyGUI_BiIndexBase.cpp:94
MyGUI::BiIndexBase::swapItemsBackAt
void swapItemsBackAt(size_t _index1, size_t _index2)
Definition MyGUI_BiIndexBase.cpp:131
MyGUI::BiIndexBase::removeItemAt
size_t removeItemAt(size_t _index)
Definition MyGUI_BiIndexBase.cpp:66
MyGUI::BiIndexBase::insertItemAt
size_t insertItemAt(size_t _index)
Definition MyGUI_BiIndexBase.cpp:18
MyGUI::BiIndexBase::convertToBack
size_t convertToBack(size_t _index) const
Definition MyGUI_BiIndexBase.cpp:101
MyGUI::BiIndexBase::~BiIndexBase
virtual ~BiIndexBase()=default
MyGUI::BiIndexBase::convertToFace
size_t convertToFace(size_t _index) const
Definition MyGUI_BiIndexBase.cpp:110
MyGUI::BiIndexBase::getIndexCount
size_t getIndexCount() const
Definition MyGUI_BiIndexBase.cpp:13
MyGUI::BiIndexBase::swapItemsFaceAt
void swapItemsFaceAt(size_t _index1, size_t _index2)
Definition MyGUI_BiIndexBase.cpp:119
MyGUI
Definition MyGUI_ActionController.h:15