| 173 |  | IAtom(0, 0) += mtmp * r2; | 
| 174 |  | IAtom(1, 1) += mtmp * r2; | 
| 175 |  | IAtom(2, 2) += mtmp * r2; | 
| 176 | + | Itmp += IAtom; | 
| 177 |  |  | 
| 178 |  | //project the inertial moment of directional atoms into this rigid body | 
| 179 |  | if (atoms_[i]->isDirectional()) { | 
| 180 | < | IAtom += atoms_[i]->getI(); | 
| 181 | < | Itmp += refOrients_[i].transpose() * IAtom * refOrients_[i]; | 
| 181 | < | } else { | 
| 182 | < | Itmp += IAtom; | 
| 183 | < | } | 
| 180 | > | Itmp += refOrients_[i].transpose() * atoms_[i]->getI() * refOrients_[i]; | 
| 181 | > | } | 
| 182 |  | } | 
| 183 |  |  | 
| 184 | + | //    std::cout << Itmp << std::endl; | 
| 185 | + |  | 
| 186 |  | //diagonalize | 
| 187 |  | Vector3d evals; | 
| 188 |  | Mat3x3d::diagonalize(Itmp, evals, sU_); |