MyGUI
3.4.1
Main Page
Related Pages
Namespaces
Data Structures
Files
Examples
File List
Globals
MyGUIEngine
include
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
14
namespace
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
#if MYGUI_DEBUG_MODE == 1
44
void
checkIndexes();
45
#endif
46
47
private
:
48
typedef
std::vector<size_t> VectorSizeT;
49
50
// маппинг с индексов, которые видны наружу
51
// на индексы которые реально используются данными
52
VectorSizeT mIndexFace;
53
54
// маппинг с индексов, которые используют данные
55
// на индексы которые виндны наружу
56
VectorSizeT mIndexBack;
57
};
58
59
}
// namespace MyGUI
60
61
#endif
// MYGUI_BIINDEX_BASE_H_
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition:
MyGUI_Platform.h:89
MyGUI_Prerequest.h
MyGUI::BiIndexBase
Definition:
MyGUI_BiIndexBase.h:18
MyGUI::BiIndexBase::~BiIndexBase
virtual ~BiIndexBase()=default
MyGUI
Definition:
MyGUI_ActionController.h:15
Generated by
1.9.4