tesseract  4.00.00dev
tesseract::GeometricClassifierState Struct Reference

Public Member Functions

 GeometricClassifierState (int dbg_level, GenericVector< RowScratchRegisters > *r, int r_start, int r_end)
 
void AssumeLeftJustification ()
 
void AssumeRightJustification ()
 
const GenericVector< Cluster > & AlignTabs () const
 
const GenericVector< 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
 
GenericVector< RowScratchRegisters > * rows
 
int row_start
 
int row_end
 
int tolerance
 
bool ltr
 
GenericVector< Clusterleft_tabs
 
GenericVector< Clusterright_tabs
 
tesseract::ParagraphJustification just
 
int margin
 
int first_indent
 
int body_indent
 
int eop_threshold
 

Detailed Description

Definition at line 855 of file paragraphs.cpp.

Constructor & Destructor Documentation

◆ GeometricClassifierState()

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

Definition at line 856 of file paragraphs.cpp.

859  : debug_level(dbg_level), rows(r), row_start(r_start), row_end(r_end),
860  margin(0) {
861  tolerance = InterwordSpace(*r, r_start, r_end);
862  CalculateTabStops(r, r_start, r_end, tolerance,
863  &left_tabs, &right_tabs);
864  if (debug_level >= 3) {
865  tprintf("Geometry: TabStop cluster tolerance = %d; "
866  "%d left tabs; %d right tabs\n",
867  tolerance, left_tabs.size(), right_tabs.size());
868  }
869  ltr = (*r)[r_start].ri_->ltr;
870  }
void CalculateTabStops(GenericVector< RowScratchRegisters > *rows, int row_start, int row_end, int tolerance, GenericVector< Cluster > *left_tabs, GenericVector< Cluster > *right_tabs)
Definition: paragraphs.cpp:692
#define tprintf(...)
Definition: tprintf.h:31
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:933
int InterwordSpace(const GenericVector< RowScratchRegisters > &rows, int row_start, int row_end)
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:946
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:947

Member Function Documentation

◆ AlignsideTabIndex()

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

Definition at line 905 of file paragraphs.cpp.

905  {
906  return ClosestCluster(AlignTabs(), (*rows)[row_idx].AlignsideIndent(just));
907  }
int ClosestCluster(const GenericVector< Cluster > &clusters, int value)
Definition: paragraphs.cpp:666
const GenericVector< Cluster > & AlignTabs() const
Definition: paragraphs.cpp:883
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:933
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:950

◆ AlignTabs()

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

Definition at line 883 of file paragraphs.cpp.

883  {
885  return left_tabs;
886  }
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:950
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:946
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:947

◆ AssumeLeftJustification()

void tesseract::GeometricClassifierState::AssumeLeftJustification ( )
inline

Definition at line 872 of file paragraphs.cpp.

◆ AssumeRightJustification()

void tesseract::GeometricClassifierState::AssumeRightJustification ( )
inline

Definition at line 877 of file paragraphs.cpp.

◆ Fail()

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

Definition at line 918 of file paragraphs.cpp.

918  {
919  if (debug_level < min_debug_level) return;
920  tprintf("# %s\n", why);
921  PrintRows();
922  }
#define tprintf(...)
Definition: tprintf.h:31

◆ FirstWordWouldHaveFit()

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

Definition at line 911 of file paragraphs.cpp.

911  {
913  (*rows)[row_a], (*rows)[row_b], just);
914  }
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:933
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:950
bool FirstWordWouldHaveFit(const RowScratchRegisters &before, const RowScratchRegisters &after)

◆ IsFullRow()

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

Definition at line 900 of file paragraphs.cpp.

900  {
901  return ClosestCluster(left_tabs, (*rows)[i].lindent_) == 0 &&
902  ClosestCluster(right_tabs, (*rows)[i].rindent_) == 0;
903  }
int ClosestCluster(const GenericVector< Cluster > &clusters, int value)
Definition: paragraphs.cpp:666
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:933
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:946
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:947

◆ Model()

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

◆ OffsideTabs()

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

Definition at line 893 of file paragraphs.cpp.

893  {
895  return right_tabs;
896  }
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:950
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:946
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:947

◆ PrintRows()

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

Definition at line 916 of file paragraphs.cpp.

916 { PrintRowRange(*rows, row_start, row_end); }
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:933

Member Data Documentation

◆ body_indent

int tesseract::GeometricClassifierState::body_indent

Definition at line 953 of file paragraphs.cpp.

◆ debug_level

int tesseract::GeometricClassifierState::debug_level

Definition at line 929 of file paragraphs.cpp.

◆ eop_threshold

int tesseract::GeometricClassifierState::eop_threshold

Definition at line 956 of file paragraphs.cpp.

◆ first_indent

int tesseract::GeometricClassifierState::first_indent

Definition at line 952 of file paragraphs.cpp.

◆ just

tesseract::ParagraphJustification tesseract::GeometricClassifierState::just

Definition at line 950 of file paragraphs.cpp.

◆ left_tabs

GenericVector<Cluster> tesseract::GeometricClassifierState::left_tabs

Definition at line 946 of file paragraphs.cpp.

◆ ltr

bool tesseract::GeometricClassifierState::ltr

Definition at line 942 of file paragraphs.cpp.

◆ margin

int tesseract::GeometricClassifierState::margin

Definition at line 951 of file paragraphs.cpp.

◆ right_tabs

GenericVector<Cluster> tesseract::GeometricClassifierState::right_tabs

Definition at line 947 of file paragraphs.cpp.

◆ row_end

int tesseract::GeometricClassifierState::row_end

Definition at line 935 of file paragraphs.cpp.

◆ row_start

int tesseract::GeometricClassifierState::row_start

Definition at line 934 of file paragraphs.cpp.

◆ rows

GenericVector<RowScratchRegisters>* tesseract::GeometricClassifierState::rows

Definition at line 933 of file paragraphs.cpp.

◆ tolerance

int tesseract::GeometricClassifierState::tolerance

Definition at line 938 of file paragraphs.cpp.


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