Factory for state blocks
The factory will be able to create state blocks on the fly given:
- a key: string to identify the state block
- a Eigen::VectorXd with the state
- a bool with fixed/unfixed
Strings will be identified as follows:
- "O", a quaternion if Vector::size() == 4;
- "O", an angle if Vector::size() == 1;
- "O3", "Q", "Quaternion", "StateQuaternion": a state quaternion. The size must be 4.
- "O2", "A", "Angle", "StateAngle": a state angle. The size must be 1.
- "H3", "Homogeneous3D", a 3D homogeneous vector. The size must be 4.
- "P","V","I","W",... and many other letters: a regular SB. The size is that given by the provided Eigen::Vector.
- "Base", "Vector": a regular SB . The size is that given by the provided Eigen::Vector.
That is, any string other than "O, O3, Q, Quaternion, StateQuaternion, O2, A, Angle, StateAngle, H3 or Homogeneous3D" will produce a regular state block of the size indicated by the vector, and without local parametrization.
See that for orientations, the size is given as part of the string.
Edited by Joan Solà Ortega