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

A class for rectangle sphere-swept bounding volume. More...

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

Public Member Functions

bool overlap (const RSS &other) const
 Check collision between two RSS. More...
 
bool overlap (const RSS &other, const CollisionRequest &, FCL_REAL &sqrDistLowerBound) const
 Not implemented. More...
 
bool overlap (const RSS &other, RSS &) const
 Check collision between two RSS and return the overlap part. More...
 
bool contain (const Vec3f &p) const
 Check whether the RSS contains a point. More...
 
RSSoperator+= (const Vec3f &p)
 A simple way to merge the RSS and a point, not compact. More...
 
RSSoperator+= (const RSS &other)
 Merge the RSS and another RSS. More...
 
RSS operator+ (const RSS &other) const
 Return the merged RSS of current RSS and the other one. More...
 
FCL_REAL width () const
 Width of the RSS. More...
 
FCL_REAL height () const
 Height of the RSS. More...
 
FCL_REAL depth () const
 Depth of the RSS. More...
 
FCL_REAL volume () const
 Volume of the RSS. More...
 
FCL_REAL size () const
 Size of the RSS (used in BV_Splitter to order two RSSs) More...
 
const Vec3fcenter () const
 The RSS center. More...
 
FCL_REAL distance (const RSS &other, Vec3f *P=NULL, Vec3f *Q=NULL) const
 the distance between two RSS; P and Q, if not NULL, return the nearest points More...
 

Public Attributes

Matrix3f axes
 Orientation of RSS. More...
 
Vec3f Tr
 Origin of the rectangle in RSS. More...
 
FCL_REAL l [2]
 Side lengths of rectangle. More...
 
FCL_REAL r
 Radius of sphere summed with rectangle to form RSS. More...
 

Detailed Description

A class for rectangle sphere-swept bounding volume.

Member Function Documentation

const Vec3f& hpp::fcl::RSS::center ( ) const
inline

The RSS center.

References distance(), overlap(), Tr, and hpp::fcl::translate().

bool hpp::fcl::RSS::contain ( const Vec3f p) const
inline

Check whether the RSS contains a point.

Referenced by overlap().

FCL_REAL hpp::fcl::RSS::depth ( ) const
inline

Depth of the RSS.

References r.

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

the distance between two RSS; P and Q, if not NULL, return the nearest points

Referenced by center(), and hpp::fcl::OBBRSS::distance().

FCL_REAL hpp::fcl::RSS::height ( ) const
inline

Height of the RSS.

References r.

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

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

Referenced by operator+=().

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

A simple way to merge the RSS and a point, not compact.

Todo:
This function may have some bug.

Referenced by overlap().

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

Merge the RSS and another RSS.

References operator+().

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

Check collision between two RSS.

Referenced by center(), and overlap().

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

Not implemented.

References overlap().

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

Check collision between two RSS and return the overlap part.

For RSS, we return nothing, as the overlap part of two RSSs usually is not a RSS.

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

FCL_REAL hpp::fcl::RSS::size ( ) const
inline

Size of the RSS (used in BV_Splitter to order two RSSs)

FCL_REAL hpp::fcl::RSS::volume ( ) const
inline

Volume of the RSS.

FCL_REAL hpp::fcl::RSS::width ( ) const
inline

Width of the RSS.

References r.

Member Data Documentation

Matrix3f hpp::fcl::RSS::axes

Orientation of RSS.

axis[i] is the ith column of the orientation matrix for the RSS; it is also the i-th principle direction of the RSS. We assume that axis[0] corresponds to the axis with the longest length, axis[1] corresponds to the shorter one and axis[2] corresponds to the shortest one.

FCL_REAL hpp::fcl::RSS::l[2]

Side lengths of rectangle.

FCL_REAL hpp::fcl::RSS::r

Radius of sphere summed with rectangle to form RSS.

Referenced by depth(), height(), and width().

Vec3f hpp::fcl::RSS::Tr

Origin of the rectangle in RSS.

Referenced by center().