1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* fttrigon.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* FreeType trigonometric functions (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease/* Copyright 2001, 2003, 2005, 2007, 2013 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTTRIGON_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTTRIGON_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!" 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files" 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first." 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* computations */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @type: 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Angle 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This type is used to model angle values in FreeType. Note that the 49727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * angle is a 16.16 fixed-point value expressed in degrees. 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Fixed FT_Angle; 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @macro: 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_ANGLE_PI 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The angle pi expressed in @FT_Angle units. 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ANGLE_PI ( 180L << 16 ) 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @macro: 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_ANGLE_2PI 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The angle 2*pi expressed in @FT_Angle units. 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ANGLE_2PI ( FT_ANGLE_PI * 2 ) 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @macro: 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_ANGLE_PI2 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The angle pi/2 expressed in @FT_Angle units. 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ANGLE_PI2 ( FT_ANGLE_PI / 2 ) 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @macro: 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_ANGLE_PI4 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The angle pi/4 expressed in @FT_Angle units. 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ANGLE_PI4 ( FT_ANGLE_PI / 4 ) 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Sin 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 109727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * Return the sinus of a given angle in fixed-point format. 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The input angle. 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The sinus value. 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * If you need both the sinus and cosinus for a given angle, use the 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * function @FT_Vector_Unit. 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Fixed ) 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Sin( FT_Angle angle ); 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Cos 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 133727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * Return the cosinus of a given angle in fixed-point format. 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The input angle. 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The cosinus value. 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * If you need both the sinus and cosinus for a given angle, use the 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * function @FT_Vector_Unit. 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Fixed ) 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Cos( FT_Angle angle ); 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Tan 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 157727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease * Return the tangent of a given angle in fixed-point format. 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The input angle. 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The tangent value. 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Fixed ) 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Tan( FT_Angle angle ); 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Atan2 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return the arc-tangent corresponding to a given vector (x,y) in 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * the 2d plane. 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * x :: 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The horizontal vector coordinate. 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * y :: 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The vertical vector coordinate. 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The arc-tangent value (i.e. angle). 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Angle ) 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Atan2( FT_Fixed x, 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed y ); 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Angle_Diff 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return the difference between two angles. The result is always 203049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * constrained to the ]-PI..PI] interval. 204049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 205049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 206049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle1 :: 207049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * First angle. 208049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle2 :: 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Second angle. 211049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 213049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Constrained value of `value2-value1'. 214049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Angle ) 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Angle_Diff( FT_Angle angle1, 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Angle angle2 ); 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Vector_Unit 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return the unit vector corresponding to a given angle. After the 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * call, the value of `vec.x' will be `sin(angle)', and the value of 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `vec.y' will be `cos(angle)'. 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This function is useful to retrieve both the sinus and cosinus of a 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * given angle quickly. 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vec :: 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of target vector. 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of angle. 241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector_Unit( FT_Vector* vec, 245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Angle angle ); 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Vector_Rotate 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Rotate a vector by a given angle. 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @inout: 257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vec :: 258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of target vector. 259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of angle. 263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 266049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector_Rotate( FT_Vector* vec, 267049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Angle angle ); 268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 273049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Vector_Length 274049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return the length of a given vector. 277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vec :: 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of target vector. 281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The vector length, expressed in the same units that the original 284049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vector coordinates. 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Fixed ) 288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector_Length( FT_Vector* vec ); 289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 293049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 294049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Vector_Polarize 295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Compute both the length and angle of a given vector. 298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 300049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vec :: 301049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of source vector. 302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * length :: 305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The vector length. 306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The vector angle. 309049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 310049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 311049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector_Polarize( FT_Vector* vec, 313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed *length, 314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Angle *angle ); 315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /************************************************************************* 318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Vector_From_Polar 321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Compute vector coordinates from a length and angle. 324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 325049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 326049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * vec :: 327049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The address of source vector. 328049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 329049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * length :: 331049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The vector length. 332049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 333049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * angle :: 334049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The vector angle. 335049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( void ) 338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector_From_Polar( FT_Vector* vec, 339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed length, 340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Angle angle ); 341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTTRIGON_H__ */ 348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 351