FTEQW
Documentation of the FTE engine source tree.
mathlib.c File Reference

Functions

void PerpendicularVector (vec3_t dst, const vec3_t src)
 
void RotatePointAroundVector (vec3_t dst, const vec3_t dir, const vec3_t point, float degrees)
 
float anglemod (float a)
 
int VARGS BoxOnPlaneSide (const vec3_t emins, const vec3_t emaxs, const mplane_t *p)
 
void VectorVectors (const vec3_t forward, vec3_t right, vec3_t up)
 
void QDECL VectorAngles (const float *forward, const float *up, float *result, qboolean meshpitch)
 
void QDECL AngleVectors (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
 
void AngleVectorsMesh (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
 
int VectorCompare (const vec3_t v1, const vec3_t v2)
 
int Vector4Compare (const vec4_t v1, const vec4_t v2)
 
void CrossProduct (const vec3_t v1, const vec3_t v2, vec3_t cross)
 
vec_t Length (const vec3_t v)
 
float Q_rsqrt (float number)
 
float QDECL VectorNormalize (vec3_t v)
 
void VectorNormalizeFast (vec3_t v)
 
void VectorInverse (vec3_t v)
 
int Q_log2 (int val)
 
void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3])
 
void QDECL R_ConcatTransforms (const float in1[3][4], const float in2[3][4], float out[3][4])
 
void R_ConcatTransformsAxis (const float in1[3][3], const float in2[3][4], float out[3][4])
 
void R_ConcatRotationsPad (float in1[3][4], float in2[3][4], float out[3][4])
 
void Matrix3x4_Multiply (const float *a, const float *b, float *out)
 
void FloorDivMod (double numer, double denom, int *quotient, int *rem)
 
int GreatestCommonDivisor (int i1, int i2)
 
fixed16_t Invert24To16 (fixed16_t val)
 
void VectorTransform (const vec3_t in1, const matrix3x4 in2, vec3_t out)
 
void Bones_To_PosQuat4 (int numbones, const float *matrix, short *result)
 
void QDECL GenMatrixPosQuat4Scale (const vec3_t pos, const vec4_t quat, const vec3_t scale, float result[12])
 
void QuaternionSlerp (const vec4_t p, vec4_t q, float t, vec4_t qt)
 
float * Matrix4x4_CM_NewRotation (float a, float x, float y, float z)
 
float * Matrix4x4_CM_NewTranslation (float x, float y, float z)
 
void Matrix4_Multiply (const float *a, const float *b, float *out)
 
void Matrix3x4_RM_Transform3 (const float *matrix, const float *vector, float *product)
 
void Matrix3x4_RM_Transform3x3 (const float *matrix, const float *vector, float *product)
 
void Matrix4x4_CM_Transform4 (const float *matrix, const float *vector, float *product)
 
void Matrix4x4_CM_Transform3x3 (const float *matrix, const float *vector, float *product)
 
void Matrix4x4_CM_Transform3 (const float *matrix, const float *vector, float *product)
 
void Matrix4x4_CM_Transform34 (const float *matrix, const vec3_t vector, vec4_t product)
 
void Matrix4x4_CM_ModelViewMatrix (float *modelview, const vec3_t viewangles, const vec3_t vieworg)
 
void Matrix4x4_CM_CreateTranslate (float *out, float x, float y, float z)
 
void Matrix4x4_RM_CreateTranslate (float *out, float x, float y, float z)
 
void Matrix4x4_CM_LightMatrixFromAxis (float *modelview, const vec3_t px, const vec3_t py, const vec3_t pz, const vec3_t org)
 
void Matrix4x4_CM_ModelViewMatrixFromAxis (float *modelview, const vec3_t pn, const vec3_t right, const vec3_t up, const vec3_t vieworg)
 
void Matrix3x4_RM_FromAngles (const vec3_t angles, const vec3_t origin, float *out)
 
void Matrix3x4_RM_ToVectors (const float *in, float vx[3], float vy[3], float vz[3], float t[3])
 
void Matrix4x4_RM_FromVectors (float *out, const float vx[3], const float vy[3], const float vz[3], const float t[3])
 
void Matrix3x4_RM_FromVectors (float *out, const float vx[3], const float vy[3], const float vz[3], const float t[3])
 
void Matrix4x4_CM_ModelMatrixFromAxis (float *modelview, const vec3_t pn, const vec3_t right, const vec3_t up, const vec3_t vieworg)
 
