24 #include "../Util/OrientationConversion.h"
27 #include "../exceptions/InterpolationNotDefinedException.h"
28 #include "../exceptions/NoInterpolationPossibleException.h"
41 for (
unsigned int i = 0; i < this->controlPoints.size() - 1; i++)
43 PoseBasePtr current = this->controlPoints.at(i);
44 PoseBasePtr next = this->controlPoints.at(i + 1);
45 int deltaX = next->position->x - current->position->x;
46 int deltaY = next->position->y - current->position->y;
47 int deltaZ = next->position->z - current->position->z;
48 connectingVector.push_back(*
new Eigen::Vector3f(deltaX, deltaY, deltaZ));
55 if (time < 0 || time > 1)
65 double segmentRelativeTime =
69 Eigen::Vector3f start =
70 Eigen::Vector3f(current->position->x, current->position->y, current->position->z);
71 Eigen::Vector3f transition = connectingVector[segment];
72 transition *= segmentRelativeTime;
73 Eigen::Vector3f position = start + transition;
74 return *
new PoseBasePtr(