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 <Runtime/platform.h>
5
6#include <stdlib.h>
7
8#include <dolphin/gx.h>
9#include <dolphin/mtx.h>
11
13void HSD_MulColor(GXColor* arg0, GXColor* arg1, GXColor* dest);
16
18extern Mtx HSD_identityMtx;
19
20#define FLT_MIN 1.17549435e-38f
21
22#define DEG_TO_RAD 0.017453292519943295
23#define RAD_TO_DEG 57.29577951308232
24
25static inline int vec_normalize_check(Vec3* src, Vec3* dst)
26{
27 if (!src || !dst) {
28 return -1;
29 }
30 if (fabsf_bitwise(src->x) <= FLT_MIN && fabsf_bitwise(src->y) <= FLT_MIN &&
32 {
33 return -1;
34 }
35 PSVECNormalize(src, dst);
36 return 0;
37}
38
39static inline f32 atan2f_check(s8 y, s8 x)
40{
41 if (abs(x) == 0.0) {
42 return y >= 0 ? 1.5707963267948966 : -1.5707963267948966;
43 } else {
44 return atan2f(y, x);
45 }
46}
47
48#endif // _UTIL_H_
const void * src
Definition __os.h:108
#define abs(x)
Definition ftmariospecialhi.c:70
float atan2f(float y, float x)
Definition lbtrigf.c:22
void PSVECNormalize(Vec *vec1, Vec *dst)
struct Vec Vec3
f32 Mtx[3][4]
Definition mtx.h:50
signed int s32
Definition types.h:12
unsigned int u32
Definition types.h:13
signed char s8
Definition types.h:4
float f32
Definition types.h:18
int y
Definition types.h:1
int x
Definition types.h:0
static f32 fabsf_bitwise(f32 v)
Definition mtx.h:38
Definition GXStruct.h:27
Mtx HSD_identityMtx
variables
Definition util.c:6
s32 HSD_Index2PosNrmMtx(u32 arg0)
Definition util.c:31
static int vec_normalize_check(Vec3 *src, Vec3 *dst)
Definition util.h:25
void HSD_MulColor(GXColor *arg0, GXColor *arg1, GXColor *dest)
functions
Definition util.c:10
#define FLT_MIN
Definition util.h:20
static f32 atan2f_check(s8 y, s8 x)
Definition util.h:39
u32 HSD_GetNbBits(u32 arg0)
Definition util.c:18