11 m_ResultPairs.emplace(o1, o2);
15 std::list<int> list2) {
16 for (
int el1 : list1) {
17 for (
int el2 : list2) {
23 std::set<std::pair<int, int>>
33 auto search = checked_pairs.find(pair);
34 if (search != checked_pairs.end())
return false;
36 checked_pairs.emplace(pair);
41 bool CollisionRequestDataMultipleObstacles::addRequestResultObstacleObject(
45 if (m_max_obstacles < 0) {
46 m_obstacles.push_back(obj);
49 if ((
int)m_obstacles.size() < m_max_obstacles) {
50 m_obstacles.push_back(obj);
52 return (m_obstacles.size() == m_max_obstacles);
64 auto already_added = m_added_map.find(obst);
65 if (already_added == m_added_map.end()) {
66 m_added_map.emplace(obst,
true);
67 auto it = m_parent_map.find(obst);
69 if (it != m_parent_map.end()) {
70 if (m_ungroup_sg && m_ungroup_tvobst) {
71 if (addRequestResultObstacleObject(obst->shared_from_this()))
74 bool found_sg =
false;
75 bool found_tvobst =
false;
80 for (
auto &member_obstacle : it->second) {
82 auto already_added_parent = m_added_map_parent.find(memb_obst);
83 if (already_added_parent == m_added_map_parent.end()) {
84 m_added_map_parent.emplace(memb_obst,
true);
89 switch (memb_obst_entity_type) {
91 if (!m_ungroup_tvobst)
94 if (addRequestResultObstacleObject(member_obstacle))
103 if (addRequestResultObstacleObject(member_obstacle))
110 if (addRequestResultObstacleObject(member_obstacle))
115 if (found_sg || found_tvobst) {
116 if (addRequestResultObstacleObject(obst->shared_from_this()))
123 #if ENABLE_COLLISION_TESTS 133 auto already_added = m_added_map.find(obst);
134 if (already_added == m_added_map.end()) {
135 m_added_map.emplace(obst,
true);
137 m_result.push_back(obst);
void addRequestResultList(std::list< int > list1, std::list< int > list2)
FCL_COLLISION_ENTITY_TYPE
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
bool testPair(std::pair< fcl::CollisionObject< FCL_PRECISION > *, fcl::CollisionObject< FCL_PRECISION > *> pair)
void addRequestResultObstacle(const CollisionObject *obst)
FCL_COLLISION_ENTITY_TYPE get_object_fcl_entity_type(const CollisionObject *obj2)
bool addRequestResultObstacle(const CollisionObject *obst)
std::set< std::pair< fcl::CollisionObject< FCL_PRECISION > *, fcl::CollisionObject< FCL_PRECISION > * > > checkedPairs
void addRequestResultPair(int o1, int o2)
Base class for CollisionObjects and some of their groups.
std::set< std::pair< int, int > > getRequestResultPairs() const