Tesseract  3.02
tesseract-ocr/ccmain/pagewalk.cpp
Go to the documentation of this file.
00001 /**********************************************************************
00002  * File:        pagewalk.cpp  (Formerly walkers.c)
00003  * Description: Block list processors
00004  * Author:      Phil Cheatle
00005  * Created:     Thu Oct 10 16:25:24 BST 1991
00006  *
00007  * (C) Copyright 1991, Hewlett-Packard Ltd.
00008  ** Licensed under the Apache License, Version 2.0 (the "License");
00009  ** you may not use this file except in compliance with the License.
00010  ** You may obtain a copy of the License at
00011  ** http://www.apache.org/licenses/LICENSE-2.0
00012  ** Unless required by applicable law or agreed to in writing, software
00013  ** distributed under the License is distributed on an "AS IS" BASIS,
00014  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  ** See the License for the specific language governing permissions and
00016  ** limitations under the License.
00017  *
00018  **********************************************************************/
00019 
00020 #include "mfcpch.h"
00021 #include "pageres.h"
00022 #include "tesseractclass.h"
00023 
00030 namespace tesseract {
00031 void Tesseract::process_selected_words(
00032     PAGE_RES* page_res, // blocks to check
00033     TBOX & selection_box,
00034     BOOL8(tesseract::Tesseract::*word_processor)(  // function to call
00035         BLOCK* block, ROW* row, WERD_RES* word_res)) {
00036   for (PAGE_RES_IT page_res_it(page_res); page_res_it.word() != NULL;
00037        page_res_it.forward()) {
00038     WERD* word = page_res_it.word()->word;
00039     if (word->bounding_box().overlap(selection_box)) {
00040       if (!((this->*word_processor)(page_res_it.block()->block,
00041                                     page_res_it.row()->row,
00042                                     page_res_it.word())))
00043         return;
00044     }
00045   }
00046 }
00047 }  // namespace tesseract