Go to the documentation of this file.00001 #include <gazebo_version_helpers/GazeboVersionHelpers.h>
00002 #include <gazebo/physics/physics.hh>
00003
00004 using gazebo::GzPose3;
00005 using gazebo::GzVector3;
00006 using gazebo::GzMatrix3;
00007 using gazebo::GzMatrix4;
00008
00010 GzPose3 gazebo::GetWorldPose(const gazebo::physics::LinkPtr &link)
00011 {
00012 #if GAZEBO_MAJOR_VERSION >= 8
00013 return link->WorldPose();
00014 #else
00015 return link->GetWorldPose();
00016 #endif
00017 }
00018
00020 GzVector3 gazebo::GetWorldVelocity(const gazebo::physics::LinkPtr &link)
00021 {
00022 #if GAZEBO_MAJOR_VERSION >= 8
00023 return link->WorldLinearVel();
00024 #else
00025 return link->GetWorldLinearVel();
00026 #endif
00027 }
00028
00029
00031 GzMatrix4 gazebo::GetIdentity()
00032 {
00033 #if GAZEBO_MAJOR_VERSION >= 8
00034 return GzMatrix4::Identity;
00035 #else
00036 return GzMatrix4::IDENTITY;
00037 #endif
00038 }
00039
00041 GzMatrix4 gazebo::GetMatrix(const GzPose3 &pose)
00042 {
00043 #if GAZEBO_MAJOR_VERSION >= 8
00044 return GzMatrix4(pose);
00045 #else
00046 GzMatrix4 mat = pose.rot.GetAsMatrix4();
00047 mat.SetTranslate(pose.pos);
00048 return mat;
00049 #endif
00050 }
00051
00053 GzMatrix4 gazebo::GetMatrix(const GzVector3 &pos)
00054 {
00055 GzMatrix4 mat = GetIdentity();
00056 #if GAZEBO_MAJOR_VERSION >= 8
00057 mat.SetTranslation(pos);
00058 #else
00059 mat.SetTranslate(pos);
00060 #endif
00061 return mat;
00062 }
00063
00065 double gazebo::GetLength(const GzVector3 &v)
00066 {
00067 #if GAZEBO_MAJOR_VERSION >= 8
00068 return v.Length();
00069 #else
00070 return v.GetLength();
00071 #endif
00072 }
00073
00075 void gazebo::SetX(GzVector3 &v, const double val)
00076 {
00077 #if GAZEBO_MAJOR_VERSION >= 8
00078 v.X(val);
00079 #else
00080 v.x = val;
00081 #endif
00082 }
00083
00085 void gazebo::SetY(GzVector3 &v, const double val)
00086 {
00087 #if GAZEBO_MAJOR_VERSION >= 8
00088 v.Y(val);
00089 #else
00090 v.y = val;
00091 #endif
00092 }
00093
00095 void gazebo::SetZ(GzVector3 &v, const double val)
00096 {
00097 #if GAZEBO_MAJOR_VERSION >= 8
00098 v.Z(val);
00099 #else
00100 v.z = val;
00101 #endif
00102 }
00103
00105 double gazebo::GetX(const GzVector3 &v)
00106 {
00107 #if GAZEBO_MAJOR_VERSION >= 8
00108 return v.X();
00109 #else
00110 return v.x;
00111 #endif
00112 }
00113
00115 double gazebo::GetY(const GzVector3 &v)
00116 {
00117 #if GAZEBO_MAJOR_VERSION >= 8
00118 return v.Y();
00119 #else
00120 return v.y;
00121 #endif
00122 }
00123
00125 double gazebo::GetZ(const GzVector3 &v)
00126 {
00127 #if GAZEBO_MAJOR_VERSION >= 8
00128 return v.Z();
00129 #else
00130 return v.z;
00131 #endif
00132 }
00133
00135 void gazebo::SetX(GzQuaternion &q, const double val)
00136 {
00137 #if GAZEBO_MAJOR_VERSION >= 8
00138 q.X(val);
00139 #else
00140 q.x = val;
00141 #endif
00142 }
00143
00145 void gazebo::SetY(GzQuaternion &q, const double val)
00146 {
00147 #if GAZEBO_MAJOR_VERSION >= 8
00148 q.Y(val);
00149 #else
00150 q.y = val;
00151 #endif
00152 }
00153
00155 void gazebo::SetZ(GzQuaternion &q, const double val)
00156 {
00157 #if GAZEBO_MAJOR_VERSION >= 8
00158 q.Z(val);
00159 #else
00160 q.z = val;
00161 #endif
00162 }
00163
00165 void gazebo::SetW(GzQuaternion &q, const double val)
00166 {
00167 #if GAZEBO_MAJOR_VERSION >= 8
00168 q.W(val);
00169 #else
00170 q.w = val;
00171 #endif
00172 }
00173
00175 double gazebo::GetX(const GzQuaternion &q)
00176 {
00177 #if GAZEBO_MAJOR_VERSION >= 8
00178 return q.X();
00179 #else
00180 return q.x;
00181 #endif
00182 }
00183
00185 double gazebo::GetY(const GzQuaternion &q)
00186 {
00187 #if GAZEBO_MAJOR_VERSION >= 8
00188 return q.Y();
00189 #else
00190 return q.y;
00191 #endif
00192 }
00193
00195 double gazebo::GetZ(const GzQuaternion &q)
00196 {
00197 #if GAZEBO_MAJOR_VERSION >= 8
00198 return q.Z();
00199 #else
00200 return q.z;
00201 #endif
00202 }
00203
00205 double gazebo::GetW(const GzQuaternion &q)
00206 {
00207 #if GAZEBO_MAJOR_VERSION >= 8
00208 return q.W();
00209 #else
00210 return q.w;
00211 #endif
00212 }
00213
00215 GzVector3 gazebo::GetVector(const double x, const double y, const double z)
00216 {
00217 #if GAZEBO_MAJOR_VERSION >= 8
00218 GzVector3 v(x, y, z);
00219
00220
00221
00222 #else
00223 GzVector3 v;
00224 v.x = x;
00225 v.y = y;
00226 v.z = z;
00227 #endif
00228 return v;
00229 }
00230
00232 GzVector3 gazebo::GetPos(const GzPose3 &pose)
00233 {
00234 #if GAZEBO_MAJOR_VERSION >= 8
00235 return pose.Pos();
00236 #else
00237 return pose.pos;
00238 #endif
00239 }
00240
00242 gazebo::GzQuaternion gazebo::GetRot(const GzPose3 &pose)
00243 {
00244 #if GAZEBO_MAJOR_VERSION >= 8
00245 return pose.Rot();
00246 #else
00247 return pose.rot;
00248 #endif
00249 }
00250
00252 GzVector3 gazebo::GetPos(const GzMatrix4 &mat)
00253 {
00254 #if GAZEBO_MAJOR_VERSION >= 8
00255 return mat.Translation();
00256 #else
00257 return mat.GetTranslation();
00258 #endif
00259 }
00260
00262 gazebo::GzQuaternion gazebo::GetRot(const GzMatrix4 &mat)
00263 {
00264 #if GAZEBO_MAJOR_VERSION >= 8
00265 return mat.Rotation();
00266 #else
00267 return mat.GetRotation();
00268 #endif
00269 }
00270
00272 gazebo::physics::PhysicsEnginePtr gazebo::GetPhysics(
00273 const gazebo::physics::WorldPtr &world)
00274 {
00275 #if GAZEBO_MAJOR_VERSION >= 8
00276 return world->Physics();
00277 #else
00278 return world->GetPhysicsEngine();
00279 #endif
00280 }
00281
00283 gazebo::physics::EntityPtr gazebo::GetEntityByName(
00284 const gazebo::physics::WorldPtr &world, const std::string &name)
00285 {
00286 #if GAZEBO_MAJOR_VERSION >= 8
00287 return world->EntityByName(name);
00288 #else
00289 return world->GetEntity(name);
00290 #endif
00291
00292 }
00293
00295 gazebo::physics::ModelPtr gazebo::GetModelByName(
00296 const gazebo::physics::WorldPtr &world, const std::string &name)
00297 {
00298 #if GAZEBO_MAJOR_VERSION >= 8
00299 return world->ModelByName(name);
00300 #else
00301 return world->GetModel(name);
00302 #endif
00303 }
00304
00306 gazebo::physics::Model_V gazebo::GetModels(
00307 const gazebo::physics::WorldPtr &world)
00308 {
00309 #if GAZEBO_MAJOR_VERSION >= 8
00310 return world->Models();
00311 #else
00312 return world->GetModels();
00313 #endif
00314 }
00315
00317 gazebo::GzVector3 gazebo::GetBoundingBoxDimensions(const gz_math::Box &box)
00318 {
00319 #if GAZEBO_MAJOR_VERSION >= 8
00320 GzVector3 bb(box.XLength(), box.YLength(), box.ZLength());
00321 #else
00322 GzVector3 bb(box.GetXLength(), box.GetYLength(), box.GetZLength());
00323 #endif
00324 return bb;
00325 }