| 89 | } |
| 90 | |
| 91 | void IsotropicTransforms::initialize_3D_rotations() { |
| 92 | m_rotations.clear(); |
| 93 | m_rotations.push_back(MatrixF::Identity(3, 3)); |
| 94 | Matrix3F rot_x_90, rot_x_180, rot_x_270; |
| 95 | Matrix3F rot_y_90, rot_y_180, rot_y_270; |
| 96 | Matrix3F rot_z_90, rot_z_180, rot_z_270; |
| 97 | |
| 98 | rot_x_90 << 1, 0, 0, 0, 0, -1, 0, 1, 0; |
| 99 | rot_x_180 = rot_x_90 * rot_x_90; |
| 100 | rot_x_270 = rot_x_180 * rot_x_90; |
| 101 | |
| 102 | rot_y_90 << 0, 0, -1, 0, 1, 0, 1, 0, 0; |
| 103 | rot_y_180 = rot_y_90 * rot_y_90; |
| 104 | rot_y_270 = rot_y_180 * rot_y_90; |
| 105 | |
| 106 | rot_z_90 << 0, -1, 0, 1, 0, 0, 0, 0, 1; |
| 107 | rot_z_180 = rot_z_90 * rot_z_90; |
| 108 | rot_z_270 = rot_z_180 * rot_z_90; |
| 109 | |
| 110 | m_rotations.push_back(rot_x_90); |
| 111 | m_rotations.push_back(rot_x_180); |
| 112 | m_rotations.push_back(rot_x_270); |
| 113 | m_rotations.push_back(rot_y_90); |
| 114 | m_rotations.push_back(rot_y_180); |
| 115 | m_rotations.push_back(rot_y_270); |
| 116 | m_rotations.push_back(rot_z_90); |
| 117 | m_rotations.push_back(rot_z_180); |
| 118 | m_rotations.push_back(rot_z_270); |
| 119 | } |
| 120 | |