Line |
Branch |
Exec |
Source |
1 |
|
|
#ifndef DOXYGEN_AUTODOC_COAL_NARROWPHASE_GJK_H |
2 |
|
|
#define DOXYGEN_AUTODOC_COAL_NARROWPHASE_GJK_H |
3 |
|
|
|
4 |
|
|
#include "/root/robotpkg/path/py-coal/work/coal-3.0.1/doc/python/doxygen.hh" |
5 |
|
|
|
6 |
|
|
#include <coal/narrowphase/gjk.h> |
7 |
|
|
|
8 |
|
|
namespace doxygen { |
9 |
|
|
|
10 |
|
|
template <> |
11 |
|
|
struct class_doc_impl< coal::details::EPA > |
12 |
|
|
{ |
13 |
|
|
static inline const char* run () |
14 |
|
|
{ |
15 |
|
|
return "class for coal::details::EPA algorithm "; |
16 |
|
|
} |
17 |
|
|
static inline const char* attribute (const char* attrib) |
18 |
|
|
{ |
19 |
|
|
(void)attrib; // turn off unused parameter warning. |
20 |
|
|
return ""; |
21 |
|
|
} |
22 |
|
|
}; |
23 |
|
|
|
24 |
|
|
template <> |
25 |
|
|
struct constructor_2_impl< coal::details::EPA, size_t, coal::SolverScalar > |
26 |
|
|
{ |
27 |
|
|
static inline const char* doc () |
28 |
|
|
{ |
29 |
|
|
return ""; |
30 |
|
|
} |
31 |
|
|
static inline boost::python::detail::keywords<2+1> args () |
32 |
|
|
{ |
33 |
|
|
return (boost::python::arg("self"), boost::python::arg("max_iterations_"), boost::python::arg("tolerance_")); |
34 |
|
|
} |
35 |
|
|
}; |
36 |
|
|
|
37 |
|
|
template <> |
38 |
|
|
struct constructor_1_impl< coal::details::EPA, const coal::details::EPA & > |
39 |
|
|
{ |
40 |
|
|
static inline const char* doc () |
41 |
|
|
{ |
42 |
|
|
return "Copy constructor of coal::details::EPA. Mostly needed for the copy constructor of coal::GJKSolver. "; |
43 |
|
|
} |
44 |
|
|
static inline boost::python::detail::keywords<1+1> args () |
45 |
|
|
{ |
46 |
|
|
return (boost::python::arg("self"), boost::python::arg("other")); |
47 |
|
|
} |
48 |
|
|
}; |
49 |
|
|
|
50 |
|
|
inline const char* member_func_doc (size_t (coal::details::EPA::*function_ptr) () const) |
51 |
|
|
{ |
52 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumMaxIterations)) |
53 |
|
|
return "Get the max number of iterations of coal::details::EPA. "; |
54 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumMaxVertices)) |
55 |
|
|
return "Get the max number of vertices of coal::details::EPA. "; |
56 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumMaxFaces)) |
57 |
|
|
return "Get the max number of faces of coal::details::EPA. "; |
58 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumIterations)) |
59 |
|
|
return "Get the number of iterations of the last run of coal::details::EPA. "; |
60 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumVertices)) |
61 |
|
|
return "Get the number of vertices in the polytope of the last run of coal::details::EPA. "; |
62 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumFaces)) |
63 |
|
|
return "Get the number of faces in the polytope of the last run of coal::details::EPA. "; |
64 |
|
|
return ""; |
65 |
|
|
} |
66 |
|
|
|
67 |
|
|
inline boost::python::detail::keywords<1> member_func_args (size_t (coal::details::EPA::*function_ptr) () const) |
68 |
|
|
{ |
69 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumMaxIterations)) |
70 |
|
|
return (boost::python::arg("self")); |
71 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumMaxVertices)) |
72 |
|
|
return (boost::python::arg("self")); |
73 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumMaxFaces)) |
74 |
|
|
return (boost::python::arg("self")); |
75 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumIterations)) |
76 |
|
|
return (boost::python::arg("self")); |
77 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumVertices)) |
78 |
|
|
return (boost::python::arg("self")); |
79 |
|
|
if (function_ptr == static_cast<size_t (coal::details::EPA::*) () const>(&coal::details::EPA::getNumFaces)) |
80 |
|
|
return (boost::python::arg("self")); |
81 |
|
|
return (boost::python::arg("self")); |
82 |
|
|
} |
83 |
|
|
|
84 |
|
|
inline const char* member_func_doc ( coal::SolverScalar (coal::details::EPA::*function_ptr) () const) |
85 |
|
|
{ |
86 |
|
|
if (function_ptr == static_cast< coal::SolverScalar (coal::details::EPA::*) () const>(&coal::details::EPA::getTolerance)) |
87 |
|
|
return "Get the tolerance of coal::details::EPA. "; |
88 |
|
|
return ""; |
89 |
|
|
} |
90 |
|
|
|
91 |
|
|
inline boost::python::detail::keywords<1> member_func_args ( coal::SolverScalar (coal::details::EPA::*function_ptr) () const) |
92 |
|
|
{ |
93 |
|
|
if (function_ptr == static_cast< coal::SolverScalar (coal::details::EPA::*) () const>(&coal::details::EPA::getTolerance)) |
94 |
|
|
return (boost::python::arg("self")); |
95 |
|
|
return (boost::python::arg("self")); |
96 |
|
|
} |
97 |
|
|
|
98 |
|
|
inline const char* member_func_doc (void (coal::details::EPA::*function_ptr) (size_t, coal::SolverScalar)) |
99 |
|
|
{ |
100 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::*) (size_t, coal::SolverScalar)>(&coal::details::EPA::reset)) |
101 |
|
|
return "resets the coal::details::EPA algorithm, preparing it for a new run. It potentially reallocates memory for the vertices and faces if the passed parameters are bigger than the previous ones. This function does not modify the parameters of the coal::details::EPA algorithm, i.e. the maximum number of iterations and the tolerance. \n" |
102 |
|
|
"\n" |
103 |
|
|
"Note: calling this function destroys the previous state of coal::details::EPA. In the future, we may want to copy it instead, i.e. when coal::details::EPA will be (properly) warm-startable. "; |
104 |
|
|
return ""; |
105 |
|
|
} |
106 |
|
|
|
107 |
|
|
inline boost::python::detail::keywords<3> member_func_args (void (coal::details::EPA::*function_ptr) (size_t, coal::SolverScalar)) |
108 |
|
|
{ |
109 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::*) (size_t, coal::SolverScalar)>(&coal::details::EPA::reset)) |
110 |
|
|
return (boost::python::arg("self"), boost::python::arg("max_iterations"), boost::python::arg("tolerance")); |
111 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1")); |
112 |
|
|
} |
113 |
|
|
|
114 |
|
|
inline const char* member_func_doc ( coal::details::EPA::Status (coal::details::EPA::*function_ptr) ( coal::details::GJK &, const coal::Vec3ps &)) |
115 |
|
|
{ |
116 |
|
|
if (function_ptr == static_cast< coal::details::EPA::Status (coal::details::EPA::*) ( coal::details::GJK &, const coal::Vec3ps &)>(&coal::details::EPA::evaluate)) |
117 |
|
|
return "Return: a Status which can be demangled using (status & Valid) or (status & Failed). The other values provide a more detailled status "; |
118 |
|
|
return ""; |
119 |
|
|
} |
120 |
|
|
|
121 |
|
|
inline boost::python::detail::keywords<3> member_func_args ( coal::details::EPA::Status (coal::details::EPA::*function_ptr) ( coal::details::GJK &, const coal::Vec3ps &)) |
122 |
|
|
{ |
123 |
|
|
if (function_ptr == static_cast< coal::details::EPA::Status (coal::details::EPA::*) ( coal::details::GJK &, const coal::Vec3ps &)>(&coal::details::EPA::evaluate)) |
124 |
|
|
return (boost::python::arg("self"), boost::python::arg("gjk"), boost::python::arg("guess")); |
125 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1")); |
126 |
|
|
} |
127 |
|
|
|
128 |
|
|
inline const char* member_func_doc (void (coal::details::EPA::*function_ptr) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const) |
129 |
|
|
{ |
130 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::*) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const>(&coal::details::EPA::getWitnessPointsAndNormal)) |
131 |
|
|
return "Get the witness points on each object, and the corresponding normal. \n" |
132 |
|
|
"Param\n" |
133 |
|
|
" - shape is the Minkowski difference of the two shapes. \n" |
134 |
|
|
" - w0 is the witness point on shape0. \n" |
135 |
|
|
" - w1 is the witness point on shape1. \n" |
136 |
|
|
" - normal is the normal found by coal::details::EPA. It points from shape0 to shape1. The normal is used to correct the witness points on the shapes if the shapes have a non-zero swept-sphere radius. "; |
137 |
|
|
return ""; |
138 |
|
|
} |
139 |
|
|
|
140 |
|
|
inline boost::python::detail::keywords<5> member_func_args (void (coal::details::EPA::*function_ptr) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const) |
141 |
|
|
{ |
142 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::*) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const>(&coal::details::EPA::getWitnessPointsAndNormal)) |
143 |
|
|
return (boost::python::arg("self"), boost::python::arg("shape"), boost::python::arg("w0"), boost::python::arg("w1"), boost::python::arg("normal")); |
144 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1"), boost::python::arg("arg2"), boost::python::arg("arg3")); |
145 |
|
|
} |
146 |
|
|
} // namespace doxygen |
147 |
|
|
#include <coal/narrowphase/gjk.h> |
148 |
|
|
|
149 |
|
|
namespace doxygen { |
150 |
|
|
|
151 |
|
|
template <> |
152 |
|
|
struct class_doc_impl< coal::details::GJK > |
153 |
|
|
{ |
154 |
|
5 |
static inline const char* run () |
155 |
|
|
{ |
156 |
|
|
return "class for coal::details::GJK algorithm \n" |
157 |
|
|
"\n" |
158 |
|
5 |
"Note: The computations are performed in the frame of the first shape. "; |
159 |
|
|
} |
160 |
|
30 |
static inline const char* attribute (const char* attrib) |
161 |
|
|
{ |
162 |
2/2
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 25 times.
|
30 |
if (strcmp(attrib, "distance") == 0) |
163 |
|
5 |
return "The distance between the two shapes, computed by coal::details::GJK. If the distance is below coal::details::GJK's threshold, the shapes are in collision in the eyes of coal::details::GJK. If distance_upper_bound is set to a value lower than infinity, coal::details::GJK will early stop as soon as it finds distance to be greater than distance_upper_bound. "; |
164 |
|
|
(void)attrib; // turn off unused parameter warning. |
165 |
|
25 |
return ""; |
166 |
|
|
} |
167 |
|
|
}; |
168 |
|
|
|
169 |
|
|
template <> |
170 |
|
|
struct constructor_2_impl< coal::details::GJK, size_t, coal::SolverScalar > |
171 |
|
|
{ |
172 |
|
|
static inline const char* doc () |
173 |
|
|
{ |
174 |
|
|
return "Param\n" |
175 |
|
|
" - max_iterations_ number of iteration before coal::details::GJK returns failure. \n" |
176 |
|
|
" - tolerance_ precision of the algorithm.\n" |
177 |
|
|
"\n" |
178 |
|
|
"The tolerance argument is useful for continuous shapes and for polyhedron with some vertices closer than this threshold.\n" |
179 |
|
|
"Suggested values are 100 iterations and a tolerance of 1e-6. "; |
180 |
|
|
} |
181 |
|
|
static inline boost::python::detail::keywords<2+1> args () |
182 |
|
|
{ |
183 |
|
|
return (boost::python::arg("self"), boost::python::arg("max_iterations_"), boost::python::arg("tolerance_")); |
184 |
|
|
} |
185 |
|
|
}; |
186 |
|
|
|
187 |
|
|
inline const char* member_func_doc (void (coal::details::GJK::*function_ptr) (size_t, coal::SolverScalar)) |
188 |
|
|
{ |
189 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (size_t, coal::SolverScalar)>(&coal::details::GJK::reset)) |
190 |
|
|
return "resets the coal::details::GJK algorithm, preparing it for a new run. Other than the maximum number of iterations and the tolerance, this function does not modify the parameters of the coal::details::GJK algorithm. "; |
191 |
|
|
return ""; |
192 |
|
|
} |
193 |
|
|
|
194 |
|
|
inline boost::python::detail::keywords<3> member_func_args (void (coal::details::GJK::*function_ptr) (size_t, coal::SolverScalar)) |
195 |
|
|
{ |
196 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (size_t, coal::SolverScalar)>(&coal::details::GJK::reset)) |
197 |
|
|
return (boost::python::arg("self"), boost::python::arg("max_iterations_"), boost::python::arg("tolerance_")); |
198 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1")); |
199 |
|
|
} |
200 |
|
|
|
201 |
|
|
inline const char* member_func_doc ( coal::details::GJK::Status (coal::details::GJK::*function_ptr) (const coal::details::MinkowskiDiff &, const coal::Vec3ps &, const coal::support_func_guess_t &)) |
202 |
|
|
{ |
203 |
|
|
if (function_ptr == static_cast< coal::details::GJK::Status (coal::details::GJK::*) (const coal::details::MinkowskiDiff &, const coal::Vec3ps &, const coal::support_func_guess_t &)>(&coal::details::GJK::evaluate)) |
204 |
|
|
return "coal::details::GJK algorithm, given the initial value guess. "; |
205 |
|
|
return ""; |
206 |
|
|
} |
207 |
|
|
|
208 |
|
|
inline boost::python::detail::keywords<4> member_func_args ( coal::details::GJK::Status (coal::details::GJK::*function_ptr) (const coal::details::MinkowskiDiff &, const coal::Vec3ps &, const coal::support_func_guess_t &)) |
209 |
|
|
{ |
210 |
|
|
if (function_ptr == static_cast< coal::details::GJK::Status (coal::details::GJK::*) (const coal::details::MinkowskiDiff &, const coal::Vec3ps &, const coal::support_func_guess_t &)>(&coal::details::GJK::evaluate)) |
211 |
|
|
return (boost::python::arg("self"), boost::python::arg("shape"), boost::python::arg("guess"), boost::python::arg("supportHint")); |
212 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1"), boost::python::arg("arg2")); |
213 |
|
|
} |
214 |
|
|
|
215 |
|
|
inline const char* member_func_doc (void (coal::details::GJK::*function_ptr) (const coal::Vec3ps &, coal::details::GJK::SimplexV &, coal::support_func_guess_t &) const) |
216 |
|
|
{ |
217 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (const coal::Vec3ps &, coal::details::GJK::SimplexV &, coal::support_func_guess_t &) const>(&coal::details::GJK::getSupport)) |
218 |
|
|
return "apply the support function along a direction, the result is return in sv "; |
219 |
|
|
return ""; |
220 |
|
|
} |
221 |
|
|
|
222 |
|
|
inline boost::python::detail::keywords<4> member_func_args (void (coal::details::GJK::*function_ptr) (const coal::Vec3ps &, coal::details::GJK::SimplexV &, coal::support_func_guess_t &) const) |
223 |
|
|
{ |
224 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (const coal::Vec3ps &, coal::details::GJK::SimplexV &, coal::support_func_guess_t &) const>(&coal::details::GJK::getSupport)) |
225 |
|
|
return (boost::python::arg("self"), boost::python::arg("d"), boost::python::arg("sv"), boost::python::arg("hint")); |
226 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1"), boost::python::arg("arg2")); |
227 |
|
|
} |
228 |
|
|
|
229 |
|
|
inline const char* member_func_doc (bool (coal::details::GJK::*function_ptr) ()) |
230 |
|
|
{ |
231 |
|
|
if (function_ptr == static_cast<bool (coal::details::GJK::*) ()>(&coal::details::GJK::encloseOrigin)) |
232 |
|
|
return "whether the simplex enclose the origin "; |
233 |
|
|
return ""; |
234 |
|
|
} |
235 |
|
|
|
236 |
|
|
inline boost::python::detail::keywords<1> member_func_args (bool (coal::details::GJK::*function_ptr) ()) |
237 |
|
|
{ |
238 |
|
|
if (function_ptr == static_cast<bool (coal::details::GJK::*) ()>(&coal::details::GJK::encloseOrigin)) |
239 |
|
|
return (boost::python::arg("self")); |
240 |
|
|
return (boost::python::arg("self")); |
241 |
|
|
} |
242 |
|
|
|
243 |
|
|
inline const char* member_func_doc ( coal::details::GJK::Simplex * (coal::details::GJK::*function_ptr) () const) |
244 |
|
|
{ |
245 |
|
|
if (function_ptr == static_cast< coal::details::GJK::Simplex * (coal::details::GJK::*) () const>(&coal::details::GJK::getSimplex)) |
246 |
|
|
return "get the underlying simplex using in coal::details::GJK, can be used for cache in next iteration "; |
247 |
|
|
return ""; |
248 |
|
|
} |
249 |
|
|
|
250 |
|
|
inline boost::python::detail::keywords<1> member_func_args ( coal::details::GJK::Simplex * (coal::details::GJK::*function_ptr) () const) |
251 |
|
|
{ |
252 |
|
|
if (function_ptr == static_cast< coal::details::GJK::Simplex * (coal::details::GJK::*) () const>(&coal::details::GJK::getSimplex)) |
253 |
|
|
return (boost::python::arg("self")); |
254 |
|
|
return (boost::python::arg("self")); |
255 |
|
|
} |
256 |
|
|
|
257 |
|
|
inline const char* member_func_doc (bool (coal::details::GJK::*function_ptr) () const) |
258 |
|
|
{ |
259 |
|
|
if (function_ptr == static_cast<bool (coal::details::GJK::*) () const>(&coal::details::GJK::hasClosestPoints)) |
260 |
|
|
return "Tells whether the closest points are available. "; |
261 |
|
|
return ""; |
262 |
|
|
} |
263 |
|
|
|
264 |
|
|
inline boost::python::detail::keywords<1> member_func_args (bool (coal::details::GJK::*function_ptr) () const) |
265 |
|
|
{ |
266 |
|
|
if (function_ptr == static_cast<bool (coal::details::GJK::*) () const>(&coal::details::GJK::hasClosestPoints)) |
267 |
|
|
return (boost::python::arg("self")); |
268 |
|
|
return (boost::python::arg("self")); |
269 |
|
|
} |
270 |
|
|
|
271 |
|
|
inline const char* member_func_doc (void (coal::details::GJK::*function_ptr) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const) |
272 |
|
|
{ |
273 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const>(&coal::details::GJK::getWitnessPointsAndNormal)) |
274 |
|
|
return "Get the witness points on each object, and the corresponding normal. \n" |
275 |
|
|
"Param\n" |
276 |
|
|
" - shape is the Minkowski difference of the two shapes. \n" |
277 |
|
|
" - w0 is the witness point on shape0. \n" |
278 |
|
|
" - w1 is the witness point on shape1. \n" |
279 |
|
|
" - normal is the normal of the separating plane found by coal::details::GJK. It points from shape0 to shape1. "; |
280 |
|
|
return ""; |
281 |
|
|
} |
282 |
|
|
|
283 |
|
|
inline boost::python::detail::keywords<5> member_func_args (void (coal::details::GJK::*function_ptr) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const) |
284 |
|
|
{ |
285 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (const coal::details::MinkowskiDiff &, coal::Vec3ps &, coal::Vec3ps &, coal::Vec3ps &) const>(&coal::details::GJK::getWitnessPointsAndNormal)) |
286 |
|
|
return (boost::python::arg("self"), boost::python::arg("shape"), boost::python::arg("w0"), boost::python::arg("w1"), boost::python::arg("normal")); |
287 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1"), boost::python::arg("arg2"), boost::python::arg("arg3")); |
288 |
|
|
} |
289 |
|
|
|
290 |
|
|
inline const char* member_func_doc ( coal::Vec3ps (coal::details::GJK::*function_ptr) () const) |
291 |
|
|
{ |
292 |
|
|
if (function_ptr == static_cast< coal::Vec3ps (coal::details::GJK::*) () const>(&coal::details::GJK::getGuessFromSimplex)) |
293 |
|
|
return "get the guess from current simplex "; |
294 |
|
|
return ""; |
295 |
|
|
} |
296 |
|
|
|
297 |
|
|
inline boost::python::detail::keywords<1> member_func_args ( coal::Vec3ps (coal::details::GJK::*function_ptr) () const) |
298 |
|
|
{ |
299 |
|
|
if (function_ptr == static_cast< coal::Vec3ps (coal::details::GJK::*) () const>(&coal::details::GJK::getGuessFromSimplex)) |
300 |
|
|
return (boost::python::arg("self")); |
301 |
|
|
return (boost::python::arg("self")); |
302 |
|
|
} |
303 |
|
|
|
304 |
|
|
inline const char* member_func_doc (void (coal::details::GJK::*function_ptr) (const coal::SolverScalar &)) |
305 |
|
|
{ |
306 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (const coal::SolverScalar &)>(&coal::details::GJK::setDistanceEarlyBreak)) |
307 |
|
|
return "Distance threshold for early break. coal::details::GJK stops when it proved the distance is more than this threshold. \n" |
308 |
|
|
"\n" |
309 |
|
|
"Note: The closest points will be erroneous in this case. If you want the closest points, set this to infinity (the default). "; |
310 |
|
|
return ""; |
311 |
|
|
} |
312 |
|
|
|
313 |
|
|
inline boost::python::detail::keywords<2> member_func_args (void (coal::details::GJK::*function_ptr) (const coal::SolverScalar &)) |
314 |
|
|
{ |
315 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::*) (const coal::SolverScalar &)>(&coal::details::GJK::setDistanceEarlyBreak)) |
316 |
|
|
return (boost::python::arg("self"), boost::python::arg("dup")); |
317 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0")); |
318 |
|
|
} |
319 |
|
|
|
320 |
|
|
inline const char* member_func_doc (bool (coal::details::GJK::*function_ptr) (const coal::Vec3ps &, const coal::SolverScalar &, coal::SolverScalar &, const coal::SolverScalar &) const) |
321 |
|
|
{ |
322 |
|
|
if (function_ptr == static_cast<bool (coal::details::GJK::*) (const coal::Vec3ps &, const coal::SolverScalar &, coal::SolverScalar &, const coal::SolverScalar &) const>(&coal::details::GJK::checkConvergence)) |
323 |
|
|
return "Convergence check used to stop coal::details::GJK when shapes are not in collision. "; |
324 |
|
|
return ""; |
325 |
|
|
} |
326 |
|
|
|
327 |
|
|
inline boost::python::detail::keywords<5> member_func_args (bool (coal::details::GJK::*function_ptr) (const coal::Vec3ps &, const coal::SolverScalar &, coal::SolverScalar &, const coal::SolverScalar &) const) |
328 |
|
|
{ |
329 |
|
|
if (function_ptr == static_cast<bool (coal::details::GJK::*) (const coal::Vec3ps &, const coal::SolverScalar &, coal::SolverScalar &, const coal::SolverScalar &) const>(&coal::details::GJK::checkConvergence)) |
330 |
|
|
return (boost::python::arg("self"), boost::python::arg("w"), boost::python::arg("rl"), boost::python::arg("alpha"), boost::python::arg("omega")); |
331 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0"), boost::python::arg("arg1"), boost::python::arg("arg2"), boost::python::arg("arg3")); |
332 |
|
|
} |
333 |
|
|
|
334 |
|
|
inline const char* member_func_doc (size_t (coal::details::GJK::*function_ptr) () const) |
335 |
|
|
{ |
336 |
|
|
if (function_ptr == static_cast<size_t (coal::details::GJK::*) () const>(&coal::details::GJK::getNumMaxIterations)) |
337 |
|
|
return "Get the max number of iterations of coal::details::GJK. "; |
338 |
|
|
if (function_ptr == static_cast<size_t (coal::details::GJK::*) () const>(&coal::details::GJK::getNumIterations)) |
339 |
|
|
return "Get the number of iterations of the last run of coal::details::GJK. "; |
340 |
|
|
if (function_ptr == static_cast<size_t (coal::details::GJK::*) () const>(&coal::details::GJK::getNumIterationsMomentumStopped)) |
341 |
|
|
return "Get coal::details::GJK number of iterations before momentum stops. Only usefull if the Nesterov or Polyak acceleration activated. "; |
342 |
|
|
return ""; |
343 |
|
|
} |
344 |
|
|
|
345 |
|
|
inline boost::python::detail::keywords<1> member_func_args (size_t (coal::details::GJK::*function_ptr) () const) |
346 |
|
|
{ |
347 |
|
|
if (function_ptr == static_cast<size_t (coal::details::GJK::*) () const>(&coal::details::GJK::getNumMaxIterations)) |
348 |
|
|
return (boost::python::arg("self")); |
349 |
|
|
if (function_ptr == static_cast<size_t (coal::details::GJK::*) () const>(&coal::details::GJK::getNumIterations)) |
350 |
|
|
return (boost::python::arg("self")); |
351 |
|
|
if (function_ptr == static_cast<size_t (coal::details::GJK::*) () const>(&coal::details::GJK::getNumIterationsMomentumStopped)) |
352 |
|
|
return (boost::python::arg("self")); |
353 |
|
|
return (boost::python::arg("self")); |
354 |
|
|
} |
355 |
|
|
|
356 |
|
|
inline const char* member_func_doc ( coal::SolverScalar (coal::details::GJK::*function_ptr) () const) |
357 |
|
|
{ |
358 |
|
|
if (function_ptr == static_cast< coal::SolverScalar (coal::details::GJK::*) () const>(&coal::details::GJK::getTolerance)) |
359 |
|
|
return "Get the tolerance of coal::details::GJK. "; |
360 |
|
|
return ""; |
361 |
|
|
} |
362 |
|
|
|
363 |
|
|
inline boost::python::detail::keywords<1> member_func_args ( coal::SolverScalar (coal::details::GJK::*function_ptr) () const) |
364 |
|
|
{ |
365 |
|
|
if (function_ptr == static_cast< coal::SolverScalar (coal::details::GJK::*) () const>(&coal::details::GJK::getTolerance)) |
366 |
|
|
return (boost::python::arg("self")); |
367 |
|
|
return (boost::python::arg("self")); |
368 |
|
|
} |
369 |
|
|
} // namespace doxygen |
370 |
|
|
#include <coal/narrowphase/gjk.h> |
371 |
|
|
|
372 |
|
|
namespace doxygen { |
373 |
|
|
|
374 |
|
|
template <> |
375 |
|
|
struct class_doc_impl< coal::details::GJK::Simplex > |
376 |
|
|
{ |
377 |
|
|
static inline const char* run () |
378 |
|
|
{ |
379 |
|
|
return "A simplex is a set of up to 4 vertices. Its rank is the number of vertices it contains. \n" |
380 |
|
|
"\n" |
381 |
|
|
"Note: This data structure does not own the vertices it refers to. To be efficient, the constructor of coal::details::GJK creates storage for 4 vertices. Since coal::details::GJK does not need any more storage, it reuses these vertices throughout the algorithm by using multiple instance of this coal::details::GJK::Simplex class. "; |
382 |
|
|
} |
383 |
|
|
static inline const char* attribute (const char* attrib) |
384 |
|
|
{ |
385 |
|
|
if (strcmp(attrib, "vertex") == 0) |
386 |
|
|
return "simplex vertex "; |
387 |
|
|
if (strcmp(attrib, "rank") == 0) |
388 |
|
|
return "size of simplex (number of vertices) "; |
389 |
|
|
(void)attrib; // turn off unused parameter warning. |
390 |
|
|
return ""; |
391 |
|
|
} |
392 |
|
|
}; |
393 |
|
|
|
394 |
|
|
template <> |
395 |
|
|
struct constructor_0_impl< coal::details::GJK::Simplex > |
396 |
|
|
{ |
397 |
|
|
static inline const char* doc () |
398 |
|
|
{ |
399 |
|
|
return ""; |
400 |
|
|
} |
401 |
|
|
static inline boost::python::detail::keywords<0+1> args () |
402 |
|
|
{ |
403 |
|
|
return (boost::python::arg("self")); |
404 |
|
|
} |
405 |
|
|
}; |
406 |
|
|
|
407 |
|
|
inline const char* member_func_doc (void (coal::details::GJK::Simplex::*function_ptr) ()) |
408 |
|
|
{ |
409 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::Simplex::*) ()>(&coal::details::GJK::Simplex::reset)) |
410 |
|
|
return ""; |
411 |
|
|
return ""; |
412 |
|
|
} |
413 |
|
|
|
414 |
|
|
inline boost::python::detail::keywords<1> member_func_args (void (coal::details::GJK::Simplex::*function_ptr) ()) |
415 |
|
|
{ |
416 |
|
|
if (function_ptr == static_cast<void (coal::details::GJK::Simplex::*) ()>(&coal::details::GJK::Simplex::reset)) |
417 |
|
|
return (boost::python::arg("self")); |
418 |
|
|
return (boost::python::arg("self")); |
419 |
|
|
} |
420 |
|
|
} // namespace doxygen |
421 |
|
|
#include <coal/narrowphase/gjk.h> |
422 |
|
|
|
423 |
|
|
namespace doxygen { |
424 |
|
|
|
425 |
|
|
template <> |
426 |
|
|
struct constructor_0_impl< coal::details::EPA::SimplexFace > |
427 |
|
|
{ |
428 |
|
|
static inline const char* doc () |
429 |
|
|
{ |
430 |
|
|
return ""; |
431 |
|
|
} |
432 |
|
|
static inline boost::python::detail::keywords<0+1> args () |
433 |
|
|
{ |
434 |
|
|
return (boost::python::arg("self")); |
435 |
|
|
} |
436 |
|
|
}; |
437 |
|
|
} // namespace doxygen |
438 |
|
|
#include <coal/narrowphase/gjk.h> |
439 |
|
|
|
440 |
|
|
namespace doxygen { |
441 |
|
|
|
442 |
|
|
template <> |
443 |
|
|
struct class_doc_impl< coal::details::EPA::SimplexFaceList > |
444 |
|
|
{ |
445 |
|
|
static inline const char* run () |
446 |
|
|
{ |
447 |
|
|
return "The simplex list of coal::details::EPA is a linked list of faces. Note: coal::details::EPA's linked list does not own any memory. The memory it refers to is contiguous and owned by a std::vector. "; |
448 |
|
|
} |
449 |
|
|
static inline const char* attribute (const char* attrib) |
450 |
|
|
{ |
451 |
|
|
(void)attrib; // turn off unused parameter warning. |
452 |
|
|
return ""; |
453 |
|
|
} |
454 |
|
|
}; |
455 |
|
|
|
456 |
|
|
template <> |
457 |
|
|
struct constructor_0_impl< coal::details::EPA::SimplexFaceList > |
458 |
|
|
{ |
459 |
|
|
static inline const char* doc () |
460 |
|
|
{ |
461 |
|
|
return ""; |
462 |
|
|
} |
463 |
|
|
static inline boost::python::detail::keywords<0+1> args () |
464 |
|
|
{ |
465 |
|
|
return (boost::python::arg("self")); |
466 |
|
|
} |
467 |
|
|
}; |
468 |
|
|
|
469 |
|
|
inline const char* member_func_doc (void (coal::details::EPA::SimplexFaceList::*function_ptr) ()) |
470 |
|
|
{ |
471 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::SimplexFaceList::*) ()>(&coal::details::EPA::SimplexFaceList::reset)) |
472 |
|
|
return ""; |
473 |
|
|
return ""; |
474 |
|
|
} |
475 |
|
|
|
476 |
|
|
inline boost::python::detail::keywords<1> member_func_args (void (coal::details::EPA::SimplexFaceList::*function_ptr) ()) |
477 |
|
|
{ |
478 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::SimplexFaceList::*) ()>(&coal::details::EPA::SimplexFaceList::reset)) |
479 |
|
|
return (boost::python::arg("self")); |
480 |
|
|
return (boost::python::arg("self")); |
481 |
|
|
} |
482 |
|
|
|
483 |
|
|
inline const char* member_func_doc (void (coal::details::EPA::SimplexFaceList::*function_ptr) ( coal::details::EPA::SimplexFace *)) |
484 |
|
|
{ |
485 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::SimplexFaceList::*) ( coal::details::EPA::SimplexFace *)>(&coal::details::EPA::SimplexFaceList::append)) |
486 |
|
|
return ""; |
487 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::SimplexFaceList::*) ( coal::details::EPA::SimplexFace *)>(&coal::details::EPA::SimplexFaceList::remove)) |
488 |
|
|
return ""; |
489 |
|
|
return ""; |
490 |
|
|
} |
491 |
|
|
|
492 |
|
|
inline boost::python::detail::keywords<2> member_func_args (void (coal::details::EPA::SimplexFaceList::*function_ptr) ( coal::details::EPA::SimplexFace *)) |
493 |
|
|
{ |
494 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::SimplexFaceList::*) ( coal::details::EPA::SimplexFace *)>(&coal::details::EPA::SimplexFaceList::append)) |
495 |
|
|
return (boost::python::arg("self"), boost::python::arg("face")); |
496 |
|
|
if (function_ptr == static_cast<void (coal::details::EPA::SimplexFaceList::*) ( coal::details::EPA::SimplexFace *)>(&coal::details::EPA::SimplexFaceList::remove)) |
497 |
|
|
return (boost::python::arg("self"), boost::python::arg("face")); |
498 |
|
|
return (boost::python::arg("self"), boost::python::arg("arg0")); |
499 |
|
|
} |
500 |
|
|
} // namespace doxygen |
501 |
|
|
#include <coal/narrowphase/gjk.h> |
502 |
|
|
|
503 |
|
|
namespace doxygen { |
504 |
|
|
|
505 |
|
|
template <> |
506 |
|
|
struct constructor_0_impl< coal::details::EPA::SimplexHorizon > |
507 |
|
|
{ |
508 |
|
|
static inline const char* doc () |
509 |
|
|
{ |
510 |
|
|
return ""; |
511 |
|
|
} |
512 |
|
|
static inline boost::python::detail::keywords<0+1> args () |
513 |
|
|
{ |
514 |
|
|
return (boost::python::arg("self")); |
515 |
|
|
} |
516 |
|
|
}; |
517 |
|
|
} // namespace doxygen |
518 |
|
|
#include <coal/narrowphase/gjk.h> |
519 |
|
|
|
520 |
|
|
namespace doxygen { |
521 |
|
|
|
522 |
|
|
template <> |
523 |
|
|
struct class_doc_impl< coal::details::GJK::SimplexV > |
524 |
|
|
{ |
525 |
|
|
static inline const char* run () |
526 |
|
|
{ |
527 |
|
|
return ""; |
528 |
|
|
} |
529 |
|
|
static inline const char* attribute (const char* attrib) |
530 |
|
|
{ |
531 |
|
|
if (strcmp(attrib, "w0") == 0) |
532 |
|
|
return "support vector for shape 0 and 1. "; |
533 |
|
|
if (strcmp(attrib, "w") == 0) |
534 |
|
|
return "support vector (i.e., the furthest point on the shape along the support direction) "; |
535 |
|
|
(void)attrib; // turn off unused parameter warning. |
536 |
|
|
return ""; |
537 |
|
|
} |
538 |
|
|
}; |
539 |
|
|
} // namespace doxygen |
540 |
|
|
|
541 |
|
|
#endif // DOXYGEN_AUTODOC_COAL_NARROWPHASE_GJK_H |
542 |
|
|
|
543 |
|
|
|