ppovb5fc7/gazebo/deps/fcl/include/fcl/collision_data.h

76 lines
1.1 KiB
C++

#ifndef FCL_COLLISION_DATA_H
#define FCL_COLLISION_DATA_H
#include "fcl/collision_object.h"
#include "fcl/vec_3f.h"
#include <vector>
namespace fcl
{
struct Contact
{
BVH_REAL penetration_depth;
Vec3f normal;
Vec3f pos;
const CollisionObject* o1;
const CollisionObject* o2;
int b1;
int b2;
Contact()
{
o1 = NULL;
o2 = NULL;
b1 = -1;
b2 = -1;
}
Contact(const CollisionObject* o1_, const CollisionObject* o2_, int b1_, int b2_)
{
o1 = o1_;
o2 = o2_;
b1 = b1_;
b2 = b2_;
}
Contact(const CollisionObject* o1_, const CollisionObject* o2_, int b1_, int b2_,
const Vec3f& pos_, const Vec3f& normal_, BVH_REAL depth_)
{
o1 = o1_;
o2 = o2_;
b1 = b1_;
b2 = b2_;
normal = normal_;
pos = pos_;
penetration_depth = depth_;
}
};
struct CollisionData
{
CollisionData()
{
done = false;
is_collision = false;
num_max_contacts = 1;
enable_contact = false;
exhaustive = false;
}
bool done;
bool is_collision;
bool exhaustive;
unsigned int num_max_contacts;
bool enable_contact;
std::vector<Contact> contacts;
};
}
#endif