Macros | |
| #define | DotProduct(a, b) ((a)[0] * (b)[0] + (a)[1] * (b)[1] + (a)[2] * (b)[2]) |
| #define | VectorAdd(a, b, c) |
| #define | VectorBlend(v1, v2, b, v) |
| #define | VectorCompare(x, y) VectorCompCompare (x, ==, y) |
| #define | VectorCompBound(a, b, c, d) |
| #define | VectorCompCompare(x, op, y) (((x)[0] op (y)[0]) && ((x)[1] op (y)[1]) && ((x)[2] op (y)[2])) |
| #define | VectorCompDiv(a, b, c) |
| #define | VectorCompMax(a, b, c) |
| #define | VectorCompMin(a, b, c) |
| #define | VectorCompMult(a, b, c) |
| #define | VectorCopy(a, b) |
| #define | VectorDistance(a, b) sqrt(VectorDistance_fast(a, b)) |
| #define | VectorDistance_fast(a, b) |
| #define | VectorExpand(v) (v)[0], (v)[1], (v)[2] |
| #define | VectorIsZero(a) (!(a)[0] && !(a)[1] && !(a)[2]) |
| #define | VectorLength(a) sqrt(DotProduct(a, a)) |
| #define | VectorMultAdd(a, s, b, c) |
| #define | VectorMultSub(a, s, b, c) |
| #define | VectorNegate(a, b) |
| #define | VectorScale(a, b, c) |
| #define | VectorSet(a, b, c, d) |
| #define | VectorShear(a, b, c) |
| Shear vector b by vector a. More... | |
| #define | VectorSubtract(a, b, c) |
| #define | VectorUnshear(a, b, c) |
| #define | VectorZero(a) ((a)[2] = (a)[1] = (a)[0] = 0); |
Functions | |
| vec_t | _DotProduct (const vec3_t v1, const vec3_t v2) |
| void | _VectorAdd (const vec3_t veca, const vec3_t vecb, vec3_t out) |
| int | _VectorCompare (const vec3_t v1, const vec3_t v2) |
| void | _VectorCopy (const vec3_t in, vec3_t out) |
| vec_t | _VectorLength (const vec3_t v) |
| void | _VectorMA (const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc) |
| vec_t | _VectorNormalize (vec3_t v) |
| void | _VectorScale (const vec3_t in, vec_t scale, vec3_t out) |
| void | _VectorSubtract (const vec3_t veca, const vec3_t vecb, vec3_t out) |
| void | CrossProduct (const vec3_t v1, const vec3_t v2, vec3_t cross) |
| float | VectorNormalize (vec3_t v) |
Variables | |
| const vec_t *const | vec3_origin |
| #define DotProduct | ( | a, | |
| b | |||
| ) | ((a)[0] * (b)[0] + (a)[1] * (b)[1] + (a)[2] * (b)[2]) |
| #define VectorAdd | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorBlend | ( | v1, | |
| v2, | |||
| b, | |||
| v | |||
| ) |
| #define VectorCompare | ( | x, | |
| y | |||
| ) | VectorCompCompare (x, ==, y) |
| #define VectorCompBound | ( | a, | |
| b, | |||
| c, | |||
| d | |||
| ) |
| #define VectorCompCompare | ( | x, | |
| op, | |||
| y | |||
| ) | (((x)[0] op (y)[0]) && ((x)[1] op (y)[1]) && ((x)[2] op (y)[2])) |
| #define VectorCompDiv | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorCompMax | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorCompMin | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorCompMult | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorCopy | ( | a, | |
| b | |||
| ) |
| #define VectorDistance | ( | a, | |
| b | |||
| ) | sqrt(VectorDistance_fast(a, b)) |
| #define VectorDistance_fast | ( | a, | |
| b | |||
| ) |
| #define VectorExpand | ( | v | ) | (v)[0], (v)[1], (v)[2] |
| #define VectorIsZero | ( | a | ) | (!(a)[0] && !(a)[1] && !(a)[2]) |
| #define VectorLength | ( | a | ) | sqrt(DotProduct(a, a)) |
| #define VectorMultAdd | ( | a, | |
| s, | |||
| b, | |||
| c | |||
| ) |
| #define VectorMultSub | ( | a, | |
| s, | |||
| b, | |||
| c | |||
| ) |
| #define VectorNegate | ( | a, | |
| b | |||
| ) |
| #define VectorScale | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorSet | ( | a, | |
| b, | |||
| c, | |||
| d | |||
| ) |
| #define VectorShear | ( | a, | |
| b, | |||
| c | |||
| ) |
Shear vector b by vector a.
Vector a represents the shear factors XY, XZ, YZ, ie in matrix form: [ 1 0 0 ] [ b0 ] [ a0 1 0 ] [ b1 ] [ a1 a2 1 ] [ b2 ]
The reason for this particular scheme is that is how Mat4Decompose calculates the shear from a matrix.
| #define VectorSubtract | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorUnshear | ( | a, | |
| b, | |||
| c | |||
| ) |
| #define VectorZero | ( | a | ) | ((a)[2] = (a)[1] = (a)[0] = 0); |
|
inline |