#ifndef ENDCIRCLETRAJ_H #define ENDCIRCLETRAJ_H #include "trajectory/EndHomoTraj.h" class EndCircleTraj: public EndHomoTraj{ public: EndCircleTraj(CtrlComponents *ctrlComp); ~EndCircleTraj(){} void setEndRoundTraj(HomoMat startHomo, Vec3 axisPointFromInit, Vec3 axisDirection, double maxSpeed, double angle, bool keepOrientation = true); void setEndRoundTraj(std::string stateName, Vec3 axisPointFromInit, Vec3 axisDirection, double maxSpeed, double angle, bool keepOrientation = true); void setEndRoundTraj(Vec6 startP, Vec6 middleP, Vec6 endP, double speed); private: void _centerCircle(Vec3 p1, Vec3 p2, Vec3 p3); bool _getEndTraj(HomoMat &homo, Vec6 &twist); Vec3 _center, _omegaAxis; double _radius, _theta; Vec6 _middlePosture; Vec6 _middleQ; HomoMat _initHomoToCenter, _middleHomo, _centerHomo; RotMat _initOri; bool _keepOrientation; }; #endif // ENDCIRCLETRAJ_H