Defines | |
#define | VEC_ZERO_2(a) |
Zero out a 2D vector. | |
#define | VEC_ZERO(a) |
Zero out a 3D vector. | |
#define | VEC_ZERO_4(a) |
Zero out a 4D vector. | |
#define | VEC_COPY_2(b, a) |
Vector copy. | |
#define | VEC_COPY(b, a) |
Copy 3D vector. | |
#define | VEC_COPY_4(b, a) |
Copy 4D vector. | |
#define | VEC_SWAP(b, a) |
VECTOR SWAP. | |
#define | VEC_DIFF_2(v21, v2, v1) |
Vector difference. | |
#define | VEC_DIFF(v21, v2, v1) |
Vector difference. | |
#define | VEC_DIFF_4(v21, v2, v1) |
Vector difference. | |
#define | VEC_SUM_2(v21, v2, v1) |
Vector sum. | |
#define | VEC_SUM(v21, v2, v1) |
Vector sum. | |
#define | VEC_SUM_4(v21, v2, v1) |
Vector sum. | |
#define | VEC_SCALE_2(c, a, b) |
scalar times vector | |
#define | VEC_SCALE(c, a, b) |
scalar times vector | |
#define | VEC_SCALE_4(c, a, b) |
scalar times vector | |
#define | VEC_ACCUM_2(c, a, b) |
accumulate scaled vector | |
#define | VEC_ACCUM(c, a, b) |
accumulate scaled vector | |
#define | VEC_ACCUM_4(c, a, b) |
accumulate scaled vector | |
#define | VEC_DOT_2(a, b) ((a)[0]*(b)[0] + (a)[1]*(b)[1]) |
Vector dot product. | |
#define | VEC_DOT(a, b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]) |
Vector dot product. | |
#define | VEC_DOT_4(a, b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3]) |
Vector dot product. | |
#define | VEC_IMPACT_SQ(bsq, direction, position) |
vector impact parameter (squared) | |
#define | VEC_IMPACT(bsq, direction, position) |
vector impact parameter | |
#define | VEC_LENGTH_2(a, l) |
Vector length. | |
#define | VEC_LENGTH(a, l) |
Vector length. | |
#define | VEC_LENGTH_4(a, l) |
Vector length. | |
#define | VEC_INV_LENGTH_2(a, l) |
Vector inv length. | |
#define | VEC_INV_LENGTH(a, l) |
Vector inv length. | |
#define | VEC_INV_LENGTH_4(a, l) |
Vector inv length. | |
#define | VEC_DISTANCE(_len, _va, _vb) |
distance between two points | |
#define | VEC_CONJUGATE_LENGTH(a, l) |
Vector length. | |
#define | VEC_NORMALIZE(a) |
Vector length. | |
#define | VEC_RENORMALIZE(a, newlen) |
Set Vector size. | |
#define | VEC_CROSS(c, a, b) |
Vector cross. | |
#define | VEC_PERPENDICULAR(vp, v, n) |
#define | VEC_PARALLEL(vp, v, n) |
#define | VEC_PROJECT(vp, v, n) |
#define | VEC_UNPROJECT(vp, v, n) |
#define | VEC_REFLECT(vr, v, n) |
#define | VEC_BLEND_AB(vr, sa, a, sb, b) |
#define | VEC_BLEND(vr, a, b, s) VEC_BLEND_AB(vr,(1-s),a,s,b) |
#define | VEC_SET3(a, b, op, c) a[0]=b[0] op c[0]; a[1]=b[1] op c[1]; a[2]=b[2] op c[2]; |
#define | VEC_MAYOR_COORD(vec, maxc) |
Finds the bigger cartesian coordinate from a vector. | |
#define | VEC_MINOR_AXES(vec, i0, i1) |
Finds the 2 smallest cartesian coordinates from a vector. | |
#define | VEC_EQUAL(v1, v2) (v1[0]==v2[0]&&v1[1]==v2[1]&&v1[2]==v2[2]) |
#define | VEC_NEAR_EQUAL(v1, v2) (GIM_NEAR_EQUAL(v1[0],v2[0])&&GIM_NEAR_EQUAL(v1[1],v2[1])&&GIM_NEAR_EQUAL(v1[2],v2[2])) |
#define | X_AXIS_CROSS_VEC(dst, src) |
Vector cross. | |
#define | Y_AXIS_CROSS_VEC(dst, src) |
#define | Z_AXIS_CROSS_VEC(dst, src) |
#define VEC_ACCUM | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ (c)[0] += (a)*(b)[0]; \ (c)[1] += (a)*(b)[1]; \ (c)[2] += (a)*(b)[2]; \ }\
#define VEC_ACCUM_2 | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ (c)[0] += (a)*(b)[0]; \ (c)[1] += (a)*(b)[1]; \ }\
#define VEC_ACCUM_4 | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ (c)[0] += (a)*(b)[0]; \ (c)[1] += (a)*(b)[1]; \ (c)[2] += (a)*(b)[2]; \ (c)[3] += (a)*(b)[3]; \ }\
#define VEC_BLEND | ( | vr, | |||
a, | |||||
b, | |||||
s | ) | VEC_BLEND_AB(vr,(1-s),a,s,b) |
Vector blending Takes two vectors a, b, blends them together with s <=1
#define VEC_BLEND_AB | ( | vr, | |||
sa, | |||||
a, | |||||
sb, | |||||
b | ) |
Value:
{ \ vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ }\
#define VEC_CONJUGATE_LENGTH | ( | a, | |||
l | ) |
#define VEC_COPY | ( | b, | |||
a | ) |
Value:
{ \ (b)[0] = (a)[0]; \ (b)[1] = (a)[1]; \ (b)[2] = (a)[2]; \ }\
#define VEC_COPY_2 | ( | b, | |||
a | ) |
Value:
{ \ (b)[0] = (a)[0]; \ (b)[1] = (a)[1]; \ }\
#define VEC_COPY_4 | ( | b, | |||
a | ) |
Value:
{ \ (b)[0] = (a)[0]; \ (b)[1] = (a)[1]; \ (b)[2] = (a)[2]; \ (b)[3] = (a)[3]; \ }\
#define VEC_CROSS | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ }\
#define VEC_DIFF | ( | v21, | |||
v2, | |||||
v1 | ) |
Value:
{ \ (v21)[0] = (v2)[0] - (v1)[0]; \ (v21)[1] = (v2)[1] - (v1)[1]; \ (v21)[2] = (v2)[2] - (v1)[2]; \ }\
#define VEC_DIFF_2 | ( | v21, | |||
v2, | |||||
v1 | ) |
Value:
{ \ (v21)[0] = (v2)[0] - (v1)[0]; \ (v21)[1] = (v2)[1] - (v1)[1]; \ }\
#define VEC_DIFF_4 | ( | v21, | |||
v2, | |||||
v1 | ) |
Value:
{ \ (v21)[0] = (v2)[0] - (v1)[0]; \ (v21)[1] = (v2)[1] - (v1)[1]; \ (v21)[2] = (v2)[2] - (v1)[2]; \ (v21)[3] = (v2)[3] - (v1)[3]; \ }\
#define VEC_DISTANCE | ( | _len, | |||
_va, | |||||
_vb | ) |
Value:
{\ vec3f _tmp_; \ VEC_DIFF(_tmp_, _vb, _va); \ VEC_LENGTH(_tmp_,_len); \ }\
#define VEC_DOT | ( | a, | |||
b | ) | ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]) |
Vector dot product.
#define VEC_DOT_2 | ( | a, | |||
b | ) | ((a)[0]*(b)[0] + (a)[1]*(b)[1]) |
Vector dot product.
#define VEC_DOT_4 | ( | a, | |||
b | ) | ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3]) |
Vector dot product.
#define VEC_EQUAL | ( | v1, | |||
v2 | ) | (v1[0]==v2[0]&&v1[1]==v2[1]&&v1[2]==v2[2]) |
#define VEC_IMPACT | ( | bsq, | |||
direction, | |||||
position | ) |
#define VEC_IMPACT_SQ | ( | bsq, | |||
direction, | |||||
position | ) |
#define VEC_INV_LENGTH | ( | a, | |||
l | ) |
#define VEC_INV_LENGTH_2 | ( | a, | |||
l | ) |
#define VEC_INV_LENGTH_4 | ( | a, | |||
l | ) |
#define VEC_LENGTH_2 | ( | a, | |||
l | ) |
#define VEC_LENGTH_4 | ( | a, | |||
l | ) |
#define VEC_MAYOR_COORD | ( | vec, | |||
maxc | ) |
Value:
{\ GREAL A[] = {fabs(vec[0]),fabs(vec[1]),fabs(vec[2])};\ maxc = A[0]>A[1]?(A[0]>A[2]?0:2):(A[1]>A[2]?1:2);\ }\
#define VEC_MINOR_AXES | ( | vec, | |||
i0, | |||||
i1 | ) |
Value:
{\ VEC_MAYOR_COORD(vec,i0);\ i0 = (i0+1)%3;\ i1 = (i0+1)%3;\ }\
#define VEC_NEAR_EQUAL | ( | v1, | |||
v2 | ) | (GIM_NEAR_EQUAL(v1[0],v2[0])&&GIM_NEAR_EQUAL(v1[1],v2[1])&&GIM_NEAR_EQUAL(v1[2],v2[2])) |
#define VEC_NORMALIZE | ( | a | ) |
Value:
{ \ GREAL len;\ VEC_INV_LENGTH(a,len); \ if(len<G_REAL_INFINITY)\ {\ a[0] *= len; \ a[1] *= len; \ a[2] *= len; \ } \ }\
#define VEC_PARALLEL | ( | vp, | |||
v, | |||||
n | ) |
#define VEC_PERPENDICULAR | ( | vp, | |||
v, | |||||
n | ) |
#define VEC_PROJECT | ( | vp, | |||
v, | |||||
n | ) |
#define VEC_REFLECT | ( | vr, | |||
v, | |||||
n | ) |
#define VEC_RENORMALIZE | ( | a, | |||
newlen | ) |
Value:
{ \ GREAL len;\ VEC_INV_LENGTH(a,len); \ if(len<G_REAL_INFINITY)\ {\ len *= newlen;\ a[0] *= len; \ a[1] *= len; \ a[2] *= len; \ } \ }\
#define VEC_SCALE | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ (c)[0] = (a)*(b)[0]; \ (c)[1] = (a)*(b)[1]; \ (c)[2] = (a)*(b)[2]; \ }\
#define VEC_SCALE_2 | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ (c)[0] = (a)*(b)[0]; \ (c)[1] = (a)*(b)[1]; \ }\
#define VEC_SCALE_4 | ( | c, | |||
a, | |||||
b | ) |
Value:
{ \ (c)[0] = (a)*(b)[0]; \ (c)[1] = (a)*(b)[1]; \ (c)[2] = (a)*(b)[2]; \ (c)[3] = (a)*(b)[3]; \ }\
#define VEC_SET3 | ( | a, | |||
b, | |||||
op, | |||||
c | ) | a[0]=b[0] op c[0]; a[1]=b[1] op c[1]; a[2]=b[2] op c[2]; |
#define VEC_SUM | ( | v21, | |||
v2, | |||||
v1 | ) |
Value:
{ \ (v21)[0] = (v2)[0] + (v1)[0]; \ (v21)[1] = (v2)[1] + (v1)[1]; \ (v21)[2] = (v2)[2] + (v1)[2]; \ }\
#define VEC_SUM_2 | ( | v21, | |||
v2, | |||||
v1 | ) |
Value:
{ \ (v21)[0] = (v2)[0] + (v1)[0]; \ (v21)[1] = (v2)[1] + (v1)[1]; \ }\
#define VEC_SUM_4 | ( | v21, | |||
v2, | |||||
v1 | ) |
Value:
{ \ (v21)[0] = (v2)[0] + (v1)[0]; \ (v21)[1] = (v2)[1] + (v1)[1]; \ (v21)[2] = (v2)[2] + (v1)[2]; \ (v21)[3] = (v2)[3] + (v1)[3]; \ }\
#define VEC_SWAP | ( | b, | |||
a | ) |
Value:
{ \ GIM_SWAP_NUMBERS((b)[0],(a)[0]);\ GIM_SWAP_NUMBERS((b)[1],(a)[1]);\ GIM_SWAP_NUMBERS((b)[2],(a)[2]);\ }\
#define VEC_UNPROJECT | ( | vp, | |||
v, | |||||
n | ) |
#define VEC_ZERO | ( | a | ) |
Value:
{ \ (a)[0] = (a)[1] = (a)[2] = 0.0f; \ }\
#define VEC_ZERO_2 | ( | a | ) |
Value:
{ \ (a)[0] = (a)[1] = 0.0f; \ }\
#define VEC_ZERO_4 | ( | a | ) |
Value:
{ \ (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0f; \ }\
#define X_AXIS_CROSS_VEC | ( | dst, | |||
src | ) |
Value:
{ \ dst[0] = 0.0f; \ dst[1] = -src[2]; \ dst[2] = src[1]; \ }\
#define Y_AXIS_CROSS_VEC | ( | dst, | |||
src | ) |
Value:
{ \ dst[0] = src[2]; \ dst[1] = 0.0f; \ dst[2] = -src[0]; \ }\
#define Z_AXIS_CROSS_VEC | ( | dst, | |||
src | ) |
Value:
{ \ dst[0] = -src[1]; \ dst[1] = src[0]; \ dst[2] = 0.0f; \ }\