Browse Source

Math: added Range::contains().

pull/136/head
Vladimír Vondruš 10 years ago
parent
commit
5d110ba7b1
  1. 5
      src/Magnum/Math/Range.h
  2. 10
      src/Magnum/Math/Test/RangeTest.cpp

5
src/Magnum/Math/Range.h

@ -186,6 +186,11 @@ template<UnsignedInt dimensions, class T> class Range {
*/ */
Range<dimensions, T> scaled(const VectorType& scaling) const; Range<dimensions, T> scaled(const VectorType& scaling) const;
/** @brief Whether given point is contained inside the range */
constexpr bool contains(const VectorType& a) const {
return (a >= _min).all() && (a < _max).all();
}
private: private:
VectorType _min, _max; VectorType _min, _max;
}; };

10
src/Magnum/Math/Test/RangeTest.cpp

@ -123,6 +123,7 @@ struct RangeTest: Corrade::TestSuite::Tester {
void padded(); void padded();
void scaled(); void scaled();
void contains();
void join(); void join();
void subclassTypes(); void subclassTypes();
@ -159,6 +160,7 @@ RangeTest::RangeTest() {
&RangeTest::padded, &RangeTest::padded,
&RangeTest::scaled, &RangeTest::scaled,
&RangeTest::contains,
&RangeTest::join, &RangeTest::join,
&RangeTest::subclassTypes, &RangeTest::subclassTypes,
@ -450,6 +452,14 @@ void RangeTest::scaled() {
CORRADE_COMPARE(a.scaled({2, -3}), b); CORRADE_COMPARE(a.scaled({2, -3}), b);
} }
void RangeTest::contains() {
Range2Di a({34, 23}, {47, 30});
CORRADE_VERIFY(a.contains({40, 23}));
CORRADE_VERIFY(!a.contains({33, 23}));
CORRADE_VERIFY(!a.contains({40, 30}));
}
void RangeTest::join() { void RangeTest::join() {
Range2Di a{{12, 20}, {15, 35}}; Range2Di a{{12, 20}, {15, 35}};
Range2Di b{{10, 25}, {17, 105}}; Range2Di b{{10, 25}, {17, 105}};

Loading…
Cancel
Save