Defines | |
#define | TEN_T2M(m, t) |
#define | TEN_M2T(t, m) |
#define | TEN_M2T_TT(t, TT, m) |
#define | TEN_TV_MUL(v2, t, v1) |
#define | TEN_T_EXISTS(t) |
#define | TEN_T_SET(t, conf, a, b, c, d, e, f) |
#define | TEN_T_SET_TT(t, TT, conf, a, b, c, d, e, f) |
#define | TEN_T_COPY(d, s) |
#define | TEN_T_COPY_TT(d, TT, s) |
#define | TEN_T_DET(t) |
#define | TEN_T_DET_XY(t) ( (t)[1]*(t)[4] - (t)[2]*(t)[2] ) |
#define | TEN_T_DET_XZ(t) ( (t)[1]*(t)[6] - (t)[3]*(t)[3] ) |
#define | TEN_T_DET_YZ(t) ( (t)[4]*(t)[6] - (t)[5]*(t)[5] ) |
#define | TEN_T_TRACE(t) ((t)[1] + (t)[4] + (t)[6]) |
#define | TEN_T_INV(i, t, det) |
#define | TEN_T_DOT(A, B) |
#define | TEN_T_NORM(A) (sqrt(TEN_T_DOT(A,A))) |
#define | TEN_T_ADD(a, b, c) |
#define | TEN_T_SUB(a, b, c) |
#define | TEN_T_AFFINE(C, i, x, I, A, B) |
#define | TEN_T_LERP(c, w, a, b) |
#define | TEN_T_SCALE(a, s, b) |
#define | TEN_T_INCR(a, b) |
#define | TEN_T_SCALE_INCR(a, s, b) |
#define | TEN_T_SCALE_INCR2(a, s, b, t, c) |
#define | TEN_T_SCALE_ADD2(a, s, b, t, c) |
#define | TEN_T3V_MUL(b, t, a) |
#define | TEN_T3V_OUTER(t, a) |
#define | TEN_T3V_CONTR(t, v) |
#define TEN_M2T | ( | t, | |||
m | ) |
Value:
( \ (t)[1] = (m)[0], \ (t)[2] = ((m)[1]+(m)[3])/2.0, \ (t)[3] = ((m)[2]+(m)[6])/2.0, \ (t)[4] = (m)[4], \ (t)[5] = ((m)[5]+(m)[7])/2.0, \ (t)[6] = (m)[8] )
#define TEN_M2T_TT | ( | t, | |||
TT, | |||||
m | ) |
#define TEN_T2M | ( | m, | |||
t | ) |
Value:
( \ (m)[0] = (t)[1], (m)[1] = (t)[2], (m)[2] = (t)[3], \ (m)[3] = (t)[2], (m)[4] = (t)[4], (m)[5] = (t)[5], \ (m)[6] = (t)[3], (m)[7] = (t)[5], (m)[8] = (t)[6] )
#define TEN_T3V_CONTR | ( | t, | |||
v | ) |
Value:
( \ (v)[0]*(t)[1]*(v)[0] + (v)[0]*(t)[2]*(v)[1] + (v)[0]*(t)[3]*(v)[2] \ + (v)[1]*(t)[2]*(v)[0] + (v)[1]*(t)[4]*(v)[1] + (v)[1]*(t)[5]*(v)[2] \ + (v)[2]*(t)[3]*(v)[0] + (v)[2]*(t)[5]*(v)[1] + (v)[2]*(t)[6]*(v)[2])
#define TEN_T3V_MUL | ( | b, | |||
t, | |||||
a | ) |
Value:
( \ (b)[0] = (t)[1]*(a)[0] + (t)[2]*(a)[1] + (t)[3]*(a)[2], \ (b)[1] = (t)[2]*(a)[0] + (t)[4]*(a)[1] + (t)[5]*(a)[2], \ (b)[2] = (t)[3]*(a)[0] + (t)[5]*(a)[1] + (t)[6]*(a)[2])
#define TEN_T3V_OUTER | ( | t, | |||
a | ) |
Value:
( \ (t)[0] = 1.0, \ (t)[1] = (a)[0]*(a)[0], (t)[2] = (a)[0]*(a)[1], (t)[3] = (a)[0]*(a)[2], \ (t)[4] = (a)[1]*(a)[1], (t)[5] = (a)[1]*(a)[2], \ (t)[6] = (a)[2]*(a)[2])
#define TEN_T_ADD | ( | a, | |||
b, | |||||
c | ) |
Value:
( \ (a)[0] = ((b)[0] + (c)[0])/2.0, \ (a)[1] = (b)[1] + (c)[1], \ (a)[2] = (b)[2] + (c)[2], \ (a)[3] = (b)[3] + (c)[3], \ (a)[4] = (b)[4] + (c)[4], \ (a)[5] = (b)[5] + (c)[5], \ (a)[6] = (b)[6] + (c)[6])
#define TEN_T_AFFINE | ( | C, | |||
i, | |||||
x, | |||||
I, | |||||
A, | |||||
B | ) |
Value:
( \ (C)[0] = AIR_AFFINE((i), (x), (I), (A)[0], (B)[0]), \ (C)[1] = AIR_AFFINE((i), (x), (I), (A)[1], (B)[1]), \ (C)[2] = AIR_AFFINE((i), (x), (I), (A)[2], (B)[2]), \ (C)[3] = AIR_AFFINE((i), (x), (I), (A)[3], (B)[3]), \ (C)[4] = AIR_AFFINE((i), (x), (I), (A)[4], (B)[4]), \ (C)[5] = AIR_AFFINE((i), (x), (I), (A)[5], (B)[5]), \ (C)[6] = AIR_AFFINE((i), (x), (I), (A)[6], (B)[6]))
#define TEN_T_COPY | ( | d, | |||
s | ) |
Value:
( \ (d)[0] = (s)[0], \ (d)[1] = (s)[1], \ (d)[2] = (s)[2], \ (d)[3] = (s)[3], \ (d)[4] = (s)[4], \ (d)[5] = (s)[5], \ (d)[6] = (s)[6] )
#define TEN_T_COPY_TT | ( | d, | |||
TT, | |||||
s | ) |
#define TEN_T_DET | ( | t | ) |
Value:
( \ (t)[1]*((t)[4]*(t)[6] - (t)[5]*(t)[5]) \ + (t)[2]*((t)[5]*(t)[3] - (t)[2]*(t)[6]) \ + (t)[3]*((t)[2]*(t)[5] - (t)[3]*(t)[4]))
#define TEN_T_DET_XY | ( | t | ) | ( (t)[1]*(t)[4] - (t)[2]*(t)[2] ) |
#define TEN_T_DET_XZ | ( | t | ) | ( (t)[1]*(t)[6] - (t)[3]*(t)[3] ) |
#define TEN_T_DET_YZ | ( | t | ) | ( (t)[4]*(t)[6] - (t)[5]*(t)[5] ) |
#define TEN_T_DOT | ( | A, | |||
B | ) |
Value:
( \ (A)[1]*(B)[1] + 2*(A)[2]*(B)[2] + 2*(A)[3]*(B)[3] \ + (A)[4]*(B)[4] + 2*(A)[5]*(B)[5] \ + (A)[6]*(B)[6] )
#define TEN_T_EXISTS | ( | t | ) |
Value:
( \ AIR_EXISTS((t)[0]) \ && AIR_EXISTS((t)[1]) \ && AIR_EXISTS((t)[2]) \ && AIR_EXISTS((t)[3]) \ && AIR_EXISTS((t)[4]) \ && AIR_EXISTS((t)[5]) \ && AIR_EXISTS((t)[6]) )
#define TEN_T_INCR | ( | a, | |||
b | ) |
Value:
( \ (a)[0] = (b)[0], \ (a)[1] += (b)[1], \ (a)[2] += (b)[2], \ (a)[3] += (b)[3], \ (a)[4] += (b)[4], \ (a)[5] += (b)[5], \ (a)[6] += (b)[6])
#define TEN_T_INV | ( | i, | |||
t, | |||||
det | ) |
Value:
((det) = TEN_T_DET(t), \ (i)[0] = (t)[0], \ (i)[1] = _ELL_2M_DET((t)[4],(t)[5],(t)[5],(t)[6])/(det), \ (i)[2] = -_ELL_2M_DET((t)[2],(t)[5],(t)[3],(t)[6])/(det), \ (i)[3] = _ELL_2M_DET((t)[2],(t)[4],(t)[3],(t)[5])/(det), \ (i)[4] = _ELL_2M_DET((t)[1],(t)[3],(t)[3],(t)[6])/(det), \ (i)[5] = -_ELL_2M_DET((t)[1],(t)[2],(t)[3],(t)[5])/(det), \ (i)[6] = _ELL_2M_DET((t)[1],(t)[2],(t)[2],(t)[4])/(det))
#define TEN_T_LERP | ( | c, | |||
w, | |||||
a, | |||||
b | ) |
Value:
#define TEN_T_NORM | ( | A | ) | (sqrt(TEN_T_DOT(A,A))) |
#define TEN_T_SCALE | ( | a, | |||
s, | |||||
b | ) |
Value:
( \ (a)[0] = (b)[0], \ (a)[1] = (s)*(b)[1], \ (a)[2] = (s)*(b)[2], \ (a)[3] = (s)*(b)[3], \ (a)[4] = (s)*(b)[4], \ (a)[5] = (s)*(b)[5], \ (a)[6] = (s)*(b)[6])
#define TEN_T_SCALE_ADD2 | ( | a, | |||
s, | |||||
b, | |||||
t, | |||||
c | ) |
Value:
( \ (a)[0] = AIR_MIN((b)[0], (c)[0]), \ (a)[1] = (s)*(b)[1] + (t)*(c)[1], \ (a)[2] = (s)*(b)[2] + (t)*(c)[2], \ (a)[3] = (s)*(b)[3] + (t)*(c)[3], \ (a)[4] = (s)*(b)[4] + (t)*(c)[4], \ (a)[5] = (s)*(b)[5] + (t)*(c)[5], \ (a)[6] = (s)*(b)[6] + (t)*(c)[6])
#define TEN_T_SCALE_INCR | ( | a, | |||
s, | |||||
b | ) |
Value:
( \ (a)[0] = (b)[0], \ (a)[1] += (s)*(b)[1], \ (a)[2] += (s)*(b)[2], \ (a)[3] += (s)*(b)[3], \ (a)[4] += (s)*(b)[4], \ (a)[5] += (s)*(b)[5], \ (a)[6] += (s)*(b)[6])
#define TEN_T_SCALE_INCR2 | ( | a, | |||
s, | |||||
b, | |||||
t, | |||||
c | ) |
Value:
( \ (a)[0] = AIR_MIN((b)[0], (c)[0]), \ (a)[1] += (s)*(b)[1] + (t)*(c)[1], \ (a)[2] += (s)*(b)[2] + (t)*(c)[2], \ (a)[3] += (s)*(b)[3] + (t)*(c)[3], \ (a)[4] += (s)*(b)[4] + (t)*(c)[4], \ (a)[5] += (s)*(b)[5] + (t)*(c)[5], \ (a)[6] += (s)*(b)[6] + (t)*(c)[6])
#define TEN_T_SET | ( | t, | |||
conf, | |||||
a, | |||||
b, | |||||
c, | |||||
d, | |||||
e, | |||||
f | ) |
Value:
( \ (t)[0] = (conf), \ (t)[1] = (a), (t)[2] = (b), (t)[3] = (c), \ (t)[4] = (d), (t)[5] = (e), \ (t)[6] = (f) )
#define TEN_T_SET_TT | ( | t, | |||
TT, | |||||
conf, | |||||
a, | |||||
b, | |||||
c, | |||||
d, | |||||
e, | |||||
f | ) |
#define TEN_T_SUB | ( | a, | |||
b, | |||||
c | ) |
Value:
( \ (a)[0] = ((b)[0] + (c)[0])/2.0, \ (a)[1] = (b)[1] - (c)[1], \ (a)[2] = (b)[2] - (c)[2], \ (a)[3] = (b)[3] - (c)[3], \ (a)[4] = (b)[4] - (c)[4], \ (a)[5] = (b)[5] - (c)[5], \ (a)[6] = (b)[6] - (c)[6])
#define TEN_T_TRACE | ( | t | ) | ((t)[1] + (t)[4] + (t)[6]) |
#define TEN_TV_MUL | ( | v2, | |||
t, | |||||
v1 | ) |
Value:
((v2)[0] = (t)[1]*(v1)[0] + (t)[2]*(v1)[1] + (t)[3]*(v1)[2], \ (v2)[1] = (t)[2]*(v1)[0] + (t)[4]*(v1)[1] + (t)[5]*(v1)[2], \ (v2)[2] = (t)[3]*(v1)[0] + (t)[5]*(v1)[1] + (t)[6]*(v1)[2])