hpp-fcl 2.4.1
HPP fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
geometric_shapes.h
Go to the documentation of this file.
1//
2// Copyright (c) 2021 INRIA
3//
4
5#ifndef HPP_FCL_SERIALIZATION_GEOMETRIC_SHAPES_H
6#define HPP_FCL_SERIALIZATION_GEOMETRIC_SHAPES_H
7
10
11namespace boost {
12namespace serialization {
13
14template <class Archive>
15void serialize(Archive& ar, hpp::fcl::ShapeBase& shape_base,
16 const unsigned int /*version*/) {
17 ar& make_nvp("base",
18 boost::serialization::base_object<hpp::fcl::CollisionGeometry>(
19 shape_base));
20}
21
22template <class Archive>
23void serialize(Archive& ar, hpp::fcl::TriangleP& triangle,
24 const unsigned int /*version*/) {
25 ar& make_nvp(
26 "base", boost::serialization::base_object<hpp::fcl::ShapeBase>(triangle));
27 ar& make_nvp("a", triangle.a);
28 ar& make_nvp("b", triangle.b);
29 ar& make_nvp("c", triangle.c);
30}
31
32template <class Archive>
33void serialize(Archive& ar, hpp::fcl::Box& box,
34 const unsigned int /*version*/) {
35 ar& make_nvp("base",
36 boost::serialization::base_object<hpp::fcl::ShapeBase>(box));
37 ar& make_nvp("halfSide", box.halfSide);
38}
39
40template <class Archive>
41void serialize(Archive& ar, hpp::fcl::Sphere& sphere,
42 const unsigned int /*version*/) {
43 ar& make_nvp("base",
44 boost::serialization::base_object<hpp::fcl::ShapeBase>(sphere));
45 ar& make_nvp("radius", sphere.radius);
46}
47
48template <class Archive>
49void serialize(Archive& ar, hpp::fcl::Ellipsoid& ellipsoid,
50 const unsigned int /*version*/) {
51 ar& make_nvp("base", boost::serialization::base_object<hpp::fcl::ShapeBase>(
52 ellipsoid));
53 ar& make_nvp("radii", ellipsoid.radii);
54}
55
56template <class Archive>
57void serialize(Archive& ar, hpp::fcl::Capsule& capsule,
58 const unsigned int /*version*/) {
59 ar& make_nvp("base",
60 boost::serialization::base_object<hpp::fcl::ShapeBase>(capsule));
61 ar& make_nvp("radius", capsule.radius);
62 ar& make_nvp("halfLength", capsule.halfLength);
63}
64
65template <class Archive>
66void serialize(Archive& ar, hpp::fcl::Cone& cone,
67 const unsigned int /*version*/) {
68 ar& make_nvp("base",
69 boost::serialization::base_object<hpp::fcl::ShapeBase>(cone));
70 ar& make_nvp("radius", cone.radius);
71 ar& make_nvp("halfLength", cone.halfLength);
72}
73
74template <class Archive>
75void serialize(Archive& ar, hpp::fcl::Cylinder& cylinder,
76 const unsigned int /*version*/) {
77 ar& make_nvp(
78 "base", boost::serialization::base_object<hpp::fcl::ShapeBase>(cylinder));
79 ar& make_nvp("radius", cylinder.radius);
80 ar& make_nvp("halfLength", cylinder.halfLength);
81}
82
83template <class Archive>
84void serialize(Archive& ar, hpp::fcl::Halfspace& half_space,
85 const unsigned int /*version*/) {
86 ar& make_nvp("base", boost::serialization::base_object<hpp::fcl::ShapeBase>(
87 half_space));
88 ar& make_nvp("n", half_space.n);
89 ar& make_nvp("d", half_space.d);
90}
91
92template <class Archive>
93void serialize(Archive& ar, hpp::fcl::Plane& plane,
94 const unsigned int /*version*/) {
95 ar& make_nvp("base",
96 boost::serialization::base_object<hpp::fcl::ShapeBase>(plane));
97 ar& make_nvp("n", plane.n);
98 ar& make_nvp("d", plane.d);
99}
100
101} // namespace serialization
102} // namespace boost
103
104#endif // ifndef HPP_FCL_SERIALIZATION_GEOMETRIC_SHAPES_H
Center at zero point, axis aligned box.
Definition: geometric_shapes.h:125
Capsule It is where is the distance between the point x and the capsule segment AB,...
Definition: geometric_shapes.h:333
Cone The base of the cone is at and the top is at .
Definition: geometric_shapes.h:414
Cylinder along Z axis. The cylinder is defined at its centroid.
Definition: geometric_shapes.h:501
Ellipsoid centered at point zero.
Definition: geometric_shapes.h:258
Half Space: this is equivalent to the Plane in ODE. The separation plane is defined as n * x = d; Poi...
Definition: geometric_shapes.h:729
Infinite plane.
Definition: geometric_shapes.h:810
Base class for all basic geometric shapes.
Definition: geometric_shapes.h:51
Center at zero point sphere.
Definition: geometric_shapes.h:196
Triangle stores the points instead of only indices of points.
Definition: geometric_shapes.h:71
Vec3f c
Definition: geometric_shapes.h:109
FCL_REAL halfLength
Half Length along z axis.
Definition: geometric_shapes.h:352
Vec3f a
Definition: geometric_shapes.h:109
FCL_REAL halfLength
Half Length along z axis.
Definition: geometric_shapes.h:528
Vec3f n
Plane normal.
Definition: geometric_shapes.h:848
FCL_REAL radius
Radius of capsule.
Definition: geometric_shapes.h:349
Vec3f n
Plane normal.
Definition: geometric_shapes.h:787
FCL_REAL halfLength
Half Length along z axis.
Definition: geometric_shapes.h:433
FCL_REAL d
Plane offset.
Definition: geometric_shapes.h:851
FCL_REAL radius
Radius of the sphere.
Definition: geometric_shapes.h:209
Vec3f halfSide
box side half-length
Definition: geometric_shapes.h:148
FCL_REAL radius
Radius of the cone.
Definition: geometric_shapes.h:430
FCL_REAL radius
Radius of the cylinder.
Definition: geometric_shapes.h:525
Vec3f b
Definition: geometric_shapes.h:109
Vec3f radii
Radii of the Ellipsoid (such that on boundary: x^2/rx^2 + y^2/ry^2.
Definition: geometric_shapes.h:275
FCL_REAL d
Plane offset.
Definition: geometric_shapes.h:790
void serialize(Archive &ar, hpp::fcl::AABB &aabb, const unsigned int)
Definition: AABB.h:15
Definition: AABB.h:11