Tesseract
3.02
|
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