tesseract  3.05.02
tesseract::FontInfo Struct Reference

#include <fontinfo.h>

Public Member Functions

 FontInfo ()
 
 ~FontInfo ()
 
bool Serialize (FILE *fp) const
 
bool DeSerialize (bool swap, FILE *fp)
 
void init_spacing (int unicharset_size)
 
void add_spacing (UNICHAR_ID uch_id, FontSpacingInfo *spacing_info)
 
const FontSpacingInfoget_spacing (UNICHAR_ID uch_id) const
 
bool get_spacing (UNICHAR_ID prev_uch_id, UNICHAR_ID uch_id, int *spacing) const
 
bool is_italic () const
 
bool is_bold () const
 
bool is_fixed_pitch () const
 
bool is_serif () const
 
bool is_fraktur () const
 

Public Attributes

char * name
 
uinT32 properties
 
inT32 universal_id
 
GenericVector< FontSpacingInfo * > * spacing_vec
 

Detailed Description

Definition at line 64 of file fontinfo.h.

Constructor & Destructor Documentation

◆ FontInfo()

tesseract::FontInfo::FontInfo ( )
inline

Definition at line 65 of file fontinfo.h.

65 : name(NULL), properties(0), universal_id(0), spacing_vec(NULL) {}
GenericVector< FontSpacingInfo * > * spacing_vec
Definition: fontinfo.h:127

◆ ~FontInfo()

tesseract::FontInfo::~FontInfo ( )
inline

Definition at line 66 of file fontinfo.h.

66 {}

Member Function Documentation

◆ add_spacing()

void tesseract::FontInfo::add_spacing ( UNICHAR_ID  uch_id,
FontSpacingInfo spacing_info 
)
inline

Definition at line 82 of file fontinfo.h.

82  {
83  ASSERT_HOST(spacing_vec != NULL && spacing_vec->size() > uch_id);
84  (*spacing_vec)[uch_id] = spacing_info;
85  }
GenericVector< FontSpacingInfo * > * spacing_vec
Definition: fontinfo.h:127
#define ASSERT_HOST(x)
Definition: errcode.h:84

◆ DeSerialize()

bool tesseract::FontInfo::DeSerialize ( bool  swap,
FILE *  fp 
)

Definition at line 34 of file fontinfo.cpp.

34  {
35  if (!read_info(fp, this, swap)) return false;
36  if (!read_spacing_info(fp, this, swap)) return false;
37  return true;
38 }
bool read_info(FILE *f, FontInfo *fi, bool swap)
Definition: fontinfo.cpp:152
bool read_spacing_info(FILE *f, FontInfo *fi, bool swap)
Definition: fontinfo.cpp:177

◆ get_spacing() [1/2]

const FontSpacingInfo* tesseract::FontInfo::get_spacing ( UNICHAR_ID  uch_id) const
inline

Definition at line 88 of file fontinfo.h.

88  {
89  return (spacing_vec == NULL || spacing_vec->size() <= uch_id) ?
90  NULL : (*spacing_vec)[uch_id];
91  }
GenericVector< FontSpacingInfo * > * spacing_vec
Definition: fontinfo.h:127

◆ get_spacing() [2/2]

bool tesseract::FontInfo::get_spacing ( UNICHAR_ID  prev_uch_id,
UNICHAR_ID  uch_id,
int *  spacing 
) const
inline

Definition at line 95 of file fontinfo.h.

97  {
98  const FontSpacingInfo *prev_fsi = this->get_spacing(prev_uch_id);
99  const FontSpacingInfo *fsi = this->get_spacing(uch_id);
100  if (prev_fsi == NULL || fsi == NULL) return false;
101  int i = 0;
102  for (; i < prev_fsi->kerned_unichar_ids.size(); ++i) {
103  if (prev_fsi->kerned_unichar_ids[i] == uch_id) break;
104  }
105  if (i < prev_fsi->kerned_unichar_ids.size()) {
106  *spacing = prev_fsi->kerned_x_gaps[i];
107  } else {
108  *spacing = prev_fsi->x_gap_after + fsi->x_gap_before;
109  }
110  return true;
111  }
const FontSpacingInfo * get_spacing(UNICHAR_ID uch_id) const
Definition: fontinfo.h:88

◆ init_spacing()

void tesseract::FontInfo::init_spacing ( int  unicharset_size)
inline

Definition at line 75 of file fontinfo.h.

75  {
77  spacing_vec->init_to_size(unicharset_size, NULL);
78  }
GenericVector< FontSpacingInfo * > * spacing_vec
Definition: fontinfo.h:127

◆ is_bold()

bool tesseract::FontInfo::is_bold ( ) const
inline

Definition at line 114 of file fontinfo.h.

114 { return (properties & 2) != 0; }

◆ is_fixed_pitch()

bool tesseract::FontInfo::is_fixed_pitch ( ) const
inline

Definition at line 115 of file fontinfo.h.

115 { return (properties & 4) != 0; }

◆ is_fraktur()

bool tesseract::FontInfo::is_fraktur ( ) const
inline

Definition at line 117 of file fontinfo.h.

117 { return (properties & 16) != 0; }

◆ is_italic()

bool tesseract::FontInfo::is_italic ( ) const
inline

Definition at line 113 of file fontinfo.h.

113 { return properties & 1; }

◆ is_serif()

bool tesseract::FontInfo::is_serif ( ) const
inline

Definition at line 116 of file fontinfo.h.

116 { return (properties & 8) != 0; }

◆ Serialize()

bool tesseract::FontInfo::Serialize ( FILE *  fp) const

Definition at line 27 of file fontinfo.cpp.

27  {
28  if (!write_info(fp, *this)) return false;
29  if (!write_spacing_info(fp, *this)) return false;
30  return true;
31 }
bool write_spacing_info(FILE *f, const FontInfo &fi)
Definition: fontinfo.cpp:211
bool write_info(FILE *f, const FontInfo &fi)
Definition: fontinfo.cpp:168

Member Data Documentation

◆ name

char* tesseract::FontInfo::name

Definition at line 119 of file fontinfo.h.

◆ properties

uinT32 tesseract::FontInfo::properties

Definition at line 120 of file fontinfo.h.

◆ spacing_vec

GenericVector<FontSpacingInfo *>* tesseract::FontInfo::spacing_vec

Definition at line 127 of file fontinfo.h.

◆ universal_id

inT32 tesseract::FontInfo::universal_id

Definition at line 125 of file fontinfo.h.


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