comparison mupdf-source/thirdparty/tesseract/src/classify/fpoint.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 ** Filename: fpoint.h
3 ** Purpose: Abstract data type for 2D points (floating point coords)
4 ** Author: Dan Johnson
5 **
6 ** (c) Copyright Hewlett-Packard Company, 1988.
7 ** (c) Copyright Hewlett-Packard Company, 1988.
8 ** Licensed under the Apache License, Version 2.0 (the "License");
9 ** you may not use this file except in compliance with the License.
10 ** You may obtain a copy of the License at
11 ** http://www.apache.org/licenses/LICENSE-2.0
12 ** Unless required by applicable law or agreed to in writing, software
13 ** distributed under the License is distributed on an "AS IS" BASIS,
14 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 ** See the License for the specific language governing permissions and
16 ** limitations under the License.
17 ******************************************************************************/
18
19 #ifndef FPOINT_H
20 #define FPOINT_H
21
22 /**----------------------------------------------------------------------------
23 Include Files and Type Defines
24 ----------------------------------------------------------------------------**/
25 #include <cmath>
26 #include <cstdio>
27
28 /* define data structure to hold 2D points or vectors using floating point */
29 struct FPOINT {
30 float x, y;
31 };
32 using FVECTOR = FPOINT;
33
34 /**----------------------------------------------------------------------------
35 Macros
36 ----------------------------------------------------------------------------**/
37 /* macros for computing miscellaneous functions of 2 points */
38 #define XDelta(A, B) ((B).x - (A).x)
39 #define YDelta(A, B) ((B).y - (A).y)
40 #define SlopeFrom(A, B) (YDelta(A, B) / XDelta(A, B))
41 #define AngleFrom(A, B) (atan2((double)YDelta(A, B), (double)XDelta(A, B)))
42
43 #define XIntersectionOf(A, B, X) (SlopeFrom(A, B) * ((X)-A.x) + A.y)
44
45 /*-------------------------------------------------------------------------
46 Public Function Prototypes
47 ---------------------------------------------------------------------------*/
48
49 float DistanceBetween(FPOINT A, FPOINT B);
50
51 float NormalizedAngleFrom(FPOINT *Point1, FPOINT *Point2, float FullScale);
52
53 #endif