#include <indexmapbidi.h>
Definition at line 102 of file indexmapbidi.h.
◆ ~IndexMapBiDi()
tesseract::IndexMapBiDi::~IndexMapBiDi |
( |
| ) |
|
|
overridedefault |
◆ CompleteMerges()
void tesseract::IndexMapBiDi::CompleteMerges |
( |
| ) |
|
Definition at line 160 of file indexmapbidi.cpp.
160 {
161
162 int compact_size = 0;
163 for (
int i = 0; i < sparse_map_.
size(); ++i) {
164 int compact_index = MasterCompactIndex(sparse_map_[i]);
165 sparse_map_[i] = compact_index;
166 if (compact_index >= compact_size)
167 compact_size = compact_index + 1;
168 }
169
171 for (
int i = 0; i < sparse_map_.
size(); ++i) {
172 if (sparse_map_[i] >= 0) {
175 }
176 }
177
178
181 compact_size = 0;
184 tmp_compact_map[i] = compact_size;
186 }
187 }
189
190 for (
int i = 0; i < sparse_map_.
size(); ++i) {
191 if (sparse_map_[i] >= 0) {
192 sparse_map_[i] = tmp_compact_map[sparse_map_[i]];
193 }
194 }
195}
void init_to_size(int size, const T &t)
GenericVector< int32_t > compact_map_
◆ CopyFrom()
void tesseract::IndexMapBiDi::CopyFrom |
( |
const IndexMapBiDi & |
src | ) |
|
◆ DeSerialize()
bool tesseract::IndexMapBiDi::DeSerialize |
( |
bool |
swap, |
|
|
FILE * |
fp |
|
) |
| |
Definition at line 216 of file indexmapbidi.cpp.
216 {
219 if (!remaining_pairs.
DeSerialize(swap, fp))
return false;
223 }
224 for (
int i = 0; i < remaining_pairs.
size(); ++i) {
225 int sparse_index = remaining_pairs[i++];
226 sparse_map_[sparse_index] = remaining_pairs[i];
227 }
228 return true;
229}
bool DeSerialize(bool swap, FILE *fp)
bool DeSerialize(bool swap, FILE *fp)
◆ Init()
void tesseract::IndexMapBiDi::Init |
( |
int |
size, |
|
|
bool |
all_mapped |
|
) |
| |
Definition at line 86 of file indexmapbidi.cpp.
86 {
88 if (all_mapped) {
89 for (int i = 0; i < size; ++i)
90 sparse_map_[i] = i;
91 }
92}
◆ InitAndSetupRange()
void tesseract::IndexMapBiDi::InitAndSetupRange |
( |
int |
sparse_size, |
|
|
int |
start, |
|
|
int |
end |
|
) |
| |
Definition at line 75 of file indexmapbidi.cpp.
75 {
76 Init(sparse_size,
false);
77 for (int i = start; i < end; ++i)
80}
void Init(int size, bool all_mapped)
void SetMap(int sparse_index, bool mapped)
◆ IsCompactDeleted()
bool tesseract::IndexMapBiDi::IsCompactDeleted |
( |
int |
index | ) |
const |
|
inline |
Definition at line 130 of file indexmapbidi.h.
130 {
131 return MasterCompactIndex(index) < 0;
132 }
◆ MapFeatures()
Definition at line 236 of file indexmapbidi.cpp.
237 {
239 int num_features = sparse.
size();
240 int missed_features = 0;
241 int prev_good_feature = -1;
242 for (int f = 0; f < num_features; ++f) {
243 int feature = sparse_map_[sparse[f]];
244 if (feature >= 0) {
245 if (feature != prev_good_feature) {
247 prev_good_feature = feature;
248 }
249 } else {
250 ++missed_features;
251 }
252 }
253 return missed_features;
254}
◆ Merge()
bool tesseract::IndexMapBiDi::Merge |
( |
int |
compact_index1, |
|
|
int |
compact_index2 |
|
) |
| |
Definition at line 128 of file indexmapbidi.cpp.
128 {
129
130 compact_index1 = MasterCompactIndex(compact_index1);
131 compact_index2 = MasterCompactIndex(compact_index2);
132
133 if (compact_index1 > compact_index2) {
134 int tmp = compact_index1;
135 compact_index1 = compact_index2;
136 compact_index2 = tmp;
137 } else if (compact_index1 == compact_index2) {
138 return false;
139 }
140
141
142
143
144 sparse_map_[
compact_map_[compact_index2]] = compact_index1;
145 if (compact_index1 >= 0)
147 return true;
148}
◆ Serialize()
bool tesseract::IndexMapBiDi::Serialize |
( |
FILE * |
fp | ) |
const |
Definition at line 198 of file indexmapbidi.cpp.
198 {
200
201
202
204 for (
int i = 0; i < sparse_map_.
size(); ++i) {
205 if (sparse_map_[i] >= 0 &&
compact_map_[sparse_map_[i]] != i) {
207 remaining_pairs.
push_back(sparse_map_[i]);
208 }
209 }
210 if (!remaining_pairs.
Serialize(fp))
return false;
211 return true;
212}
bool Serialize(FILE *fp) const
bool Serialize(FILE *fp) const
◆ SetMap()
void tesseract::IndexMapBiDi::SetMap |
( |
int |
sparse_index, |
|
|
bool |
mapped |
|
) |
| |
Definition at line 95 of file indexmapbidi.cpp.
95 {
96 sparse_map_[sparse_index] = mapped ? 0 : -1;
97}
◆ Setup()
void tesseract::IndexMapBiDi::Setup |
( |
| ) |
|
Definition at line 102 of file indexmapbidi.cpp.
102 {
103 int compact_size = 0;
104 for (
int i = 0; i < sparse_map_.
size(); ++i) {
105 if (sparse_map_[i] >= 0) {
106 sparse_map_[i] = compact_size++;
107 }
108 }
110 for (
int i = 0; i < sparse_map_.
size(); ++i) {
111 if (sparse_map_[i] >= 0) {
113 }
114 }
116}
◆ SparseSize()
int tesseract::IndexMapBiDi::SparseSize |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ SparseToCompact()
int tesseract::IndexMapBiDi::SparseToCompact |
( |
int |
sparse_index | ) |
const |
|
inlineoverridevirtual |
The documentation for this class was generated from the following files: