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