include/vecmat.h File Reference

#include "maths.h"

Classes

struct  vms_vector
struct  vms_vector_array
struct  vms_svec
struct  vms_angvec
struct  vms_matrix

Defines

#define IS_VEC_NULL(v)   (v->x == 0 && v->y == 0 && v->z == 0)
#define vm_vec_zero(v)   (v)->x=(v)->y=(v)->z=0
#define vm_set_identity(m)
#define ZERO_VECTOR   {0,0,0}
#define IDENTITY_MATRIX   { {f1_0,0,0}, {0,f1_0,0}, {0,0,f1_0} }
#define vm_vec_negate(v)   do {(v)->x = - (v)->x; (v)->y = - (v)->y; (v)->z = - (v)->z;} while (0);
#define vm_vec_dot(v0, v1)   vm_vec_dotprod((v0),(v1))
#define vm_vec_cross(dest, src0, src1)   vm_vec_crossprod((dest),(src0),(src1))
#define vm_transpose(m)   vm_transpose_matrix(m)
#define vm_copy_transpose(dest, src)   vm_copy_transpose_matrix((dest),(src))
#define vm_angvec_make(v, _p, _b, _h)   (((v)->p=(_p), (v)->b=(_b), (v)->h=(_h)), (v))

Functions

vms_vectorvm_vec_make (vms_vector *v, fix x, fix y, fix z)
vms_angvecvm_angvec_make (vms_angvec *v, fixang p, fixang b, fixang h)
vms_vectorvm_vec_add (vms_vector *dest, vms_vector *src0, vms_vector *src1)
vms_vectorvm_vec_sub (vms_vector *dest, vms_vector *src0, vms_vector *src1)
vms_vectorvm_vec_add2 (vms_vector *dest, vms_vector *src)
vms_vectorvm_vec_sub2 (vms_vector *dest, vms_vector *src)
vms_vectorvm_vec_avg (vms_vector *dest, vms_vector *src0, vms_vector *src1)
vms_vectorvm_vec_avg4 (vms_vector *dest, vms_vector *src0, vms_vector *src1, vms_vector *src2, vms_vector *src3)
vms_vectorvm_vec_scale (vms_vector *dest, fix s)
vms_vectorvm_vec_copy_scale (vms_vector *dest, vms_vector *src, fix s)
vms_vectorvm_vec_scale_add (vms_vector *dest, vms_vector *src1, vms_vector *src2, fix k)
vms_vectorvm_vec_scale_add2 (vms_vector *dest, vms_vector *src, fix k)
vms_vectorvm_vec_scale2 (vms_vector *dest, fix n, fix d)
fix vm_vec_mag (vms_vector *v)
fix vm_vec_dist (vms_vector *v0, vms_vector *v1)
fix vm_vec_mag_quick (vms_vector *v)
fix vm_vec_dist_quick (vms_vector *v0, vms_vector *v1)
fix vm_vec_copy_normalize (vms_vector *dest, vms_vector *src)
fix vm_vec_normalize (vms_vector *v)
fix vm_vec_copy_normalize_quick (vms_vector *dest, vms_vector *src)
fix vm_vec_normalize_quick (vms_vector *v)
fix vm_vec_normalized_dir (vms_vector *dest, vms_vector *end, vms_vector *start)
fix vm_vec_normalized_dir_quick (vms_vector *dest, vms_vector *end, vms_vector *start)
fix vm_vec_dotprod (vms_vector *v0, vms_vector *v1)
vms_vectorvm_vec_crossprod (vms_vector *dest, vms_vector *src0, vms_vector *src1)
vms_vectorvm_vec_normal (vms_vector *dest, vms_vector *p0, vms_vector *p1, vms_vector *p2)
vms_vectorvm_vec_perp (vms_vector *dest, vms_vector *p0, vms_vector *p1, vms_vector *p2)
fixang vm_vec_delta_ang (vms_vector *v0, vms_vector *v1, vms_vector *fvec)
fixang vm_vec_delta_ang_norm (vms_vector *v0, vms_vector *v1, vms_vector *fvec)
vms_matrixvm_angles_2_matrix (vms_matrix *m, vms_angvec *a)
vms_matrixvm_vec_ang_2_matrix (vms_matrix *m, vms_vector *v, fixang a)
vms_matrixvm_vector_2_matrix (vms_matrix *m, vms_vector *fvec, vms_vector *uvec, vms_vector *rvec)
vms_matrixvm_vector_2_matrix_norm (vms_matrix *m, vms_vector *fvec, vms_vector *uvec, vms_vector *rvec)
vms_vectorvm_vec_rotate (vms_vector *dest, vms_vector *src, vms_matrix *m)
vms_matrixvm_transpose_matrix (vms_matrix *m)
vms_matrixvm_copy_transpose_matrix (vms_matrix *dest, vms_matrix *src)
vms_matrixvm_matrix_x_matrix (vms_matrix *dest, vms_matrix *src0, vms_matrix *src1)
vms_angvecvm_extract_angles_matrix (vms_angvec *a, vms_matrix *m)
vms_angvecvm_extract_angles_vector (vms_angvec *a, vms_vector *v)
fix vm_dist_to_plane (vms_vector *checkp, vms_vector *norm, vms_vector *planep)

Variables

vms_vector vmd_zero_vector
vms_matrix vmd_identity_matrix

Define Documentation

#define IDENTITY_MATRIX   { {f1_0,0,0}, {0,f1_0,0}, {0,0,f1_0} }
 

