Skip to content
Snippets Groups Projects
Commit 4f4d1810 authored by Joseph Mirabel's avatar Joseph Mirabel Committed by Joseph Mirabel
Browse files

[C++] GeometryData::computeCollision takes an index as argument

parent 309ae485
No related branches found
No related tags found
No related merge requests found
...@@ -62,7 +62,7 @@ namespace se3 ...@@ -62,7 +62,7 @@ namespace se3
{ {
if(data_geom.activeCollisionPairs[cpt]) if(data_geom.activeCollisionPairs[cpt])
{ {
data_geom.computeCollision(geomModel.collisionPairs[cpt],data_geom.collision_results[cpt]); data_geom.computeCollision(cpt);
isColliding |= data_geom.collision_results[cpt].isCollision(); isColliding |= data_geom.collision_results[cpt].isCollision();
if(isColliding && stopAtFirstCollision) if(isColliding && stopAtFirstCollision)
return true; return true;
......
...@@ -270,13 +270,13 @@ namespace se3 ...@@ -270,13 +270,13 @@ namespace se3
/// ///
/// \brief Compute the collision status between two collision objects of a given collision pair. /// \brief Compute the collision status between two collision objects of a given collision pair.
/// The result is store in the collision_results vector.
/// ///
/// \param[in] pair The collsion pair. /// \param[in] pairId The collsion pair index in the GeometryModel.
/// \param[out] result where the collision result is stored.
/// ///
/// \return Return true is the collision objects are colliding. /// \return Return true is the collision objects are colliding.
/// ///
bool computeCollision(const CollisionPair & pair, fcl::CollisionResult& result) const; bool computeCollision(const Index & pairId);
/// ///
/// \brief Compute the collision result of all the collision pairs according to /// \brief Compute the collision result of all the collision pairs according to
......
...@@ -205,8 +205,11 @@ namespace se3 ...@@ -205,8 +205,11 @@ namespace se3
activeCollisionPairs[pairId] = false; activeCollisionPairs[pairId] = false;
} }
inline bool GeometryData::computeCollision(const CollisionPair & pair, fcl::CollisionResult& collisionResult) const inline bool GeometryData::computeCollision(const Index& pairId)
{ {
const CollisionPair & pair = model_geom.collisionPairs[pairId];
fcl::CollisionResult& collisionResult = collision_results[pairId];
const Index & co1 = pair.first; assert(co1<collisionObjects.size()); const Index & co1 = pair.first; assert(co1<collisionObjects.size());
const Index & co2 = pair.second; assert(co2<collisionObjects.size()); const Index & co2 = pair.second; assert(co2<collisionObjects.size());
...@@ -225,7 +228,7 @@ namespace se3 ...@@ -225,7 +228,7 @@ namespace se3
for(size_t i = 0; i<model_geom.collisionPairs.size(); ++i) for(size_t i = 0; i<model_geom.collisionPairs.size(); ++i)
{ {
if(activeCollisionPairs[i]) if(activeCollisionPairs[i])
computeCollision(model_geom.collisionPairs[i], collision_results[i]); computeCollision(i);
} }
} }
...@@ -233,8 +236,7 @@ namespace se3 ...@@ -233,8 +236,7 @@ namespace se3
{ {
for(i = 0; i<model_geom.collisionPairs.size(); ++i) for(i = 0; i<model_geom.collisionPairs.size(); ++i)
{ {
if (activeCollisionPairs[i] if (activeCollisionPairs[i] && computeCollision(i))
&& computeCollision(model_geom.collisionPairs[i], collision_results[i]))
return true; return true;
} }
return false; return false;
......
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