tesseract 5.2.0
Loading...
Searching...
No Matches
tesseract::GeometricClassifierState Struct Reference

Public Member Functions

 GeometricClassifierState (int dbg_level, std::vector< RowScratchRegisters > *r, int r_start, int r_end)
 
void AssumeLeftJustification ()
 
void AssumeRightJustification ()
 
const std::vector< Cluster > & AlignTabs () const
 
const std::vector< Cluster > & OffsideTabs () const
 
bool IsFullRow (int i) const
 
int AlignsideTabIndex (int row_idx) const
 
bool FirstWordWouldHaveFit (int row_a, int row_b)
 
void PrintRows () const
 
void Fail (int min_debug_level, const char *why) const
 
ParagraphModel Model () const
 

Public Attributes

int debug_level = 0
 
std::vector< RowScratchRegisters > * rows
 
int row_start = 0
 
int row_end = 0
 
int tolerance = 0
 
bool ltr = false
 
std::vector< Clusterleft_tabs
 
std::vector< Clusterright_tabs
 
tesseract::ParagraphJustification just = JUSTIFICATION_UNKNOWN
 
int margin = 0
 
int first_indent = 0
 
int body_indent = 0
 
int eop_threshold = 0
 

Detailed Description

Definition at line 907 of file paragraphs.cpp.

Constructor & Destructor Documentation

◆ GeometricClassifierState()

tesseract::GeometricClassifierState::GeometricClassifierState ( int  dbg_level,
std::vector< RowScratchRegisters > *  r,
int  r_start,
int  r_end 
)
inline

Definition at line 908 of file paragraphs.cpp.

910 : debug_level(dbg_level), rows(r), row_start(r_start), row_end(r_end) {
911 tolerance = InterwordSpace(*r, r_start, r_end);
912 CalculateTabStops(r, r_start, r_end, tolerance, &left_tabs, &right_tabs);
913 if (debug_level >= 3) {
914 tprintf(
915 "Geometry: TabStop cluster tolerance = %d; "
916 "%zu left tabs; %zu right tabs\n",
917 tolerance, left_tabs.size(), right_tabs.size());
918 }
919 ltr = (*r)[r_start].ri_->ltr;
920 }
void tprintf(const char *format,...)
Definition: tprintf.cpp:41
int InterwordSpace(const std::vector< RowScratchRegisters > &rows, int row_start, int row_end)
std::vector< Cluster > right_tabs
std::vector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:990
std::vector< Cluster > left_tabs

Member Function Documentation

◆ AlignsideTabIndex()

int tesseract::GeometricClassifierState::AlignsideTabIndex ( int  row_idx) const
inline

Definition at line 959 of file paragraphs.cpp.

959 {
960 return ClosestCluster(AlignTabs(), (*rows)[row_idx].AlignsideIndent(just));
961 }
tesseract::ParagraphJustification just
const std::vector< Cluster > & AlignTabs() const
Definition: paragraphs.cpp:933

◆ AlignTabs()

const std::vector< Cluster > & tesseract::GeometricClassifierState::AlignTabs ( ) const
inline

Definition at line 933 of file paragraphs.cpp.

933 {
934 if (just == tesseract::JUSTIFICATION_RIGHT) {
935 return right_tabs;
936 }
937 return left_tabs;
938 }

◆ AssumeLeftJustification()

void tesseract::GeometricClassifierState::AssumeLeftJustification ( )
inline

Definition at line 922 of file paragraphs.cpp.

922 {
924 margin = (*rows)[row_start].lmargin_;
925 }
@ JUSTIFICATION_LEFT
Definition: publictypes.h:248

◆ AssumeRightJustification()

void tesseract::GeometricClassifierState::AssumeRightJustification ( )
inline

Definition at line 927 of file paragraphs.cpp.

927 {
929 margin = (*rows)[row_start].rmargin_;
930 }
@ JUSTIFICATION_RIGHT
Definition: publictypes.h:250

◆ Fail()

void tesseract::GeometricClassifierState::Fail ( int  min_debug_level,
const char *  why 
) const
inline

Definition at line 973 of file paragraphs.cpp.

973 {
974 if (debug_level < min_debug_level) {
975 return;
976 }
977 tprintf("# %s\n", why);
978 PrintRows();
979 }

◆ FirstWordWouldHaveFit()

bool tesseract::GeometricClassifierState::FirstWordWouldHaveFit ( int  row_a,
int  row_b 
)
inline

Definition at line 965 of file paragraphs.cpp.

965 {
966 return ::tesseract::FirstWordWouldHaveFit((*rows)[row_a], (*rows)[row_b], just);
967 }

◆ IsFullRow()

bool tesseract::GeometricClassifierState::IsFullRow ( int  i) const
inline

Definition at line 954 of file paragraphs.cpp.

954 {
955 return ClosestCluster(left_tabs, (*rows)[i].lindent_) == 0 &&
956 ClosestCluster(right_tabs, (*rows)[i].rindent_) == 0;
957 }

◆ Model()

ParagraphModel tesseract::GeometricClassifierState::Model ( ) const
inline

Definition at line 981 of file paragraphs.cpp.

◆ OffsideTabs()

const std::vector< Cluster > & tesseract::GeometricClassifierState::OffsideTabs ( ) const
inline

Definition at line 945 of file paragraphs.cpp.

945 {
946 if (just == tesseract::JUSTIFICATION_RIGHT) {
947 return left_tabs;
948 }
949 return right_tabs;
950 }

◆ PrintRows()

void tesseract::GeometricClassifierState::PrintRows ( ) const
inline

Definition at line 969 of file paragraphs.cpp.

969 {
970 PrintRowRange(*rows, row_start, row_end);
971 }

Member Data Documentation

◆ body_indent

int tesseract::GeometricClassifierState::body_indent = 0

Definition at line 1010 of file paragraphs.cpp.

◆ debug_level

int tesseract::GeometricClassifierState::debug_level = 0

Definition at line 986 of file paragraphs.cpp.

◆ eop_threshold

int tesseract::GeometricClassifierState::eop_threshold = 0

Definition at line 1013 of file paragraphs.cpp.

◆ first_indent

int tesseract::GeometricClassifierState::first_indent = 0

Definition at line 1009 of file paragraphs.cpp.

◆ just

tesseract::ParagraphJustification tesseract::GeometricClassifierState::just = JUSTIFICATION_UNKNOWN

Definition at line 1007 of file paragraphs.cpp.

◆ left_tabs

std::vector<Cluster> tesseract::GeometricClassifierState::left_tabs

Definition at line 1003 of file paragraphs.cpp.

◆ ltr

bool tesseract::GeometricClassifierState::ltr = false

Definition at line 999 of file paragraphs.cpp.

◆ margin

int tesseract::GeometricClassifierState::margin = 0

Definition at line 1008 of file paragraphs.cpp.

◆ right_tabs

std::vector<Cluster> tesseract::GeometricClassifierState::right_tabs

Definition at line 1004 of file paragraphs.cpp.

◆ row_end

int tesseract::GeometricClassifierState::row_end = 0

Definition at line 992 of file paragraphs.cpp.

◆ row_start

int tesseract::GeometricClassifierState::row_start = 0

Definition at line 991 of file paragraphs.cpp.

◆ rows

std::vector<RowScratchRegisters>* tesseract::GeometricClassifierState::rows

Definition at line 990 of file paragraphs.cpp.

◆ tolerance

int tesseract::GeometricClassifierState::tolerance = 0

Definition at line 995 of file paragraphs.cpp.


The documentation for this struct was generated from the following file: