SSBM Decomp
Loading...
Searching...
No Matches
util.h
Go to the documentation of this file.
1#ifndef _UTIL_H_
2#define _UTIL_H_
3
4#include <platform.h>
5
6#include <trigf.h>
7#include <dolphin/gx.h>
8#include <dolphin/mtx.h>
10
12void HSD_MulColor(GXColor* arg0, GXColor* arg1, GXColor* dest);
15
17extern Mtx HSD_identityMtx;
18
19#define FLT_MIN 1.17549435e-38f
20
21#define DEG_TO_RAD 0.017453292519943295
22#define RAD_TO_DEG 57.29577951308232
23
24static inline int vec_normalize_check(Vec3* src, Vec3* dst)
25{
26 if (!src || !dst) {
27 return -1;
28 }
29 if (fabsf_bitwise(src->x) <= FLT_MIN && fabsf_bitwise(src->y) <= FLT_MIN &&
30 fabsf_bitwise(src->z) <= FLT_MIN)
31 {
32 return -1;
33 }
34 PSVECNormalize(src, dst);
35 return 0;
36}
37
38static inline f32 atan2f_check(s8 y, s8 x)
39{
40 if (fabs(x) == 0.0) {
41 return y >= 0 ? 1.5707963267948966 : -1.5707963267948966;
42 } else {
43 return atan2f(y, x);
44 }
45}
46
47#endif // _UTIL_H_
void PSVECNormalize(Vec *vec1, Vec *dst)
struct Vec Vec3
f32 Mtx[3][4]
Definition mtx.h:50
unsigned long u32
Definition types.h:9
float f32
Definition types.h:13
float atan2f(float, float)
Definition lbtrigf.c:17
signed char s8
Definition hsd_3B2B.h:3
signed long s32
Definition hsd_3B2B.h:1
static double fabs(double f)
Definition math.h:89
static f32 fabsf_bitwise(f32 v)
Definition mtx.h:38
Definition GXStruct.h:29
f32 z
Definition mtx.h:15
f32 x
Definition mtx.h:15
f32 y
Definition mtx.h:15
Mtx HSD_identityMtx
variables
Definition util.c:7
s32 HSD_Index2PosNrmMtx(u32 arg0)
Definition util.c:32
static int vec_normalize_check(Vec3 *src, Vec3 *dst)
Definition util.h:24
void HSD_MulColor(GXColor *arg0, GXColor *arg1, GXColor *dest)
functions
Definition util.c:11
#define FLT_MIN
Definition util.h:19
static f32 atan2f_check(s8 y, s8 x)
Definition util.h:38
u32 HSD_GetNbBits(u32 arg0)
Definition util.c:19