27 #include <gtest/gtest.h>
28 #include <boost/serialization/shared_ptr.hpp>
29 #include <octomap/octomap.h>
44 auto object = std::make_shared<Box>(1, 2, 3);
45 tesseract_common::testSerialization<Box>(*
object,
"Box");
46 tesseract_common::testSerializationDerivedClass<Geometry, Box>(
object,
"Box");
51 auto object = std::make_shared<Capsule>(1, 2);
52 tesseract_common::testSerialization<Capsule>(*
object,
"Capsule");
53 tesseract_common::testSerializationDerivedClass<Geometry, Capsule>(
object,
"Capsule");
58 auto object = std::make_shared<Cone>(1.1, 2.2);
59 tesseract_common::testSerialization<Cone>(*
object,
"Cone");
60 tesseract_common::testSerializationDerivedClass<Geometry, Cone>(
object,
"Cone");
66 std::string path =
"package://tesseract_support/meshes/sphere_p25m.stl";
67 auto object = tesseract_geometry::createMeshFromResource<tesseract_geometry::ConvexMesh>(
68 locator.
locateResource(path), Eigen::Vector3d(.1, .2, .3),
true,
true,
true,
true,
true);
69 tesseract_common::testSerialization<ConvexMesh>(*
object.
front(),
"ConvexMesh");
70 tesseract_common::testSerializationDerivedClass<Geometry, ConvexMesh>(
object.
front(),
"ConvexMesh");
71 tesseract_common::testSerializationDerivedClass<PolygonMesh, ConvexMesh>(
object.
front(),
"ConvexMesh");
74 TEST(TesseractGeometrySerializeUnit, CompoundConvexMesh)
77 std::string path =
"package://tesseract_support/meshes/sphere_p25m.stl";
78 auto object = tesseract_geometry::createMeshFromResource<tesseract_geometry::ConvexMesh>(
79 locator.
locateResource(path), Eigen::Vector3d(.1, .2, .3),
true,
true,
true,
true,
true);
80 std::vector<tesseract_geometry::PolygonMesh::Ptr> meshes;
81 meshes.push_back(
object.
front());
82 meshes.push_back(
object.
front());
83 meshes.push_back(
object.
front());
85 auto compound_object = std::make_shared<CompoundMesh>(meshes);
86 tesseract_common::testSerialization<CompoundMesh>(*compound_object,
"CompundConvexMesh");
87 tesseract_common::testSerializationDerivedClass<Geometry, CompoundMesh>(compound_object,
"CompundConvexMesh");
92 auto object = std::make_shared<Cylinder>(3.3, 4.4);
93 tesseract_common::testSerialization<Cylinder>(*
object,
"Cylinder");
94 tesseract_common::testSerializationDerivedClass<Geometry, Cylinder>(
object,
"Cylinder");
100 std::string path =
"package://tesseract_support/meshes/sphere_p25m.stl";
101 auto object = tesseract_geometry::createMeshFromResource<tesseract_geometry::Mesh>(
102 locator.
locateResource(path), Eigen::Vector3d(.1, .2, .3),
true,
true,
true,
true,
true);
103 tesseract_common::testSerialization<Mesh>(*
object.
front(),
"Mesh");
104 tesseract_common::testSerializationDerivedClass<Geometry, Mesh>(
object.
front(),
"Mesh");
105 tesseract_common::testSerializationDerivedClass<PolygonMesh, Mesh>(
object.
front(),
"Mesh");
111 std::string path =
"package://tesseract_support/meshes/sphere_p25m.stl";
112 auto object = tesseract_geometry::createMeshFromResource<tesseract_geometry::Mesh>(
113 locator.
locateResource(path), Eigen::Vector3d(.1, .2, .3),
true,
true,
true,
true,
true);
114 std::vector<tesseract_geometry::PolygonMesh::Ptr> meshes;
115 meshes.push_back(
object.
front());
116 meshes.push_back(
object.
front());
117 meshes.push_back(
object.
front());
119 auto compound_object = std::make_shared<CompoundMesh>(meshes);
120 tesseract_common::testSerialization<CompoundMesh>(*compound_object,
"CompoundMesh");
121 tesseract_common::testSerializationDerivedClass<Geometry, CompoundMesh>(compound_object,
"CompoundMesh");
126 struct TestPointCloud
130 point(
double x,
double y,
double z) : x(x), y(y), z(z) {}
136 std::vector<point> points;
140 pc.points.emplace_back(.5, 0.5, 0.5);
141 pc.points.emplace_back(-.5, -0.5, -0.5);
142 pc.points.emplace_back(-.5, 0.5, 0.5);
145 auto object = std::make_shared<tesseract_geometry::Octree>(
147 tesseract_common::testSerialization<Octree>(*
object,
"Binary_Octree");
148 tesseract_common::testSerializationDerivedClass<Geometry, Octree>(
object,
"Binary_Octree");
152 auto object = std::make_shared<tesseract_geometry::Octree>(
154 tesseract_common::testSerialization<Octree>(*
object,
"Full_Octree");
155 tesseract_common::testSerializationDerivedClass<Geometry, Octree>(
object,
"Full_Octree");
161 auto object = std::make_shared<Plane>(1.1, 2, 3.3, 4);
162 tesseract_common::testSerialization<Plane>(*
object,
"Plane");
163 tesseract_common::testSerializationDerivedClass<Geometry, Plane>(
object,
"Plane");
169 std::string path =
"package://tesseract_support/meshes/sphere_p25m.stl";
170 auto object = tesseract_geometry::createMeshFromResource<tesseract_geometry::PolygonMesh>(
171 locator.
locateResource(path), Eigen::Vector3d(.1, .2, .3),
true,
true,
true,
true,
true);
172 tesseract_common::testSerialization<PolygonMesh>(*
object.
front(),
"PolygonMesh");
173 tesseract_common::testSerializationDerivedClass<Geometry, PolygonMesh>(
object.
front(),
"PolygonMesh");
179 std::string path =
"package://tesseract_support/meshes/sphere_p25m.stl";
180 auto object = tesseract_geometry::createMeshFromResource<tesseract_geometry::SDFMesh>(
181 locator.
locateResource(path), Eigen::Vector3d(.1, .2, .3),
true,
true,
true,
true,
true);
182 tesseract_common::testSerialization<SDFMesh>(*
object.
front(),
"SDFMesh");
183 tesseract_common::testSerializationDerivedClass<Geometry, SDFMesh>(
object.
front(),
"SDFMesh");
184 tesseract_common::testSerializationDerivedClass<PolygonMesh, SDFMesh>(
object.
front(),
"SDFMesh");
189 auto object = std::make_shared<Sphere>(3.3);
190 tesseract_common::testSerialization<Sphere>(*
object,
"Sphere");
191 tesseract_common::testSerializationDerivedClass<Geometry, Sphere>(
object,
"Sphere");
194 int main(
int argc,
char** argv)
196 testing::InitGoogleTest(&argc, argv);
198 return RUN_ALL_TESTS();