3 #include <gtest/gtest.h>
4 #include <Eigen/Geometry>
13 TEST(TesseractURDFUnit, parse_geometry)
15 const bool global_make_convex =
false;
16 const auto parse_geometry_fn = [&](
const tinyxml2::XMLElement* xml_element,
24 std::string str = R
"(<geometry extra="0 0 0">
28 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
34 std::string str = R
"(<geometry extra="0 0 0">
38 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
44 std::string str = R
"(<geometry extra="0 0 0">
45 <cylinder radius="1" length="1" />
48 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
54 std::string str = R
"(<geometry extra="0 0 0">
55 <tesseract:cone radius="1" length="1" />
58 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
64 std::string str = R
"(<geometry extra="0 0 0">
65 <tesseract:capsule radius="1" length="1" />
68 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
74 std::string str = R
"(<geometry extra="0 0 0">
75 <tesseract:octomap shape_type="box" extra="0 0 0">
76 <tesseract:octree filename="package://tesseract_support/meshes/box_2m.bt" extra="0 0 0"/>
80 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
86 std::string str = R
"(<geometry extra="0 0 0">
87 <mesh filename="package://tesseract_support/meshes/box_2m.ply" scale="1 2 1" extra="0 0 0"/>
90 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
96 std::string str = R
"(<geometry extra="0 0 0">
97 <tesseract:sdf_mesh filename="package://tesseract_support/meshes/box_2m.ply" scale="1 2 1" extra="0 0 0"/>
100 EXPECT_TRUE(runTest<tesseract_geometry::Geometry::Ptr>(
106 std::string str = R
"(<geometry>
107 <unknown_type extra="0 0 0"/>
110 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
116 std::string str = R
"(<geometry>
119 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
125 std::string str = R
"(<geometry>
129 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
135 std::string str = R
"(<geometry extra="0 0 0">
139 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
145 std::string str = R
"(<geometry extra="0 0 0">
149 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
155 std::string str = R
"(<geometry extra="0 0 0">
159 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
165 std::string str = R
"(<geometry extra="0 0 0">
166 <tesseract:capsule />
169 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
175 std::string str = R
"(<geometry extra="0 0 0">
176 <tesseract:octomap shape_type="box" extra="0 0 0">
181 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
187 std::string str = R
"(<geometry extra="0 0 0">
191 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
197 std::string str = R
"(<geometry extra="0 0 0">
198 <tesseract:sdf_mesh />
201 EXPECT_FALSE(runTest<tesseract_geometry::Geometry::Ptr>(
207 TEST(TesseractURDFUnit, write_geometry)
217 writeTest<tesseract_geometry::Geometry::Ptr>(
226 writeTest<tesseract_geometry::Geometry::Ptr>(
235 writeTest<tesseract_geometry::Geometry::Ptr>(
244 writeTest<tesseract_geometry::Geometry::Ptr>(
253 writeTest<tesseract_geometry::Geometry::Ptr>(
262 writeTest<tesseract_geometry::Geometry::Ptr>(
271 writeTest<tesseract_geometry::Geometry::Ptr>(
278 Eigen::Vector3d(1, 0, 0),
279 Eigen::Vector3d(0, 1, 0) };
280 Eigen::VectorXi indices(4);
281 indices << 3, 0, 1, 2;
283 std::make_shared<tesseract_common::VectorVector3d>(vertices), std::make_shared<Eigen::VectorXi>(indices));
288 writeTest<tesseract_geometry::Geometry::Ptr>(
295 Eigen::Vector3d(1, 0, 0),
296 Eigen::Vector3d(0, 1, 0) };
297 Eigen::VectorXi indices(4);
298 indices << 3, 0, 1, 2;
300 std::make_shared<tesseract_common::VectorVector3d>(vertices), std::make_shared<Eigen::VectorXi>(indices));
305 writeTest<tesseract_geometry::Geometry::Ptr>(
316 writeTest<tesseract_geometry::Geometry::Ptr>(
326 writeTest<tesseract_geometry::Geometry::Ptr>(