Public Member Functions | Public Attributes
fcl::RSS Class Reference

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

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

Collaboration diagram for fcl::RSS:
[legend]

List of all members.

Public Member Functions

bool overlap (const RSS &other) const
 Check collision between two RSS.
bool overlap (const RSS &, FCL_REAL &) const
 Not implemented.
bool overlap (const RSS &other, RSS &) const
 Check collision between two RSS and return the overlap part.
bool contain (const Vec3f &p) const
 Check whether the RSS contains a point.
RSSoperator+= (const Vec3f &p)
 A simple way to merge the RSS and a point, not compact.
RSSoperator+= (const RSS &other)
 Merge the RSS and another RSS.
RSS operator+ (const RSS &other) const
 Return the merged RSS of current RSS and the other one.
FCL_REAL width () const
 Width of the RSS.
FCL_REAL height () const
 Height of the RSS.
FCL_REAL depth () const
 Depth of the RSS.
FCL_REAL volume () const
 Volume of the RSS.
FCL_REAL size () const
 Size of the RSS (used in BV_Splitter to order two RSSs)
const Vec3fcenter () const
 The RSS center.
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

Public Attributes

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

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 l, and 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 ,
FCL_REAL  
) const [inline]

Not implemented.

bool 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 overlap().

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

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

References l, and r.

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

Volume of the RSS.

References l, and r.

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

Width of the RSS.

References l, and r.


Member Data Documentation

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.

Side lengths of rectangle.

Referenced by height(), size(), volume(), and width().

Radius of sphere summed with rectangle to form RSS.

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

Origin of the rectangle in RSS.

Referenced by center().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines