33 |
|
double kinetic; |
34 |
|
double amass; |
35 |
|
double aVel[3], aJ[3], I[3][3]; |
36 |
< |
int j, kl; |
36 |
> |
int i, j, k, kl; |
37 |
|
|
38 |
|
double kinetic_global; |
39 |
|
vector<StuntDouble *> integrableObjects = info->integrableObjects; |
53 |
|
integrableObjects[kl]->getJ( aJ ); |
54 |
|
integrableObjects[kl]->getI( I ); |
55 |
|
|
56 |
< |
for (j=0; j<3; j++) |
57 |
< |
kinetic += aJ[j]*aJ[j] / I[j][j]; |
58 |
< |
|
56 |
> |
if (integrableObjects[kl]->isLinear()) { |
57 |
> |
i = integrableObjects[kl]->linearAxis(); |
58 |
> |
j = (i+1)%3; |
59 |
> |
k = (i+2)%3; |
60 |
> |
kinetic += aJ[j]*aJ[j]/I[j][j] + aJ[k]*aJ[k]/I[k][k]; |
61 |
> |
} else { |
62 |
> |
for (j=0; j<3; j++) |
63 |
> |
kinetic += aJ[j]*aJ[j] / I[j][j]; |
64 |
> |
} |
65 |
|
} |
66 |
|
} |
67 |
|
#ifdef IS_MPI |