3 #include <gtest/gtest.h>
4 #include <Eigen/Geometry>
15 std::string tmppkg = tmp +
"tmppkg";
16 if (!std::filesystem::is_directory(tmppkg) || !std::filesystem::exists(tmppkg))
18 std::filesystem::create_directory(tmppkg);
23 TEST(TesseractURDFUnit, parse_sdf_mesh)
28 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl" scale="1 2 1" extra="0 0 0"/>)";
29 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
45 std::string str = R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl"/>)";
46 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
62 std::string str = R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl"/>)";
63 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
79 std::string str = R
"(<tesseract:sdf_mesh filename="abc" scale="1 2 1"/>)";
80 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
91 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl" scale="1 a 1"/>)";
92 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
103 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl" scale="a 1 1"/>)";
104 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
115 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl" scale="1 1 a"/>)";
116 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
127 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.ply" scale="-1 2 1" />)";
128 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
140 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.ply" scale="1 -1 1" />)";
141 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
153 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.ply" scale="1 2 -1" />)";
154 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
166 R
"(<tesseract:sdf_mesh filename="package://tesseract_support/meshes/sphere_p25m.stl" scale="1 2 1 3"/>)";
167 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
177 std::string str = R
"(<tesseract:sdf_mesh scale="1 2 1"/>)";
178 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
188 std::string str = R
"(<tesseract:sdf_mesh />)";
189 std::vector<tesseract_geometry::SDFMesh::Ptr> geom;
199 TEST(TesseractURDFUnit, write_sdf_mesh)
203 Eigen::Vector3d(1, 0, 0),
204 Eigen::Vector3d(0, 1, 0) };
205 Eigen::VectorXi indices(4);
206 indices << 3, 0, 1, 2;
208 std::make_shared<tesseract_common::VectorVector3d>(vertices), std::make_shared<Eigen::VectorXi>(indices));
211 writeTest<tesseract_geometry::SDFMesh::Ptr>(
213 EXPECT_EQ(text, R
"(<tesseract:sdf_mesh filename="package://tmppkg/sdf0.ply"/>)");
218 Eigen::Vector3d(1, 0, 0),
219 Eigen::Vector3d(0, 1, 0) };
221 Eigen::VectorXi indices(4);
222 indices << 3, 0, 1, 2;
223 Eigen::Vector3d scale(0.5, 0.5, 0.5);
225 std::make_shared<tesseract_geometry::SDFMesh>(std::make_shared<tesseract_common::VectorVector3d>(vertices),
226 std::make_shared<Eigen::VectorXi>(indices),
231 writeTest<tesseract_geometry::SDFMesh::Ptr>(
233 EXPECT_EQ(text, R
"(<tesseract:sdf_mesh filename="package://tmppkg/sdf1.ply" scale="0.5 0.5 0.5"/>)");
241 writeTest<tesseract_geometry::SDFMesh::Ptr>(