A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points. More...
#include <AABB.h>
Public Types | |
using | S = S_ |
Public Member Functions | |
AABB () | |
Creating an AABB with zero size (low bound +inf, upper bound -inf) More... | |
AABB (const AABB< S > &core, const Vector3< S > &delta) | |
Creating an AABB centered as core and is of half-dimension delta. More... | |
AABB (const Vector3< S > &a, const Vector3< S > &b) | |
Creating an AABB with two endpoints a and b. More... | |
AABB (const Vector3< S > &a, const Vector3< S > &b, const Vector3< S > &c) | |
Creating an AABB contains three points. More... | |
AABB (const Vector3< S > &v) | |
Creating an AABB at position v with zero size. More... | |
bool | axisOverlap (const AABB< S > &other, int axis_id) const |
Check whether two AABB are overlapped along specific axis. More... | |
Vector3< S > | center () const |
Center of the AABB. More... | |
bool | contain (const AABB< S > &other) const |
Check whether the AABB contains another AABB. More... | |
bool | contain (const Vector3< S > &p) const |
Check whether the AABB contains a point. More... | |
S | depth () const |
Depth of the AABB. More... | |
S | distance (const AABB< S > &other) const |
Distance between two AABBs. More... | |
S | distance (const AABB< S > &other, Vector3< S > *P, Vector3< S > *Q) const |
Distance between two AABBs; P and Q, should not be nullptr, return the nearest points. More... | |
bool | equal (const AABB< S > &other) const |
whether two AABB are equal More... | |
AABB< S > & | expand (const AABB< S > &core, S ratio) |
expand the aabb by increase the thickness of the plate by a ratio More... | |
AABB< S > & | expand (const Vector3< S > &delta) |
expand the half size of the AABB by delta, and keep the center unchanged. More... | |
S | height () const |
Height of the AABB. More... | |
AABB< S > | operator+ (const AABB< S > &other) const |
Return the merged AABB of current AABB and the other one. More... | |
AABB< S > & | operator+= (const AABB< S > &other) |
Merge the AABB and another AABB. More... | |
AABB< S > & | operator+= (const Vector3< S > &p) |
Merge the AABB and a point. More... | |
bool | overlap (const AABB< S > &other) const |
Check whether two AABB are overlap. More... | |
bool | overlap (const AABB< S > &other, AABB< S > &overlap_part) const |
Check whether two AABB are overlap and return the overlap part. More... | |
S | radius () const |
Radius of the AABB. More... | |
S | size () const |
Size of the AABB (used in BV_Splitter to order two AABBs) More... | |
S | volume () const |
Volume of the AABB. More... | |
S | width () const |
Width of the AABB. More... | |
Public Attributes | |
Vector3< S > | max_ |
The max point in the AABB. More... | |
Vector3< S > | min_ |
The min point in the AABB. More... | |
A class describing the AABB collision structure, which is a box in 3D space determined by two diagonal points.
Creating an AABB with zero size (low bound +inf, upper bound -inf)
Definition at line 52 of file AABB-inl.h.
Creating an AABB at position v with zero size.
Definition at line 61 of file AABB-inl.h.
Creating an AABB with two endpoints a and b.
Definition at line 68 of file AABB-inl.h.
Creating an AABB centered as core and is of half-dimension delta.
Definition at line 77 of file AABB-inl.h.
fcl::AABB< S >::AABB | ( | const Vector3< S > & | a, |
const Vector3< S > & | b, | ||
const Vector3< S > & | c | ||
) |
Creating an AABB contains three points.
Definition at line 86 of file AABB-inl.h.
bool fcl::AABB< S >::axisOverlap | ( | const AABB< S > & | other, |
int | axis_id | ||
) | const |
Check whether two AABB are overlapped along specific axis.
Definition at line 124 of file AABB-inl.h.
Center of the AABB.
Definition at line 230 of file AABB-inl.h.
Check whether the AABB contains another AABB.
Definition at line 111 of file AABB-inl.h.
Check whether the AABB contains a point.
Definition at line 149 of file AABB-inl.h.
Depth of the AABB.
Definition at line 202 of file AABB-inl.h.
Distance between two AABBs.
Definition at line 292 of file AABB-inl.h.
S fcl::AABB< S >::distance | ( | const AABB< S > & | other, |
Vector3< S > * | P, | ||
Vector3< S > * | Q | ||
) | const |
Distance between two AABBs; P and Q, should not be nullptr, return the nearest points.
Definition at line 237 of file AABB-inl.h.
whether two AABB are equal
Definition at line 319 of file AABB-inl.h.
expand the aabb by increase the thickness of the plate by a ratio
Definition at line 336 of file AABB-inl.h.
expand the half size of the AABB by delta, and keep the center unchanged.
Definition at line 327 of file AABB-inl.h.
Height of the AABB.
Definition at line 195 of file AABB-inl.h.
Return the merged AABB of current AABB and the other one.
Definition at line 180 of file AABB-inl.h.
Merge the AABB and another AABB.
Definition at line 171 of file AABB-inl.h.
Merge the AABB and a point.
Definition at line 162 of file AABB-inl.h.
Check whether two AABB are overlap.
Definition at line 98 of file AABB-inl.h.
bool fcl::AABB< S >::overlap | ( | const AABB< S > & | other, |
AABB< S > & | overlap_part | ||
) | const |
Check whether two AABB are overlap and return the overlap part.
Definition at line 135 of file AABB-inl.h.
Radius of the AABB.
Definition at line 223 of file AABB-inl.h.
Size of the AABB (used in BV_Splitter to order two AABBs)
Definition at line 216 of file AABB-inl.h.
Volume of the AABB.
Definition at line 209 of file AABB-inl.h.
Width of the AABB.
Definition at line 188 of file AABB-inl.h.