#define IS_VEC_NULL  )     (v->x == 0 && v->y == 0 && v->z == 0)
 

#define vm_angvec_make v,
_p,
_b,
_h   )     (((v)->p=(_p), (v)->b=(_b), (v)->h=(_h)), (v))
 

#define vm_copy_transpose dest,
src   )     vm_copy_transpose_matrix((dest),(src))
 

#define vm_set_identity  ) 
 

Value:

do {m->rvec.x = m->uvec.y = m->fvec.z = f1_0; \
        m->rvec.y = m->rvec.z = \
        m->uvec.x = m->uvec.z = \
        m->fvec.x = m->fvec.y = 0;} while (0)

#define vm_transpose  )     vm_transpose_matrix(m)
 

#define vm_vec_cross dest,
src0,
src1   )     vm_vec_crossprod((dest),(src0),(src1))
 

#define vm_vec_dot v0,
v1   )     vm_vec_dotprod((v0),(v1))
 

#define vm_vec_negate  )     do {(v)->x = - (v)->x; (v)->y = - (v)->y; (v)->z = - (v)->z;} while (0);
 

#define vm_vec_zero  )     (v)->x=(v)->y=(v)->z=0
 

#define ZERO_VECTOR   {0,0,0}
 


Function Documentation

vms_matrix* vm_angles_2_matrix vms_matrix m,
vms_angvec a
 

vms_angvec* vm_angvec_make vms_angvec v,
fixang  p,
fixang  b,
fixang  h
 

vms_matrix* vm_copy_transpose_matrix vms_matrix dest,
vms_matrix src
 

fix vm_dist_to_plane vms_vector checkp,
vms_vector norm,
vms_vector planep
 

vms_angvec* vm_extract_angles_matrix vms_angvec a,
vms_matrix m
 

vms_angvec* vm_extract_angles_vector vms_angvec a,
vms_vector v
 

vms_matrix* vm_matrix_x_matrix vms_matrix dest,
vms_matrix src0,
vms_matrix src1
 

vms_matrix* vm_transpose_matrix vms_matrix m  ) 
 

vms_vector* vm_vec_add vms_vector dest,
vms_vector src0,
vms_vector src1
 

vms_vector* vm_vec_add2 vms_vector dest,
vms_vector src
 

vms_matrix* vm_vec_ang_2_matrix vms_matrix m,
vms_vector v,
fixang  a
 

vms_vector* vm_vec_avg vms_vector dest,
vms_vector src0,
vms_vector src1
 

vms_vector* vm_vec_avg4 vms_vector dest,
vms_vector src0,
vms_vector src1,
vms_vector src2,
vms_vector src3
 

fix vm_vec_copy_normalize vms_vector dest,
vms_vector src
 

fix vm_vec_copy_normalize_quick vms_vector dest,
vms_vector src
 

vms_vector* vm_vec_copy_scale vms_vector dest,
vms_vector src,
fix  s
 

vms_vector* vm_vec_crossprod vms_vector dest,
vms_vector src0,
vms_vector src1
 

fixang vm_vec_delta_ang vms_vector v0,
vms_vector v1,
vms_vector fvec
 

fixang vm_vec_delta_ang_norm vms_vector v0,
vms_vector v1,
vms_vector fvec
 

fix vm_vec_dist vms_vector v0,
vms_vector v1
 

fix vm_vec_dist_quick vms_vector v0,
vms_vector v1
 

fix vm_vec_dotprod vms_vector v0,
vms_vector v1
 

fix vm_vec_mag vms_vector v  ) 
 

fix vm_vec_mag_quick vms_vector v  ) 
 

vms_vector* vm_vec_make vms_vector v,
fix  x,
fix  y,
fix  z
 

vms_vector* vm_vec_normal vms_vector dest,
vms_vector p0,
vms_vector p1,
vms_vector p2
 

fix vm_vec_normalize vms_vector v  ) 
 

fix vm_vec_normalize_quick vms_vector v  ) 
 

fix vm_vec_normalized_dir vms_vector dest,
vms_vector end,
vms_vector start
 

fix vm_vec_normalized_dir_quick vms_vector dest,
vms_vector end,
vms_vector start
 

vms_vector* vm_vec_perp vms_vector dest,
vms_vector p0,
vms_vector p1,
vms_vector p2
 

vms_vector* vm_vec_rotate vms_vector dest,
vms_vector src,
vms_matrix m
 

vms_vector* vm_vec_scale vms_vector dest,
fix  s
 

vms_vector* vm_vec_scale2 vms_vector dest,
fix  n,
fix  d
 

vms_vector* vm_vec_scale_add vms_vector dest,
vms_vector src1,
vms_vector src2,
fix  k
 

vms_vector* vm_vec_scale_add2 vms_vector dest,
vms_vector src,
fix  k
 

vms_vector* vm_vec_sub vms_vector dest,
vms_vector src0,
vms_vector src1
 

vms_vector* vm_vec_sub2 vms_vector dest,
vms_vector src
 

vms_matrix* vm_vector_2_matrix vms_matrix m,
vms_vector fvec,
vms_vector uvec,
vms_vector rvec
 

vms_matrix* vm_vector_2_matrix_norm vms_matrix m,
vms_vector fvec,
vms_vector uvec,
vms_vector rvec
 


Variable Documentation

vms_matrix vmd_identity_matrix
 

vms_vector vmd_zero_vector
 


Generated on Mon Aug 28 20:55:32 2006 for D1X-Rebirth by  doxygen 1.4.6