Class AABB

Class Documentation

class AABB

A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points.

Bounding volume API

Common API to BVs.

inline bool contain(const Vec3f &p) const

Check whether the AABB contains a point.

inline bool overlap(const AABB &other) const

Check whether two AABB are overlap.

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

Check whether two AABB are overlap.

FCL_REAL distance(const AABB &other) const

Distance between two AABBs.

FCL_REAL distance(const AABB &other, Vec3f *P, Vec3f *Q) const

Distance between two AABBs; P and Q, should not be NULL, return the nearest points.

inline AABB &operator+=(const Vec3f &p)

Merge the AABB and a point.

inline AABB &operator+=(const AABB &other)

Merge the AABB and another AABB.

inline AABB operator+(const AABB &other) const

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

inline FCL_REAL size() const

Size of the AABB (used in BV_Splitter to order two AABBs)

inline Vec3f center() const

Center of the AABB.

inline FCL_REAL width() const

Width of the AABB.

inline FCL_REAL height() const

Height of the AABB.

inline FCL_REAL depth() const

Depth of the AABB.

inline FCL_REAL volume() const

Volume of the AABB.

Public Functions

AABB()

Creating an AABB with zero size (low bound +inf, upper bound -inf)

inline AABB(const Vec3f &v)

Creating an AABB at position v with zero size.

inline AABB(const Vec3f &a, const Vec3f &b)

Creating an AABB with two endpoints a and b.

inline AABB(const AABB &core, const Vec3f &delta)

Creating an AABB centered as core and is of half-dimension delta.

inline AABB(const Vec3f &a, const Vec3f &b, const Vec3f &c)

Creating an AABB contains three points.

AABB(const AABB &other) = default
AABB &operator=(const AABB &other) = default
inline AABB &update(const Vec3f &a, const Vec3f &b)
inline bool operator==(const AABB &other) const

Comparison operator.

inline bool operator!=(const AABB &other) const
inline bool contain(const AABB &other) const

Check whether the AABB contains another AABB.

inline bool overlap(const AABB &other, AABB &overlap_part) const

Check whether two AABB are overlap and return the overlap part.

inline bool axisOverlap(const AABB &other, int axis_id) const

Check whether two AABB are overlapped along specific axis.

inline AABB &expand(const Vec3f &delta)

expand the half size of the AABB by delta, and keep the center unchanged.

inline AABB &expand(const FCL_REAL delta)

expand the half size of the AABB by a scalar delta, and keep the center unchanged.

inline AABB &expand(const AABB &core, FCL_REAL ratio)

expand the aabb by increase the thickness of the plate by a ratio

Public Members

Vec3f min_

The min point in the AABB.

Vec3f max_

The max point in the AABB.