Struct MinkowskiDiff

Nested Relationships

Nested Types

Struct Documentation

struct MinkowskiDiff

Minkowski difference class of two shapes.

Note

The Minkowski difference is expressed in the frame of the first shape.

Public Types

typedef Eigen::Array<FCL_REAL, 1, 2> Array2d
typedef void (*GetSupportFunction)(const MinkowskiDiff &minkowskiDiff, const Vec3f &dir, bool dirIsNormalized, Vec3f &support0, Vec3f &support1, support_func_guess_t &hint, ShapeData data[2])

Public Functions

inline MinkowskiDiff()
void set(const ShapeBase *shape0, const ShapeBase *shape1)

Set the two shapes, assuming the relative transformation between them is identity.

void set(const ShapeBase *shape0, const ShapeBase *shape1, const Transform3f &tf0, const Transform3f &tf1)

Set the two shapes, with a relative transformation.

inline Vec3f support0(const Vec3f &d, bool dIsNormalized, int &hint) const

support function for shape0

inline Vec3f support1(const Vec3f &d, bool dIsNormalized, int &hint) const

support function for shape1

inline void support(const Vec3f &d, bool dIsNormalized, Vec3f &supp0, Vec3f &supp1, support_func_guess_t &hint) const

support function for the pair of shapes

Public Members

const ShapeBase *shapes[2]

points to two shapes

ShapeData data[2]

Store temporary data for the computation of the support point for each shape.

Matrix3f oR1

rotation from shape1 to shape0 such that \( p_in_0 = oR1 * p_in_1 + ot1 \).

Vec3f ot1

translation from shape1 to shape0 such that \( p_in_0 = oR1 * p_in_1 + ot1 \).

Array2d inflation

The radius of the sphere swepted volume. The 2 values correspond to the inflation of shape 0 and shape 1/ These inflation values are used for Sphere and Capsule.

int linear_log_convex_threshold

Number of points in a Convex object from which using a logarithmic support function is faster than a linear one. It defaults to 32.

Note

It must set before the call to set.

bool normalize_support_direction

Wether or not to use the normalize heuristic in the GJK Nesterov acceleration. This setting is only applied if the Nesterov acceleration in the GJK class is active.

GetSupportFunction getSupportFunc
struct ShapeData

Public Members

std::vector<int8_t> visited