FCL internals. More...
Namespaces | |
namespace | internal |
Classes | |
struct | eigen_wrapper_v3 |
struct | eigen_wrapper_v4 |
struct | eigen_v3 |
struct | eigen_wrapper_m3 |
struct | eigen_m3 |
struct | Vec3Data |
struct | Matrix3Data |
struct | MinkowskiDiff |
Minkowski difference class of two shapes. More... | |
struct | GJK |
class for GJK algorithm More... | |
struct | EPA |
class for EPA algorithm More... | |
class | GJKInitializer |
initialize GJK stuffs More... | |
class | GJKInitializer< Cylinder > |
initialize GJK Cylinder More... | |
class | GJKInitializer< Sphere > |
initialize GJK Sphere More... | |
class | GJKInitializer< Box > |
initialize GJK Box More... | |
class | GJKInitializer< Capsule > |
initialize GJK Capsule More... | |
class | GJKInitializer< Cone > |
initialize GJK Cone More... | |
class | GJKInitializer< Convex > |
initialize GJK Convex More... | |
struct | sse_meta_f4 |
struct | sse_meta_d4 |
struct | sse_meta_f12 |
struct | sse_meta_f16 |
Typedefs | |
typedef void(* | GJKSupportFunction )(const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v) |
callback function used by GJK algorithm | |
typedef void(* | GJKCenterFunction )(const void *obj, ccd_vec3_t *c) |
Functions | |
template<typename T > | |
static eigen_wrapper_v3< T > | cross_prod (const eigen_wrapper_v3< T > &l, const eigen_wrapper_v3< T > &r) |
template<typename T > | |
static T | dot_prod3 (const eigen_wrapper_v3< T > &l, const eigen_wrapper_v3< T > &r) |
template<typename T > | |
static eigen_wrapper_v3< T > | min (const eigen_wrapper_v3< T > &x, const eigen_wrapper_v3< T > &y) |
template<typename T > | |
static eigen_wrapper_v3< T > | max (const eigen_wrapper_v3< T > &x, const eigen_wrapper_v3< T > &y) |
template<typename T > | |
static eigen_wrapper_v3< T > | abs (const eigen_wrapper_v3< T > &x) |
template<typename T > | |
static bool | equal (const eigen_wrapper_v3< T > &x, const eigen_wrapper_v3< T > &y, T epsilon) |
template<typename T > | |
struct fcl::details::eigen_wrapper_v4 | __attribute__ ((aligned)) |
template<typename T > | |
static eigen_wrapper_v4< T > | cross_prod (const eigen_wrapper_v4< T > &l, const eigen_wrapper_v4< T > &r) |
template<typename T > | |
static T | dot_prod3 (const eigen_wrapper_v4< T > &l, const eigen_wrapper_v4< T > &r) |
template<typename T > | |
static eigen_wrapper_v4< T > | min (const eigen_wrapper_v4< T > &x, const eigen_wrapper_v4< T > &y) |
template<typename T > | |
static eigen_wrapper_v4< T > | max (const eigen_wrapper_v4< T > &x, const eigen_wrapper_v4< T > &y) |
template<typename T > | |
static eigen_wrapper_v4< T > | abs (const eigen_wrapper_v4< T > &x) |
template<typename T > | |
static bool | equal (const eigen_wrapper_v4< T > &x, const eigen_wrapper_v4< T > &y, T epsilon) |
template<typename T > | |
static eigen_v3< T > | cross_prod (const eigen_v3< T > &l, const eigen_v3< T > &r) |
template<typename T > | |
static T | dot_prod3 (const eigen_v3< T > &l, const eigen_v3< T > &r) |
template<typename T > | |
static eigen_v3< T > | min (const eigen_v3< T > &x, const eigen_v3< T > &y) |
template<typename T > | |
static eigen_v3< T > | max (const eigen_v3< T > &x, const eigen_v3< T > &y) |
template<typename T > | |
static eigen_v3< T > | abs (const eigen_v3< T > &x) |
template<typename T > | |
static bool | equal (const eigen_v3< T > &x, const eigen_v3< T > &y, T epsilon) |
template<typename T > | |
eigen_wrapper_m3< T > | abs (const eigen_wrapper_m3< T > &m) |
template<typename T > | |
eigen_wrapper_m3< T > | transpose (const eigen_wrapper_m3< T > &m) |
template<typename T > | |
eigen_wrapper_m3< T > | inverse (const eigen_wrapper_m3< T > &m) |
template<typename T > | |
eigen_m3< T > | abs (const eigen_m3< T > &m) |
template<typename T > | |
eigen_m3< T > | transpose (const eigen_m3< T > &m) |
template<typename T > | |
eigen_m3< T > | inverse (const eigen_m3< T > &m) |
template<typename T > | |
static Vec3Data< T > | cross_prod (const Vec3Data< T > &l, const Vec3Data< T > &r) |
template<typename T > | |
static T | dot_prod3 (const Vec3Data< T > &l, const Vec3Data< T > &r) |
template<typename T > | |
static Vec3Data< T > | min (const Vec3Data< T > &x, const Vec3Data< T > &y) |
template<typename T > | |
static Vec3Data< T > | max (const Vec3Data< T > &x, const Vec3Data< T > &y) |
template<typename T > | |
static Vec3Data< T > | abs (const Vec3Data< T > &x) |
template<typename T > | |
static bool | equal (const Vec3Data< T > &x, const Vec3Data< T > &y, T epsilon) |
template<typename T > | |
Matrix3Data< T > | abs (const Matrix3Data< T > &m) |
template<typename T > | |
Matrix3Data< T > | transpose (const Matrix3Data< T > &m) |
template<typename T > | |
Matrix3Data< T > | inverse (const Matrix3Data< T > &m) |
Vec3f | getSupport (const ShapeBase *shape, const Vec3f &dir) |
the support function for shape | |
GJKSupportFunction | triGetSupportFunction () |
initialize GJK Triangle | |
GJKCenterFunction | triGetCenterFunction () |
void * | triCreateGJKObject (const Vec3f &P1, const Vec3f &P2, const Vec3f &P3) |
void * | triCreateGJKObject (const Vec3f &P1, const Vec3f &P2, const Vec3f &P3, const Transform3f &tf) |
void | triDeleteGJKObject (void *o) |
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, FCL_REAL tolerance, Vec3f *contact_points, FCL_REAL *penetration_depth, Vec3f *normal) |
GJK collision algorithm. | |
bool | GJKDistance (void *obj1, ccd_support_fn supp1, void *obj2, ccd_support_fn supp2, unsigned int max_iterations, FCL_REAL tolerance, FCL_REAL *dist, Vec3f *p1, Vec3f *p2) |
Distance computation between objects using GJK algorithm. | |
static __m128 | vec_sel (__m128 a, __m128 b, __m128 mask) |
static __m128 | vec_sel (__m128 a, __m128 b, const unsigned int *mask) |
static __m128 | vec_sel (__m128 a, __m128 b, unsigned int mask) |
static __m128 | newtonraphson_rsqrt4 (const __m128 v) |
struct fcl::details::sse_meta_f4 | __attribute__ ((aligned(16))) |
static __m128 | cross_prod (__m128 x, __m128 y) |
static sse_meta_f4 | cross_prod (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static void | cross_prod (__m128d x0, __m128d x1, __m128d y0, __m128d y1, __m128d *z0, __m128d *z1) |
static sse_meta_d4 | cross_prod (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static __m128 | dot_prod3 (__m128 x, __m128 y) |
static float | dot_prod3 (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static __m128d | dot_prod3 (__m128d x0, __m128d x1, __m128d y0, __m128d y1) |
static double | dot_prod3 (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static __m128 | dot_prod4 (__m128 x, __m128 y) |
static float | dot_prod4 (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static __m128d | dot_prod4 (__m128d x0, __m128d x1, __m128d y0, __m128d y1) |
static double | dot_prod4 (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static sse_meta_f4 | min (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static sse_meta_d4 | min (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static sse_meta_f4 | max (const sse_meta_f4 &x, const sse_meta_f4 &y) |
static sse_meta_d4 | max (const sse_meta_d4 &x, const sse_meta_d4 &y) |
static sse_meta_f4 | abs (const sse_meta_f4 &x) |
static sse_meta_d4 | abs (const sse_meta_d4 &x) |
static bool | equal (const sse_meta_f4 &x, const sse_meta_f4 &y, float epsilon) |
static bool | equal (const sse_meta_d4 &x, const sse_meta_d4 &y, double epsilon) |
static sse_meta_f4 | normalize3 (const sse_meta_f4 &x) |
static sse_meta_f4 | normalize3_approx (const sse_meta_f4 &x) |
static void | transpose (__m128 c0, __m128 c1, __m128 c2, __m128 *r0, __m128 *r1, __m128 *r2) |
static void | inverse (__m128 c0, __m128 c1, __m128 c2, __m128 *i0, __m128 *i1, __m128 *i2) |
static sse_meta_f12 | abs (const sse_meta_f12 &mat) |
static sse_meta_f12 | transpose (const sse_meta_f12 &mat) |
static sse_meta_f12 | inverse (const sse_meta_f12 &mat) |
static void | transpose (__m128 c0, __m128 c1, __m128 c2, __m128 c3, __m128 *r0, __m128 *r1, __m128 *r2, __m128 *r3) |
static void | inverse (__m128 c0, __m128 c1, __m128 c2, __m128 c3, __m128 *res0, __m128 *res1, __m128 *res2, __m128 *res3) |
static sse_meta_f16 | abs (const sse_meta_f16 &mat) |
static sse_meta_f16 | transpose (const sse_meta_f16 &mat) |
static sse_meta_f16 | inverse (const sse_meta_f16 &mat) |
template<typename BV , typename S , typename NarrowPhaseSolver > | |
void | meshShapeConservativeAdvancementOrientedNodeLeafTesting (int b1, int, const BVHModel< BV > *model1, const S &model2, const BV &model2_bv, Vec3f *vertices, Triangle *tri_indices, const Transform3f &tf1, const Transform3f &tf2, const MotionBase *motion1, const MotionBase *motion2, const NarrowPhaseSolver *nsolver, bool enable_statistics, FCL_REAL &min_distance, Vec3f &p1, Vec3f &p2, int &last_tri_id, FCL_REAL &delta_t, int &num_leaf_tests) |
template<typename BV , typename S > | |
bool | meshShapeConservativeAdvancementOrientedNodeCanStop (FCL_REAL c, FCL_REAL min_distance, FCL_REAL abs_err, FCL_REAL rel_err, FCL_REAL w, const BVHModel< BV > *model1, const S &model2, const BV &model2_bv, const MotionBase *motion1, const MotionBase *motion2, std::vector< ConservativeAdvancementStackData > &stack, FCL_REAL &delta_t) |
template<typename BV > | |
const Vec3f & | getBVAxis (const BV &bv, int i) |
template<> | |
const Vec3f & | getBVAxis< OBBRSS > (const OBBRSS &bv, int i) |
template<typename BV > | |
bool | meshConservativeAdvancementTraversalNodeCanStop (FCL_REAL c, FCL_REAL min_distance, FCL_REAL abs_err, FCL_REAL rel_err, FCL_REAL w, const BVHModel< BV > *model1, const BVHModel< BV > *model2, const MotionBase *motion1, const MotionBase *motion2, std::vector< ConservativeAdvancementStackData > &stack, FCL_REAL &delta_t) |
template<typename S , typename BV , typename NarrowPhaseSolver , template< typename, typename > class OrientedNode> | |
static bool | setupShapeMeshDistanceOrientedNode (OrientedNode< S, NarrowPhaseSolver > &node, const S &model1, const Transform3f &tf1, const BVHModel< BV > &model2, const Transform3f &tf2, const NarrowPhaseSolver *nsolver, const DistanceRequest &request, DistanceResult &result) |
Variables | |
fcl::details::eigen_v3 | __attribute__ |
static const size_t | EPA_MAX_FACES = 128 |
static const size_t | EPA_MAX_VERTICES = 64 |
static const FCL_REAL | EPA_EPS = 0.000001 |
static const size_t | EPA_MAX_ITERATIONS = 255 |
const __m128 | xmms_0 = {0.f, 0.f, 0.f, 0.f} |
const __m128d | xmmd_0 = {0, 0} |
FCL internals.
for OBB and RSS, there is local coordinate of BV, so normal need to be transformed
Ignore this :) unless you are God
typedef void(* fcl::details::GJKCenterFunction)(const void *obj, ccd_vec3_t *c) |
typedef void(* fcl::details::GJKSupportFunction)(const void *obj, const ccd_vec3_t *dir_, ccd_vec3_t *v) |
callback function used by GJK algorithm
struct fcl::details::sse_meta_f4 fcl::details::__attribute__ | ( | (aligned(16)) | ) |
struct fcl::details::eigen_wrapper_v4 fcl::details::__attribute__ | ( | (aligned) | ) |
static eigen_wrapper_v3<T> fcl::details::abs | ( | const eigen_wrapper_v3< T > & | x | ) | [inline, static] |
References fcl::details::eigen_wrapper_v3< T >::v.
Referenced by abs(), fcl::abs(), fcl::eigen(), and fcl::generateCoordinateSystem().
static Vec3Data<T> fcl::details::abs | ( | const Vec3Data< T > & | x | ) | [inline, static] |
References abs(), and fcl::details::Vec3Data< T >::vs.
static eigen_wrapper_v4<T> fcl::details::abs | ( | const eigen_wrapper_v4< T > & | x | ) | [inline, static] |
static sse_meta_f4 fcl::details::abs | ( | const sse_meta_f4 & | x | ) | [inline, static] |
References __attribute__, sse_meta_f4(), and fcl::details::sse_meta_f4::v.
static sse_meta_d4 fcl::details::abs | ( | const sse_meta_d4 & | x | ) | [inline, static] |
References __attribute__, and sse_meta_d4().
static eigen_v3<T> fcl::details::abs | ( | const eigen_v3< T > & | x | ) | [inline, static] |
Matrix3Data<T> fcl::details::abs | ( | const Matrix3Data< T > & | m | ) |
References abs(), and fcl::details::Matrix3Data< T >::rs.
eigen_wrapper_m3<T> fcl::details::abs | ( | const eigen_wrapper_m3< T > & | m | ) |
References fcl::details::eigen_wrapper_m3< T >::m.
static sse_meta_f12 fcl::details::abs | ( | const sse_meta_f12 & | mat | ) | [inline, static] |
References abs(), and fcl::details::sse_meta_f12::getColumn().
eigen_m3<T> fcl::details::abs | ( | const eigen_m3< T > & | m | ) |
static sse_meta_f16 fcl::details::abs | ( | const sse_meta_f16 & | mat | ) | [inline, static] |
References abs(), and fcl::details::sse_meta_f16::getColumn().
static eigen_wrapper_v3<T> fcl::details::cross_prod | ( | const eigen_wrapper_v3< T > & | l, |
const eigen_wrapper_v3< T > & | r | ||
) | [inline, static] |
static Vec3Data<T> fcl::details::cross_prod | ( | const Vec3Data< T > & | l, |
const Vec3Data< T > & | r | ||
) | [inline, static] |
References fcl::details::Vec3Data< T >::vs.
static __m128 fcl::details::cross_prod | ( | __m128 | x, |
__m128 | y | ||
) | [inline, static] |
static sse_meta_f4 fcl::details::cross_prod | ( | const sse_meta_f4 & | x, |
const sse_meta_f4 & | y | ||
) | [inline, static] |
static eigen_wrapper_v4<T> fcl::details::cross_prod | ( | const eigen_wrapper_v4< T > & | l, |
const eigen_wrapper_v4< T > & | r | ||
) | [inline, static] |
static void fcl::details::cross_prod | ( | __m128d | x0, |
__m128d | x1, | ||
__m128d | y0, | ||
__m128d | y1, | ||
__m128d * | z0, | ||
__m128d * | z1 | ||
) | [inline, static] |
static sse_meta_d4 fcl::details::cross_prod | ( | const sse_meta_d4 & | x, |
const sse_meta_d4 & | y | ||
) | [inline, static] |
static eigen_v3<T> fcl::details::cross_prod | ( | const eigen_v3< T > & | l, |
const eigen_v3< T > & | r | ||
) | [inline, static] |
static T fcl::details::dot_prod3 | ( | const eigen_wrapper_v3< T > & | l, |
const eigen_wrapper_v3< T > & | r | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v3< T >::v.
Referenced by fcl::details::Matrix3Data< FCL_REAL >::determinant(), fcl::details::sse_meta_f12::determinant(), fcl::Vec3fX< details::Vec3Data< FCL_REAL > >::dot(), dot_prod3(), inverse(), fcl::Vec3fX< details::Vec3Data< FCL_REAL > >::length(), fcl::Vec3fX< details::Vec3Data< FCL_REAL > >::norm(), fcl::Vec3fX< details::Vec3Data< FCL_REAL > >::normalize(), fcl::normalize(), fcl::details::Matrix3Data< FCL_REAL >::operator*(), fcl::Vec3fX< details::Vec3Data< FCL_REAL > >::sqrLength(), fcl::Vec3fX< details::Vec3Data< FCL_REAL > >::squaredNorm(), fcl::details::Matrix3Data< FCL_REAL >::timesTranspose(), fcl::details::sse_meta_f12::transposeDot(), and fcl::details::sse_meta_f12::transposeTimes().
static T fcl::details::dot_prod3 | ( | const Vec3Data< T > & | l, |
const Vec3Data< T > & | r | ||
) | [inline, static] |
References fcl::details::Vec3Data< T >::vs.
static T fcl::details::dot_prod3 | ( | const eigen_wrapper_v4< T > & | l, |
const eigen_wrapper_v4< T > & | r | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v4< T >::v.
static __m128 fcl::details::dot_prod3 | ( | __m128 | x, |
__m128 | y | ||
) | [inline, static] |
References vec_splat.
static float fcl::details::dot_prod3 | ( | const sse_meta_f4 & | x, |
const sse_meta_f4 & | y | ||
) | [inline, static] |
References dot_prod3(), and fcl::details::sse_meta_f4::v.
static __m128d fcl::details::dot_prod3 | ( | __m128d | x0, |
__m128d | x1, | ||
__m128d | y0, | ||
__m128d | y1 | ||
) | [inline, static] |
static double fcl::details::dot_prod3 | ( | const sse_meta_d4 & | x, |
const sse_meta_d4 & | y | ||
) | [inline, static] |
References d(), and dot_prod3().
static T fcl::details::dot_prod3 | ( | const eigen_v3< T > & | l, |
const eigen_v3< T > & | r | ||
) | [inline, static] |
static __m128 fcl::details::dot_prod4 | ( | __m128 | x, |
__m128 | y | ||
) | [inline, static] |
static float fcl::details::dot_prod4 | ( | const sse_meta_f4 & | x, |
const sse_meta_f4 & | y | ||
) | [inline, static] |
static __m128d fcl::details::dot_prod4 | ( | __m128d | x0, |
__m128d | x1, | ||
__m128d | y0, | ||
__m128d | y1 | ||
) | [inline, static] |
static double fcl::details::dot_prod4 | ( | const sse_meta_d4 & | x, |
const sse_meta_d4 & | y | ||
) | [inline, static] |
References d(), and dot_prod4().
static bool fcl::details::equal | ( | const eigen_wrapper_v3< T > & | x, |
const eigen_wrapper_v3< T > & | y, | ||
T | epsilon | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v3< T >::v.
static bool fcl::details::equal | ( | const Vec3Data< T > & | x, |
const Vec3Data< T > & | y, | ||
T | epsilon | ||
) | [inline, static] |
References fcl::details::Vec3Data< T >::vs.
static bool fcl::details::equal | ( | const eigen_wrapper_v4< T > & | x, |
const eigen_wrapper_v4< T > & | y, | ||
T | epsilon | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v4< T >::v.
static bool fcl::details::equal | ( | const sse_meta_f4 & | x, |
const sse_meta_f4 & | y, | ||
float | epsilon | ||
) | [inline, static] |
References d(), fcl::details::sse_meta_f4::v, and xmms_0.
static bool fcl::details::equal | ( | const sse_meta_d4 & | x, |
const sse_meta_d4 & | y, | ||
double | epsilon | ||
) | [inline, static] |
static bool fcl::details::equal | ( | const eigen_v3< T > & | x, |
const eigen_v3< T > & | y, | ||
T | epsilon | ||
) | [inline, static] |
const Vec3f& fcl::details::getBVAxis | ( | const BV & | bv, |
int | i | ||
) |
Referenced by meshConservativeAdvancementTraversalNodeCanStop().
Vec3f fcl::details::getSupport | ( | const ShapeBase * | shape, |
const Vec3f & | dir | ||
) |
the support function for shape
Referenced by fcl::details::MinkowskiDiff::support0(), and fcl::details::MinkowskiDiff::support1().
bool fcl::details::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, | ||
FCL_REAL | tolerance, | ||
Vec3f * | contact_points, | ||
FCL_REAL * | penetration_depth, | ||
Vec3f * | normal | ||
) |
GJK collision algorithm.
Referenced by fcl::GJKSolver_libccd::shapeIntersect(), and fcl::GJKSolver_libccd::shapeTriangleIntersect().
bool fcl::details::GJKDistance | ( | void * | obj1, |
ccd_support_fn | supp1, | ||
void * | obj2, | ||
ccd_support_fn | supp2, | ||
unsigned int | max_iterations, | ||
FCL_REAL | tolerance, | ||
FCL_REAL * | dist, | ||
Vec3f * | p1, | ||
Vec3f * | p2 | ||
) |
Distance computation between objects using GJK algorithm.
obj1,obj2 | objects to compute the distance between, |
supp1,supp2,support | functions of each object, |
p1,p2 | closest points on objects in global frame, |
dist | distance between objects, |
Referenced by fcl::GJKSolver_libccd::shapeDistance(), and fcl::GJKSolver_libccd::shapeTriangleDistance().
static void fcl::details::inverse | ( | __m128 | c0, |
__m128 | c1, | ||
__m128 | c2, | ||
__m128 * | i0, | ||
__m128 * | i1, | ||
__m128 * | i2 | ||
) | [inline, static] |
References cross_prod(), d(), dot_prod3(), transpose(), and vec_splat.
Matrix3Data<T> fcl::details::inverse | ( | const Matrix3Data< T > & | m | ) |
eigen_wrapper_m3<T> fcl::details::inverse | ( | const eigen_wrapper_m3< T > & | m | ) |
References fcl::details::eigen_wrapper_m3< T >::m.
Referenced by Eigen::FclMatrix< T, Cols, _Options >::inverse(), and inverse().
static sse_meta_f12 fcl::details::inverse | ( | const sse_meta_f12 & | mat | ) | [inline, static] |
References fcl::details::sse_meta_f12::getColumn(), inverse(), and fcl::details::sse_meta_f4::v.
static void fcl::details::inverse | ( | __m128 | c0, |
__m128 | c1, | ||
__m128 | c2, | ||
__m128 | c3, | ||
__m128 * | res0, | ||
__m128 * | res1, | ||
__m128 * | res2, | ||
__m128 * | res3 | ||
) | [inline, static] |
References __attribute__, and _mm_ror_ps.
eigen_m3<T> fcl::details::inverse | ( | const eigen_m3< T > & | m | ) |
static sse_meta_f16 fcl::details::inverse | ( | const sse_meta_f16 & | mat | ) | [inline, static] |
References fcl::details::sse_meta_f16::getColumn(), inverse(), and fcl::details::sse_meta_f4::v.
static eigen_wrapper_v3<T> fcl::details::max | ( | const eigen_wrapper_v3< T > & | x, |
const eigen_wrapper_v3< T > & | y | ||
) | [inline, static] |
static Vec3Data<T> fcl::details::max | ( | const Vec3Data< T > & | x, |
const Vec3Data< T > & | y | ||
) | [inline, static] |
References max(), and fcl::details::Vec3Data< T >::vs.
static eigen_wrapper_v4<T> fcl::details::max | ( | const eigen_wrapper_v4< T > & | x, |
const eigen_wrapper_v4< T > & | y | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v4< T >::v.
static sse_meta_f4 fcl::details::max | ( | const sse_meta_f4 & | x, |
const sse_meta_f4 & | y | ||
) | [inline, static] |
References sse_meta_f4(), and fcl::details::sse_meta_f4::v.
static sse_meta_d4 fcl::details::max | ( | const sse_meta_d4 & | x, |
const sse_meta_d4 & | y | ||
) | [inline, static] |
References sse_meta_d4().
static eigen_v3<T> fcl::details::max | ( | const eigen_v3< T > & | x, |
const eigen_v3< T > & | y | ||
) | [inline, static] |
bool fcl::details::meshConservativeAdvancementTraversalNodeCanStop | ( | FCL_REAL | c, |
FCL_REAL | min_distance, | ||
FCL_REAL | abs_err, | ||
FCL_REAL | rel_err, | ||
FCL_REAL | w, | ||
const BVHModel< BV > * | model1, | ||
const BVHModel< BV > * | model2, | ||
const MotionBase * | motion1, | ||
const MotionBase * | motion2, | ||
std::vector< ConservativeAdvancementStackData > & | stack, | ||
FCL_REAL & | delta_t | ||
) |
References fcl::bound(), fcl::ConservativeAdvancementStackData::c1, fcl::ConservativeAdvancementStackData::c2, fcl::MotionBase::computeMotionBound(), fcl::ConservativeAdvancementStackData::d, d(), fcl::BVHModel< BV >::getBV(), getBVAxis(), fcl::Vec3fX< T >::normalize(), fcl::ConservativeAdvancementStackData::P1, and fcl::ConservativeAdvancementStackData::P2.
Referenced by fcl::MeshConservativeAdvancementTraversalNode< BV >::canStop().
bool fcl::details::meshShapeConservativeAdvancementOrientedNodeCanStop | ( | FCL_REAL | c, |
FCL_REAL | min_distance, | ||
FCL_REAL | abs_err, | ||
FCL_REAL | rel_err, | ||
FCL_REAL | w, | ||
const BVHModel< BV > * | model1, | ||
const S & | model2, | ||
const BV & | model2_bv, | ||
const MotionBase * | motion1, | ||
const MotionBase * | motion2, | ||
std::vector< ConservativeAdvancementStackData > & | stack, | ||
FCL_REAL & | delta_t | ||
) |
References fcl::bound(), fcl::ConservativeAdvancementStackData::c1, fcl::MotionBase::computeMotionBound(), fcl::BVHModel< BV >::getBV(), fcl::Vec3fX< T >::normalize(), fcl::ConservativeAdvancementStackData::P1, and fcl::ConservativeAdvancementStackData::P2.
Referenced by fcl::MeshShapeConservativeAdvancementTraversalNodeRSS< S, NarrowPhaseSolver >::canStop(), fcl::MeshShapeConservativeAdvancementTraversalNodeOBBRSS< S, NarrowPhaseSolver >::canStop(), fcl::ShapeMeshConservativeAdvancementTraversalNodeRSS< S, NarrowPhaseSolver >::canStop(), and fcl::ShapeMeshConservativeAdvancementTraversalNodeOBBRSS< S, NarrowPhaseSolver >::canStop().
void fcl::details::meshShapeConservativeAdvancementOrientedNodeLeafTesting | ( | int | b1, |
int | , | ||
const BVHModel< BV > * | model1, | ||
const S & | model2, | ||
const BV & | model2_bv, | ||
Vec3f * | vertices, | ||
Triangle * | tri_indices, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const MotionBase * | motion1, | ||
const MotionBase * | motion2, | ||
const NarrowPhaseSolver * | nsolver, | ||
bool | enable_statistics, | ||
FCL_REAL & | min_distance, | ||
Vec3f & | p1, | ||
Vec3f & | p2, | ||
int & | last_tri_id, | ||
FCL_REAL & | delta_t, | ||
int & | num_leaf_tests | ||
) |
References fcl::bound(), fcl::MotionBase::computeMotionBound(), fcl::distance(), fcl::BVHModel< BV >::getBV(), fcl::Vec3fX< T >::normalize(), and fcl::BVNodeBase::primitiveId().
Referenced by fcl::MeshShapeConservativeAdvancementTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::MeshShapeConservativeAdvancementTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting(), fcl::ShapeMeshConservativeAdvancementTraversalNodeRSS< S, NarrowPhaseSolver >::leafTesting(), and fcl::ShapeMeshConservativeAdvancementTraversalNodeOBBRSS< S, NarrowPhaseSolver >::leafTesting().
static eigen_wrapper_v3<T> fcl::details::min | ( | const eigen_wrapper_v3< T > & | x, |
const eigen_wrapper_v3< T > & | y | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v3< T >::v.
Referenced by min(), fcl::min(), and fcl::details::Vec3Data< FCL_REAL >::ubound().
static Vec3Data<T> fcl::details::min | ( | const Vec3Data< T > & | x, |
const Vec3Data< T > & | y | ||
) | [inline, static] |
References min(), and fcl::details::Vec3Data< T >::vs.
static eigen_wrapper_v4<T> fcl::details::min | ( | const eigen_wrapper_v4< T > & | x, |
const eigen_wrapper_v4< T > & | y | ||
) | [inline, static] |
References fcl::details::eigen_wrapper_v4< T >::v.
static sse_meta_f4 fcl::details::min | ( | const sse_meta_f4 & | x, |
const sse_meta_f4 & | y | ||
) | [inline, static] |
References sse_meta_f4(), and fcl::details::sse_meta_f4::v.
static sse_meta_d4 fcl::details::min | ( | const sse_meta_d4 & | x, |
const sse_meta_d4 & | y | ||
) | [inline, static] |
References sse_meta_d4().
static eigen_v3<T> fcl::details::min | ( | const eigen_v3< T > & | x, |
const eigen_v3< T > & | y | ||
) | [inline, static] |
static __m128 fcl::details::newtonraphson_rsqrt4 | ( | const __m128 | v | ) | [inline, static] |
References __attribute__.
Referenced by normalize3().
static sse_meta_f4 fcl::details::normalize3 | ( | const sse_meta_f4 & | x | ) | [inline, static] |
References newtonraphson_rsqrt4(), sse_meta_f4(), fcl::details::sse_meta_f4::v, and vec_splat.
static sse_meta_f4 fcl::details::normalize3_approx | ( | const sse_meta_f4 & | x | ) | [inline, static] |
References sse_meta_f4(), fcl::details::sse_meta_f4::v, and vec_splat.
static bool fcl::details::setupShapeMeshDistanceOrientedNode | ( | OrientedNode< S, NarrowPhaseSolver > & | node, |
const S & | model1, | ||
const Transform3f & | tf1, | ||
const BVHModel< BV > & | model2, | ||
const Transform3f & | tf2, | ||
const NarrowPhaseSolver * | nsolver, | ||
const DistanceRequest & | request, | ||
DistanceResult & | result | ||
) | [inline, static] |
static void fcl::details::transpose | ( | __m128 | c0, |
__m128 | c1, | ||
__m128 | c2, | ||
__m128 * | r0, | ||
__m128 * | r1, | ||
__m128 * | r2 | ||
) | [inline, static] |
References __attribute__, vec_sel(), and vec_splat.
Matrix3Data<T> fcl::details::transpose | ( | const Matrix3Data< T > & | m | ) |
References fcl::details::Matrix3Data< T >::rs.
eigen_wrapper_m3<T> fcl::details::transpose | ( | const eigen_wrapper_m3< T > & | m | ) |
References fcl::details::eigen_wrapper_m3< T >::m.
Referenced by inverse(), and transpose().
static sse_meta_f12 fcl::details::transpose | ( | const sse_meta_f12 & | mat | ) | [inline, static] |
References fcl::details::sse_meta_f12::getColumn(), transpose(), and fcl::details::sse_meta_f4::v.
static void fcl::details::transpose | ( | __m128 | c0, |
__m128 | c1, | ||
__m128 | c2, | ||
__m128 | c3, | ||
__m128 * | r0, | ||
__m128 * | r1, | ||
__m128 * | r2, | ||
__m128 * | r3 | ||
) | [inline, static] |
eigen_m3<T> fcl::details::transpose | ( | const eigen_m3< T > & | m | ) |
static sse_meta_f16 fcl::details::transpose | ( | const sse_meta_f16 & | mat | ) | [inline, static] |
References fcl::details::sse_meta_f16::getColumn(), transpose(), and fcl::details::sse_meta_f4::v.
void* fcl::details::triCreateGJKObject | ( | const Vec3f & | P1, |
const Vec3f & | P2, | ||
const Vec3f & | P3 | ||
) |
void* fcl::details::triCreateGJKObject | ( | const Vec3f & | P1, |
const Vec3f & | P2, | ||
const Vec3f & | P3, | ||
const Transform3f & | tf | ||
) |
void fcl::details::triDeleteGJKObject | ( | void * | o | ) |
GJKCenterFunction fcl::details::triGetCenterFunction | ( | ) |
Referenced by fcl::GJKSolver_libccd::shapeTriangleIntersect().
GJKSupportFunction fcl::details::triGetSupportFunction | ( | ) |
static __m128 fcl::details::vec_sel | ( | __m128 | a, |
__m128 | b, | ||
__m128 | mask | ||
) | [inline, static] |
Referenced by transpose(), and vec_sel().
static __m128 fcl::details::vec_sel | ( | __m128 | a, |
__m128 | b, | ||
const unsigned int * | mask | ||
) | [inline, static] |
References vec_sel().
static __m128 fcl::details::vec_sel | ( | __m128 | a, |
__m128 | b, | ||
unsigned int | mask | ||
) | [inline, static] |
References vec_sel().
const FCL_REAL fcl::details::EPA_EPS = 0.000001 [static] |
const size_t fcl::details::EPA_MAX_FACES = 128 [static] |
const size_t fcl::details::EPA_MAX_ITERATIONS = 255 [static] |
const size_t fcl::details::EPA_MAX_VERTICES = 64 [static] |
const __m128d fcl::details::xmmd_0 = {0, 0} |
Referenced by equal(), and fcl::details::sse_meta_d4::negate().
const __m128 fcl::details::xmms_0 = {0.f, 0.f, 0.f, 0.f} |
Referenced by equal(), and fcl::details::sse_meta_f4::negate().