GCC Code Coverage Report


Directory: ./
File: include/coal/serialization/collision_data.h
Date: 2025-04-01 09:23:31
Exec Total Coverage
Lines: 113 113 100.0%
Branches: 76 150 50.7%

Line Branch Exec Source
1 //
2 // Copyright (c) 2021 INRIA
3 //
4
5 #ifndef COAL_SERIALIZATION_COLLISION_DATA_H
6 #define COAL_SERIALIZATION_COLLISION_DATA_H
7
8 #include "coal/collision_data.h"
9 #include "coal/serialization/fwd.h"
10
11 namespace boost {
12 namespace serialization {
13
14 template <class Archive>
15 42 void save(Archive& ar, const coal::Contact& contact,
16 const unsigned int /*version*/) {
17
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar& make_nvp("b1", contact.b1);
18
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar& make_nvp("b2", contact.b2);
19
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar& make_nvp("normal", contact.normal);
20
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar& make_nvp("nearest_points", contact.nearest_points);
21
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar& make_nvp("pos", contact.pos);
22
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar& make_nvp("penetration_depth", contact.penetration_depth);
23 42 }
24
25 template <class Archive>
26 42 void load(Archive& ar, coal::Contact& contact, const unsigned int /*version*/) {
27
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar >> make_nvp("b1", contact.b1);
28
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar >> make_nvp("b2", contact.b2);
29
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar >> make_nvp("normal", contact.normal);
30
1/2
✓ Branch 1 taken 21 times.
✗ Branch 2 not taken.
42 std::array<coal::Vec3s, 2> nearest_points;
31
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar >> make_nvp("nearest_points", nearest_points);
32
1/2
✓ Branch 3 taken 21 times.
✗ Branch 4 not taken.
42 contact.nearest_points[0] = nearest_points[0];
33
1/2
✓ Branch 3 taken 21 times.
✗ Branch 4 not taken.
42 contact.nearest_points[1] = nearest_points[1];
34
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar >> make_nvp("pos", contact.pos);
35
1/2
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
42 ar >> make_nvp("penetration_depth", contact.penetration_depth);
36 42 contact.o1 = NULL;
37 42 contact.o2 = NULL;
38 42 }
39
40 84 COAL_SERIALIZATION_SPLIT(coal::Contact)
41
42 template <class Archive>
43 56 void serialize(Archive& ar, coal::QueryRequest& query_request,
44 const unsigned int /*version*/) {
45
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("gjk_initial_guess", query_request.gjk_initial_guess);
46 // TODO: use gjk_initial_guess instead
47 COAL_COMPILER_DIAGNOSTIC_PUSH
48 COAL_COMPILER_DIAGNOSTIC_IGNORED_DEPRECECATED_DECLARATIONS
49
1/2
✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
56 ar& make_nvp("enable_cached_gjk_guess",
50 56 query_request.enable_cached_gjk_guess);
51 COAL_COMPILER_DIAGNOSTIC_POP
52
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("cached_gjk_guess", query_request.cached_gjk_guess);
53
1/2
✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
56 ar& make_nvp("cached_support_func_guess",
54 56 query_request.cached_support_func_guess);
55
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("gjk_max_iterations", query_request.gjk_max_iterations);
56
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("gjk_tolerance", query_request.gjk_tolerance);
57
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("gjk_variant", query_request.gjk_variant);
58
1/2
✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
56 ar& make_nvp("gjk_convergence_criterion",
59 56 query_request.gjk_convergence_criterion);
60
1/2
✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
56 ar& make_nvp("gjk_convergence_criterion_type",
61 56 query_request.gjk_convergence_criterion_type);
62
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("epa_max_iterations", query_request.epa_max_iterations);
63
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("epa_tolerance", query_request.epa_tolerance);
64
1/2
✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
56 ar& make_nvp("collision_distance_threshold",
65 56 query_request.collision_distance_threshold);
66
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("enable_timings", query_request.enable_timings);
67 56 }
68
69 template <class Archive>
70 56 void serialize(Archive& ar, coal::QueryResult& query_result,
71 const unsigned int /*version*/) {
72
1/2
✓ Branch 2 taken 28 times.
✗ Branch 3 not taken.
56 ar& make_nvp("cached_gjk_guess", query_result.cached_gjk_guess);
73
1/2
✓ Branch 1 taken 28 times.
✗ Branch 2 not taken.
56 ar& make_nvp("cached_support_func_guess",
74 56 query_result.cached_support_func_guess);
75 56 }
76
77 template <class Archive>
78 28 void serialize(Archive& ar, coal::CollisionRequest& collision_request,
79 const unsigned int /*version*/) {
80
1/2
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
28 ar& make_nvp("base", boost::serialization::base_object<coal::QueryRequest>(
81 collision_request));
82
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("num_max_contacts", collision_request.num_max_contacts);
83
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("enable_contact", collision_request.enable_contact);
84 COAL_COMPILER_DIAGNOSTIC_PUSH
85 COAL_COMPILER_DIAGNOSTIC_IGNORED_DEPRECECATED_DECLARATIONS
86
1/2
✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
28 ar& make_nvp("enable_distance_lower_bound",
87 28 collision_request.enable_distance_lower_bound);
88 COAL_COMPILER_DIAGNOSTIC_POP
89
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("security_margin", collision_request.security_margin);
90
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("break_distance", collision_request.break_distance);
91
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("distance_upper_bound", collision_request.distance_upper_bound);
92 28 }
93
94 template <class Archive>
95 14 void save(Archive& ar, const coal::CollisionResult& collision_result,
96 const unsigned int /*version*/) {
97
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 ar& make_nvp("base", boost::serialization::base_object<coal::QueryResult>(
98 collision_result));
99
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 ar& make_nvp("contacts", collision_result.getContacts());
100
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("distance_lower_bound", collision_result.distance_lower_bound);
101
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("nearest_points", collision_result.nearest_points);
102
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("normal", collision_result.normal);
103 14 }
104
105 template <class Archive>
106 14 void load(Archive& ar, coal::CollisionResult& collision_result,
107 const unsigned int /*version*/) {
108
2/4
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
14 ar >> make_nvp("base", boost::serialization::base_object<coal::QueryResult>(
109 collision_result));
110 14 std::vector<coal::Contact> contacts;
111
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("contacts", contacts);
112
1/2
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
14 collision_result.clear();
113
2/2
✓ Branch 1 taken 14 times.
✓ Branch 2 taken 7 times.
42 for (size_t k = 0; k < contacts.size(); ++k)
114
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 collision_result.addContact(contacts[k]);
115
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("distance_lower_bound", collision_result.distance_lower_bound);
116
1/2
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
14 std::array<coal::Vec3s, 2> nearest_points;
117
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("nearest_points", nearest_points);
118
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 collision_result.nearest_points[0] = nearest_points[0];
119
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 collision_result.nearest_points[1] = nearest_points[1];
120
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("normal", collision_result.normal);
121 14 }
122
123 28 COAL_SERIALIZATION_SPLIT(coal::CollisionResult)
124
125 template <class Archive>
126 28 void serialize(Archive& ar, coal::DistanceRequest& distance_request,
127 const unsigned int /*version*/) {
128
1/2
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
28 ar& make_nvp("base", boost::serialization::base_object<coal::QueryRequest>(
129 distance_request));
130 COAL_COMPILER_DIAGNOSTIC_PUSH
131 COAL_COMPILER_DIAGNOSTIC_IGNORED_DEPRECECATED_DECLARATIONS
132
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("enable_nearest_points", distance_request.enable_nearest_points);
133 COAL_COMPILER_DIAGNOSTIC_POP
134
1/2
✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
28 ar& make_nvp("enable_signed_distance",
135 28 distance_request.enable_signed_distance);
136
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("rel_err", distance_request.rel_err);
137
1/2
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
28 ar& make_nvp("abs_err", distance_request.abs_err);
138 28 }
139
140 template <class Archive>
141 14 void save(Archive& ar, const coal::DistanceResult& distance_result,
142 const unsigned int /*version*/) {
143
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 ar& make_nvp("base", boost::serialization::base_object<coal::QueryResult>(
144 distance_result));
145
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("min_distance", distance_result.min_distance);
146
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("nearest_points", distance_result.nearest_points);
147
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("normal", distance_result.normal);
148
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("b1", distance_result.b1);
149
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar& make_nvp("b2", distance_result.b2);
150 14 }
151
152 template <class Archive>
153 14 void load(Archive& ar, coal::DistanceResult& distance_result,
154 const unsigned int /*version*/) {
155
2/4
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
14 ar >> make_nvp("base", boost::serialization::base_object<coal::QueryResult>(
156 distance_result));
157
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("min_distance", distance_result.min_distance);
158
1/2
✓ Branch 1 taken 7 times.
✗ Branch 2 not taken.
14 std::array<coal::Vec3s, 2> nearest_points;
159
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("nearest_points", nearest_points);
160
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 distance_result.nearest_points[0] = nearest_points[0];
161
1/2
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
14 distance_result.nearest_points[1] = nearest_points[1];
162
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("normal", distance_result.normal);
163
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("b1", distance_result.b1);
164
1/2
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
14 ar >> make_nvp("b2", distance_result.b2);
165 14 distance_result.o1 = NULL;
166 14 distance_result.o2 = NULL;
167 14 }
168
169 28 COAL_SERIALIZATION_SPLIT(coal::DistanceResult)
170
171 } // namespace serialization
172 } // namespace boost
173
174 36 COAL_SERIALIZATION_DECLARE_EXPORT(::coal::CollisionRequest)
175 36 COAL_SERIALIZATION_DECLARE_EXPORT(::coal::CollisionResult)
176 36 COAL_SERIALIZATION_DECLARE_EXPORT(::coal::DistanceRequest)
177 36 COAL_SERIALIZATION_DECLARE_EXPORT(::coal::DistanceResult)
178
179 #endif // ifndef COAL_SERIALIZATION_COLLISION_DATA_H
180