18 template<
typename TIter>
22 template<
typename TIter,
23 typename std::enable_if<
24 std::is_same<unqualified_iter_value_type<TIter>,
fvec2>::value,
void>::type* =
nullptr>
26 min{std::numeric_limits<float>::
max(), std::numeric_limits<float>::
max()},
27 max{std::numeric_limits<float>::
min(), std::numeric_limits<float>::
min()} {
29 for (
auto it = begin; it < end; it++) {
30 const auto& vertex = *it;
31 min[0] = std::min(vertex[0],
min[0]);
32 min[1] = std::min(vertex[1],
min[1]);
33 max[0] = std::max(vertex[0],
max[0]);
34 max[1] = std::max(vertex[1],
max[1]);
40 template<
typename TContainer>
42 BoundingBox(std::begin(container), std::end(container), alpha) {
46 return point[0] >=
min[0] && point[0] <=
max[0] &&
47 point[1] >=
min[1] && point[1] <=
max[1];
Definition: BoundingBox.h:13
fvec2 getMin() const
Definition: BoundingBox.h:50
fvec2 getMax() const
Definition: BoundingBox.h:54
typename std::remove_cv< typename std::iterator_traits< TIter >::value_type >::type unqualified_iter_value_type
Definition: BoundingBox.h:19
BoundingBox(TIter begin, TIter end, float alpha)
Definition: BoundingBox.h:25
BoundingBox(TContainer container, float alpha=defaultAlpha)
Definition: BoundingBox.h:41
fvec2 min
Definition: BoundingBox.h:59
static constexpr float defaultAlpha
Definition: BoundingBox.h:15
fvec2 max
Definition: BoundingBox.h:60
bool contains(const fvec2 &point) const
Definition: BoundingBox.h:45