Classes | Public Member Functions | Public Attributes | List of all members
hpp::fcl::kIOS Class Reference

A class describing the kIOS collision structure, which is a set of spheres. More...

#include <hpp/fcl/BV/kIOS.h>

Collaboration diagram for hpp::fcl::kIOS:
[legend]

Public Member Functions

bool overlap (const kIOS &other) const
 Check collision between two kIOS. More...
 
bool overlap (const kIOS &other, const CollisionRequest &, FCL_REAL &sqrDistLowerBound) const
 Check collision between two kIOS. More...
 
bool overlap (const kIOS &other, kIOS &) const
 Check collision between two kIOS and return the overlap part. More...
 
bool contain (const Vec3f &p) const
 Check whether the kIOS contains a point. More...
 
kIOSoperator+= (const Vec3f &p)
 A simple way to merge the kIOS and a point. More...
 
kIOSoperator+= (const kIOS &other)
 Merge the kIOS and another kIOS. More...
 
kIOS operator+ (const kIOS &other) const
 Return the merged kIOS of current kIOS and the other one. More...
 
const Vec3fcenter () const
 Center of the kIOS. More...
 
FCL_REAL width () const
 Width of the kIOS. More...
 
FCL_REAL height () const
 Height of the kIOS. More...
 
FCL_REAL depth () const
 Depth of the kIOS. More...
 
FCL_REAL volume () const
 Volume of the kIOS. More...
 
FCL_REAL size () const
 size of the kIOS (used in BV_Splitter to order two kIOSs) More...
 
FCL_REAL distance (const kIOS &other, Vec3f *P=NULL, Vec3f *Q=NULL) const
 The distance between two kIOS. More...
 

Public Attributes

kIOS_Sphere spheres [5]
 The (at most) five spheres for intersection. More...
 
unsigned int num_spheres
 The number of spheres, no larger than 5. More...
 
OBB obb
 @ OBB related with kIOS More...
 

Detailed Description

A class describing the kIOS collision structure, which is a set of spheres.

Member Function Documentation

const Vec3f& hpp::fcl::kIOS::center ( ) const
inline
bool hpp::fcl::kIOS::contain ( const Vec3f p) const
inline

Check whether the kIOS contains a point.

Referenced by overlap().

FCL_REAL hpp::fcl::kIOS::depth ( ) const

Depth of the kIOS.

Referenced by center().

FCL_REAL hpp::fcl::kIOS::distance ( const kIOS other,
Vec3f P = NULL,
Vec3f Q = NULL 
) const

The distance between two kIOS.

Referenced by center().

FCL_REAL hpp::fcl::kIOS::height ( ) const

Height of the kIOS.

Referenced by center().

kIOS hpp::fcl::kIOS::operator+ ( const kIOS other) const

Return the merged kIOS of current kIOS and the other one.

Referenced by operator+=().

kIOS& hpp::fcl::kIOS::operator+= ( const Vec3f p)

A simple way to merge the kIOS and a point.

Referenced by overlap().

kIOS& hpp::fcl::kIOS::operator+= ( const kIOS other)
inline

Merge the kIOS and another kIOS.

References operator+().

bool hpp::fcl::kIOS::overlap ( const kIOS other) const

Check collision between two kIOS.

Referenced by center(), and overlap().

bool hpp::fcl::kIOS::overlap ( const kIOS other,
const CollisionRequest ,
FCL_REAL sqrDistLowerBound 
) const

Check collision between two kIOS.

bool hpp::fcl::kIOS::overlap ( const kIOS other,
kIOS  
) const
inline

Check collision between two kIOS and return the overlap part.

For kIOS, we return nothing, as the overlappart of two kIOS usually is not an kIOS

Todo:
Not efficient. It first checks the sphere collisions and then use OBB for further culling.

References contain(), operator+=(), and overlap().

FCL_REAL hpp::fcl::kIOS::size ( ) const

size of the kIOS (used in BV_Splitter to order two kIOSs)

Referenced by center().

FCL_REAL hpp::fcl::kIOS::volume ( ) const

Volume of the kIOS.

Referenced by center().

FCL_REAL hpp::fcl::kIOS::width ( ) const

Width of the kIOS.

Referenced by center().

Member Data Documentation

unsigned int hpp::fcl::kIOS::num_spheres

The number of spheres, no larger than 5.

OBB hpp::fcl::kIOS::obb

@ OBB related with kIOS

kIOS_Sphere hpp::fcl::kIOS::spheres[5]

The (at most) five spheres for intersection.