1 #ifndef WIRECELL_BOUNDINGBOX 2 #define WIRECELL_BOUNDINGBOX 27 template<
typename RayOrPo
intIterator>
29 for (
auto it = begin; it !=
end; ++it) { (*this)(*it); }
44 template<
typename RayOrPo
intIterator>
46 for (
auto it = begin; it !=
end; ++it) { (*this)(*it); }
std::pair< Point, Point > Ray
A line segment running from a first (tail) to a second (head) point.
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
bool inside(const Point &point) const
Return true if point is inside bounding box.
BoundingBox(const RayOrPointIterator &begin, const RayOrPointIterator &end)
Create a bounding box from an iterator pair.
BoundingBox()
Create a bounding box without an initial point or ray.
void operator()(const RayOrPointIterator &begin, const RayOrPointIterator &end)
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
const Ray & bounds() const
Return the ray representing the bounds.
void operator()(const Point &p)
Enlarge bounds to hold point.