Classes | Namespaces | Typedefs | Functions | Variables
gjk_libccd-inl.h File Reference
#include "fcl/narrowphase/detail/convexity_based_algorithm/gjk_libccd.h"
#include "fcl/narrowphase/detail/failed_at_this_configuration.h"
#include <array>
#include <unordered_map>
#include <unordered_set>
#include "fcl/common/unused.h"
#include "fcl/common/warning.h"
Include dependency graph for gjk_libccd-inl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fcl::detail::ccd_box_t
 
struct  fcl::detail::ccd_cap_t
 
struct  fcl::detail::ccd_cone_t
 
struct  fcl::detail::ccd_convex_t< S >
 
struct  fcl::detail::ccd_cyl_t
 
struct  fcl::detail::ccd_ellipsoid_t
 
struct  fcl::detail::ccd_obj_t
 
struct  fcl::detail::ccd_sphere_t
 
struct  fcl::detail::ccd_triangle_t
 

Namespaces

 fcl
 Main namespace.
 
 fcl::detail
 
 fcl::detail::libccd_extension
 

Typedefs

using fcl::detail::DistanceFn = std::function< ccd_real_t(const void *, const void *, const ccd_t *, ccd_vec3_t *, ccd_vec3_t *)>
 

Functions

static int fcl::detail::libccd_extension::__ccdEPA (const void *obj1, const void *obj2, const ccd_t *ccd, ccd_simplex_t *simplex, ccd_pt_t *polytope, ccd_pt_el_t **nearest)
 
static int fcl::detail::libccd_extension::__ccdGJK (const void *obj1, const void *obj2, const ccd_t *ccd, ccd_simplex_t *simplex)
 
static ccd_real_t fcl::detail::libccd_extension::_ccdDist (const void *obj1, const void *obj2, const ccd_t *ccd, ccd_simplex_t *simplex, ccd_vec3_t *p1, ccd_vec3_t *p2)
 
static bool fcl::detail::libccd_extension::are_coincident (const ccd_vec3_t &p, const ccd_vec3_t &q)
 
template<typename S >
static void fcl::detail::boxToGJK (const Box< S > &s, const Transform3< S > &tf, ccd_box_t *box)
 
template<typename S >
static void fcl::detail::capToGJK (const Capsule< S > &s, const Transform3< S > &tf, ccd_cap_t *cap)
 
static ccd_real_t fcl::detail::libccd_extension::ccdGJKDist2 (const void *obj1, const void *obj2, const ccd_t *ccd, ccd_vec3_t *p1, ccd_vec3_t *p2)
 
static ccd_real_t fcl::detail::libccd_extension::ccdGJKSignedDist (const void *obj1, const void *obj2, const ccd_t *ccd, ccd_vec3_t *p1, ccd_vec3_t *p2)
 
template<typename S >
static void fcl::detail::centerConvex (const void *obj, ccd_vec3_t *c)
 
static void fcl::detail::centerShape (const void *obj, ccd_vec3_t *c)
 
static void fcl::detail::centerTriangle (const void *obj, ccd_vec3_t *c)
 
static void fcl::detail::libccd_extension::ClassifyBorderEdge (ccd_pt_edge_t *edge, std::unordered_set< ccd_pt_edge_t * > *border_edges, std::unordered_set< ccd_pt_edge_t * > *internal_edges)
 
static void fcl::detail::libccd_extension::ClassifyInternalEdge (ccd_pt_edge_t *edge, std::unordered_set< ccd_pt_edge_t * > *border_edges, std::unordered_set< ccd_pt_edge_t * > *internal_edges)
 
static void fcl::detail::libccd_extension::ComputeVisiblePatch (const ccd_pt_t &polytope, ccd_pt_face_t &f, const ccd_vec3_t &query_point, std::unordered_set< ccd_pt_edge_t * > *border_edges, std::unordered_set< ccd_pt_face_t * > *visible_faces, std::unordered_set< ccd_pt_edge_t * > *internal_edges)
 
static void fcl::detail::libccd_extension::ComputeVisiblePatchRecursive (const ccd_pt_t &polytope, ccd_pt_face_t &f, int edge_index, const ccd_vec3_t &query_point, std::unordered_set< ccd_pt_edge_t * > *border_edges, std::unordered_set< ccd_pt_face_t * > *visible_faces, std::unordered_set< ccd_pt_face_t * > *hidden_faces, std::unordered_set< ccd_pt_edge_t * > *internal_edges)
 
