comparison mupdf-source/thirdparty/tesseract/src/textord/fpchop.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 /**********************************************************************
2 * File: fpchop.h (Formerly fp_chop.h)
3 * Description: Code to chop fixed pitch text into character cells.
4 * Author: Ray Smith
5 *
6 * (C) Copyright 1993, Hewlett-Packard Ltd.
7 ** Licensed under the Apache License, Version 2.0 (the "License");
8 ** you may not use this file except in compliance with the License.
9 ** You may obtain a copy of the License at
10 ** http://www.apache.org/licenses/LICENSE-2.0
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 *
17 **********************************************************************/
18
19 #ifndef FPCHOP_H
20 #define FPCHOP_H
21
22 #include "blobbox.h"
23 #include "params.h"
24
25 namespace tesseract {
26
27 class C_OUTLINE_FRAG : public ELIST_LINK {
28 public:
29 C_OUTLINE_FRAG() { // empty constructor
30 steps = nullptr;
31 stepcount = 0;
32 }
33 ~C_OUTLINE_FRAG() {
34 delete[] steps;
35 }
36 // start coord
37 C_OUTLINE_FRAG(ICOORD start_pt,
38 ICOORD end_pt, // end coord
39 C_OUTLINE *outline, // source of steps
40 int16_t start_index, int16_t end_index);
41 // other end
42 C_OUTLINE_FRAG(C_OUTLINE_FRAG *head, int16_t tail_y);
43 C_OUTLINE *close(); // copy to outline
44 C_OUTLINE_FRAG &operator=( // assign
45 const C_OUTLINE_FRAG &src);
46
47 ICOORD start; // start coord
48 ICOORD end; // end coord
49 DIR128 *steps; // step array
50 int32_t stepcount; // no of steps
51 C_OUTLINE_FRAG *other_end; // head if a tail
52 int16_t ycoord; // coord of cut pt
53
54 private:
55 // Copy constructor (currently unused, therefore private).
56 C_OUTLINE_FRAG(const C_OUTLINE_FRAG &other) = delete;
57 };
58
59 ELISTIZEH(C_OUTLINE_FRAG)
60
61 extern INT_VAR_H(textord_fp_chop_error);
62
63 ROW *fixed_pitch_words( // find lines
64 TO_ROW *row, // row to do
65 FCOORD rotation // for drawing
66 );
67
68 void split_to_blob( // split the blob
69 BLOBNBOX *blob, // blob to split
70 int16_t chop_coord, // place to chop
71 float pitch_error, // allowed deviation
72 C_OUTLINE_LIST *left_coutlines, // for cblobs
73 C_OUTLINE_LIST *right_coutlines);
74
75 } // namespace tesseract
76
77 #endif