39 #ifndef HPP_FCL_MINKOWSKI_DIFFERENCE_H
40 #define HPP_FCL_MINKOWSKI_DIFFERENCE_H
55 typedef Eigen::Array<FCL_REAL, 1, 2>
Array2d;
89 MinkowskiDiff() : normalize_support_direction(false), getSupportFunc(NULL) {}
117 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
129 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
142 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
144 return getSupport<_SupportOptions>(shapes[0], dir, hint);
159 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
162 return oR1 * getSupport<_SupportOptions>(shapes[1], oR1.transpose() * dir, hint) + ot1;
177 assert(getSupportFunc != NULL);
178 getSupportFunc(*
this, dir, supp0, supp1, hint,
Base class for all basic geometric shapes.
Definition: geometric_shapes.h:59
#define HPP_FCL_DLLAPI
Definition: config.hh:88
Eigen::Matrix< FCL_REAL, 3, 3 > Matrix3f
Definition: data_types.h:71
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67
Eigen::Vector2i support_func_guess_t
Definition: data_types.h:77
Main namespace.
Definition: broadphase_bruteforce.h:44
Minkowski difference class of two shapes.
Definition: minkowski_difference.h:54
Vec3f ot1
translation from shape1 to shape0 such that .
Definition: minkowski_difference.h:70
void set(const ShapeBase *shape0, const ShapeBase *shape1)
Set the two shapes, assuming the relative transformation between them is identity....
Array2d swept_sphere_radius
The radii of the sphere swepted around each shape of the Minkowski difference. The 2 values correspon...
Definition: minkowski_difference.h:75
void set(const ShapeBase *shape0, const ShapeBase *shape1, const Transform3f &tf0, const Transform3f &tf1)
Set the two shapes, with a relative transformation from shape0 to shape1. Consequently,...
Vec3f support1(const Vec3f &dir, int &hint) const
support function for shape1. The output vector is expressed in the local frame of shape0....
Definition: minkowski_difference.h:160
Matrix3f oR1
rotation from shape1 to shape0 such that .
Definition: minkowski_difference.h:66
Vec3f support0(const Vec3f &dir, int &hint) const
support function for shape0. The output vector is expressed in the local frame of shape0.
Definition: minkowski_difference.h:143
GetSupportFunction getSupportFunc
Definition: minkowski_difference.h:87
void support(const Vec3f &dir, Vec3f &supp0, Vec3f &supp1, support_func_guess_t &hint) const
Support function for the pair of shapes. This method assumes set has already been called.
Definition: minkowski_difference.h:175
MinkowskiDiff()
Definition: minkowski_difference.h:89
bool normalize_support_direction
Wether or not to use the normalize heuristic in the GJK Nesterov acceleration. This setting is only a...
Definition: minkowski_difference.h:80
Eigen::Array< FCL_REAL, 1, 2 > Array2d
Definition: minkowski_difference.h:55
Stores temporary data for the computation of support points.
Definition: support_functions.h:81