From 1ec90a2cc10decf7601ba983cd6fd4f6dcaca23e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 10 Jul 2018 18:50:51 +0200 Subject: [PATCH] Animation: make it possible to easily create empty track(view)s. --- src/Magnum/Animation/Test/TrackTest.cpp | 13 ++++++++++++- src/Magnum/Animation/Test/TrackViewTest.cpp | 13 ++++++++++++- src/Magnum/Animation/Track.h | 21 +++++++++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/Magnum/Animation/Test/TrackTest.cpp b/src/Magnum/Animation/Test/TrackTest.cpp index fe03d775c..ecbbc8738 100644 --- a/src/Magnum/Animation/Test/TrackTest.cpp +++ b/src/Magnum/Animation/Test/TrackTest.cpp @@ -34,6 +34,7 @@ namespace Magnum { namespace Animation { namespace Test { struct TrackTest: TestSuite::Tester { explicit TrackTest(); + void constructEmpty(); void constructArray(); void constructArrayDefaults(); void constructInitializerList(); @@ -87,7 +88,8 @@ const struct { } TrackTest::TrackTest() { - addTests({&TrackTest::constructArray, + addTests({&TrackTest::constructEmpty, + &TrackTest::constructArray, &TrackTest::constructArrayDefaults, &TrackTest::constructInitializerList, &TrackTest::constructInitializerListDefaults, @@ -103,6 +105,15 @@ TrackTest::TrackTest() { using namespace Math::Literals; +void TrackTest::constructEmpty() { + const Track a; + + CORRADE_VERIFY(!a.interpolator()); + CORRADE_VERIFY(a.keys().empty()); + CORRADE_VERIFY(a.values().empty()); + CORRADE_COMPARE(a.at(42.0f), Vector3{}); +} + void TrackTest::constructArray() { const Track a{ Containers::Array>{Containers::InPlaceInit, diff --git a/src/Magnum/Animation/Test/TrackViewTest.cpp b/src/Magnum/Animation/Test/TrackViewTest.cpp index 9c2cf602b..baffe25d6 100644 --- a/src/Magnum/Animation/Test/TrackViewTest.cpp +++ b/src/Magnum/Animation/Test/TrackViewTest.cpp @@ -34,6 +34,7 @@ namespace Magnum { namespace Animation { namespace Test { struct TrackViewTest: TestSuite::Tester { explicit TrackViewTest(); + void constructEmpty(); void construct(); void constructDefaults(); void constructSingleArray(); @@ -87,7 +88,8 @@ const struct { } TrackViewTest::TrackViewTest() { - addTests({&TrackViewTest::construct, + addTests({&TrackViewTest::constructEmpty, + &TrackViewTest::construct, &TrackViewTest::constructDefaults, &TrackViewTest::constructSingleArray, &TrackViewTest::constructSingleArrayDefaults, @@ -103,6 +105,15 @@ TrackViewTest::TrackViewTest() { using namespace Math::Literals; +void TrackViewTest::constructEmpty() { + const TrackView a; + + CORRADE_VERIFY(!a.interpolator()); + CORRADE_VERIFY(a.keys().empty()); + CORRADE_VERIFY(a.values().empty()); + CORRADE_COMPARE(a.at(42.0f), Vector3{}); +} + void TrackViewTest::construct() { constexpr Float keys[]{0.0f, 5.0f}; constexpr Vector3 values[]{{3.0f, 1.0f, 0.1f}, {0.3f, 0.6f, 1.0f}}; diff --git a/src/Magnum/Animation/Track.h b/src/Magnum/Animation/Track.h index f05a04802..7ec0bfe11 100644 --- a/src/Magnum/Animation/Track.h +++ b/src/Magnum/Animation/Track.h @@ -125,6 +125,15 @@ template friend class TrackView; @@ -298,6 +310,15 @@ template