Skip to content
Snippets Groups Projects
Commit 931c6610 authored by zyi's avatar zyi
Browse files

fix issue #590

expose IdVisitor of all other collision geometries
parent 412cf100
No related branches found
No related tags found
No related merge requests found
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <eigenpy/eigenpy.hpp> #include <eigenpy/eigenpy.hpp>
#include <eigenpy/eigen-to-python.hpp> #include <eigenpy/eigen-to-python.hpp>
#include <eigenpy/id.hpp>
#include "fcl.hh" #include "fcl.hh"
#include "deprecation.hh" #include "deprecation.hh"
...@@ -116,7 +117,8 @@ void exposeBVHModel(const std::string& bvname) { ...@@ -116,7 +117,8 @@ void exposeBVHModel(const std::string& bvname) {
.def("clone", &BVH::clone, doxygen::member_func_doc(&BVH::clone), .def("clone", &BVH::clone, doxygen::member_func_doc(&BVH::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<BVH>()) .def_pickle(PickleObject<BVH>())
.def(SerializableVisitor<BVH>()); .def(SerializableVisitor<BVH>())
.def(eigenpy::IdVisitor<BVH>());
} }
template <typename BV> template <typename BV>
...@@ -157,7 +159,8 @@ void exposeHeightField(const std::string& bvname) { ...@@ -157,7 +159,8 @@ void exposeHeightField(const std::string& bvname) {
Geometry::getBV), Geometry::getBV),
bp::return_internal_reference<>()) bp::return_internal_reference<>())
.def_pickle(PickleObject<Geometry>()) .def_pickle(PickleObject<Geometry>())
.def(SerializableVisitor<Geometry>()); .def(SerializableVisitor<Geometry>())
.def(eigenpy::IdVisitor<Geometry>());
} }
struct ConvexBaseWrapper { struct ConvexBaseWrapper {
...@@ -284,7 +287,8 @@ void exposeShapes() { ...@@ -284,7 +287,8 @@ void exposeShapes() {
.def("clone", &Box::clone, doxygen::member_func_doc(&Box::clone), .def("clone", &Box::clone, doxygen::member_func_doc(&Box::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Box>()) .def_pickle(PickleObject<Box>())
.def(SerializableVisitor<Box>()); .def(SerializableVisitor<Box>())
.def(eigenpy::IdVisitor<Box>());
class_<Capsule, bases<ShapeBase>, shared_ptr<Capsule>>( class_<Capsule, bases<ShapeBase>, shared_ptr<Capsule>>(
"Capsule", doxygen::class_doc<Capsule>(), no_init) "Capsule", doxygen::class_doc<Capsule>(), no_init)
...@@ -296,7 +300,8 @@ void exposeShapes() { ...@@ -296,7 +300,8 @@ void exposeShapes() {
.def("clone", &Capsule::clone, doxygen::member_func_doc(&Capsule::clone), .def("clone", &Capsule::clone, doxygen::member_func_doc(&Capsule::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Capsule>()) .def_pickle(PickleObject<Capsule>())
.def(SerializableVisitor<Capsule>()); .def(SerializableVisitor<Capsule>())
.def(eigenpy::IdVisitor<Capsule>());
class_<Cone, bases<ShapeBase>, shared_ptr<Cone>>( class_<Cone, bases<ShapeBase>, shared_ptr<Cone>>(
"Cone", doxygen::class_doc<Cone>(), no_init) "Cone", doxygen::class_doc<Cone>(), no_init)
...@@ -308,7 +313,8 @@ void exposeShapes() { ...@@ -308,7 +313,8 @@ void exposeShapes() {
.def("clone", &Cone::clone, doxygen::member_func_doc(&Cone::clone), .def("clone", &Cone::clone, doxygen::member_func_doc(&Cone::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Cone>()) .def_pickle(PickleObject<Cone>())
.def(SerializableVisitor<Cone>()); .def(SerializableVisitor<Cone>())
.def(eigenpy::IdVisitor<Cone>());
class_<ConvexBase, bases<ShapeBase>, shared_ptr<ConvexBase>, noncopyable>( class_<ConvexBase, bases<ShapeBase>, shared_ptr<ConvexBase>, noncopyable>(
"ConvexBase", doxygen::class_doc<ConvexBase>(), no_init) "ConvexBase", doxygen::class_doc<ConvexBase>(), no_init)
...@@ -356,7 +362,8 @@ void exposeShapes() { ...@@ -356,7 +362,8 @@ void exposeShapes() {
.DEF_RO_CLASS_ATTRIB(Convex<Triangle>, num_polygons) .DEF_RO_CLASS_ATTRIB(Convex<Triangle>, num_polygons)
.def("polygons", &ConvexWrapper<Triangle>::polygons) .def("polygons", &ConvexWrapper<Triangle>::polygons)
.def_pickle(PickleObject<Convex<Triangle>>()) .def_pickle(PickleObject<Convex<Triangle>>())
.def(SerializableVisitor<Convex<Triangle>>()); .def(SerializableVisitor<Convex<Triangle>>())
.def(eigenpy::IdVisitor<Convex<Triangle>>());
class_<Cylinder, bases<ShapeBase>, shared_ptr<Cylinder>>( class_<Cylinder, bases<ShapeBase>, shared_ptr<Cylinder>>(
"Cylinder", doxygen::class_doc<Cylinder>(), no_init) "Cylinder", doxygen::class_doc<Cylinder>(), no_init)
...@@ -369,7 +376,8 @@ void exposeShapes() { ...@@ -369,7 +376,8 @@ void exposeShapes() {
doxygen::member_func_doc(&Cylinder::clone), doxygen::member_func_doc(&Cylinder::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Cylinder>()) .def_pickle(PickleObject<Cylinder>())
.def(SerializableVisitor<Cylinder>()); .def(SerializableVisitor<Cylinder>())
.def(eigenpy::IdVisitor<Cylinder>());
class_<Halfspace, bases<ShapeBase>, shared_ptr<Halfspace>>( class_<Halfspace, bases<ShapeBase>, shared_ptr<Halfspace>>(
"Halfspace", doxygen::class_doc<Halfspace>(), no_init) "Halfspace", doxygen::class_doc<Halfspace>(), no_init)
...@@ -383,7 +391,8 @@ void exposeShapes() { ...@@ -383,7 +391,8 @@ void exposeShapes() {
doxygen::member_func_doc(&Halfspace::clone), doxygen::member_func_doc(&Halfspace::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Halfspace>()) .def_pickle(PickleObject<Halfspace>())
.def(SerializableVisitor<Halfspace>()); .def(SerializableVisitor<Halfspace>())
.def(eigenpy::IdVisitor<Halfspace>());
class_<Plane, bases<ShapeBase>, shared_ptr<Plane>>( class_<Plane, bases<ShapeBase>, shared_ptr<Plane>>(
"Plane", doxygen::class_doc<Plane>(), no_init) "Plane", doxygen::class_doc<Plane>(), no_init)
...@@ -396,7 +405,8 @@ void exposeShapes() { ...@@ -396,7 +405,8 @@ void exposeShapes() {
.def("clone", &Plane::clone, doxygen::member_func_doc(&Plane::clone), .def("clone", &Plane::clone, doxygen::member_func_doc(&Plane::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Plane>()) .def_pickle(PickleObject<Plane>())
.def(SerializableVisitor<Plane>()); .def(SerializableVisitor<Plane>())
.def(eigenpy::IdVisitor<Plane>());
class_<Sphere, bases<ShapeBase>, shared_ptr<Sphere>>( class_<Sphere, bases<ShapeBase>, shared_ptr<Sphere>>(
"Sphere", doxygen::class_doc<Sphere>(), no_init) "Sphere", doxygen::class_doc<Sphere>(), no_init)
...@@ -407,7 +417,8 @@ void exposeShapes() { ...@@ -407,7 +417,8 @@ void exposeShapes() {
.def("clone", &Sphere::clone, doxygen::member_func_doc(&Sphere::clone), .def("clone", &Sphere::clone, doxygen::member_func_doc(&Sphere::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Sphere>()) .def_pickle(PickleObject<Sphere>())
.def(SerializableVisitor<Sphere>()); .def(SerializableVisitor<Sphere>())
.def(eigenpy::IdVisitor<Sphere>());
class_<Ellipsoid, bases<ShapeBase>, shared_ptr<Ellipsoid>>( class_<Ellipsoid, bases<ShapeBase>, shared_ptr<Ellipsoid>>(
"Ellipsoid", doxygen::class_doc<Ellipsoid>(), no_init) "Ellipsoid", doxygen::class_doc<Ellipsoid>(), no_init)
...@@ -420,7 +431,8 @@ void exposeShapes() { ...@@ -420,7 +431,8 @@ void exposeShapes() {
doxygen::member_func_doc(&Ellipsoid::clone), doxygen::member_func_doc(&Ellipsoid::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<Ellipsoid>()) .def_pickle(PickleObject<Ellipsoid>())
.def(SerializableVisitor<Ellipsoid>()); .def(SerializableVisitor<Ellipsoid>())
.def(eigenpy::IdVisitor<Ellipsoid>());
class_<TriangleP, bases<ShapeBase>, shared_ptr<TriangleP>>( class_<TriangleP, bases<ShapeBase>, shared_ptr<TriangleP>>(
"TriangleP", doxygen::class_doc<TriangleP>(), no_init) "TriangleP", doxygen::class_doc<TriangleP>(), no_init)
...@@ -434,7 +446,8 @@ void exposeShapes() { ...@@ -434,7 +446,8 @@ void exposeShapes() {
doxygen::member_func_doc(&TriangleP::clone), doxygen::member_func_doc(&TriangleP::clone),
return_value_policy<manage_new_object>()) return_value_policy<manage_new_object>())
.def_pickle(PickleObject<TriangleP>()) .def_pickle(PickleObject<TriangleP>())
.def(SerializableVisitor<TriangleP>()); .def(SerializableVisitor<TriangleP>())
.def(eigenpy::IdVisitor<TriangleP>());
} }
boost::python::tuple AABB_distance_proxy(const AABB& self, const AABB& other) { boost::python::tuple AABB_distance_proxy(const AABB& self, const AABB& other) {
...@@ -584,7 +597,8 @@ void exposeCollisionGeometries() { ...@@ -584,7 +597,8 @@ void exposeCollisionGeometries() {
// (AABB::*)(const Vec3f &)>(&AABB::expand)), // (AABB::*)(const Vec3f &)>(&AABB::expand)),
bp::return_internal_reference<>()) bp::return_internal_reference<>())
.def_pickle(PickleObject<AABB>()) .def_pickle(PickleObject<AABB>())
.def(SerializableVisitor<AABB>()); .def(SerializableVisitor<AABB>())
.def(eigenpy::IdVisitor<AABB>());
def("translate", (AABB(*)(const AABB&, const Vec3f&)) & translate, def("translate", (AABB(*)(const AABB&, const Vec3f&)) & translate,
bp::args("aabb", "t"), "Translate the center of AABB by t"); bp::args("aabb", "t"), "Translate the center of AABB by t");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment