19#ifndef TESSERACT_CCMAIN_RESULT_ITERATOR_H_
20#define TESSERACT_CCMAIN_RESULT_ITERATOR_H_
47 void Begin()
override;
81 int BlanksBeforeWord()
const;
94 virtual std::vector<std::vector<std::vector<std::pair<const char *, float>>>>
95 *GetRawLSTMTimesteps()
const;
96 virtual std::vector<std::vector<std::pair<const char *, float>>>
97 *GetBestLSTMSymbolChoices()
const;
103 bool ParagraphIsLtr()
const;
129 static void CalculateTextlineOrder(
130 bool paragraph_is_ltr,
131 const std::vector<StrongScriptDirection> &word_dirs,
132 std::vector<int> *reading_order);
152 bool CurrentParagraphIsLtr()
const;
165 void CalculateTextlineOrder(
bool paragraph_is_ltr,
167 std::vector<int> *indices)
const;
169 void CalculateTextlineOrder(
bool paragraph_is_ltr,
171 std::vector<StrongScriptDirection> *ssd,
172 std::vector<int> *indices)
const;
178 int LTRWordIndex()
const;
184 void CalculateBlobOrder(std::vector<int> *blob_indices)
const;
187 void MoveToLogicalStartOfTextline();
193 void MoveToLogicalStartOfWord();
196 bool IsAtFinalSymbolOfWord()
const;
199 bool IsAtFirstSymbolOfWord()
const;
205 void AppendSuffixMarks(std::string *text)
const;
208 void AppendUTF8WordText(std::string *text)
const;
217 void IterateAndAppendUTF8TextlineText(std::string *text);
225 void AppendUTF8ParagraphText(std::string *text)
const;
228 bool BidiDebug(
int min_level)
const;
230 bool current_paragraph_is_ltr_;
236 bool at_beginning_of_minor_run_;
239 bool in_minor_direction_;
245 bool preserve_interword_spaces_;
static const int kMinorRunEnd
static const int kMinorRunStart
~ResultIterator() override=default
static const int kComplexWord