クォータニオン+平行移動

クォータニオンで回転してそにょ後平行移動させるにゃ〜って変換にゃの合成にゃは、回転と平行移動にゃをわけて計算にゃ。

変換1(q_1で回転してt_1で平行移動)、変換2(q_2で回転してt_2で平行移動)。
変換2の後に変換1にゃをする合成にゃは、回転:q_1q_2、移動:q_1t_2q_1^* + t_1って感じにゃににゃるですにゃ。

// 脳内擬似コード
struct QuatTrans {
 Quat q;
 Vec3 t;
};
quatTrans12.q = quatTrans1.q * quatTrans2.q;
quatTrans12.t = quatTrans1.q * quatTrans2.t * quatTrans1.q.conjugate() + quatTrans1.t;