9 Rv[0] = pSV->
R[0][0] * v[0] + pSV->
R[0][1] * v[1] + pSV->
R[0][2] * v[2];
10 Rv[1] = pSV->
R[1][0] * v[0] + pSV->
R[1][1] * v[1] + pSV->
R[1][2] * v[2];
11 Rv[2] = pSV->
R[2][0] * v[0] + pSV->
R[2][1] * v[1] + pSV->
R[2][2] * v[2];
16 v[0] = pSV->
R[0][0] * Rv[0] + pSV->
R[1][0] * Rv[1] + pSV->
R[2][0] * Rv[2];
17 v[1] = pSV->
R[0][1] * Rv[0] + pSV->
R[1][1] * Rv[1] + pSV->
R[2][1] * Rv[2];
18 v[2] = pSV->
R[0][2] * Rv[0] + pSV->
R[1][2] * Rv[1] + pSV->
R[2][2] * Rv[2];
25 for (
int i = 0; i < 3; i++)
27 for (
int j = 0; j < 3; j++)
30 for (
int k = 0; k < 3; k++)
32 for (
int l = 0; l < 3; l++)
34 val += pSV->
R[i][k] * m[k][l] * pSV->
R[j][l];
47 for (
int i = 0; i < 3; i++)
49 for (
int j = 0; j < 3; j++)
52 for (
int k = 0; k < 3; k++)
54 for (
int l = 0; l < 3; l++)
56 val += pSV->
R[k][i] * RmRT[k][l] * pSV->
R[l][j];
66 return (v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
71 return (u[0] * v[0] + u[1] * v[1] + u[2] * v[2]);
76 return (x * x + y * y + z * z);
86 return (x1 * x2 + y1 * y2 + z1 * z2);
91 if (a == b || b == c || c == a)
95 else if (b == (a + 1) || c == (b + 1) || a == (c + 1))
void antirotate_matrix(const real *RmRT[3], const solverVariables_t *pSV, real *m[3])
Definition: geometry.h:43
real levi_civita(size_t a, size_t b, size_t c)
Definition: geometry.h:89
real dot_product(const real *v)
Definition: geometry.h:64
void rotate_vector(const real v[3], const solverVariables_t *pSV, real Rv[3])
Definition: geometry.h:6
void rotate_matrix(const real *m[3], const solverVariables_t *pSV, real *RmRT[3])
Definition: geometry.h:21
void antirotate_vector(const real Rv[3], const solverVariables_t *pSV, real v[3])
Definition: geometry.h:14
Definition: wmapplication.h:38
real R[3][3]
Definition: wmapplication.h:43
#define real
Definition: wmoclunstructuredreconstruction.h:11