SSBM Decomp
Loading...
Searching...
No Matches
lbvector.c File Reference
#include <platform.h>
#include "lb/lbvector.h"
#include "lb/lbrefract.h"
#include <math.h>
#include <math_ppc.h>
#include <dolphin/gx/GXTransform.h>
#include <dolphin/mtx.h>
#include <dolphin/mtx/vec.h>
#include <baselib/cobj.h>
#include <baselib/debug.h>

Functions

static float lbVector_Len (Vec3 *vec)
 
static float lbVector_Len_xy (Vec3 *vec)
 
float lbVector_Normalize (Vec3 *vec)
 
float lbVector_NormalizeXY (Vec3 *a)
 
Vec3lbVector_Add (Vec3 *a, Vec3 *b)
 
Vec3lbVector_Add_xy (Vec3 *a, Vec3 *b)
 
Vec3lbVector_Sub (Vec3 *a, Vec3 *b)
 
Vec3lbVector_Diff (Vec3 *a, Vec3 *b, Vec3 *result)
 
Vec3lbVector_CrossprodNormalized (Vec3 *a, Vec3 *b, Vec3 *result)
 
float lbVector_Angle (Vec3 *a, Vec3 *b)
 
float lbVector_AngleXY (Vec3 *a, Vec3 *b)
 
static float sin (float angle)
 
static float cos (float angle)
 
void lbVector_RotateAboutUnitAxis (Vec3 *v, Vec3 *axis, float angle)
 
void lbVector_Rotate (Vec3 *v, int axis, float angle)
 
float dummy (void)
 
void lbVector_Mirror (Vec3 *a, Vec3 *unit_mirror_axis)
 
float lbVector_CosAngle (Vec3 *a, Vec3 *b)
 
Vec3lbVector_Lerp (Vec3 *a, Vec3 *b, Vec3 *result, float f)
 
Vec3lbVector_8000DE38 (Mtx m, Vec3 *v, float c)
 
Vec3lbVector_EulerAnglesFromONB (Vec3 *result_angles, Vec3 *a, Vec3 *b, Vec3 *c)
 
Vec3lbVector_EulerAnglesFromPartialONB (Vec3 *result_angles, Vec3 *a, Vec3 *c)
 
Vec3lbVector_ApplyEulerRotation (Vec3 *v, Vec3 *angles)
 
float lbVector_sqrtf_accurate (float x)
 
Vec3lbVector_WorldToScreen (HSD_CObj *cobj, const Vec3 *pos3d, Vec3 *screenCoords, int d)
 
void lbVector_CreateEulerMatrix (Mtx m, Vec3 *angles)
 
float lbVector_8000E838 (Vec3 *a, Vec3 *b, Vec3 *c, Vec3 *d)
 

Function Documentation

◆ lbVector_Len()

static float lbVector_Len ( Vec3 vec)
static

◆ lbVector_Len_xy()

static float lbVector_Len_xy ( Vec3 vec)
static

◆ lbVector_Normalize()

float lbVector_Normalize ( Vec3 vec)

◆ lbVector_NormalizeXY()

float lbVector_NormalizeXY ( Vec3 a)

◆ lbVector_Add()

Vec3 * lbVector_Add ( Vec3 a,
Vec3 b 
)

◆ lbVector_Add_xy()

Vec3 * lbVector_Add_xy ( Vec3 a,
Vec3 b 
)

◆ lbVector_Sub()

Vec3 * lbVector_Sub ( Vec3 a,
Vec3 b 
)

◆ lbVector_Diff()

Vec3 * lbVector_Diff ( Vec3 a,
Vec3 b,
Vec3 result 
)

◆ lbVector_CrossprodNormalized()

Vec3 * lbVector_CrossprodNormalized ( Vec3 a,
Vec3 b,
Vec3 result 
)

◆ lbVector_Angle()

float lbVector_Angle ( Vec3 a,
Vec3 b 
)

◆ lbVector_AngleXY()

float lbVector_AngleXY ( Vec3 a,
Vec3 b 
)

◆ sin()

static float sin ( float  angle)
static

◆ cos()

static float cos ( float  angle)
static

◆ lbVector_RotateAboutUnitAxis()

void lbVector_RotateAboutUnitAxis ( Vec3 v,
Vec3 axis,
float  angle 
)

◆ lbVector_Rotate()

void lbVector_Rotate ( Vec3 v,
int  axis,
float  angle 
)

◆ dummy()

float dummy ( void  )

◆ lbVector_Mirror()

void lbVector_Mirror ( Vec3 a,
Vec3 unit_mirror_axis 
)

◆ lbVector_CosAngle()

float lbVector_CosAngle ( Vec3 a,
Vec3 b 
)

◆ lbVector_Lerp()

Vec3 * lbVector_Lerp ( Vec3 a,
Vec3 b,
Vec3 result,
float  f 
)

◆ lbVector_8000DE38()

Vec3 * lbVector_8000DE38 ( Mtx  m,
Vec3 v,
float  c 
)

◆ lbVector_EulerAnglesFromONB()

Vec3 * lbVector_EulerAnglesFromONB ( Vec3 result_angles,
Vec3 a,
Vec3 b,
Vec3 c 
)

◆ lbVector_EulerAnglesFromPartialONB()

Vec3 * lbVector_EulerAnglesFromPartialONB ( Vec3 result_angles,
Vec3 a,
Vec3 c 
)

◆ lbVector_ApplyEulerRotation()

Vec3 * lbVector_ApplyEulerRotation ( Vec3 v,
Vec3 angles 
)

◆ lbVector_sqrtf_accurate()

float lbVector_sqrtf_accurate ( float  x)

◆ lbVector_WorldToScreen()

Vec3 * lbVector_WorldToScreen ( HSD_CObj cobj,
const Vec3 pos3d,
Vec3 screenCoords,
int  d 
)

◆ lbVector_CreateEulerMatrix()

void lbVector_CreateEulerMatrix ( Mtx  m,
Vec3 angles 
)

◆ lbVector_8000E838()

float lbVector_8000E838 ( Vec3 a,
Vec3 b,
Vec3 c,
Vec3 d 
)