aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/extras/freetype2/src/autohint/mather.py
blob: 8ad8b55359aee75653cf9ebdb49b63e86de29799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/env python
#

#
# autohint math table builder
#


# Copyright 1996-2000 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.


import math

ag_pi = 256

def print_arctan( atan_bits ):
    atan_base = 1 << atan_bits

    print "  static AH_Angle  ag_arctan[1L << AG_ATAN_BITS] ="
    print "  {"

    count = 0
    line  = "   "

    for n in range( atan_base ):
        comma = ","
        if ( n == atan_base - 1 ):
            comma = ""

        angle = math.atan( n * 1.0 / atan_base ) / math.pi * ag_pi
        line  = line + " " + repr( int( angle + 0.5 ) ) + comma
        count = count + 1;
        if ( count == 8 ):
            count = 0
            print line
            line = "   "

    if ( count > 0 ):
        print line
    print "  };"


# This routine is not used currently.
#
def print_sines():
    print "  static FT_Fixed  ah_sines[AG_HALF_PI + 1] ="
    print "  {"

    count = 0
    line  = "   "

    for n in range( ag_pi / 2 ):
        sinus = math.sin( n * math.pi / ag_pi )
        line  = line + " " + repr( int( 65536.0 * sinus ) ) + ","
        count = count + 1
        if ( count == 8 ):
            count = 0
            print line
            line = "   "

    if ( count > 0 ):
        print line
    print "   65536"
    print "  };"


print_arctan( 8 )
print


# END