|
23 | 23 | #include <ignition/math/Angle.hh> |
24 | 24 | #include <ignition/math/Pose3.hh> |
25 | 25 | #include <ignition/math/Vector3.hh> |
| 26 | +#include "sdf/Actor.hh" |
26 | 27 | #include "sdf/Element.hh" |
27 | 28 | #include "sdf/Error.hh" |
| 29 | +#include "sdf/Link.hh" |
28 | 30 | #include "sdf/Model.hh" |
29 | 31 | #include "sdf/Root.hh" |
30 | 32 | #include "sdf/World.hh" |
|
34 | 36 | #include "test_utils.hh" |
35 | 37 |
|
36 | 38 | ////////////////////////////////////////////////// |
37 | | -TEST(Pose1_9, ModelPose) |
| 39 | +TEST(Pose1_9, PoseExpressionFormats) |
38 | 40 | { |
39 | 41 | using Pose = ignition::math::Pose3d; |
40 | 42 |
|
@@ -136,6 +138,25 @@ TEST(Pose1_9, ModelPose) |
136 | 138 | ASSERT_NE(nullptr, model); |
137 | 139 | ASSERT_EQ("model_quat_xyzw_degrees_false", model->Name()); |
138 | 140 | EXPECT_EQ(Pose(1, 2, 3, 0.7071068, 0.7071068, 0, 0), model->RawPose()); |
| 141 | + |
| 142 | + // //inertial/pose |
| 143 | + model = world->ModelByIndex(17); |
| 144 | + ASSERT_NE(nullptr, model); |
| 145 | + ASSERT_EQ("model_with_inertia_pose", model->Name()); |
| 146 | + { |
| 147 | + const auto link = model->LinkByIndex(0); |
| 148 | + ASSERT_NE(nullptr, link); |
| 149 | + ASSERT_EQ("link_euler_rpy_degrees_true", link->Name()); |
| 150 | + EXPECT_EQ(Pose(1, 2, 3, IGN_DTOR(90), IGN_DTOR(180), IGN_DTOR(270)), |
| 151 | + link->Inertial().Pose()); |
| 152 | + } |
| 153 | + { |
| 154 | + const auto link = model->LinkByIndex(1); |
| 155 | + ASSERT_NE(nullptr, link); |
| 156 | + ASSERT_EQ("link_quat_xyzw", link->Name()); |
| 157 | + EXPECT_EQ(Pose(1, 2, 3, 0.7071068, 0.7071068, 0, 0), |
| 158 | + link->Inertial().Pose()); |
| 159 | + } |
139 | 160 | } |
140 | 161 |
|
141 | 162 | ////////////////////////////////////////////////// |
|
0 commit comments