Tesseract  3.02
tesseract::TessLangModEdge Class Reference

#include <tess_lang_mod_edge.h>

Inheritance diagram for tesseract::TessLangModEdge:
tesseract::LangModEdge

List of all members.

Public Member Functions

 TessLangModEdge (CubeRecoContext *cntxt, const Dawg *edge_array, EDGE_REF edge, int class_id)
 TessLangModEdge (CubeRecoContext *cntxt, const Dawg *edge_array, EDGE_REF start_edge_idx, EDGE_REF end_edge_idx, int class_id)
 TessLangModEdge (CubeRecoContext *cntxt, int class_id)
 ~TessLangModEdge ()
bool IsRoot () const
void SetRoot (bool flag)
bool IsOOD () const
bool IsNumber () const
bool IsEOW () const
const DawgGetDawg () const
EDGE_REF StartEdge () const
EDGE_REF EndEdge () const
EDGE_REF EdgeMask () const
const char_32EdgeString () const
int ClassID () const
int PathCost () const
void SetEdgeMask (EDGE_REF edge_mask)
void SetDawg (Dawg *dawg)
void SetStartEdge (EDGE_REF edge_idx)
void SetEndEdge (EDGE_REF edge_idx)
bool IsTerminal () const
int SignalCnt () const
double SignalWgt (int signal) const
void SetSignalWgt (int signal, double wgt)
int Signal (int signal)
unsigned int Hash () const
char * Description () const
bool IsIdentical (LangModEdge *lang_mod_edge) const

Static Public Member Functions

static int CreateChildren (CubeRecoContext *cntxt, const Dawg *edges, NODE_REF edge_reg, LangModEdge **lm_edges)

Detailed Description

Definition at line 68 of file tess_lang_mod_edge.h.


Constructor & Destructor Documentation

tesseract::TessLangModEdge::TessLangModEdge ( CubeRecoContext cntxt,
const Dawg edge_array,
EDGE_REF  edge,
int  class_id 
)

Definition at line 41 of file tess_lang_mod_edge.cpp.

                                                       {
  root_ = false;
  cntxt_ = cntxt;
  dawg_ = dawg;
  start_edge_ = edge_idx;
  end_edge_ = edge_idx;
  edge_mask_ = 0;
  class_id_ = class_id;
  str_ = cntxt_->CharacterSet()->ClassString(class_id);
  path_cost_ = Cost();
}
tesseract::TessLangModEdge::TessLangModEdge ( CubeRecoContext cntxt,
const Dawg edge_array,
EDGE_REF  start_edge_idx,
EDGE_REF  end_edge_idx,
int  class_id 
)

Definition at line 55 of file tess_lang_mod_edge.cpp.

                                               {
  root_ = false;
  cntxt_ = cntxt;
  dawg_ = dawg;
  start_edge_ = start_edge_idx;
  end_edge_ = end_edge_idx;
  edge_mask_ = 0;
  class_id_ = class_id;
  str_ = cntxt_->CharacterSet()->ClassString(class_id);
  path_cost_ = Cost();
}
tesseract::TessLangModEdge::TessLangModEdge ( CubeRecoContext cntxt,
int  class_id 
)

Definition at line 28 of file tess_lang_mod_edge.cpp.

                                                                     {
  root_ = false;
  cntxt_ = cntxt;
  dawg_ = NULL;
  start_edge_ = 0;
  end_edge_ = 0;
  edge_mask_ = 0;
  class_id_ = class_id;
  str_ = cntxt_->CharacterSet()->ClassString(class_id);
  path_cost_ = Cost();
}
tesseract::TessLangModEdge::~TessLangModEdge ( ) [inline]

Definition at line 77 of file tess_lang_mod_edge.h.

{}

Member Function Documentation

int tesseract::TessLangModEdge::ClassID ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 102 of file tess_lang_mod_edge.h.