void Matrix4x4_CM_ModelMatrix (float *modelview, vec_t x, vec_t y, vec_t z, vec_t pitch, vec_t yaw, vec_t roll, vec_t scale)
 
void Matrix4x4_Identity (float *outm)
 
void Matrix4x4_CM_Projection_Offset (float *proj, float fovl, float fovr, float fovd, float fovu, float neard, float fard, qboolean d3d)
 
void Matrix4x4_CM_Projection_Far (float *proj, float fovx, float fovy, float neard, float fard, qboolean d3d)
 
void Matrix4x4_CM_Projection_Inf (float *proj, float fovx, float fovy, float neard, qboolean d3d)
 
void Matrix4x4_CM_Projection2 (float *proj, float fovx, float fovy, float neard)
 
void Matrix4x4_CM_Orthographic (float *proj, float xmin, float xmax, float ymin, float ymax, float znear, float zfar)
 
void Matrix4x4_CM_OrthographicD3D (float *proj, float xmin, float xmax, float ymax, float ymin, float znear, float zfar)
 
qboolean Matrix4_Invert (const float *m, float *out)
 
void Matrix3x3_RM_Invert_Simple (const vec3_t in1[3], vec3_t out[3])
 
void Matrix3x4_Invert (const float *in1, float *out)
 
void QDECL Matrix3x4_Invert_Simple (const float *in1, float *out)
 
void Matrix3x4_InvertTo4x4_Simple (const float *in1, float *out)
 
void Matrix3x4_InvertTo3x3 (const float *in, float *result)
 
void Matrix4x4_CM_UnProject (const vec3_t in, vec3_t out, const vec3_t viewangles, const vec3_t vieworg, float fovx, float fovy)
 
qboolean Matrix4x4_CM_Project (const vec3_t in, vec3_t out, const vec3_t viewangles, const vec3_t vieworg, float fovx, float fovy)
 
void Matrix3_Multiply (vec3_t *in1, vec3_t *in2, vec3_t *out)
 
vec_t QDECL VectorNormalize2 (const vec3_t v, vec3_t out)
 
float ColorNormalize (const vec3_t in, vec3_t out)
 
void MakeNormalVectors (const vec3_t forward, vec3_t right, vec3_t up)
 

Variables

vec3_t vec3_origin = {0,0,0}
 

Function Documentation

◆ anglemod()

float anglemod ( float  a)

◆ AngleVectors()

void QDECL AngleVectors ( const vec3_t  angles,
vec3_t  forward,
vec3_t  right,
vec3_t  up 
)

◆ AngleVectorsMesh()

void AngleVectorsMesh ( const vec3_t  angles,
vec3_t  forward,
vec3_t  right,
vec3_t  up 
)

◆ Bones_To_PosQuat4()

void Bones_To_PosQuat4 ( int  numbones,
const float *  matrix,
short *  result 
)

◆ BoxOnPlaneSide()

int VARGS BoxOnPlaneSide ( const vec3_t  emins,
const vec3_t  emaxs,
const mplane_t p 
)

◆ ColorNormalize()

float ColorNormalize ( const vec3_t  in,
vec3_t  out 
)

◆ CrossProduct()

void CrossProduct ( const vec3_t  v1,
const vec3_t  v2,
vec3_t  cross 
)

◆ FloorDivMod()

void FloorDivMod ( double  numer,
double  denom,
int quotient,
int rem 
)

◆ GenMatrixPosQuat4Scale()

void QDECL GenMatrixPosQuat4Scale ( const vec3_t  pos,
const vec4_t  quat,
const vec3_t  scale,
float  result[12] 
)

◆ GreatestCommonDivisor()

int GreatestCommonDivisor ( int  i1,
int  i2 
)

◆ Invert24To16()

fixed16_t Invert24To16 ( fixed16_t  val)

◆ Length()

vec_t Length ( const vec3_t  v)

◆ MakeNormalVectors()

void MakeNormalVectors ( const vec3_t  forward,
vec3_t  right,
vec3_t  up 
)

◆ Matrix3_Multiply()

void Matrix3_Multiply ( vec3_t in1,
vec3_t in2,
vec3_t out 
)

◆ Matrix3x3_RM_Invert_Simple()

void Matrix3x3_RM_Invert_Simple ( const vec3_t  in1[3],
vec3_t  out[3] 
)

◆ Matrix3x4_Invert()

void Matrix3x4_Invert ( const float *  in1,
float *  out 
)

