7#include <opencv2/core.hpp>
26 typename =
typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
49 throw std::domain_error(
"Invalid dimension index");
58 throw std::domain_error(
"Invalid dimension index");
73 throw std::domain_error(
"Invalid dimension index");
82 throw std::domain_error(
"Invalid dimension index");
90 for (
int d = 0; d < Dim; d++) {
91 if (p[d] <
p0_[d] || p[d] >=
p1_[d]) {
Generic axis-aligned bounding box class for operations in N-dimensions.
bool isInBounds(const Point &p) const
Check if a Point is within the bounds of the box.
void setUpperBound(Point p)
Set the upper boundary for each axis.
BoundingBox()=default
Default constructor.
void setLowerBound(Point p)
Set the lower boundary for each axis.
Point getUpperBound() const
Get the upper boundary for each axis.
void setLowerBoundByIndex(int i, T val)
Set the lower boundary for a specific axis by axis index.
T getUpperBoundByIndex(int i)
Get the upper boundary for a specific axis by axis index.
void setUpperBoundByIndex(int i, T val)
Set the upper boundary for a specific axis by axis index.
Point getLowerBound() const
Get the lower boundary for each axis.
T getLowerBoundByIndex(int i)
Get the lower boundary for a specific axis by axis index.
BoundingBox(Point lower, Point upper)
Constructor with lower and upper bounds initialization.
Volume Cartographer library