geom/aabb: add some more documentation
This commit is contained in:
parent
1003d0bf62
commit
3c9b71fa56
@ -40,7 +40,7 @@ namespace cruft::geom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
///--------------------------------------------------------------------
|
||||||
T
|
T
|
||||||
diameter (void) const
|
diameter (void) const
|
||||||
{
|
{
|
||||||
@ -48,14 +48,15 @@ namespace cruft::geom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
///--------------------------------------------------------------------
|
||||||
/// tests whether a point lies within the region, inclusive of borders
|
/// tests whether a point lies within the region, inclusive of borders
|
||||||
constexpr bool
|
constexpr bool
|
||||||
inclusive (point<S,T> p) const noexcept
|
inclusive (point<S,T> p) const noexcept
|
||||||
{ return all (lo <= p && hi >= p); }
|
{ return all (lo <= p && hi >= p); }
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
///--------------------------------------------------------------------
|
||||||
|
/// Find's the closest point on the AABB border to the supplied point.
|
||||||
point<S,T>
|
point<S,T>
|
||||||
closest (point<S,T> query) const
|
closest (point<S,T> query) const
|
||||||
{
|
{
|
||||||
@ -63,7 +64,8 @@ namespace cruft::geom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
///--------------------------------------------------------------------
|
||||||
|
/// Modifies the AABB to cover the supplied point inclusively.
|
||||||
void cover (point<S,T> p)
|
void cover (point<S,T> p)
|
||||||
{
|
{
|
||||||
lo = min (p, lo);
|
lo = min (p, lo);
|
||||||
@ -71,20 +73,24 @@ namespace cruft::geom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
/// Adds a constant vector to both the lo and hi points.
|
||||||
aabb<S,T> operator+ (vector<S,T> v) const
|
aabb<S,T> operator+ (vector<S,T> v) const
|
||||||
{
|
{
|
||||||
return { lo + v, hi + v };
|
return { lo + v, hi + v };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///--------------------------------------------------------------------
|
||||||
|
/// Substracts a constant vector from both the lo and hi points.
|
||||||
aabb<S,T> operator- (vector<S,T> v) const
|
aabb<S,T> operator- (vector<S,T> v) const
|
||||||
{
|
{
|
||||||
return { lo - v, hi - v };
|
return { lo - v, hi - v };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// returns an aabb that covers the supplied point in addition to the
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
/// Returns an aabb that covers the supplied point in addition to the
|
||||||
/// current aabb area.
|
/// current aabb area.
|
||||||
auto operator| [[nodiscard]] (point<S,T> p) const noexcept
|
auto operator| [[nodiscard]] (point<S,T> p) const noexcept
|
||||||
{
|
{
|
||||||
@ -95,11 +101,16 @@ namespace cruft::geom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///--------------------------------------------------------------------
|
||||||
|
/// Modifies the AABB to cover the supplied point inclusively.
|
||||||
auto& operator|= (point<S,T> p) noexcept
|
auto& operator|= (point<S,T> p) noexcept
|
||||||
{
|
{
|
||||||
return *this = *this | p;
|
return *this = *this | p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///--------------------------------------------------------------------
|
||||||
|
/// Returns an AABB that covers this AABB and the supplied AABB.
|
||||||
aabb operator| [[nodiscard]] (aabb<S,T> rhs) const noexcept
|
aabb operator| [[nodiscard]] (aabb<S,T> rhs) const noexcept
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
@ -108,11 +119,18 @@ namespace cruft::geom {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///--------------------------------------------------------------------
|
||||||
|
/// Returns a read only list of vertices for the AABB.
|
||||||
std::array<cruft::point<S,T>,cruft::pow(2,S)>
|
std::array<cruft::point<S,T>,cruft::pow(2,S)>
|
||||||
vertices (void) const noexcept;
|
vertices (void) const noexcept;
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
/// The most negative corner of the AABB.
|
||||||
::cruft::point<S,T> lo;
|
::cruft::point<S,T> lo;
|
||||||
|
|
||||||
|
/// The most positive corner of the AABB.
|
||||||
::cruft::point<S,T> hi;
|
::cruft::point<S,T> hi;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user