All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fcl::RSS Class Reference

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

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

Collaboration diagram for fcl::RSS:

Public Member Functions

bool overlap (const RSS &other) const
 Check collision between two RSS. More...
 
bool overlap (const RSS &other, FCL_REAL &sqrDistLowerBound) const
 Not implemented. More...
 
bool overlap (const RSS &other, RSS &overlap_part) 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

Vec3f axis [3]
 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& fcl::RSS::center ( ) const
inline

The RSS center.

References Tr.

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

Check whether the RSS contains a point.

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

Depth of the RSS.

References r.

FCL_REAL 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 fcl::OBBRSS::distance().

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

Height of the RSS.

References r.

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

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

RSS& 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.
RSS& fcl::RSS::operator+= ( const RSS other)
inline

Merge the RSS and another RSS.

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

Check collision between two RSS.

Referenced by overlap().

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

Not implemented.

bool fcl::RSS::overlap ( const RSS other,
RSS overlap_part 
) 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 overlap().

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

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

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

Volume of the RSS.

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

Width of the RSS.

References r.

Member Data Documentation

Vec3f fcl::RSS::axis[3]

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 fcl::RSS::l[2]

Side lengths of rectangle.

FCL_REAL fcl::RSS::r

Radius of sphere summed with rectangle to form RSS.

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

Vec3f fcl::RSS::Tr

Origin of the rectangle in RSS.

Referenced by center().