Struct OBB

Struct Documentation

struct OBB

Oriented bounding box class.

Public Functions

inline OBB()
inline bool operator==(const OBB &other) const

Equality operator.

inline bool operator!=(const OBB &other) const

Difference operator.

bool contain(const Vec3f &p) const

Check whether the OBB contains a point.

bool overlap(const OBB &other) const

Check collision between two OBB

Returns:

true if collision happens.

bool overlap(const OBB &other, const CollisionRequest &request, FCL_REAL &sqrDistLowerBound) const

Check collision between two OBB

Return values:

sqrDistLowerBound – squared lower bound on distance between boxes if they do not overlap.

Returns:

true if collision happens.

FCL_REAL distance(const OBB &other, Vec3f *P = NULL, Vec3f *Q = NULL) const

Distance between two OBBs, not implemented.

OBB &operator+=(const Vec3f &p)

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

inline OBB &operator+=(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).

inline FCL_REAL size() const

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

inline const Vec3f &center() const

Center of the OBB.

inline FCL_REAL width() const

Width of the OBB.

inline FCL_REAL height() const

Height of the OBB.

inline FCL_REAL depth() const

Depth of the OBB.

inline FCL_REAL volume() const

Volume of the OBB.

Public Members

Matrix3f axes

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.

Vec3f To

Center of OBB.

Vec3f extent

Half dimensions of OBB.