Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _POSITION_H
00012 #define _POSITION_H
00013
00021 #include <angles/angles.h>
00022
00023 namespace Position
00024 {
00026 class Pose3D
00027 {
00028 public:
00030 double x;
00032 double y;
00034 double z;
00036 double roll;
00038 double pitch;
00040 double yaw;
00041
00042 Pose3D(void):
00043 x(0.0), y(0.0), z(0.0), roll(0.0), pitch(0.0), yaw(0.0)
00044 {}
00045 Pose3D(const Pose3D ©):
00046 x(copy.x), y(copy.y), z(copy.z),
00047 roll(copy.roll), pitch(copy.pitch), yaw(copy.yaw)
00048 {}
00049 Pose3D(double _x, double _y, double _z,
00050 double _roll, double _pitch, double _yaw):
00051 x(_x), y(_y), z(_z), roll(_roll), pitch(_pitch), yaw(_yaw)
00052 {}
00053
00054
00055 bool operator==(const Pose3D &that) const
00056 {
00057 return (this->x == that.x
00058 && this->y == that.y
00059 && this->z == that.z
00060 && this->roll == that.roll
00061 && this->pitch == that.pitch
00062 && this->yaw == that.yaw);
00063 }
00064 bool operator!=(const Pose3D &that) const
00065 {
00066 return (this->x != that.x
00067 || this->y != that.y
00068 || this->z != that.z
00069 || this->roll != that.roll
00070 || this->pitch != that.pitch
00071 || this->yaw != that.yaw);
00072 }
00073 Pose3D operator+(const Pose3D &that) const
00074 {
00075 return Pose3D(this->x + that.x,
00076 this->y + that.y,
00077 this->z + that.z,
00078 angles::normalize_angle(this->roll + that.roll),
00079 angles::normalize_angle(this->pitch + that.pitch),
00080 angles::normalize_angle(this->yaw + that.yaw));
00081 }
00082 Pose3D operator-(const Pose3D &that) const
00083 {
00084 return Pose3D(this->x - that.x,
00085 this->y - that.y,
00086 this->z - that.z,
00087 angles::normalize_angle(this->roll - that.roll),
00088 angles::normalize_angle(this->pitch - that.pitch),
00089 angles::normalize_angle(this->yaw - that.yaw));
00090 }
00091 };
00092
00094 class Position3D
00095 {
00096 public:
00098 Pose3D pos;
00100 Pose3D vel;
00101 };
00102 }
00103
00104 #endif // _POSITION_H