skia / third_party / freetype2 / b10aaea5a5085bff0a873e8f8969d44251596ef9 / . / src / autohint / mather.py

#!/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 ) | |

# END |