38 #ifndef FCL_NARROWPHASE_DETAIL_GJKLIBCCD_H 39 #define FCL_NARROWPHASE_DETAIL_GJKLIBCCD_H 75 template <
typename S,
typename T>
102 static void deleteGJKObject(
void* o);
106 template <
typename S>
113 static void deleteGJKObject(
void* o);
117 template <
typename S>
124 static void deleteGJKObject(
void* o);
128 template <
typename S>
135 static void deleteGJKObject(
void* o);
139 template <
typename S>
146 static void deleteGJKObject(
void* o);
150 template <
typename S>
157 static void deleteGJKObject(
void* o);
161 template <
typename S>
168 static void deleteGJKObject(
void* o);
178 template <
typename S>
182 template <
typename S>
190 template <
typename S>
194 ccd_support_fn supp1,
197 ccd_support_fn supp2,
199 unsigned int max_iterations,
202 S* penetration_depth,
223 template <
typename S>
226 void* obj2, ccd_support_fn supp2,
227 unsigned int max_iterations, S tolerance,
249 template <
typename S>
252 void* obj2, ccd_support_fn supp2,
253 unsigned int max_iterations, S tolerance,
void triDeleteGJKObject(void *o_)
template bool GJKCollide(void *obj1, ccd_support_fn supp1, ccd_center_fn cen1, void *obj2, ccd_support_fn supp2, ccd_center_fn cen2, unsigned int max_iterations, double tolerance, Vector3d *contact_points, double *penetration_depth, Vector3d *normal)
GJKSupportFunction triGetSupportFunction()
initialize GJK Triangle
Eigen::Transform< S, 3, Eigen::Isometry > Transform3
CollisionObject< S > * obj1
Center at zero point ellipsoid.
Eigen::Matrix< S, 3, 1 > Vector3
static void * createGJKObject(const T &, const Transform3< S > &)
Get GJK object from a shape Notice that only local transformation is applied. Gloal transformation ar...
static GJKCenterFunction getCenterFunction()
Get GJK center function.
Center at zero point capsule.
Center at zero point, axis aligned box.
template void * triCreateGJKObject(const Vector3d &P1, const Vector3d &P2, const Vector3d &P3)
void(*)(const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v) GJKSupportFunction
callback function used by GJK algorithm
static void deleteGJKObject(void *o)
Delete GJK object.
template bool GJKDistance(void *obj1, ccd_support_fn supp1, void *obj2, ccd_support_fn supp2, unsigned int max_iterations, double tolerance, double *dist, Vector3d *p1, Vector3d *p2)
CollisionObject< S > * obj2
GJKCenterFunction triGetCenterFunction()
CollisionObject< S > * obj
object
Center at zero point sphere.
static GJKSupportFunction getSupportFunction()
Get GJK support function.
template bool GJKSignedDistance(void *obj1, ccd_support_fn supp1, void *obj2, ccd_support_fn supp2, unsigned int max_iterations, double tolerance, double *dist, Vector3d *p1, Vector3d *p2)
void(*)(const void *obj, ccd_vec3_t *c) GJKCenterFunction