Go to the documentation of this file.00001 #ifndef GAZEBO_VERSIONHELPERS_H
00002 #define GAZEBO_VERSIONHELPERS_H
00003
00004 #include <gazebo/gazebo.hh>
00005
00006 namespace gazebo
00007 {
00008
00009
00010 #if GAZEBO_MAJOR_VERSION >= 8
00011 namespace gz_math = ignition::math;
00012 typedef gz_math::Pose3d GzPose3;
00013 typedef gz_math::Vector3d GzVector3;
00014 typedef gz_math::Quaterniond GzQuaternion;
00015 typedef gz_math::Matrix4d GzMatrix4;
00016 typedef gz_math::Matrix3d GzMatrix3;
00017 #else
00018 namespace gz_math = gazebo::math;
00019 typedef gz_math::Pose GzPose3;
00020 typedef gz_math::Vector3 GzVector3;
00021 typedef gz_math::Quaternion GzQuaternion;
00022 typedef gz_math::Matrix4 GzMatrix4;
00023 typedef gz_math::Matrix3 GzMatrix3;
00024 #endif
00025
00026
00027
00028
00030 GzPose3 GetWorldPose(const gazebo::physics::LinkPtr &link);
00031
00033 GzVector3 GetWorldVelocity(const gazebo::physics::LinkPtr &link);
00034
00036 GzMatrix4 GetIdentity();
00037
00039 GzMatrix4 GetMatrix(const GzPose3 &pose);
00040
00042 GzMatrix4 GetMatrix(const GzVector3 &pos);
00043
00045 double GetLength(const GzVector3 &v);
00046
00048 GzVector3 GetVector(const double x, const double y, const double z);
00049
00051 void SetX(GzVector3 &v, const double val);
00052 void SetY(GzVector3 &v, const double val);
00053 void SetZ(GzVector3 &v, const double val);
00054 double GetX(const GzVector3 &v);
00055 double GetY(const GzVector3 &v);
00056 double GetZ(const GzVector3 &v);
00057
00058
00060 void SetX(GzQuaternion &q, const double val);
00061 void SetY(GzQuaternion &q, const double val);
00062 void SetZ(GzQuaternion &q, const double val);
00063 void SetW(GzQuaternion &q, const double val);
00064 double GetX(const GzQuaternion &q);
00065 double GetY(const GzQuaternion &q);
00066 double GetZ(const GzQuaternion &q);
00067 double GetW(const GzQuaternion &q);
00068
00070 GzVector3 GetPos(const GzPose3 &pose);
00072 GzVector3 GetPos(const GzMatrix4 &mat);
00073
00075 GzQuaternion GetRot(const GzPose3 &pose);
00077 GzQuaternion GetRot(const GzMatrix4 &mat);
00078
00080 gazebo::physics::PhysicsEnginePtr GetPhysics(
00081 const gazebo::physics::WorldPtr &world);
00082
00083
00085 gazebo::physics::EntityPtr GetEntityByName(
00086 const gazebo::physics::WorldPtr &world, const std::string &name);
00087
00089 gazebo::physics::ModelPtr GetModelByName(
00090 const gazebo::physics::WorldPtr &world, const std::string &name);
00091
00093 gazebo::physics::Model_V GetModels(const gazebo::physics::WorldPtr &world);
00094
00096 template<typename T>
00097 GzVector3 GetSize3(const T& t)
00098 {
00099 #if GAZEBO_MAJOR_VERSION >= 8
00100 return t.Size();
00101 #else
00102 return t.GetSize();
00103 #endif
00104 }
00105
00107 template<typename T>
00108 std::string GetName(const T& t)
00109 {
00110 #if GAZEBO_MAJOR_VERSION >= 8
00111 return t.Name();
00112 #else
00113 return t.GetName();
00114 #endif
00115 }
00116
00118 template<typename T>
00119 gz_math::Box GetBoundingBox(const T &t)
00120 {
00121 #if GAZEBO_MAJOR_VERSION >= 8
00122 return t.BoundingBox();
00123 #else
00124 return t.GetBoundingBox();
00125 #endif
00126 }
00127
00129 GzVector3 GetBoundingBoxDimensions(const gz_math::Box &box);
00130
00132 template<typename T>
00133 GzPose3 GetRelativePose(const T &t)
00134 {
00135 #if GAZEBO_MAJOR_VERSION >= 8
00136 return t.RelativePose();
00137 #else
00138 return t.GetRelativePose();
00139 #endif
00140 }
00141
00142
00143
00144 }
00145
00146 #endif // GAZEBO_VERSIONHELPERS_H