diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mupdf-source/thirdparty/tesseract/src/classify/fpoint.h	Mon Sep 15 11:43:07 2025 +0200
@@ -0,0 +1,53 @@
+/******************************************************************************
+ ** Filename:    fpoint.h
+ ** Purpose:     Abstract data type for 2D points (floating point coords)
+ ** Author:      Dan Johnson
+ **
+ ** (c) Copyright Hewlett-Packard Company, 1988.
+ ** (c) Copyright Hewlett-Packard Company, 1988.
+ ** Licensed under the Apache License, Version 2.0 (the "License");
+ ** you may not use this file except in compliance with the License.
+ ** You may obtain a copy of the License at
+ ** http://www.apache.org/licenses/LICENSE-2.0
+ ** Unless required by applicable law or agreed to in writing, software
+ ** distributed under the License is distributed on an "AS IS" BASIS,
+ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ** See the License for the specific language governing permissions and
+ ** limitations under the License.
+ ******************************************************************************/
+
+#ifndef FPOINT_H
+#define FPOINT_H
+
+/**----------------------------------------------------------------------------
+          Include Files and Type Defines
+----------------------------------------------------------------------------**/
+#include <cmath>
+#include <cstdio>
+
+/* define data structure to hold 2D points or vectors using floating point */
+struct FPOINT {
+  float x, y;
+};
+using FVECTOR = FPOINT;
+
+/**----------------------------------------------------------------------------
+            Macros
+----------------------------------------------------------------------------**/
+/* macros for computing miscellaneous functions of 2 points */
+#define XDelta(A, B) ((B).x - (A).x)
+#define YDelta(A, B) ((B).y - (A).y)
+#define SlopeFrom(A, B) (YDelta(A, B) / XDelta(A, B))
+#define AngleFrom(A, B) (atan2((double)YDelta(A, B), (double)XDelta(A, B)))
+
+#define XIntersectionOf(A, B, X) (SlopeFrom(A, B) * ((X)-A.x) + A.y)
+
+/*-------------------------------------------------------------------------
+        Public Function Prototypes
+---------------------------------------------------------------------------*/
+
+float DistanceBetween(FPOINT A, FPOINT B);
+
+float NormalizedAngleFrom(FPOINT *Point1, FPOINT *Point2, float FullScale);
+
+#endif