Classes | Public Types | Public Member Functions | Public Attributes | List of all members
hpp::fcl::details::MinkowskiDiff Struct Reference

Minkowski difference class of two shapes. More...

#include <gjk.h>

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...
 
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...
 
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...
 

Public Attributes

ShapeData data [2]
 Store temporary data for the computation of the support point for each shape. More...
 
GetSupportFunction getSupportFunc
 
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...
 
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...
 
const ShapeBaseshapes [2]
 points to two shapes More...
 

Detailed Description

Minkowski difference class of two shapes.

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

Definition at line 59 of file gjk.h.

Member Typedef Documentation

◆ Array2d

Definition at line 60 of file gjk.h.

◆ 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])

Definition at line 97 of file gjk.h.

Constructor & Destructor Documentation

◆ MinkowskiDiff()

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

Definition at line 104 of file gjk.h.

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.

Definition at line 505 of file src/narrowphase/gjk.cpp.

◆ 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.

Definition at line 488 of file src/narrowphase/gjk.cpp.

◆ 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

Definition at line 130 of file gjk.h.

◆ support0()

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

support function for shape0

Definition at line 118 of file gjk.h.

◆ support1()

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

support function for shape1

Definition at line 123 of file gjk.h.

Member Data Documentation

◆ data

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

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

Definition at line 71 of file gjk.h.

◆ getSupportFunc

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

Definition at line 102 of file gjk.h.

◆ 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.

Definition at line 84 of file gjk.h.

◆ 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.

Definition at line 90 of file gjk.h.

◆ 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.

Definition at line 95 of file gjk.h.

◆ oR1

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

rotation from shape1 to shape0 such that $ p_in_0 = oR1 * p_in_1 + ot1 $.

Definition at line 75 of file gjk.h.

◆ ot1

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

translation from shape1 to shape0 such that $ p_in_0 = oR1 * p_in_1 + ot1 $.

Definition at line 79 of file gjk.h.

◆ shapes

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

points to two shapes

Definition at line 63 of file gjk.h.


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


hpp-fcl
Author(s):
autogenerated on Fri Jan 26 2024 03:46:17