Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 810 of file paragraphs.cpp.

Constructor & Destructor Documentation

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

Definition at line 811 of file paragraphs.cpp.

814  : debug_level(dbg_level), rows(r), row_start(r_start), row_end(r_end),
815  margin(0) {
816  tolerance = InterwordSpace(*r, r_start, r_end);
817  CalculateTabStops(r, r_start, r_end, tolerance,
818  &left_tabs, &right_tabs);
819  ltr = (*r)[r_start].ri_->ltr;
820  }
int InterwordSpace(const GenericVector< RowScratchRegisters > &rows, int row_start, int row_end)
void CalculateTabStops(GenericVector< RowScratchRegisters > *rows, int row_start, int row_end, int tolerance, GenericVector< Cluster > *left_tabs, GenericVector< Cluster > *right_tabs)
Definition: paragraphs.cpp:703
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:897
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:896
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:883

Member Function Documentation

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

Definition at line 855 of file paragraphs.cpp.

855  {
856  return ClosestCluster(AlignTabs(), (*rows)[row_idx].AlignsideIndent(just));
857  }
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:900
int ClosestCluster(const GenericVector< Cluster > &clusters, int value)
Definition: paragraphs.cpp:677
const GenericVector< Cluster > & AlignTabs() const
Definition: paragraphs.cpp:833
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:883
const GenericVector<Cluster>& tesseract::GeometricClassifierState::AlignTabs ( ) const
inline

Definition at line 833 of file paragraphs.cpp.

833  {
835  return left_tabs;
836  }
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:900
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:897
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:896
void tesseract::GeometricClassifierState::AssumeLeftJustification ( )
inline

Definition at line 822 of file paragraphs.cpp.

void tesseract::GeometricClassifierState::AssumeRightJustification ( )
inline

Definition at line 827 of file paragraphs.cpp.

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

Definition at line 868 of file paragraphs.cpp.

868  {
869  if (debug_level < min_debug_level) return;
870  tprintf("# %s\n", why);
871  PrintRows();
872  }
DLLSYM void tprintf(const char *format,...)
Definition: tprintf.cpp:41
bool tesseract::GeometricClassifierState::FirstWordWouldHaveFit ( int  row_a,
int  row_b 
)
inline

Definition at line 861 of file paragraphs.cpp.

861  {
863  (*rows)[row_a], (*rows)[row_b], just);
864  }
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:900
bool FirstWordWouldHaveFit(const RowScratchRegisters &before, const RowScratchRegisters &after)
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:883
bool tesseract::GeometricClassifierState::IsFullRow ( int  i) const
inline

Definition at line 850 of file paragraphs.cpp.

850  {
851  return ClosestCluster(left_tabs, (*rows)[i].lindent_) == 0 &&
852  ClosestCluster(right_tabs, (*rows)[i].rindent_) == 0;
853  }
int ClosestCluster(const GenericVector< Cluster > &clusters, int value)
Definition: paragraphs.cpp:677
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:897
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:896
GenericVector< RowScratchRegisters > * rows
Definition: paragraphs.cpp:883
ParagraphModel tesseract::GeometricClassifierState::Model ( ) const
inline
const GenericVector<Cluster>& tesseract::GeometricClassifierState::OffsideTabs ( ) const
inline

Definition at line 843 of file paragraphs.cpp.

843  {
845  return right_tabs;
846  }
tesseract::ParagraphJustification just
Definition: paragraphs.cpp:900
GenericVector< Cluster > right_tabs
Definition: paragraphs.cpp:897
GenericVector< Cluster > left_tabs
Definition: paragraphs.cpp:896
void tesseract::GeometricClassifierState::PrintRows ( ) const
inline

Definition at line 866 of file paragraphs.cpp.

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

Member Data Documentation

int tesseract::GeometricClassifierState::body_indent

Definition at line 903 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::debug_level

Definition at line 879 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::eop_threshold

Definition at line 906 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::first_indent

Definition at line 902 of file paragraphs.cpp.

tesseract::ParagraphJustification tesseract::GeometricClassifierState::just

Definition at line 900 of file paragraphs.cpp.

GenericVector<Cluster> tesseract::GeometricClassifierState::left_tabs

Definition at line 896 of file paragraphs.cpp.

bool tesseract::GeometricClassifierState::ltr

Definition at line 892 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::margin

Definition at line 901 of file paragraphs.cpp.

GenericVector<Cluster> tesseract::GeometricClassifierState::right_tabs

Definition at line 897 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::row_end

Definition at line 885 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::row_start

Definition at line 884 of file paragraphs.cpp.

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

Definition at line 883 of file paragraphs.cpp.

int tesseract::GeometricClassifierState::tolerance

Definition at line 888 of file paragraphs.cpp.


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