static bool fcl::detail::libccd_extension::ComputeVisiblePatchRecursiveSanityCheck (const ccd_pt_t &polytope, const std::unordered_set< ccd_pt_edge_t * > &border_edges, const std::unordered_set< ccd_pt_face_t * > &visible_faces, const std::unordered_set< ccd_pt_edge_t * > &internal_edges)
 
template<typename S >
static void fcl::detail::coneToGJK (const Cone< S > &s, const Transform3< S > &tf, ccd_cone_t *cone)
 
static int fcl::detail::libccd_extension::convert2SimplexToTetrahedron (const void *obj1, const void *obj2, const ccd_t *ccd, const ccd_simplex_t *simplex, ccd_pt_t *polytope, ccd_pt_el_t **nearest)
 
template<typename S >
static void fcl::detail::convexToGJK (const Convex< S > &s, const Transform3< S > &tf, ccd_convex_t< S > *conv)
 
template<typename S >
static void fcl::detail::cylToGJK (const Cylinder< S > &s, const Transform3< S > &tf, ccd_cyl_t *cyl)
 
static int fcl::detail::libccd_extension::doSimplex (ccd_simplex_t *simplex, ccd_vec3_t *dir)
 
static int fcl::detail::libccd_extension::doSimplex2 (ccd_simplex_t *simplex, ccd_vec3_t *dir)
 
static int fcl::detail::libccd_extension::doSimplex3 (ccd_simplex_t *simplex, ccd_vec3_t *dir)
 
static int fcl::detail::libccd_extension::doSimplex4 (ccd_simplex_t *simplex, ccd_vec3_t *dir)
 
template<typename S >
static void fcl::detail::ellipsoidToGJK (const Ellipsoid< S > &s, const Transform3< S > &tf, ccd_ellipsoid_t *ellipsoid)
 
static int fcl::detail::libccd_extension::expandPolytope (ccd_pt_t *polytope, ccd_pt_el_t *el, const ccd_support_t *newv)
 
static void fcl::detail::libccd_extension::extractClosestPoints (ccd_simplex_t *simplex, ccd_vec3_t *p1, ccd_vec3_t *p2, ccd_vec3_t *p)
 
static void fcl::detail::libccd_extension::extractObjectPointsFromPoint (ccd_support_t *q, ccd_vec3_t *p1, ccd_vec3_t *p2)
 
static void fcl::detail::libccd_extension::extractObjectPointsFromSegment (ccd_support_t *a, ccd_support_t *b, ccd_vec3_t *p1, ccd_vec3_t *p2, ccd_vec3_t *p)
 
static ccd_vec3_t fcl::detail::libccd_extension::faceNormalPointingOutward (const ccd_pt_t *polytope, const ccd_pt_face_t *face)
 
template bool fcl::detail::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)
 
template<typename S >
bool fcl::detail::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, S tolerance, Vector3< S > *contact_points, S *penetration_depth, Vector3< S > *normal)
 GJK collision algorithm. More...
 
template bool fcl::detail::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)
 
template<typename S >
bool fcl::detail::GJKDistance (void *obj1, ccd_support_fn supp1, void *obj2, ccd_support_fn supp2, unsigned int max_iterations, S tolerance, S *res, Vector3< S > *p1, Vector3< S > *p2)
 
template<typename S >
bool fcl::detail::GJKDistanceImpl (void *obj1, ccd_support_fn supp1, void *obj2, ccd_support_fn supp2, unsigned int max_iterations, S tolerance, detail::DistanceFn distance_func, S *res, Vector3< S > *p1, Vector3< S > *p2)
 
template bool fcl::detail::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)
 
template<typename S >
bool fcl::detail::GJKSignedDistance (void *obj1, ccd_support_fn supp1, void *obj2, ccd_support_fn supp2, unsigned int max_iterations, S tolerance, S *res, Vector3< S > *p1, Vector3< S > *p2)
 
static bool fcl::detail::libccd_extension::isAbsValueLessThanEpsSquared (ccd_real_t val)
 
static bool fcl::detail::libccd_extension::isOutsidePolytopeFace (const ccd_pt_t *polytope, const ccd_pt_face_t *f, const ccd_vec3_t *pt)
 
static bool fcl::detail::libccd_extension::isPolytopeEmpty (const ccd_pt_t &polytope)
 
static int fcl::detail::libccd_extension::nextSupport (const ccd_pt_t *polytope, const void *obj1, const void *obj2, const ccd_t *ccd, const ccd_pt_el_t *el, ccd_support_t *out)
 
static int fcl::detail::libccd_extension::penEPAPosClosest (const ccd_pt_el_t *nearest, ccd_vec3_t *p1, ccd_vec3_t *p2)
 
template<typename S >
static void fcl::detail::shapeToGJK (const ShapeBase< S > &s, const Transform3< S > &tf, ccd_obj_t *o)
 
static ccd_real_t fcl::detail::libccd_extension::simplexReduceToTriangle (ccd_simplex_t *simplex, ccd_real_t dist, ccd_vec3_t *best_witness)
 
static int fcl::detail::libccd_extension::simplexToPolytope2 (const void *obj1, const void *obj2, const ccd_t *ccd, const ccd_simplex_t *simplex, ccd_pt_t *pt, ccd_pt_el_t **nearest)
 
static int fcl::detail::libccd_extension::simplexToPolytope4 (const void *obj1, const void *obj2, const ccd_t *ccd, ccd_simplex_t *simplex, ccd_pt_t *pt, ccd_pt_el_t **nearest)
 
template<typename S >
static void fcl::detail::sphereToGJK (const Sphere< S > &s, const Transform3< S > &tf, ccd_sphere_t *sph)
 
static void fcl::detail::supportBox (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static void fcl::detail::supportCap (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static void fcl::detail::supportCone (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
template<typename S >
static void fcl::detail::supportConvex (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static void fcl::detail::supportCyl (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static void fcl::detail::supportEllipsoid (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static ccd_vec3_t fcl::detail::libccd_extension::supportEPADirection (const ccd_pt_t *polytope, const ccd_pt_el_t *nearest_feature)
 
static void fcl::detail::supportSphere (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static void fcl::detail::supportTriangle (const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v)
 
static bool fcl::detail::libccd_extension::triangle_area_is_zero (const ccd_vec3_t &a, const ccd_vec3_t &b, const ccd_vec3_t &c)
 
template<typename S >
void * fcl::detail::triCreateGJKObject (const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3)
 
template<typename S >
void * fcl::detail::triCreateGJKObject (const Vector3< S > &P1, const Vector3< S > &P2, const Vector3< S > &P3, const Transform3< S > &tf)
 
template void * fcl::detail::triCreateGJKObject (const Vector3d &P1, const Vector3d &P2, const Vector3d &P3)
 
template void * fcl::detail::triCreateGJKObject (const Vector3d &P1, const Vector3d &P2, const Vector3d &P3, const Transform3d &tf)
 
void fcl::detail::triDeleteGJKObject (void *o_)
 
GJKCenterFunction fcl::detail::triGetCenterFunction ()
 
GJKSupportFunction fcl::detail::triGetSupportFunction ()
 initialize GJK Triangle More...
 
_ccd_inline void fcl::detail::libccd_extension::tripleCross (const ccd_vec3_t *a, const ccd_vec3_t *b, const ccd_vec3_t *c, ccd_vec3_t *d)
 
static void fcl::detail::libccd_extension::validateNearestFeatureOfPolytopeBeingEdge (ccd_pt_t *polytope)
 

Variables

template class FCL_EXPORT fcl::detail::GJKInitializer< double, Box< double > >
 
template class FCL_EXPORT fcl::detail::GJKInitializer< double, Capsule< double > >
 
template class FCL_EXPORT fcl::detail::GJKInitializer< double, Cone< double > >
 
template class FCL_EXPORT fcl::detail::GJKInitializer< double, Convex< double > >
 
template class FCL_EXPORT fcl::detail::GJKInitializer< double, Cylinder< double > >
 
template class FCL_EXPORT fcl::detail::GJKInitializer< double, Ellipsoid< double > >
 
template class FCL_EXPORT fcl::detail::GJKInitializer< double, Sphere< double > >
 


fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:49