3 #include <gtest/gtest.h>
4 #include <Eigen/Geometry>
13 TEST(TesseractURDFUnit, parse_collision)
16 const bool global_make_convex =
false;
17 const auto parse_collision_fn = [&](
const tinyxml2::XMLElement* xml_element,
23 std::string str = R
"(<collision extra="0 0 0">
24 <origin xyz="1 2 3" rpy="0 0 0" />
30 EXPECT_TRUE(runTest<tesseract_scene_graph::Collision::Ptr>(
33 EXPECT_FALSE(elem->origin.isApprox(Eigen::Isometry3d::Identity(), 1e-8));
37 std::string str = R
"(<collision>
43 EXPECT_TRUE(runTest<tesseract_scene_graph::Collision::Ptr>(
46 EXPECT_TRUE(elem->origin.isApprox(Eigen::Isometry3d::Identity(), 1e-8));
50 std::string str = R
"(<collision>
52 <mesh filename="package://tesseract_support/meshes/box_box.dae"/>
56 EXPECT_TRUE(runTest<tesseract_scene_graph::Collision::Ptr>(
59 EXPECT_TRUE(elem->origin.isApprox(Eigen::Isometry3d::Identity(), 1e-8));
61 EXPECT_EQ(std::dynamic_pointer_cast<const tesseract_geometry::CompoundMesh>(elem->geometry)->getMeshes().size(), 2);
65 std::string str = R
"(<collision extra="0 0 0">
66 <origin xyz="1 2 3 5" rpy="0 0 0" />
72 EXPECT_FALSE(runTest<tesseract_scene_graph::Collision::Ptr>(
78 std::string str = R
"(<collision>
80 <box size="1 2 3 4" />
84 EXPECT_FALSE(runTest<tesseract_scene_graph::Collision::Ptr>(
90 std::string str = R
"(<collision>
93 EXPECT_FALSE(runTest<tesseract_scene_graph::Collision::Ptr>(
99 TEST(TesseractURDFUnit, write_collision)
103 collision->name =
"test";
104 collision->origin = Eigen::Isometry3d::Identity();
105 collision->geometry = std::make_shared<tesseract_geometry::Box>(1.0, 1.0, 1.0);
109 writeTest<tesseract_scene_graph::Collision::Ptr>(
116 collision->origin = Eigen::Isometry3d::Identity();
117 collision->geometry = std::make_shared<tesseract_geometry::Box>(1.0, 1.0, 1.0);
121 writeTest<tesseract_scene_graph::Collision::Ptr>(
128 collision->origin = Eigen::Isometry3d::Identity();
129 collision->origin.translation() = Eigen::Vector3d(1.0, 2.0, 3.0);
130 collision->geometry = std::make_shared<tesseract_geometry::Box>(1.0, 1.0, 1.0);
134 writeTest<tesseract_scene_graph::Collision::Ptr>(
143 writeTest<tesseract_scene_graph::Collision::Ptr>(collision,
154 collision->name =
"test";
155 collision->origin = Eigen::Isometry3d::Identity();
156 collision->geometry =
nullptr;
159 writeTest<tesseract_scene_graph::Collision::Ptr>(collision,