hpp-fcl  2.4.1
HPP fork of FCL -- The Flexible Collision Library
hpp::fcl::details::MinkowskiDiff Struct Reference

Minkowski difference class of two shapes. More...

#include <hpp/fcl/narrowphase/gjk.h>

Collaboration diagram for hpp::fcl::details::MinkowskiDiff:

Classes

struct  ShapeData
 

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 Member Functions

 MinkowskiDiff ()
 
void set (const ShapeBase *shape0, const ShapeBase *shape1)
 
void set (const ShapeBase *shape0, const ShapeBase *shape1, const Transform3f &tf0, const Transform3f &tf1)
 Set the two shapes, with a relative transformation. More...
 
Vec3f support0 (const Vec3f &d, bool dIsNormalized, int &hint) const
 support function for shape0 More...
 
Vec3f support1 (const Vec3f &d, bool dIsNormalized, int &hint) const
 support function for shape1 More...
 
void support (const Vec3f &d, bool dIsNormalized, Vec3f &supp0, Vec3f &supp1, support_func_guess_t &hint) const
 support function for the pair of shapes More...
 

Public Attributes

const ShapeBaseshapes [2]
 points to two shapes More...
 
ShapeData data [2]
 Store temporary data for the computation of the support point for each shape. More...
 
Matrix3f oR1
 rotation from shape1 to shape0 such that \( p_in_0 = oR1 * p_in_1 + ot1 \). More...
 
Vec3f ot1
 translation from shape1 to shape0 such that \( p_in_0 = oR1 * p_in_1 + ot1 \). More...
 
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. More...
 
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. More...
 
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. More...
 
GetSupportFunction getSupportFunc
 

Detailed Description

Minkowski difference class of two shapes.

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

Member Typedef Documentation

◆ Array2d

◆ GetSupportFunction

typedef void(* hpp::fcl::details::MinkowskiDiff::GetSupportFunction) (const MinkowskiDiff &minkowskiDiff, const Vec3f &dir, bool dirIsNormalized, Vec3f &support0, Vec3f &support1, support_func_guess_t &hint, ShapeData data[2])

Constructor & Destructor Documentation

◆ MinkowskiDiff()

hpp::fcl::details::MinkowskiDiff::MinkowskiDiff ( )
inline

Member Function Documentation

◆ set() [1/2]

void hpp::fcl::details::MinkowskiDiff::set ( const ShapeBase shape0,
const ShapeBase shape1 
)

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

◆ set() [2/2]

void hpp::fcl::details::MinkowskiDiff::set ( const ShapeBase shape0,
const ShapeBase shape1,
const Transform3f tf0,
const Transform3f tf1 
)

Set the two shapes, with a relative transformation.

◆ support()

void hpp::fcl::details::MinkowskiDiff::support ( const Vec3f d,
bool  dIsNormalized,
Vec3f supp0,
Vec3f supp1,
support_func_guess_t hint 
) const
inline

support function for the pair of shapes

◆ support0()

Vec3f hpp::fcl::details::MinkowskiDiff::support0 ( const Vec3f d,
bool  dIsNormalized,
int &  hint 
) const
inline

support function for shape0

◆ support1()

Vec3f hpp::fcl::details::MinkowskiDiff::support1 ( const Vec3f d,
bool  dIsNormalized,
int &  hint 
) const
inline

support function for shape1

Member Data Documentation

◆ data

ShapeData hpp::fcl::details::MinkowskiDiff::data[2]

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

◆ getSupportFunc

GetSupportFunction hpp::fcl::details::MinkowskiDiff::getSupportFunc

◆ inflation

Array2d hpp::fcl::details::MinkowskiDiff::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.

◆ linear_log_convex_threshold

int hpp::fcl::details::MinkowskiDiff::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.

◆ normalize_support_direction

bool hpp::fcl::details::MinkowskiDiff::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.

◆ oR1

Matrix3f hpp::fcl::details::MinkowskiDiff::oR1

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

◆ ot1

Vec3f hpp::fcl::details::MinkowskiDiff::ot1

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

◆ shapes

const ShapeBase* hpp::fcl::details::MinkowskiDiff::shapes[2]

points to two shapes


The documentation for this struct was generated from the following file: