Go to the documentation of this file.
35 #ifndef COAL_PYTHON_BROADPHASE_BROADPHASE_COLLISION_MANAGER_HH
36 #define COAL_PYTHON_BROADPHASE_BROADPHASE_COLLISION_MANAGER_HH
46 #ifdef COAL_HAS_DOXYGEN_AUTODOC
47 #include "doxygen_autodoc/functions.h"
48 #include "doxygen_autodoc/coal/broadphase/broadphase_collision_manager.h"
51 #include <boost/algorithm/string/replace.hpp>
52 #include <boost/type_index.hpp>
58 bp::wrapper<BroadPhaseCollisionManager> {
62 this->get_override(
"registerObjects")(other_objs);
65 this->get_override(
"registerObjects")(obj);
68 this->get_override(
"unregisterObject")(obj);
71 void update(
const std::vector<CollisionObject *> &other_objs) {
72 this->get_override(
"update")(other_objs);
75 void update() { this->get_override(
"update")(); }
77 void setup() { this->get_override(
"setup")(); }
78 void clear() { this->get_override(
"clear")(); }
81 #pragma GCC diagnostic push
82 #pragma GCC diagnostic ignored "-Wconversion"
83 return this->get_override(
"getObjects")();
84 #pragma GCC diagnostic pop
88 this->get_override(
"collide")(
callback);
91 this->get_override(
"collide")(obj,
callback);
95 this->get_override(
"collide")(other_manager,
callback);
99 this->get_override(
"distance")(
callback);
102 this->get_override(
"collide")(obj,
callback);
106 this->get_override(
"collide")(other_manager,
callback);
110 #pragma GCC diagnostic push
111 #pragma GCC diagnostic ignored "-Wconversion"
112 return this->get_override(
"empty")();
113 #pragma GCC diagnostic pop
116 #pragma GCC diagnostic push
117 #pragma GCC diagnostic ignored "-Wconversion"
118 return this->get_override(
"size")();
119 #pragma GCC diagnostic pop
123 bp::class_<BroadPhaseCollisionManagerWrapper, boost::noncopyable>(
124 "BroadPhaseCollisionManager", bp::no_init)
127 bp::with_custodian_and_ward_postcall<1, 2>())
130 bp::with_custodian_and_ward_postcall<1, 2>())
138 (
void(
Base::*)(
const std::vector<CollisionObject *> &)) &
141 const std::vector<CollisionObject *> &))(&
Base::update)),
142 bp::with_custodian_and_ward_postcall<1, 2>())
148 bp::with_custodian_and_ward_postcall<1, 2>())
161 bp::pure_virtual((std::vector<CollisionObject *>(
Base::*)()
const) &
164 (std::vector<CollisionObject *>(
Base::*)()
const) &
166 bp::with_custodian_and_ward_postcall<0, 1>())
215 template <
typename Derived>
217 std::string class_name = boost::typeindex::type_id<Derived>().pretty_name();
218 boost::algorithm::replace_all(class_name,
"coal::",
"");
220 boost::algorithm::replace_all(class_name,
"class ",
"");
223 bp::class_<Derived, bp::bases<BroadPhaseCollisionManager> >(
224 class_name.c_str(), bp::no_init)
225 .
def(dv::init<Derived>());
232 #endif // ifndef COAL_PYTHON_BROADPHASE_BROADPHASE_COLLISION_MANAGER_HH
BroadPhaseCollisionManager Base
void registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
virtual size_t size() const =0
the number of objects managed by the manager
void collide(CollisionCallBackBase *callback) const
perform collision test for the objects belonging to the manager (i.e., N^2 self collision)
virtual void distance(CollisionObject *obj, DistanceCallBackBase *callback) const =0
perform distance computation between one object and all the objects belonging to the manager
void registerObject(CollisionObject *obj)
add one object to the manager
bool empty() const
whether the manager is empty
size_t size() const
the number of objects managed by the manager
std::vector< CollisionObject * > getObjects() const
return the objects managed by the manager
virtual void clear()=0
clear the manager
Base class for broad phase collision. It helps to accelerate the collision/distance between N objects...
void collide(BroadPhaseCollisionManager *other_manager, CollisionCallBackBase *callback) const
perform collision test with objects belonging to another manager
virtual std::vector< CollisionObject * > getObjects() const
return the objects managed by the manager
void setup()
initialize the manager, related with the specific type of manager
void def(const char *name, Func func)
virtual void registerObjects(const std::vector< CollisionObject * > &other_objs)
add objects to the manager
virtual void setup()=0
initialize the manager, related with the specific type of manager
void collide(CollisionObject *obj, CollisionCallBackBase *callback) const
perform collision test between one object and all the objects belonging to the manager
static void exposeDerived()
virtual void update()=0
update the condition of manager
void update(const std::vector< CollisionObject * > &other_objs)
update the manager by explicitly given the set of objects update
Base callback class for distance queries. This class can be supersed by child classes to provide desi...
the object for collision or distance computation, contains the geometry and the transform information
void update()
update the condition of manager
virtual bool empty() const =0
whether the manager is empty
void unregisterObject(CollisionObject *obj)
remove one object from the manager
void clear()
clear the manager
void distance(DistanceCallBackBase *callback) const
perform distance test for the objects belonging to the manager (i.e., N^2 self distance)
virtual void registerObject(CollisionObject *obj)=0
add one object to the manager
void distance(BroadPhaseCollisionManager *other_manager, DistanceCallBackBase *callback) const
perform distance test with objects belonging to another manager
Base callback class for collision queries. This class can be supersed by child classes to provide des...
virtual void collide(CollisionObject *obj, CollisionCallBackBase *callback) const =0
perform collision test between one object and all the objects belonging to the manager
virtual void unregisterObject(CollisionObject *obj)=0
remove one object from the manager
void update(CollisionObject *obj)
update the manager by explicitly given the object updated
const char * member_func_doc(FuncPtr)
void distance(CollisionObject *obj, DistanceCallBackBase *callback) const
perform distance computation between one object and all the objects belonging to the manager
hpp-fcl
Author(s):
autogenerated on Sat Nov 23 2024 03:44:57