Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef POSE2D_H
00020 #define POSE2D_H
00021
00022
00023 #include "rtc/rtcMath.h"
00024 #include "rtc/rtcVec2.h"
00025 #include "rtc/rtcVec3.h"
00026 #include "rtc/rtcRotation2D.h"
00027
00028
00029 namespace rtc {
00030
00034 class Pose2D {
00035 public:
00036
00037 Pose2D();
00038 Pose2D(float x, float y, float theta);
00039 Pose2D(const Vec2f& translation, float rotation);
00040 Pose2D(const Vec3f& pose);
00041 ~Pose2D();
00042
00043
00044 float x() const;
00045 float y() const;
00046 float theta() const;
00047
00048 Vec2f getTranslation() const;
00049 Rotation2Df getRotation() const;
00050 Transform2Df getTransform() const;
00051
00052
00053 void addOffset(const Vec2f& xOffset, float eOffset);
00054
00055
00056 void set(const Pose2D& pose);
00057 void set(float x, float y, float theta);
00058 void set(const Vec2f& translation, float rotation);
00059 void set(const Vec3f& pose);
00060 void set(const Transform2Df& transform);
00061
00062
00063 Vec3f p;
00064 };
00065
00066
00067 std::ostream& operator<<(std::ostream& os, const Pose2D& pose);
00068 std::istream& operator>>(std::istream& is, Pose2D& pose);
00069
00070
00071 bool rtc_write(OutputHandler& oh,const Pose2D& data);
00072 bool rtc_read(InputHandler& ih,Pose2D& data);
00073
00074
00075 }
00076
00077 #endif // RTC_POSE2D_H defined
00078