5 #ifndef HPP_FCL_SERIALIZATION_COLLISION_DATA_H 6 #define HPP_FCL_SERIALIZATION_COLLISION_DATA_H 13 namespace serialization
16 template <
class Archive>
21 ar & make_nvp(
"b1",contact.
b1);
22 ar & make_nvp(
"b2",contact.
b2);
23 ar & make_nvp(
"normal",contact.
normal);
24 ar & make_nvp(
"pos",contact.
pos);
28 template <
class Archive>
33 ar >> make_nvp(
"b1",contact.
b1);
34 ar >> make_nvp(
"b2",contact.
b2);
35 ar >> make_nvp(
"normal",contact.
normal);
36 ar >> make_nvp(
"pos",contact.
pos);
44 template <
class Archive>
55 template <
class Archive>
64 template <
class Archive>
69 ar & make_nvp(
"base",boost::serialization::base_object<hpp::fcl::QueryRequest>(collision_request));
77 template <
class Archive>
82 ar & make_nvp(
"base",boost::serialization::base_object<hpp::fcl::QueryResult>(collision_result));
83 ar & make_nvp(
"contacts",collision_result.
getContacts());
87 template <
class Archive>
92 ar >> make_nvp(
"base",boost::serialization::base_object<hpp::fcl::QueryResult>(collision_result));
93 std::vector<hpp::fcl::Contact> contacts;
94 ar >> make_nvp(
"contacts",contacts);
95 collision_result.
clear();
96 for(
size_t k = 0; k < contacts.size(); ++k)
103 template <
class Archive>
108 ar & make_nvp(
"base",boost::serialization::base_object<hpp::fcl::QueryRequest>(distance_request));
110 ar & make_nvp(
"rel_err",distance_request.
rel_err);
111 ar & make_nvp(
"abs_err",distance_request.
abs_err);
114 template <
class Archive>
119 ar & make_nvp(
"base",boost::serialization::base_object<hpp::fcl::QueryResult>(distance_result));
120 ar & make_nvp(
"min_distance",distance_result.
min_distance);
121 ar & make_nvp(
"nearest_points",make_array(distance_result.
nearest_points,2));
122 ar & make_nvp(
"normal",distance_result.
normal);
123 ar & make_nvp(
"b1",distance_result.
b1);
124 ar & make_nvp(
"b2",distance_result.
b2);
127 template <
class Archive>
132 ar >> make_nvp(
"base",boost::serialization::base_object<hpp::fcl::QueryResult>(distance_result));
133 ar >> make_nvp(
"min_distance",distance_result.
min_distance);
134 ar >> make_nvp(
"nearest_points",make_array(distance_result.
nearest_points,2));
135 ar >> make_nvp(
"normal",distance_result.
normal);
136 ar >> make_nvp(
"b1",distance_result.
b1);
137 ar >> make_nvp(
"b2",distance_result.
b2);
138 distance_result.
o1 = NULL;
139 distance_result.
o2 = NULL;
147 #endif // ifndef HPP_FCL_SERIALIZATION_COLLISION_DATA_H support_func_guess_t cached_support_func_guess
the support function intial guess set by user
Definition: collision_data.h:148
size_t num_max_contacts
The maximum number of contacts will return.
Definition: collision_data.h:212
request to the distance computation
Definition: collision_data.h:368
support_func_guess_t cached_support_func_guess
stores the last support function vertex index, when relevant.
Definition: collision_data.h:179
const CollisionGeometry * o1
collision object 1
Definition: collision_data.h:417
base class for all query results
Definition: collision_data.h:173
#define HPP_FCL_SERIALIZATION_SPLIT(Type)
Definition: fwd.h:13
collision result
Definition: collision_data.h:276
int b2
information about the nearest point in object 2 if object 2 is mesh or point cloud, it is the triangle or point id if object 2 is geometry shape, it is NONE (-1), if object 2 is octree, it is the id of the cell
Definition: collision_data.h:432
Vec3f nearest_points[2]
nearest points
Definition: collision_data.h:411
bool enable_cached_gjk_guess
whether enable gjk intial guess
Definition: collision_data.h:142
void addContact(const Contact &c)
add one contact into result structure
Definition: collision_data.h:303
FCL_REAL distance_lower_bound
Definition: collision_data.h:287
void serialize(Archive &ar, hpp::fcl::AABB &aabb, const unsigned int)
Definition: AABB.h:17
request to the collision algorithm
Definition: collision_data.h:209
void clear()
clear the results obtained
Definition: collision_data.h:352
FCL_REAL min_distance
minimum distance between two objects. if two objects are in collision, min_distance <= 0...
Definition: collision_data.h:408
int b1
information about the nearest point in object 1 if object 1 is mesh or point cloud, it is the triangle or point id if object 1 is geometry shape, it is NONE (-1), if object 1 is octree, it is the id of the cell
Definition: collision_data.h:426
Vec3f normal
In case both objects are in collision, store the normal.
Definition: collision_data.h:414
void save(Archive &ar, const hpp::fcl::BVSplitter< BV > &splitter_, const unsigned int)
Definition: BV_splitter.h:34
void getContacts(std::vector< Contact > &contacts_) const
get all the contacts
Definition: collision_data.h:340
Vec3f cached_gjk_guess
the gjk intial guess set by user
Definition: collision_data.h:145
bool enable_timings
enable timings when performing collision/distance request
Definition: collision_data.h:151
FCL_REAL break_distance
Distance below which bounding volumes are broken down. See Collision detection and distance lower bou...
Definition: collision_data.h:226
FCL_REAL rel_err
error threshold for approximate distance
Definition: collision_data.h:374
bool enable_nearest_points
whether to return the nearest points
Definition: collision_data.h:371
bool enable_distance_lower_bound
Whether a lower bound on distance is returned when objects are disjoint.
Definition: collision_data.h:218
bool enable_contact
whether the contact information (normal, penetration depth and contact position) will return ...
Definition: collision_data.h:215
Vec3f cached_gjk_guess
stores the last GJK ray when relevant.
Definition: collision_data.h:176
base class for all query requests
Definition: collision_data.h:139
void load(Archive &ar, hpp::fcl::BVSplitter< BV > &splitter_, const unsigned int)
Definition: BV_splitter.h:50
FCL_REAL abs_err
Definition: collision_data.h:375
const CollisionGeometry * o2
collision object 2
Definition: collision_data.h:420
distance result
Definition: collision_data.h:402
FCL_REAL security_margin
Distance below which objects are considered in collision. See Collision detection and distance lower ...
Definition: collision_data.h:222