Alpha Engine: AEVec2.h Source File

AlphaEngine

AEVec2.h
Go to the documentation of this file.
1 /******************************************************************************/
15 /******************************************************************************/
16 
17 #ifndef AE_VEC2_H
18 #define AE_VEC2_H
19 
20 #include "AEExport.h"
21 #include "AETypes.h"
22 
23 // ---------------------------------------------------------------------------
24 
25 //AE_API typedef struct AEVec2
26 typedef struct AEVec2
27 {
28  f32 x, y;
29 }AEVec2;
30 
31 // ---------------------------------------------------------------------------
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #endif
36 
37 //For testing? Function purpose unclear
38 AE_API s32 AEVec2Test (s32 i1, s32 i2);
39 
40 /******************************************************************************/
52 /******************************************************************************/
53 AE_API void AEVec2Zero (AEVec2* pResult);
54 
55 /******************************************************************************/
75 /******************************************************************************/
76 AE_API void AEVec2Set (AEVec2* pResult, f32 x, f32 y);
77 
78 /******************************************************************************/
94 /******************************************************************************/
95 AE_API void AEVec2Neg (AEVec2* pResult, AEVec2* pVec0);
96 
97 /******************************************************************************/
117 /******************************************************************************/
118 AE_API void AEVec2Add (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1);
119 
120 /******************************************************************************/
140 /******************************************************************************/
141 AE_API void AEVec2Sub (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1);
142 
143 /******************************************************************************/
159 /******************************************************************************/
160 AE_API void AEVec2Normalize (AEVec2* pResult, AEVec2* pVec0);
161 
162 /******************************************************************************/
182 /******************************************************************************/
183 AE_API void AEVec2Scale (AEVec2* pResult, AEVec2* pVec0, f32 s);
184 
185 /******************************************************************************/
211 /******************************************************************************/
212 AE_API void AEVec2ScaleAdd (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1, f32 s);
213 
214 /******************************************************************************/
240 /******************************************************************************/
241 AE_API void AEVec2ScaleSub (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1, f32 s);
242 
243 /******************************************************************************/
263 /******************************************************************************/
264 AE_API void AEVec2Project (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1);
265 
266 /******************************************************************************/
287 /******************************************************************************/
288 AE_API void AEVec2ProjectPerp (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1);
289 
290 /******************************************************************************/
319 /******************************************************************************/
320 AE_API void AEVec2Lerp (AEVec2* pResult, AEVec2* pVec0, AEVec2* pVec1, f32 t);
321 
322 /******************************************************************************/
334 /******************************************************************************/
335 AE_API f32 AEVec2Length (AEVec2* pVec0);
336 
337 /******************************************************************************/
349 /******************************************************************************/
351 
352 /******************************************************************************/
368 /******************************************************************************/
369 AE_API f32 AEVec2Distance (AEVec2* pVec0, AEVec2* pVec1);
370 
371 /******************************************************************************/
387 /******************************************************************************/
388 AE_API f32 AEVec2SquareDistance (AEVec2* pVec0, AEVec2* pVec1);
389 
390 /******************************************************************************/
406 /******************************************************************************/
407 AE_API f32 AEVec2DotProduct (AEVec2* pVec0, AEVec2* pVec1);
408 
409 /******************************************************************************/
426 /******************************************************************************/
427 AE_API f32 AEVec2CrossProductMag (AEVec2* pVec0, AEVec2* pVec1);
428 
429 /******************************************************************************/
445 /******************************************************************************/
446 AE_API void AEVec2FromAngle (AEVec2* pResult, f32 angle);
447 
448 #ifdef __cplusplus
449 }
450 #endif
451 
452 // ---------------------------------------------------------------------------
453 
454 #endif // VEC2_H
float f32
Definition: AETypes.h:31
void AEVec2Normalize(AEVec2 *pResult, AEVec2 *pVec0)
Set pResult to the normalized of pVec0.
f32 AEVec2DotProduct(AEVec2 *pVec0, AEVec2 *pVec1)
Calculate the dot product of 2 vectors.
void AEVec2ProjectPerp(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1)
Set pResult to the perpendicular projection (rejection) of pVec0 onto pVec1.
Definition: AEVec2.h:26
void AEVec2Lerp(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1, f32 t)
Set pResult to the linear interpolation between pVec0 and pVec1 at time interval t.
void AEVec2Neg(AEVec2 *pResult, AEVec2 *pVec0)
Set pResult to the negative of pVec0.
f32 y
Definition: AEVec2.h:28
f32 AEVec2SquareLength(AEVec2 *pVec0)
Calculate the squared length of pVec0.
void AEVec2Scale(AEVec2 *pResult, AEVec2 *pVec0, f32 s)
Set pResult to (pVec0 * s).
f32 AEVec2Distance(AEVec2 *pVec0, AEVec2 *pVec1)
Calculate the distance between 2 points.
f32 x
Definition: AEVec2.h:28
struct AEVec2 AEVec2
void AEVec2ScaleSub(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1, f32 s)
Set pResult to ((pVec0 - pVec1) * s).
void AEVec2Sub(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1)
Set pResult to (pVec0 - pVec1).
f32 AEVec2CrossProductMag(AEVec2 *pVec0, AEVec2 *pVec1)
Calculate the magnitude of the cross product of 2 vectors.
void AEVec2Add(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1)
Set pResult to (pVec0 + pVec1).
Header file for the library settings.
signed int s32
Definition: AETypes.h:27
Header file for the typedefs.
#define AE_API
Definition: AEExport.h:53
f32 AEVec2SquareDistance(AEVec2 *pVec0, AEVec2 *pVec1)
Calculate the squared distance between 2 points.
void AEVec2ScaleAdd(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1, f32 s)
Set pResult to ((pVec0 + pVec1) * s).
void AEVec2Project(AEVec2 *pResult, AEVec2 *pVec0, AEVec2 *pVec1)
Set pResult to the projection of pVec1 onto pVec0.
s32 AEVec2Test(s32 i1, s32 i2)
void AEVec2Set(AEVec2 *pResult, f32 x, f32 y)
Set pResult to (x, y).
void AEVec2Zero(AEVec2 *pResult)
Set pResult to zero.
f32 AEVec2Length(AEVec2 *pVec0)
Calculate the length of pVec0.
void AEVec2FromAngle(AEVec2 *pResult, f32 angle)
Set pResult to unit vector of angle.
Generated on Sat Jan 4 2014 02:06:22 for Alpha Engine by   doxygen 1.8.5