◆ Matrix3x4_Invert_Simple()

void QDECL Matrix3x4_Invert_Simple ( const float *  in1,
float *  out 
)

◆ Matrix3x4_InvertTo3x3()

void Matrix3x4_InvertTo3x3 ( const float *  in,
float *  result 
)

◆ Matrix3x4_InvertTo4x4_Simple()

void Matrix3x4_InvertTo4x4_Simple ( const float *  in1,
float *  out 
)

◆ Matrix3x4_Multiply()

void Matrix3x4_Multiply ( const float *  a,
const float *  b,
float *  out 
)

◆ Matrix3x4_RM_FromAngles()

void Matrix3x4_RM_FromAngles ( const vec3_t  angles,
const vec3_t  origin,
float *  out 
)

◆ Matrix3x4_RM_FromVectors()

void Matrix3x4_RM_FromVectors ( float *  out,
const float  vx[3],
const float  vy[3],
const float  vz[3],
const float  t[3] 
)

◆ Matrix3x4_RM_ToVectors()

void Matrix3x4_RM_ToVectors ( const float *  in,
float  vx[3],
float  vy[3],
float  vz[3],
float  t[3] 
)

◆ Matrix3x4_RM_Transform3()

void Matrix3x4_RM_Transform3 ( const float *  matrix,
const float *  vector,
float *  product 
)

◆ Matrix3x4_RM_Transform3x3()

void Matrix3x4_RM_Transform3x3 ( const float *  matrix,
const float *  vector,
float *  product 
)

◆ Matrix4_Invert()

qboolean Matrix4_Invert ( const float *  m,
float *  out 
)

◆ Matrix4_Multiply()

void Matrix4_Multiply ( const float *  a,
const float *  b,
float *  out 
)

◆ Matrix4x4_CM_CreateTranslate()

void Matrix4x4_CM_CreateTranslate ( float *  out,
float  x,
float  y,
float  z 
)

◆ Matrix4x4_CM_LightMatrixFromAxis()

void Matrix4x4_CM_LightMatrixFromAxis ( float *  modelview,
const vec3_t  px,
const vec3_t  py,
const vec3_t  pz,
const vec3_t  org 
)

◆ Matrix4x4_CM_ModelMatrix()

void Matrix4x4_CM_ModelMatrix ( float *  modelview,
vec_t  x,
vec_t  y,
vec_t  z,
vec_t  pitch,
vec_t  yaw,
vec_t  roll,
vec_t  scale 
)

◆ Matrix4x4_CM_ModelMatrixFromAxis()

void Matrix4x4_CM_ModelMatrixFromAxis ( float *  modelview,
const vec3_t  pn,
const vec3_t  right,
const vec3_t  up,
const vec3_t  vieworg 
)

◆ Matrix4x4_CM_ModelViewMatrix()

void Matrix4x4_CM_ModelViewMatrix ( float *  modelview,
const vec3_t  viewangles,
const vec3_t  vieworg 
)

◆ Matrix4x4_CM_ModelViewMatrixFromAxis()

void Matrix4x4_CM_ModelViewMatrixFromAxis ( float *  modelview,
const vec3_t  pn,
const vec3_t  right,
const vec3_t  up,
const vec3_t  vieworg 
)

◆ Matrix4x4_CM_NewRotation()

float * Matrix4x4_CM_NewRotation ( float  a,
float  x,
float  y,
float  z 
)

◆ Matrix4x4_CM_NewTranslation()

float * Matrix4x4_CM_NewTranslation ( float  x,
float  y,
float  z 
)

◆ Matrix4x4_CM_Orthographic()

void Matrix4x4_CM_Orthographic ( float *  proj,
float  xmin,
float  xmax,
float  ymin,
float  ymax,
float  znear,
float  zfar 
)

◆ Matrix4x4_CM_OrthographicD3D()

void Matrix4x4_CM_OrthographicD3D ( float *  proj,
float  xmin,
float  xmax,
float  ymax,
float  ymin,
float  znear,
float  zfar 
)

◆ Matrix4x4_CM_Project()

qboolean Matrix4x4_CM_Project ( const vec3_t  in,
vec3_t  out,
const vec3_t  viewangles,
const vec3_t  vieworg,
float  fovx,
float  fovy 
)

◆ Matrix4x4_CM_Projection2()

void Matrix4x4_CM_Projection2 ( float *  proj,
float  fovx,
float  fovy,
float  neard 
)

◆ Matrix4x4_CM_Projection_Far()

void Matrix4x4_CM_Projection_Far ( float *  proj,
float  fovx,
float  fovy,
float  neard,
float  fard,
qboolean  d3d 
)

◆ Matrix4x4_CM_Projection_Inf()

void Matrix4x4_CM_Projection_Inf ( float *  proj,
float  fovx,
float  fovy,
float  neard,
qboolean  d3d 
)

◆ Matrix4x4_CM_Projection_Offset()

void Matrix4x4_CM_Projection_Offset ( float *  proj,
float  fovl,
float  fovr,
float  fovd,
float  fovu,
float  neard,
float  fard,
qboolean  d3d 
)

◆ Matrix4x4_CM_Transform3()

void Matrix4x4_CM_Transform3 ( const float *  matrix,
const float *  vector,
float *  product 
)

◆ Matrix4x4_CM_Transform34()

void Matrix4x4_CM_Transform34 ( const float *  matrix,
const vec3_t  vector,
vec4_t  product 
)

◆ Matrix4x4_CM_Transform3x3()

void Matrix4x4_CM_Transform3x3 ( const float *  matrix,
const float *  vector,
float *  product 
)

◆ Matrix4x4_CM_Transform4()

void Matrix4x4_CM_Transform4 ( const float *  matrix,
const float *  vector,
float *  product 
)

◆ Matrix4x4_CM_UnProject()

void Matrix4x4_CM_UnProject ( const vec3_t  in,
vec3_t  out,
const vec3_t  viewangles,
const vec3_t  vieworg,
float  fovx,
float  fovy 
)

◆ Matrix4x4_Identity()

void Matrix4x4_Identity ( float *  outm)

◆ Matrix4x4_RM_CreateTranslate()

void Matrix4x4_RM_CreateTranslate ( float *  out,
float  x,
float  y,
float  z 
)

◆ Matrix4x4_RM_FromVectors()

void Matrix4x4_RM_FromVectors ( float *  out,
const float  vx[3],
const float  vy[3],
const float  vz[3],
const float  t[3] 
)

◆ PerpendicularVector()

void PerpendicularVector ( vec3_t  dst,
const vec3_t  src 
)

◆ Q_log2()

int Q_log2 ( int  val)

◆ Q_rsqrt()

float Q_rsqrt ( float  number)

◆ QuaternionSlerp()

void QuaternionSlerp ( const vec4_t  p,
vec4_t  q,
float  t,
vec4_t  qt 
)

◆ R_ConcatRotations()

void R_ConcatRotations ( float  in1[3][3],
float  in2[3][3],
float  out[3][3] 
)

◆ R_ConcatRotationsPad()

void R_ConcatRotationsPad ( float  in1[3][4],
float  in2[3][4],
float  out[3][4] 
)

◆ R_ConcatTransforms()

void QDECL R_ConcatTransforms ( const float  in1[3][4],
const float  in2[3][4],
float  out[3][4] 
)

◆ R_ConcatTransformsAxis()

void R_ConcatTransformsAxis ( const float  in1[3][3],
const float  in2[3][4],
float  out[3][4] 
)

◆ RotatePointAroundVector()

void RotatePointAroundVector ( vec3_t  dst,
const vec3_t  dir,
const vec3_t  point,
float  degrees 
)

◆ Vector4Compare()

int Vector4Compare ( const vec4_t  v1,
const vec4_t  v2 
)

◆ VectorAngles()

void QDECL VectorAngles ( const float *  forward,
const float *  up,
float *  result,
qboolean  meshpitch 
)

◆ VectorCompare()

int VectorCompare ( const vec3_t  v1,
const vec3_t  v2 
)

◆ VectorInverse()

void VectorInverse ( vec3_t  v)

◆ VectorNormalize()

float QDECL VectorNormalize ( vec3_t  v)

◆ VectorNormalize2()

vec_t QDECL VectorNormalize2 ( const vec3_t  v,
vec3_t  out 
)

◆ VectorNormalizeFast()

void VectorNormalizeFast ( vec3_t  v)

◆ VectorTransform()

void VectorTransform ( const vec3_t  in1,
const matrix3x4  in2,
vec3_t  out 
)

◆ VectorVectors()

void VectorVectors ( const vec3_t  forward,
vec3_t  right,
vec3_t  up 
)

Variable Documentation

◆ vec3_origin

vec3_t vec3_origin = {0,0,0}