xref: /inferno-os/libfreetype/ahangles.h (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth /***************************************************************************/
2*37da2899SCharles.Forsyth /*                                                                         */
3*37da2899SCharles.Forsyth /*  ahangles.h                                                             */
4*37da2899SCharles.Forsyth /*                                                                         */
5*37da2899SCharles.Forsyth /*    A routine used to compute vector angles with limited accuracy        */
6*37da2899SCharles.Forsyth /*    and very high speed (specification).                                 */
7*37da2899SCharles.Forsyth /*                                                                         */
8*37da2899SCharles.Forsyth /*  Copyright 2000-2001, 2002 Catharon Productions Inc.                    */
9*37da2899SCharles.Forsyth /*  Author: David Turner                                                   */
10*37da2899SCharles.Forsyth /*                                                                         */
11*37da2899SCharles.Forsyth /*  This file is part of the Catharon Typography Project and shall only    */
12*37da2899SCharles.Forsyth /*  be used, modified, and distributed under the terms of the Catharon     */
13*37da2899SCharles.Forsyth /*  Open Source License that should come with this file under the name     */
14*37da2899SCharles.Forsyth /*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
15*37da2899SCharles.Forsyth /*  this file you indicate that you have read the license and              */
16*37da2899SCharles.Forsyth /*  understand and accept it fully.                                        */
17*37da2899SCharles.Forsyth /*                                                                         */
18*37da2899SCharles.Forsyth /*  Note that this license is compatible with the FreeType license.        */
19*37da2899SCharles.Forsyth /*                                                                         */
20*37da2899SCharles.Forsyth /***************************************************************************/
21*37da2899SCharles.Forsyth 
22*37da2899SCharles.Forsyth 
23*37da2899SCharles.Forsyth #ifndef __AHANGLES_H__
24*37da2899SCharles.Forsyth #define __AHANGLES_H__
25*37da2899SCharles.Forsyth 
26*37da2899SCharles.Forsyth 
27*37da2899SCharles.Forsyth #include <ft2build.h>
28*37da2899SCharles.Forsyth #include FT_INTERNAL_OBJECTS_H
29*37da2899SCharles.Forsyth #include "ahtypes.h"
30*37da2899SCharles.Forsyth 
31*37da2899SCharles.Forsyth 
32*37da2899SCharles.Forsyth FT_BEGIN_HEADER
33*37da2899SCharles.Forsyth 
34*37da2899SCharles.Forsyth 
35*37da2899SCharles.Forsyth   /* PI expressed in ah_angles -- we don't really need an important */
36*37da2899SCharles.Forsyth   /* precision, so 256 should be enough                             */
37*37da2899SCharles.Forsyth #define AH_PI       256
38*37da2899SCharles.Forsyth #define AH_2PI      ( AH_PI * 2 )
39*37da2899SCharles.Forsyth #define AH_HALF_PI  ( AH_PI / 2 )
40*37da2899SCharles.Forsyth #define AH_2PIMASK  ( AH_2PI - 1 )
41*37da2899SCharles.Forsyth 
42*37da2899SCharles.Forsyth   /* the number of bits used to express an arc tangent; */
43*37da2899SCharles.Forsyth   /* see the structure of the lookup table              */
44*37da2899SCharles.Forsyth #define AH_ATAN_BITS  8
45*37da2899SCharles.Forsyth 
46*37da2899SCharles.Forsyth   extern
47*37da2899SCharles.Forsyth   const AH_Angle  ah_arctan[1L << AH_ATAN_BITS];
48*37da2899SCharles.Forsyth 
49*37da2899SCharles.Forsyth 
50*37da2899SCharles.Forsyth   FT_LOCAL( AH_Angle )
51*37da2899SCharles.Forsyth   ah_angle( FT_Vector*  v );
52*37da2899SCharles.Forsyth 
53*37da2899SCharles.Forsyth 
54*37da2899SCharles.Forsyth   FT_LOCAL( AH_Angle )
55*37da2899SCharles.Forsyth   ah_angle_diff( AH_Angle  angle1,
56*37da2899SCharles.Forsyth                  AH_Angle  angle2 );
57*37da2899SCharles.Forsyth 
58*37da2899SCharles.Forsyth 
59*37da2899SCharles.Forsyth FT_END_HEADER
60*37da2899SCharles.Forsyth 
61*37da2899SCharles.Forsyth #endif /* __AHANGLES_H__ */
62*37da2899SCharles.Forsyth 
63*37da2899SCharles.Forsyth 
64*37da2899SCharles.Forsyth /* END */
65