Skip to content

Commit c144d48

Browse files
committed
expose IdVisitor only if eigenpy>=3.8.0 available
fix eigenpy/id.hpp not found
1 parent 931c661 commit c144d48

File tree

1 file changed

+54
-14
lines changed

1 file changed

+54
-14
lines changed

python/collision-geometries.cc

+54-14
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@
3434

3535
#include <eigenpy/eigenpy.hpp>
3636
#include <eigenpy/eigen-to-python.hpp>
37+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
3738
#include <eigenpy/id.hpp>
38-
39+
#endif
3940
#include "fcl.hh"
4041
#include "deprecation.hh"
4142

@@ -118,7 +119,10 @@ void exposeBVHModel(const std::string& bvname) {
118119
return_value_policy<manage_new_object>())
119120
.def_pickle(PickleObject<BVH>())
120121
.def(SerializableVisitor<BVH>())
121-
.def(eigenpy::IdVisitor<BVH>());
122+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
123+
.def(eigenpy::IdVisitor<BVH>())
124+
#endif
125+
;
122126
}
123127

124128
template <typename BV>
@@ -160,7 +164,10 @@ void exposeHeightField(const std::string& bvname) {
160164
bp::return_internal_reference<>())
161165
.def_pickle(PickleObject<Geometry>())
162166
.def(SerializableVisitor<Geometry>())
163-
.def(eigenpy::IdVisitor<Geometry>());
167+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
168+
.def(eigenpy::IdVisitor<Geometry>())
169+
#endif
170+
;
164171
}
165172

166173
struct ConvexBaseWrapper {
@@ -288,7 +295,10 @@ void exposeShapes() {
288295
return_value_policy<manage_new_object>())
289296
.def_pickle(PickleObject<Box>())
290297
.def(SerializableVisitor<Box>())
291-
.def(eigenpy::IdVisitor<Box>());
298+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
299+
.def(eigenpy::IdVisitor<Box>())
300+
#endif
301+
;
292302

293303
class_<Capsule, bases<ShapeBase>, shared_ptr<Capsule>>(
294304
"Capsule", doxygen::class_doc<Capsule>(), no_init)
@@ -301,7 +311,10 @@ void exposeShapes() {
301311
return_value_policy<manage_new_object>())
302312
.def_pickle(PickleObject<Capsule>())
303313
.def(SerializableVisitor<Capsule>())
304-
.def(eigenpy::IdVisitor<Capsule>());
314+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
315+
.def(eigenpy::IdVisitor<Capsule>())
316+
#endif
317+
;
305318

306319
class_<Cone, bases<ShapeBase>, shared_ptr<Cone>>(
307320
"Cone", doxygen::class_doc<Cone>(), no_init)
@@ -314,7 +327,10 @@ void exposeShapes() {
314327
return_value_policy<manage_new_object>())
315328
.def_pickle(PickleObject<Cone>())
316329
.def(SerializableVisitor<Cone>())
317-
.def(eigenpy::IdVisitor<Cone>());
330+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
331+
.def(eigenpy::IdVisitor<Cone>())
332+
#endif
333+
;
318334

319335
class_<ConvexBase, bases<ShapeBase>, shared_ptr<ConvexBase>, noncopyable>(
320336
"ConvexBase", doxygen::class_doc<ConvexBase>(), no_init)
@@ -363,7 +379,10 @@ void exposeShapes() {
363379
.def("polygons", &ConvexWrapper<Triangle>::polygons)
364380
.def_pickle(PickleObject<Convex<Triangle>>())
365381
.def(SerializableVisitor<Convex<Triangle>>())
366-
.def(eigenpy::IdVisitor<Convex<Triangle>>());
382+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
383+
.def(eigenpy::IdVisitor<Convex<Triangle>>())
384+
#endif
385+
;
367386

368387
class_<Cylinder, bases<ShapeBase>, shared_ptr<Cylinder>>(
369388
"Cylinder", doxygen::class_doc<Cylinder>(), no_init)
@@ -377,7 +396,10 @@ void exposeShapes() {
377396
return_value_policy<manage_new_object>())
378397
.def_pickle(PickleObject<Cylinder>())
379398
.def(SerializableVisitor<Cylinder>())
380-
.def(eigenpy::IdVisitor<Cylinder>());
399+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
400+
.def(eigenpy::IdVisitor<Cylinder>())
401+
#endif
402+
;
381403

382404
class_<Halfspace, bases<ShapeBase>, shared_ptr<Halfspace>>(
383405
"Halfspace", doxygen::class_doc<Halfspace>(), no_init)
@@ -392,7 +414,10 @@ void exposeShapes() {
392414
return_value_policy<manage_new_object>())
393415
.def_pickle(PickleObject<Halfspace>())
394416
.def(SerializableVisitor<Halfspace>())
395-
.def(eigenpy::IdVisitor<Halfspace>());
417+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
418+
.def(eigenpy::IdVisitor<Halfspace>())
419+
#endif
420+
;
396421

397422
class_<Plane, bases<ShapeBase>, shared_ptr<Plane>>(
398423
"Plane", doxygen::class_doc<Plane>(), no_init)
@@ -406,7 +431,10 @@ void exposeShapes() {
406431
return_value_policy<manage_new_object>())
407432
.def_pickle(PickleObject<Plane>())
408433
.def(SerializableVisitor<Plane>())
409-
.def(eigenpy::IdVisitor<Plane>());
434+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
435+
.def(eigenpy::IdVisitor<Plane>())
436+
#endif
437+
;
410438

411439
class_<Sphere, bases<ShapeBase>, shared_ptr<Sphere>>(
412440
"Sphere", doxygen::class_doc<Sphere>(), no_init)
@@ -418,7 +446,10 @@ void exposeShapes() {
418446
return_value_policy<manage_new_object>())
419447
.def_pickle(PickleObject<Sphere>())
420448
.def(SerializableVisitor<Sphere>())
421-
.def(eigenpy::IdVisitor<Sphere>());
449+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
450+
.def(eigenpy::IdVisitor<Sphere>())
451+
#endif
452+
;
422453

423454
class_<Ellipsoid, bases<ShapeBase>, shared_ptr<Ellipsoid>>(
424455
"Ellipsoid", doxygen::class_doc<Ellipsoid>(), no_init)
@@ -432,7 +463,10 @@ void exposeShapes() {
432463
return_value_policy<manage_new_object>())
433464
.def_pickle(PickleObject<Ellipsoid>())
434465
.def(SerializableVisitor<Ellipsoid>())
435-
.def(eigenpy::IdVisitor<Ellipsoid>());
466+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
467+
.def(eigenpy::IdVisitor<Ellipsoid>())
468+
#endif
469+
;
436470

437471
class_<TriangleP, bases<ShapeBase>, shared_ptr<TriangleP>>(
438472
"TriangleP", doxygen::class_doc<TriangleP>(), no_init)
@@ -447,7 +481,10 @@ void exposeShapes() {
447481
return_value_policy<manage_new_object>())
448482
.def_pickle(PickleObject<TriangleP>())
449483
.def(SerializableVisitor<TriangleP>())
450-
.def(eigenpy::IdVisitor<TriangleP>());
484+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
485+
.def(eigenpy::IdVisitor<TriangleP>())
486+
#endif
487+
;
451488
}
452489

453490
boost::python::tuple AABB_distance_proxy(const AABB& self, const AABB& other) {
@@ -598,7 +635,10 @@ void exposeCollisionGeometries() {
598635
bp::return_internal_reference<>())
599636
.def_pickle(PickleObject<AABB>())
600637
.def(SerializableVisitor<AABB>())
601-
.def(eigenpy::IdVisitor<AABB>());
638+
#if EIGENPY_VERSION_AT_LEAST(3, 8, 0)
639+
.def(eigenpy::IdVisitor<AABB>())
640+
#endif
641+
;
602642

603643
def("translate", (AABB(*)(const AABB&, const Vec3f&)) & translate,
604644
bp::args("aabb", "t"), "Translate the center of AABB by t");

0 commit comments

Comments
 (0)