18 if (!obj1_fcl || !obj2_fcl)
return -1;
21 *obj1_fcl, *obj2_fcl));
30 if (!obj1_fcl || !obj2_fcl)
return -1;
32 *obj1_fcl, *obj2_fcl));
48 if (!obj1_fcl || !obj2_fcl)
return -1;
50 *obj1_fcl, *obj2_fcl));
61 static_cast<const TimeVariantCollisionObject &>(obj1));
64 for (
int cc1 = time_idx_start; cc1 <= time_idx_end; cc1++) {
71 if (cur_obj->getCollisionObjectClass() ==
81 func(*cur_obj, obj2, res, req);
101 static_cast<const TimeVariantCollisionObject &>(obj1));
103 static_cast<const TimeVariantCollisionObject &>(obj2));
108 for (
int cc1 = time_idx_start; cc1 <= time_idx_end; cc1++) {
112 if (!obst_1.get() || !obst_2.get()) {
121 obst_1->getCollisionObjectType(), obst_2->getCollisionObjectType());
125 func(*obst_1, *obst_2, res, req);
135 memset(m_collide_bool_function, 0,
collide_bool_func_t getSolverBoolFunction(CollisionObjectType obj1_type, CollisionObjectType obj2_type) const
std::size_t collide_tvobst_tvobst(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
TimeVariantCollisionObject can contain a different CollisionObject or ShapeGroup at each time step...
int time_start_idx() const
std::size_t collide_shape_group_shape_group(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t(* collide_bool_func_t)(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
const FCLCollisionObject * get_fcl_object_ptr(const CollisionObject *obj)
Universal structure specifying collision request properties.
std::size_t collide_obj_obj(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
bool set_result(bool res)
std::size_t collide_obj_shape_group(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
bool fcl_generic_collisionDetection(const FCLCollisionObject &obj_first, const FCLCollisionObject &obj_second)
virtual CollisionObjectType getCollisionObjectType() const
std::size_t collide_shape_group_obj(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
std::size_t collide_obj_tvobst(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
CollisionFunctionMatrix(const solvers::FCLSolver *solver)
CollisionObjectConstPtr getObstacleAtTime(int time_idx) const
Base class for CollisionObjects and some of their groups.
std::size_t collide_tvobst_obj(const CollisionObject &obj1, const CollisionObject &obj2, CollisionResult &res, const CollisionRequest &req)
Structure holding result for a collision request.
const FCLCollisionObjectGroup * get_fcl_object_group_ptr(const CollisionObject *obj)
constexpr int COL_OBJECT_TYPES_COUNT