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

Oriented bounding box class. More...

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

List of all members.

Public Member Functions

bool overlap (const OBB &other) const
 Check collision between two OBB.
bool overlap (const OBB &other, FCL_REAL &sqrDistLowerBound) const
 Check collision between two OBB.
bool overlap (const OBB &other, OBB &) const
 Check collision between two OBB and return the overlap part. For OBB, the overlap_part return value is NOT used as the overlap part of two obbs usually is not an obb.
bool contain (const Vec3f &p) const
 Check whether the OBB contains a point.
OBBoperator+= (const Vec3f &p)
 A simple way to merge the OBB and a point (the result is not compact).
OBBoperator+= (const OBB &other)
 Merge the OBB and another OBB (the result is not compact).
OBB operator+ (const OBB &other) const
 Return the merged OBB of current OBB and the other one (the result is not compact).
FCL_REAL width () const
 Width of the OBB.
FCL_REAL height () const
 Height of the OBB.
FCL_REAL depth () const
 Depth of the OBB.
FCL_REAL volume () const
 Volume of the OBB.
FCL_REAL size () const
 Size of the OBB (used in BV_Splitter to order two OBBs)
const Vec3fcenter () const
 Center of the OBB.
FCL_REAL distance (const OBB &other, Vec3f *P=NULL, Vec3f *Q=NULL) const
 Distance between two OBBs, not implemented.

Public Attributes

Matrix3f axes
 Orientation of OBB.
Vec3f To
 Center of OBB.
Vec3f extent
 Half dimensions of OBB.

Detailed Description

Oriented bounding box class.


Member Function Documentation

const Vec3f& fcl::OBB::center ( ) const [inline]

Center of the OBB.

References To.

Referenced by fcl::OBBRSS::center().

bool fcl::OBB::contain ( const Vec3f p) const

Check whether the OBB contains a point.

Referenced by fcl::OBBRSS::contain().

FCL_REAL fcl::OBB::depth ( ) const [inline]

Depth of the OBB.

References extent.

Referenced by fcl::OBBRSS::depth(), and volume().

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

Distance between two OBBs, not implemented.

FCL_REAL fcl::OBB::height ( ) const [inline]

Height of the OBB.

References extent.

Referenced by fcl::OBBRSS::height(), and volume().

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

Return the merged OBB of current OBB and the other one (the result is not compact).

OBB& fcl::OBB::operator+= ( const Vec3f p)

A simple way to merge the OBB and a point (the result is not compact).

OBB& fcl::OBB::operator+= ( const OBB other) [inline]

Merge the OBB and another OBB (the result is not compact).

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

Check collision between two OBB.

Returns:
true if collision happens.

Referenced by fcl::OBBRSS::overlap(), and overlap().

bool fcl::OBB::overlap ( const OBB other,
FCL_REAL sqrDistLowerBound 
) const

Check collision between two OBB.

Returns:
true if collision happens.
Return values:
sqrDistLowerBoundsquared lower bound on distance between boxes if they do not overlap.
bool fcl::OBB::overlap ( const OBB other,
OBB  
) const [inline]

Check collision between two OBB and return the overlap part. For OBB, the overlap_part return value is NOT used as the overlap part of two obbs usually is not an obb.

References overlap().

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

Size of the OBB (used in BV_Splitter to order two OBBs)

References extent.

Referenced by fcl::OBBRSS::size().

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

Volume of the OBB.

References depth(), height(), and width().

Referenced by fcl::OBBRSS::volume().

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

Width of the OBB.

References extent.

Referenced by volume(), and fcl::OBBRSS::width().


Member Data Documentation

Orientation of OBB.

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

Half dimensions of OBB.

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

Center of OBB.

Referenced by center().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines