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

Go to the source code of this file.

Classes

struct  matrix4x4_t
 

Typedefs

typedef float vec_t
 
typedef vec_t vec2_t[2]
 
typedef vec_t vec3_t[3]
 
typedef vec_t vec4_t[4]
 
typedef vec_t vec5_t[5]
 
typedef int ivec_t
 
typedef ivec_t ivec2_t[2]
 
typedef ivec_t ivec3_t[3]
 
typedef ivec_t ivec4_t[4]
 
typedef ivec_t ivec5_t[5]
 
typedef int fixed4_t
 
typedef int fixed8_t
 
typedef int fixed16_t
 
typedef float matrix3x4[3][4]
 
typedef float matrix3x3[3][3]
 

Functions

typedef FTE_ALIGN (16) vec3_t avec3_t
 
typedef FTE_ALIGN (4) qbyte byte_vec4_t[4]
 
void AddPointToBounds (const vec3_t v, vec3_t mins, vec3_t maxs)
 
float anglemod (float a)
 
void QDECL AngleVectors (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
 
void QDECL AngleVectorsMesh (const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
 
void QDECL VectorAngles (const float *forward, const float *up, float *angles, qboolean meshpitch)
 
void VARGS BOPS_Error (void)
 
int VARGS BoxOnPlaneSide (const vec3_t emins, const vec3_t emaxs, const struct mplane_s *plane)
 
void ClearBounds (vec3_t mins, vec3_t maxs)
 
float ColorNormalize (const vec3_t in, vec3_t out)
 
void CrossProduct (const vec3_t v1, const vec3_t v2, vec3_t cross)
 
void FloorDivMod (double numer, double denom, int *quotient, int *rem)
 
int GreatestCommonDivisor (int i1, int i2)
 
fixed16_t Invert24To16 (fixed16_t val)
 
vec_t Length (const vec3_t v)
 
void MakeNormalVectors (const vec3_t forward, vec3_t right, vec3_t up)
 
float Q_rsqrt (float number)
 
void Matrix3_Multiply (vec3_t *in1, vec3_t *in2, vec3_t *out)
 
void Matrix4x4_Identity (float *outm)
 
qboolean Matrix4_Invert (const float *m, float *out)
 
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 Matrix3x3_RM_Invert_Simple (const vec3_t in[3], vec3_t out[3])
 
void Matrix4x4_RM_CreateTranslate (float *out, float x, float y, float z)
 
void Matrix4x4_CM_CreateTranslate (float *out, float x, float y, float z)
 
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_CM_ModelViewMatrix (float *modelview, const vec3_t viewangles, const vec3_t vieworg)
 
void Matrix4x4_CM_ModelViewMatrixFromAxis (float *modelview, const vec3_t pn, const vec3_t right, const vec3_t up, const vec3_t vieworg)
 
void Matrix4x4_CM_LightMatrixFromAxis (float *modelview, const vec3_t px, const vec3_t py, const vec3_t pz, const vec3_t vieworg)
 
void Matrix4_CreateFromQuakeEntity (float *matrix, float x, float y, float z, float pitch, float yaw, float roll, float scale)
 
void Matrix4_Multiply (const float *a, const float *b, float *out)
 
void Matrix3x4_Multiply (const float *a, const float *b, float *out)
 
qboolean Matrix4x4_CM_Project (const vec3_t in, vec3_t out, const vec3_t viewangles, const vec3_t vieworg, float fovx, float fovy)
 
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_Transform4 (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_UnProject (const vec3_t in, vec3_t out, const vec3_t viewangles, const vec3_t vieworg, float fovx, float fovy)
 
void Matrix3x4_RM_FromAngles (const vec3_t angles, const vec3_t origin, float *out)
 
void Matrix3x4_RM_FromVectors (float *out, const float vx[3], const float vy[3], const float vz[3], const 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_ToVectors (const float *in, float vx[3], float vy[3], float vz[3], float t[3])
 
void Matrix3x4_RM_Transform3 (const float *matrix, const float *vector, float *product)
 
void Matrix3x4_RM_Transform3x3 (const float *matrix, const float *vector, float *product)
 
float * Matrix4x4_CM_NewRotation (float a, float x, float y, float z)
 
float * Matrix4x4_CM_NewTranslation (float x, float y, float z)
 
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)
 
void Matrix4x4_CM_Orthographic (float *proj, float xmin, float xmax, float ymax, float ymin, float znear, float zfar)
 
void Matrix4x4_CM_OrthographicD3D (float *proj, float xmin, float xmax, float ymax, float ymin, float znear, float zfar)
 
void Matrix4x4_CM_Projection_Offset (float *proj, float fovl, float fovr, float fovu, float fovd, 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_Projection2 (float *proj, float fovx, float fovy, float neard)
 
void Matrix4x4_CM_Projection_Inf (float *proj, float fovx, float fovy, float neard, qboolean d3d)
 
fixed16_t Mul16_30 (fixed16_t multiplier, fixed16_t multiplicand)
 
int Q_log2 (int val)
 
void Matrix3x4_InvertTo3x3 (const float *in, float *result)
 
void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3])
 
void R_ConcatRotationsPad (float in1[3][4], float in2[3][4], float out[3][4])
 
void QDECL R_ConcatTransforms (const matrix3x4 in1, const matrix3x4 in2, matrix3x4 out)
 
void R_ConcatTransformsAxis (const float in1[3][3], const float in2[3][4], float out[3][4])
 
void PerpendicularVector (vec3_t dst, const vec3_t src)
 
void RotatePointAroundVector (vec3_t dst, const vec3_t dir, const vec3_t point, float degrees)
 
void RotateLightVector (const vec3_t *axis, const vec3_t origin, const vec3_t lightpoint, vec3_t result)
 
int VectorCompare (const vec3_t v1, const vec3_t v2)
 
int Vector4Compare (const vec4_t v1, const vec4_t v2)
 
void VectorInverse (vec3_t v)
 
void _VectorMA (const vec3_t veca, const float scale, const vec3_t vecb, vec3_t vecc)
 
float QDECL VectorNormalize (vec3_t v)
 
vec_t QDECL VectorNormalize2 (const vec3_t v, vec3_t out)
 
void VectorNormalizeFast (vec3_t v)
 
void VectorTransform (const vec3_t in1, const matrix3x4 in2, vec3_t out)
 
void VectorVectors (const vec3_t forward, vec3_t right, vec3_t up)
 

Variables

vec3_t vec3_origin
 

Typedef Documentation

◆ fixed16_t

typedef int fixed16_t

◆ fixed4_t

typedef int fixed4_t

◆ fixed8_t

typedef int fixed8_t

◆ ivec2_t

typedef ivec_t ivec2_t[2]

◆ ivec3_t

typedef ivec_t ivec3_t[3]

◆ ivec4_t

typedef ivec_t ivec4_t[4]

◆ ivec5_t

typedef ivec_t ivec5_t[5]

◆ ivec_t

typedef int ivec_t

◆ matrix3x3

typedef float matrix3x3[3][3]

◆ matrix3x4

typedef float matrix3x4[3][4]

◆ vec2_t

typedef vec_t vec2_t[2]

◆ vec3_t

typedef vec_t vec3_t[3]

◆ vec4_t

typedef vec_t vec4_t[4]

◆ vec5_t

typedef vec_t vec5_t[5]

◆ vec_t

typedef float vec_t

Function Documentation

◆ _VectorMA()

void _VectorMA ( const vec3_t  veca,
const float  scale,
const vec3_t  vecb,
vec3_t  vecc 
)

◆ AddPointToBounds()

void AddPointToBounds ( const vec3_t  v,
vec3_t  mins,
vec3_t  maxs 
)

◆ anglemod()

float anglemod ( float  a)

◆ AngleVectors()

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

◆ AngleVectorsMesh()

void QDECL 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 
)

◆ BOPS_Error()

void VARGS BOPS_Error ( void  )

◆ BoxOnPlaneSide()

int VARGS BoxOnPlaneSide ( const vec3_t  emins,
const vec3_t  emaxs,
const struct mplane_s plane 
)

◆ ClearBounds()

void ClearBounds ( vec3_t  mins,
vec3_t  maxs 
)

◆ 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 
)

◆ FTE_ALIGN() [1/2]

typedef FTE_ALIGN ( 16  )

◆ FTE_ALIGN() [2/2]

typedef FTE_ALIGN ( )

◆ 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  in[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_CreateFromQuakeEntity()

void Matrix4_CreateFromQuakeEntity ( float *  matrix,
float  x,
float  y,
float  z,
float  pitch,
float  yaw,
float  roll,
float  scale 
)

◆ 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  vieworg 
)

◆ 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  ymax,
float  ymin,
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  fovu,
float  fovd,
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] 
)

◆ Mul16_30()

fixed16_t Mul16_30 ( fixed16_t  multiplier,
fixed16_t  multiplicand 
)

◆ 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 matrix3x4  in1,
const matrix3x4  in2,
matrix3x4  out 
)

◆ R_ConcatTransformsAxis()

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

◆ RotateLightVector()

void RotateLightVector ( const vec3_t axis,
const vec3_t  origin,
const vec3_t  lightpoint,
vec3_t  result 
)

◆ 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 *  angles,
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
extern