{ return class_id_; }
int tesseract::TessLangModEdge::CreateChildren ( CubeRecoContext cntxt,
const Dawg edges,
NODE_REF  edge_reg,
LangModEdge **  lm_edges 
) [static]

Definition at line 104 of file tess_lang_mod_edge.cpp.

                                                              {
  int edge_cnt = 0;
  NodeChildVector vec;
  dawg->unichar_ids_of(parent_node, &vec);  // find all children of the parent
  for (int i = 0; i < vec.size(); ++i) {
    const NodeChild &child = vec[i];
    if (child.unichar_id == INVALID_UNICHAR_ID) continue;
    edge_array[edge_cnt] =
      new TessLangModEdge(cntxt, dawg, child.edge_ref, child.unichar_id);
    if (edge_array[edge_cnt] != NULL) edge_cnt++;
  }
  return edge_cnt;
}
char * tesseract::TessLangModEdge::Description ( ) const [virtual]

Implements tesseract::LangModEdge.

Definition at line 69 of file tess_lang_mod_edge.cpp.

                                         {
  char *char_ptr = new char[256];
  if (!char_ptr) {
    return NULL;
  }

  char dawg_str[256];
  char edge_str[32];
  if (dawg_ == (Dawg *)DAWG_OOD) {
    strcpy(dawg_str, "OOD");
  } else if (dawg_ == (Dawg *)DAWG_NUMBER) {
    strcpy(dawg_str, "NUM");
  } else if (dawg_->permuter() == SYSTEM_DAWG_PERM) {
    strcpy(dawg_str, "Main");
  } else if (dawg_->permuter() == USER_DAWG_PERM) {
    strcpy(dawg_str, "User");
  } else if (dawg_->permuter() == DOC_DAWG_PERM) {
    strcpy(dawg_str, "Doc");
  } else {
    strcpy(dawg_str, "N/A");
  }

  sprintf(edge_str, "%d", static_cast<int>(start_edge_));
  if (IsLeadingPuncEdge(edge_mask_)) {
    strcat(edge_str, "-LP");
  }
  if (IsTrailingPuncEdge(edge_mask_)) {
    strcat(edge_str, "-TP");
  }
  sprintf(char_ptr, "%s(%s)%s, Wtd Dawg Cost=%d",
          dawg_str, edge_str, IsEOW() ? "-EOW-" : "", path_cost_);

  return char_ptr;
}
EDGE_REF tesseract::TessLangModEdge::EdgeMask ( ) const [inline]

Definition at line 100 of file tess_lang_mod_edge.h.

{ return edge_mask_; }
const char_32* tesseract::TessLangModEdge::EdgeString ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 101 of file tess_lang_mod_edge.h.

{ return str_; }
EDGE_REF tesseract::TessLangModEdge::EndEdge ( ) const [inline]

Definition at line 99 of file tess_lang_mod_edge.h.

{ return end_edge_; }
const Dawg* tesseract::TessLangModEdge::GetDawg ( ) const [inline]

Definition at line 97 of file tess_lang_mod_edge.h.

{ return dawg_; }
unsigned int tesseract::TessLangModEdge::Hash ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 178 of file tess_lang_mod_edge.h.

                                   {
    return static_cast<unsigned int>(((start_edge_ | end_edge_) ^
      ((reinterpret_cast<unsigned long int>(dawg_)))) ^
      ((unsigned int)edge_mask_) ^
      class_id_);
  }
bool tesseract::TessLangModEdge::IsEOW ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 93 of file tess_lang_mod_edge.h.

                            {
    return (IsTerminal() || (dawg_->end_of_word(end_edge_) != 0));
  }
bool tesseract::TessLangModEdge::IsIdentical ( LangModEdge lang_mod_edge) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 189 of file tess_lang_mod_edge.h.

                                                            {
    return (class_id_ ==
        reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->class_id_ &&
        str_ == reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->str_ &&
        dawg_ == reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->dawg_ &&
        start_edge_ ==
        reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->start_edge_ &&
        end_edge_ ==
        reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->end_edge_ &&
        edge_mask_ ==
        reinterpret_cast<TessLangModEdge *>(lang_mod_edge)->edge_mask_);
  }
