SSBM Decomp
Loading...
Searching...
No Matches
vec.c File Reference
#include <dolphin.h>
#include <math.h>
#include <dolphin/mtx.h>

Macros

#define qr0   0

Functions

void C_VECAdd (Vec *a, Vec *b, Vec *c)
asm void PSVECAdd (register Vec *a, register Vec *b, register Vec *c)
void C_VECSubtract (Vec *a, Vec *b, Vec *c)
asm void PSVECSubtract (register Vec *a, register Vec *b, register Vec *c)
void C_VECScale (Vec *src, Vec *dst, f32 scale)
asm void PSVECScale (register Vec *src, register Vec *dst, register f32 mult)
void C_VECNormalize (Vec *src, Vec *unit)
void PSVECNormalize (register Vec *vec1, register Vec *dst)
f32 C_VECSquareMag (Vec *v)
asm f32 PSVECSquareMag (register Vec *vec1)
asm float PSVECMag (register Vec *v)
f32 C_VECMag (Vec *v)
f32 C_VECDotProduct (Vec *a, Vec *b)
asm f32 PSVECDotProduct (register Vec *vec1, register Vec *vec2)
void C_VECCrossProduct (Vec *a, Vec *b, Vec *axb)
asm void PSVECCrossProduct (register Vec *vec1, register Vec *vec2, register Vec *dst)
void VECHalfAngle (Vec *a, Vec *b, Vec *half)
void VECReflect (Vec *src, Vec *normal, Vec *dst)
f32 C_VECSquareDistance (Vec *a, Vec *b)
asm f32 PSVECSquareDistance (register Vec *vec1, register Vec *vec2)
f32 VECDistance (Vec *a, Vec *b)

Macro Definition Documentation

◆ qr0

#define qr0   0

Function Documentation

◆ C_VECAdd()

void C_VECAdd ( Vec * a,
Vec * b,
Vec * c )

◆ PSVECAdd()

asm void PSVECAdd ( register Vec * a,
register Vec * b,
register Vec * c )

◆ C_VECSubtract()

void C_VECSubtract ( Vec * a,
Vec * b,
Vec * c )

◆ PSVECSubtract()

asm void PSVECSubtract ( register Vec * a,
register Vec * b,
register Vec * c )

◆ C_VECScale()

void C_VECScale ( Vec * src,
Vec * dst,
f32 scale )

◆ PSVECScale()

asm void PSVECScale ( register Vec * src,
register Vec * dst,
register f32 mult )

◆ C_VECNormalize()

void C_VECNormalize ( Vec * src,
Vec * unit )

◆ PSVECNormalize()

void PSVECNormalize ( register Vec * vec1,
register Vec * dst )

◆ C_VECSquareMag()

f32 C_VECSquareMag ( Vec * v)

◆ PSVECSquareMag()

asm f32 PSVECSquareMag ( register Vec * vec1)

whoops! an extra blr is added by the compiler since 1 is added automatically.

◆ PSVECMag()

asm float PSVECMag ( register Vec * v)

◆ C_VECMag()

f32 C_VECMag ( Vec * v)

◆ C_VECDotProduct()

f32 C_VECDotProduct ( Vec * a,
Vec * b )

◆ PSVECDotProduct()

asm f32 PSVECDotProduct ( register Vec * vec1,
register Vec * vec2 )

◆ C_VECCrossProduct()

void C_VECCrossProduct ( Vec * a,
Vec * b,
Vec * axb )

◆ PSVECCrossProduct()

asm void PSVECCrossProduct ( register Vec * vec1,
register Vec * vec2,
register Vec * dst )

◆ VECHalfAngle()

void VECHalfAngle ( Vec * a,
Vec * b,
Vec * half )

◆ VECReflect()

void VECReflect ( Vec * src,
Vec * normal,
Vec * dst )

◆ C_VECSquareDistance()

f32 C_VECSquareDistance ( Vec * a,
Vec * b )

◆ PSVECSquareDistance()

asm f32 PSVECSquareDistance ( register Vec * vec1,
register Vec * vec2 )

◆ VECDistance()

f32 VECDistance ( Vec * a,
Vec * b )