Express Vector and orientation in a different referencial in C++ with Eigen

  c++, eigen

Let’s say I have three referencials (A,B and C)

enter image description here

I know the following values:

  • the position of B in A (as an Eigen::Vector3d)
  • the orientation of B in A (as an Eigen::Quaterniond)
  • the position of C in B (as an Eigen::Vector3d)
  • the orientation of C in B (as an Eigen::Quaterniond)

How can I find the position and the orientation of A in C with C++ and Eigen?

Eigen::Vector3d p_B_in_A = Eigen::Vector3d(...);
Eigen::Quaterniond q_B_in_A = Eigen::Quaterniond(...);
Eigen::Vector3d p_C_in_B = Eigen::Vector3d(...);
Eigen::Quaterniond q_C_in_B = Eigen::Quaterniond(...);

Eigen::Vector3d p_A_in_C = ???
Eigen::Quaterniond q_A_in_C = ???

Source: Windows Questions C++