bool tesseract::TessLangModEdge::IsNumber ( ) const [inline]

Definition at line 89 of file tess_lang_mod_edge.h.

                               {
    return (dawg_ == (Dawg *)DAWG_NUMBER);
  }
bool tesseract::TessLangModEdge::IsOOD ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 85 of file tess_lang_mod_edge.h.

                            {
    return (dawg_ == (Dawg *)DAWG_OOD);
  }
bool tesseract::TessLangModEdge::IsRoot ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 80 of file tess_lang_mod_edge.h.

                             {
    return root_;
  }
bool tesseract::TessLangModEdge::IsTerminal ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 112 of file tess_lang_mod_edge.h.

                                 {
    return (IsOOD() || IsNumber() || IsTrailingPuncEdge(start_edge_) ||
            dawg_->next_node(end_edge_) == 0);
  }
int tesseract::TessLangModEdge::PathCost ( ) const [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 103 of file tess_lang_mod_edge.h.

{ return path_cost_; }
void tesseract::TessLangModEdge::SetDawg ( Dawg dawg) [inline]

Definition at line 105 of file tess_lang_mod_edge.h.

{ dawg_ = dawg; }
void tesseract::TessLangModEdge::SetEdgeMask ( EDGE_REF  edge_mask) [inline]

Definition at line 104 of file tess_lang_mod_edge.h.

{ edge_mask_ = edge_mask; }
void tesseract::TessLangModEdge::SetEndEdge ( EDGE_REF  edge_idx) [inline]

Definition at line 107 of file tess_lang_mod_edge.h.

{ end_edge_ = edge_idx; }
void tesseract::TessLangModEdge::SetRoot ( bool  flag) [inline, virtual]

Implements tesseract::LangModEdge.

Definition at line 83 of file tess_lang_mod_edge.h.

{ root_ = flag; }
void tesseract::TessLangModEdge::SetSignalWgt ( int  signal,
double  wgt 
) [inline]

Definition at line 144 of file tess_lang_mod_edge.h.

                                            {
    CubeTuningParams *params =
        reinterpret_cast<CubeTuningParams *>(cntxt_->Params());
    if (params != NULL) {
      switch (signal) {
        case 0:
          params->SetOODWgt(wgt);
          break;

        case 1:
          params->SetNumWgt(wgt);
          break;
      }
    }
  }
void tesseract::TessLangModEdge::SetStartEdge ( EDGE_REF  edge_idx) [inline]

Definition at line 106 of file tess_lang_mod_edge.h.

{ start_edge_ = edge_idx; }
int tesseract::TessLangModEdge::Signal ( int  signal) [inline]

Definition at line 161 of file tess_lang_mod_edge.h.

                         {
    switch (signal) {
      case 0:
        return IsOOD() ? MIN_PROB_COST : 0;
        break;

      case 1:
        return IsNumber() ? MIN_PROB_COST : 0;
        break;

      default:
        return 0;
    }
  }
int tesseract::TessLangModEdge::SignalCnt ( ) const [inline]

Definition at line 120 of file tess_lang_mod_edge.h.

                               {
    return 2;
  }
double tesseract::TessLangModEdge::SignalWgt ( int  signal) const [inline]

Definition at line 125 of file tess_lang_mod_edge.h.

                                            {
    CubeTuningParams *params =
        reinterpret_cast<CubeTuningParams *>(cntxt_->Params());
    if (params != NULL) {
      switch (signal) {
        case 0:
          return params->OODWgt();
          break;

        case 1:
          return params->NumWgt();
          break;
      }
    }

    return 0.0;
  }
EDGE_REF tesseract::TessLangModEdge::StartEdge ( ) const [inline]

Definition at line 98 of file tess_lang_mod_edge.h.

{ return start_edge_; }

The documentation for this class was generated from the following files: