mirror of https://github.com/zeldaret/mm.git
				
				
				
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
| #ifndef Z64OLIB_H
 | |
| #define Z64OLIB_H
 | |
| 
 | |
| #include "ultra64.h"
 | |
| 
 | |
| #include "z64math.h"
 | |
| 
 | |
| // To be used with OLib_Vec3fAdd()
 | |
| typedef enum {
 | |
|     /* 0 */ OLIB_ADD_COPY, // Copy `b` to dest
 | |
|     /* 1 */ OLIB_ADD_OFFSET, // Add `a` and `b` to dest, and also add the yaw of `a` to the dest
 | |
|     /* 2 */ OLIB_ADD // Add `a` and `b` to dest
 | |
| } OlibVec3fAdd;
 | |
| 
 | |
| typedef enum {
 | |
|     /* 0 */ OLIB_DIFF_COPY, // Copy `b` to dest
 | |
|     /* 1 */ OLIB_DIFF_OFFSET, // Sub `a` and `b` to dest, and also subs the yaw of `a` to the dest
 | |
|     /* 2 */ OLIB_DIFF // Sub `a` and `b` to dest
 | |
| } OlibVec3fDiff;
 | |
| 
 | |
| f32 OLib_Vec3fDist(Vec3f* a, Vec3f* b);
 | |
| f32 OLib_Vec3fDistOutDiff(Vec3f* a, Vec3f* b, Vec3f* dest);
 | |
| f32 OLib_Vec3fDistXZ(Vec3f* a, Vec3f* b);
 | |
| f32 OLib_ClampMinDist(f32 val, f32 min);
 | |
| f32 OLib_ClampMaxDist(f32 val, f32 max);
 | |
| Vec3f OLib_Vec3fDistNormalize(Vec3f* a, Vec3f* b);
 | |
| Vec3f OLib_VecSphToVec3f(VecSph* sph);
 | |
| Vec3f OLib_VecGeoToVec3f(VecGeo* geo);
 | |
| VecSph OLib_Vec3fToVecSph(Vec3f* vec);
 | |
| VecGeo OLib_Vec3fToVecGeo(Vec3f* vec);
 | |
| VecSph OLib_Vec3fDiffToVecSph(Vec3f* a, Vec3f* b);
 | |
| VecGeo OLib_Vec3fDiffToVecGeo(Vec3f* a, Vec3f* b);
 | |
| Vec3f OLib_AddVecGeoToVec3f(Vec3f* a, VecGeo* geo);
 | |
| Vec3f OLib_Vec3fDiffRad(Vec3f* a, Vec3f* b);
 | |
| Vec3f OLib_Vec3fDiffDegF(Vec3f* a, Vec3f* b);
 | |
| Vec3s OLib_Vec3fDiffBinAng(Vec3f* a, Vec3f* b);
 | |
| void OLib_Vec3fDiff(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
 | |
| void OLib_Vec3fAdd(PosRot* a, Vec3f* b, Vec3f* dest, s16 mode);
 | |
| 
 | |
| #endif
 |