00001
00019 #ifndef PAGEWALK_H
00020 #define PAGEWALK_H
00021
00022 #include "ocrblock.h"
00023 #include "ocrrow.h"
00024 #include "werd.h"
00025 #include "polyblob.h"
00026 #include "stepblob.h"
00027 #include "rect.h"
00028 #include "varable.h"
00029 #include "notdll.h"
00030
00032 #define BLOCK_SPACING 20
00033
00044 extern BOOL_VAR_H (current_word_quit, FALSE, "Stop processing this word");
00045 extern DLLSYM BOOL_VAR_H (selection_quit, FALSE,
00046 "Stop processing this selection");
00049 BOX block_list_bounding_box(
00050 BLOCK_LIST *block_list
00051 );
00052 const BOX block_list_compress(
00053 BLOCK_LIST *block_list);
00054 void block_list_move(
00055 BLOCK_LIST *block_list,
00056 ICOORD vec
00057 );
00058 int block_name_order(
00059 const void *block1p,
00060 const void *block2p
00061 );
00062 void process_all_blobs (
00063 BLOCK_LIST * block_list,
00064 BOOL8 blob_processor (
00065
00066 BLOCK *, ROW *, WERD *, PBLOB *), BOOL8 c_blob_processor (
00067 BLOCK *,
00068 ROW *,
00069 WERD *,
00070 C_BLOB *
00071 ));
00072 void process_selected_blobs (
00073 BLOCK_LIST * block_list,
00074
00075 BOX & selection_box, BOOL8 blob_processor (
00076
00077 BLOCK *, ROW *, WERD *, PBLOB *), BOOL8 c_blob_processor (
00078 BLOCK *,
00079 ROW *,
00080 WERD *,
00081 C_BLOB *
00082 ));
00083 void process_all_words (
00084 BLOCK_LIST * block_list,
00085 BOOL8 word_processor (
00086 BLOCK *, ROW *, WERD *));
00087 void process_selected_words (
00088 BLOCK_LIST * block_list,
00089
00090 BOX & selection_box, BOOL8 word_processor (
00091 BLOCK *,
00092 ROW *,
00093 WERD *
00094 ));
00095 void process_all_words_it (
00096 BLOCK_LIST * block_list,
00097 BOOL8 word_processor (
00098 BLOCK *,
00099 ROW *,
00100 WERD *,
00101 BLOCK_IT &,
00102 ROW_IT &, WERD_IT &));
00103 void process_selected_words_it (
00104 BLOCK_LIST * block_list,
00105
00106 BOX & selection_box, BOOL8 word_processor (
00107 BLOCK *,
00108 ROW *,
00109 WERD *,
00110 BLOCK_IT &,
00111 ROW_IT &,
00112 WERD_IT &
00113 ));
00114 void process_all_blocks (
00115 BLOCK_LIST * block_list,
00116 BOOL8 block_processor (
00117 BLOCK *));
00118 void process_selected_blocks (
00119 BLOCK_LIST * block_list,
00120
00121 BOX & selection_box, BOOL8 block_processor (
00122 BLOCK
00123 *));
00124 void process_all_rows (
00125 BLOCK_LIST * block_list,
00126 BOOL8 row_processor (
00127 BLOCK *, ROW *));
00128 void process_selected_rows (
00129 BLOCK_LIST * block_list,
00130
00131 BOX & selection_box, BOOL8 row_processor (
00132 BLOCK *,
00133 ROW *
00134 ));
00135 void process_all_rows_it (
00136 BLOCK_LIST * block_list,
00137 BOOL8 row_processor (
00138 BLOCK *,
00139 ROW *,
00140 BLOCK_IT &, ROW_IT &));
00141 void process_selected_rows_it (
00142 BLOCK_LIST * block_list,
00143
00144 BOX & selection_box, BOOL8 row_processor (
00145 BLOCK *,
00146 ROW *,
00147 BLOCK_IT &,
00148 ROW_IT &
00149 ));
00150 #endif