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;
/** @brief Whether given point is contained inside the range */
constexpr bool contains(const VectorType& a) const {
return (a >= _min).all() && (a < _max).all();
}
private:
VectorType _min, _max;
};

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

@ -123,6 +123,7 @@ struct RangeTest: Corrade::TestSuite::Tester {
void padded();
void scaled();
void contains();
void join();
void subclassTypes();
@ -159,6 +160,7 @@ RangeTest::RangeTest() {
&RangeTest::padded,
&RangeTest::scaled,
&RangeTest::contains,
&RangeTest::join,
&RangeTest::subclassTypes,
@ -450,6 +452,14 @@ void RangeTest::scaled() {
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() {
Range2Di a{{12, 20}, {15, 35}};
Range2Di b{{10, 25}, {17, 105}};

Loading…
Cancel
Save