Skip to content

Commit 5c1245b

Browse files
Levi ArmstrongLevi-Armstrong
authored andcommitted
Fix bug in tesseract_collision processResult function
1 parent 63d1f0b commit 5c1245b

File tree

1 file changed

+12
-21
lines changed
  • tesseract/tesseract_collision/include/tesseract_collision/core

1 file changed

+12
-21
lines changed

tesseract/tesseract_collision/include/tesseract_collision/core/common.h

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -119,24 +119,21 @@ inline ContactResult* processResult(ContactTestData& cdata,
119119
if (cdata.req.is_valid && !cdata.req.is_valid(contact))
120120
return nullptr;
121121

122+
if (!(contact.distance < cdata.collision_margin_data.getPairCollisionMarginData(key.first, key.second)))
123+
return nullptr;
124+
122125
if (!found)
123126
{
124127
ContactResultVector data;
125128
if (cdata.req.type == ContactTestType::FIRST)
126129
{
127-
if (contact.distance < cdata.collision_margin_data.getPairCollisionMarginData(key.first, key.second))
128-
{
129-
data.emplace_back(contact);
130-
cdata.done = true;
131-
}
130+
data.emplace_back(contact);
131+
cdata.done = true;
132132
}
133133
else
134134
{
135-
if (contact.distance < cdata.collision_margin_data.getPairCollisionMarginData(key.first, key.second))
136-
{
137-
data.reserve(100); // TODO: Need better way to initialize this
138-
data.emplace_back(contact);
139-
}
135+
data.reserve(100); // TODO: Need better way to initialize this
136+
data.emplace_back(contact);
140137
}
141138

142139
return &(cdata.res->insert(std::make_pair(key, data)).first->second.back());
@@ -146,22 +143,16 @@ inline ContactResult* processResult(ContactTestData& cdata,
146143
ContactResultVector& dr = (*cdata.res)[key];
147144
if (cdata.req.type == ContactTestType::ALL)
148145
{
149-
if (contact.distance < cdata.collision_margin_data.getPairCollisionMarginData(key.first, key.second))
150-
{
151-
dr.emplace_back(contact);
152-
return &(dr.back());
153-
}
146+
dr.emplace_back(contact);
147+
return &(dr.back());
154148
}
155149

156150
if (cdata.req.type == ContactTestType::CLOSEST)
157151
{
158-
if (contact.distance < cdata.collision_margin_data.getPairCollisionMarginData(key.first, key.second))
152+
if (contact.distance < dr[0].distance)
159153
{
160-
if (contact.distance < dr[0].distance)
161-
{
162-
dr[0] = contact;
163-
return &(dr[0]);
164-
}
154+
dr[0] = contact;
155+
return &(dr[0]);
165156
}
166157
}
167158
// else if (cdata.cdata.condition == DistanceRequestType::LIMITED)

0 commit comments

Comments
 (0)