File collisionDetector.h

class collisionDetector

Public Functions

explicit collisionDetector(const shared_ptr<softRobots> &soft_robots, double col_limit, double delta, bool self_contact)
void broadPhaseCollisionDetection()
void narrowPhaseCollisionDetection()

Public Members

int num_collisions
double min_dist
vector<contact_pair> broad_phase_collision_set
vector<Eigen::Vector<int, 8>> contact_ids

Private Functions

void prepCylinders()
void getRotMat(Eigen::Vector3f &b)
void lumelskyMinDist(int &idx1, int &idx2, int &idx3, int &idx4, int &idx5, int &idx6, double &dist, ConstraintType &constraint_type)

Private Members

double delta
double col_limit
bool self_contact
shared_ptr<softRobots> soft_robots
vector<vector<limb_edge_info>> limb_edge_ids
vector<vector<fcl::CollisionObjectf*>> cylinders
Eigen::Vector3f a
Eigen::Matrix3f rot_mat
vector<fcl::BroadPhaseCollisionManagerf*> collision_managers

Private Static Functions

static bool fixBound(double &x)
struct contact_pair

Public Functions

inline contact_pair(limb_edge_info *c1, limb_edge_info *c2)

Public Members

limb_edge_info *c1
limb_edge_info *c2
struct limb_edge_info

Public Functions

inline limb_edge_info(int limb_id, int edge_id)

Public Members

int limb_id
int edge_id