The Region3 class represents the cartesian product of intervals Ix ✕ Iy ✕ Iz, one per axis, yielding an axis-aligned region of R^3 space. It can be thought of as an intersection of halfspaces. Regions may be open or closed in their boundaries, if any.
More...
#include <gz/math/Region3.hh>
|
| Region3 ()=default |
| Constructor.
|
|
constexpr | Region3 (Interval< T > _ix, Interval< T > _iy, Interval< T > _iz) |
| Constructor.
|
|
bool | Contains (const Region3< T > &_other) const |
| Check if the region contains _other region.
|
|
bool | Contains (const Vector3< T > &_point) const |
| Check if the region contains _point
|
|
bool | Empty () const |
| Check if the region is empty A region is empty if any of the intervals it is defined with (i.e. Ix, Iy, Iz) are.
|
|
bool | Intersects (const Region3< T > &_other) const |
| Check if the region intersects _other region.
|
|
const Interval< T > & | Ix () const |
| Get the x-axis interval for the region.
|
|
const Interval< T > & | Iy () const |
| Get the y-axis interval for the region.
|
|
const Interval< T > & | Iz () const |
| Get the z-axis interval for the region.
|
|
bool | operator!= (const Region3< T > &_other) const |
| Inequality test operator.
|
|
bool | operator== (const Region3< T > &_other) const |
| Equality test operator.
|
|
|
static constexpr Region3< T > | Closed (T _xLeft, T _yLeft, T _zLeft, T _xRight, T _yRight, T _zRight) |
| Make a closed region.
|
|
static constexpr Region3< T > | Open (T _xLeft, T _yLeft, T _zLeft, T _xRight, T _yRight, T _zRight) |
| Make an open region.
|
|
|
static const Region3< T > & | Unbounded = detail::gUnboundedRegion3<T> |
| An unbounded region (-∞, ∞) ✕ (-∞, ∞) ✕ (-∞, ∞)
|
|
template<typename T>
class gz::math::Region3< T >
The Region3 class represents the cartesian product of intervals Ix ✕ Iy ✕ Iz, one per axis, yielding an axis-aligned region of R^3 space. It can be thought of as an intersection of halfspaces. Regions may be open or closed in their boundaries, if any.
Note that the Region3 class is essentially a set R ⊆ R^3. For 3D solid box semantics, use the AxisAlignedBox
class instead.
Example
#include <iostream>
int main(int argc, char **argv)
{
std::cout <<
"The " << defaultRegion <<
" region is empty: "
std::cout <<
"The " << openRegion <<
" region contains the "
std::cout <<
"The " << closedRegion <<
" region contains the "
std::cout <<
"Regions " << closedRegion <<
" and " << openRegion
<<
" intersect: " << closedRegion.
Intersects(openRegion)
<< " region contains all previous non-empty intervals: "
}
◆ Region3() [1/2]
◆ Region3() [2/2]
Constructor.
- Parameters
-
[in] | _ix | x-axis interval |
[in] | _iy | y-axis interval |
[in] | _iz | z-axis interval |
◆ Closed()
template<typename T >
static constexpr Region3< T > Closed |
( |
T | _xLeft, |
|
|
T | _yLeft, |
|
|
T | _zLeft, |
|
|
T | _xRight, |
|
|
T | _yRight, |
|
|
T | _zRight ) |
|
inlinestaticconstexpr |
Make a closed region.
- Parameters
-
[in] | _xLeft | leftmost x-axis interval value |
[in] | _xRight | righmost x-axis interval value |
[in] | _yLeft | leftmost y-axis interval value |
[in] | _yRight | righmost y-axis interval value |
[in] | _zLeft | leftmost z-axis interval value |
[in] | _zRight | righmost z-axis interval value |
- Returns
- the [
_xLeft
, _xRight
] ✕ [_yLeft
, _yRight
] ✕ [_zLeft
, _zRight
] closed region
◆ Contains() [1/2]
template<typename T >
bool Contains |
( |
const Region3< T > & | _other | ) |
const |
|
inline |
Check if the region contains _other
region.
- Parameters
-
[in] | _other | region to check for membership |
- Returns
- true if it is contained, false otherwise
◆ Contains() [2/2]
template<typename T >
bool Contains |
( |
const Vector3< T > & | _point | ) |
const |
|
inline |
◆ Empty()
◆ Intersects()
template<typename T >
bool Intersects |
( |
const Region3< T > & | _other | ) |
const |
|
inline |
Check if the region intersects _other
region.
- Parameters
-
[in] | _other | region to check for intersection |
- Returns
- true if it is contained, false otherwise
◆ Ix()
◆ Iy()
◆ Iz()
◆ Open()
template<typename T >
static constexpr Region3< T > Open |
( |
T | _xLeft, |
|
|
T | _yLeft, |
|
|
T | _zLeft, |
|
|
T | _xRight, |
|
|
T | _yRight, |
|
|
T | _zRight ) |
|
inlinestaticconstexpr |
Make an open region.
- Parameters
-
[in] | _xLeft | leftmost x-axis interval value |
[in] | _xRight | righmost x-axis interval value |
[in] | _yLeft | leftmost y-axis interval value |
[in] | _yRight | righmost y-axis interval value |
[in] | _zLeft | leftmost z-axis interval value |
[in] | _zRight | righmost z-axis interval value |
- Returns
- the (
_xLeft
, _xRight
) ✕ (_yLeft
, _yRight
) ✕ (_zLeft
, _zRight
) open region
◆ operator!=()
template<typename T >
bool operator!= |
( |
const Region3< T > & | _other | ) |
const |
|
inline |
Inequality test operator.
- Parameters
-
_other | region to check for inequality |
- Returns
- true if regions are unequal, false otherwise
References Region3< T >::Contains().
◆ operator==()
template<typename T >
bool operator== |
( |
const Region3< T > & | _other | ) |
const |
|
inline |
Equality test operator.
- Parameters
-
_other | region to check for equality |
- Returns
- true if regions are equal, false otherwise
References Region3< T >::Contains().
◆ Unbounded
template<typename T >
const Region3< T > & Unbounded = detail::gUnboundedRegion3<T> |
|
static |
An unbounded region (-∞, ∞) ✕ (-∞, ∞) ✕ (-∞, ∞)
The documentation for this class was generated from the following file: