Tesseract 3.02

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fpoint.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Filename: fpoint.h
3 ** Purpose: Abstract data type for 2D points (floating point coords)
4 ** Author: Dan Johnson
5 ** History: Thu Apr 12 10:50:01 1990, DSJ, Created.
6 **
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 #ifndef FPOINT_H
19 #define FPOINT_H
20
24 #include "host.h"
25 #include <stdio.h>
26 #include <math.h>
27
28 /* define data structure to hold 2D points or vectors using floating point */
29 typedef struct
30 {
31 FLOAT32 x, y;
32 } FPOINT;
33 typedef FPOINT FVECTOR;
34
38 /* macros for computing miscellaneous functions of 2 points */
39 #define XDelta(A,B) ( (B).x - (A).x )
40 #define YDelta(A,B) ( (B).y - (A).y )
41 #define SlopeFrom(A,B) ( YDelta(A,B) / XDelta(A,B) )
42 #define AngleFrom(A,B) ( atan2((double) YDelta(A,B), \
43 (double) XDelta(A,B) ) )
44
45 #define XIntersectionOf(A,B,X) ( SlopeFrom(A,B) * ((X) - A.x) + A.y)
46
47 /*-------------------------------------------------------------------------
48 Public Function Prototypes
49 ---------------------------------------------------------------------------*/
50
51 FLOAT32 DistanceBetween(FPOINT A, FPOINT B);
52
53 FLOAT32 NormalizedAngleFrom(FPOINT *Point1, FPOINT *Point2, FLOAT32 FullScale);
54 #endif