From 75e479859bce8fc4a8308f0189f3a42802754943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 26 Jul 2018 10:54:22 +0200 Subject: [PATCH] Animation: added Track[View]::size(). --- src/Magnum/Animation/Test/TrackTest.cpp | 14 ++++++++++++++ src/Magnum/Animation/Test/TrackViewTest.cpp | 14 ++++++++++++++ src/Magnum/Animation/Track.h | 18 ++++++++++++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/Magnum/Animation/Test/TrackTest.cpp b/src/Magnum/Animation/Test/TrackTest.cpp index dd64ddf64..6a01b289b 100644 --- a/src/Magnum/Animation/Test/TrackTest.cpp +++ b/src/Magnum/Animation/Test/TrackTest.cpp @@ -125,6 +125,7 @@ void TrackTest::constructEmpty() { const Track a; CORRADE_VERIFY(!a.interpolator()); + CORRADE_VERIFY(!a.size()); CORRADE_VERIFY(a.keys().empty()); CORRADE_VERIFY(a.values().empty()); CORRADE_COMPARE(a.at(42.0f), Vector3{}); @@ -141,6 +142,7 @@ void TrackTest::constructArrayInterpolator() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.data().size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); @@ -160,6 +162,7 @@ void TrackTest::constructArrayInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::DefaultConstructed); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 1); CORRADE_COMPARE(a.data().size(), 1); CORRADE_COMPARE(a.keys().size(), 1); CORRADE_COMPARE(a.values().size(), 1); @@ -180,6 +183,7 @@ void TrackTest::constructArrayInterpolation() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.data().size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); @@ -199,6 +203,7 @@ void TrackTest::constructArrayInterpolationDefaults() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::DefaultConstructed); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 1); CORRADE_COMPARE(a.data().size(), 1); CORRADE_COMPARE(a.keys().size(), 1); CORRADE_COMPARE(a.values().size(), 1); @@ -223,6 +228,7 @@ void TrackTest::constructArrayInterpolationInterpolator() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.data().size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); @@ -242,6 +248,7 @@ void TrackTest::constructArrayInterpolationInterpolationDefaults() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::DefaultConstructed); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 1); CORRADE_COMPARE(a.data().size(), 1); CORRADE_COMPARE(a.keys().size(), 1); CORRADE_COMPARE(a.values().size(), 1); @@ -261,6 +268,7 @@ void TrackTest::constructInitializerListInterpolator() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.data().size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); @@ -278,6 +286,7 @@ void TrackTest::constructInitializerListInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 1); CORRADE_COMPARE(a.data().size(), 1); CORRADE_COMPARE(a.keys().size(), 1); CORRADE_COMPARE(a.values().size(), 1); @@ -297,6 +306,7 @@ void TrackTest::constructInitializerListInterpolation() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.data().size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); @@ -314,6 +324,7 @@ void TrackTest::constructInitializerListInterpolationDefaults() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 1); CORRADE_COMPARE(a.data().size(), 1); CORRADE_COMPARE(a.keys().size(), 1); CORRADE_COMPARE(a.values().size(), 1); @@ -333,6 +344,7 @@ void TrackTest::constructInitializerListInterpolationInterpolator() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.data().size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); @@ -350,6 +362,7 @@ void TrackTest::constructInitializerListInterpolationInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 1); CORRADE_COMPARE(a.data().size(), 1); CORRADE_COMPARE(a.keys().size(), 1); CORRADE_COMPARE(a.values().size(), 1); @@ -370,6 +383,7 @@ void TrackTest::convertView() { CORRADE_COMPARE(av.interpolator(), customLerp); CORRADE_COMPARE(av.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(av.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(av.size(), 2); CORRADE_COMPARE(av.keys().size(), 2); CORRADE_COMPARE(av.values().size(), 2); CORRADE_COMPARE(av[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); diff --git a/src/Magnum/Animation/Test/TrackViewTest.cpp b/src/Magnum/Animation/Test/TrackViewTest.cpp index 3c026f996..f7f09ede9 100644 --- a/src/Magnum/Animation/Test/TrackViewTest.cpp +++ b/src/Magnum/Animation/Test/TrackViewTest.cpp @@ -125,6 +125,7 @@ void TrackViewTest::constructEmpty() { const TrackView a; CORRADE_VERIFY(!a.interpolator()); + CORRADE_VERIFY(!a.size()); CORRADE_VERIFY(a.keys().empty()); CORRADE_VERIFY(a.values().empty()); CORRADE_COMPARE(a.at(42.0f), Vector3{}); @@ -141,6 +142,7 @@ void TrackViewTest::constructInterpolator() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -157,6 +159,7 @@ void TrackViewTest::constructInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -173,6 +176,7 @@ void TrackViewTest::constructInterpolation() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -189,6 +193,7 @@ void TrackViewTest::constructInterpolationDefaults() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -209,6 +214,7 @@ void TrackViewTest::constructInterpolationInterpolator() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -225,6 +231,7 @@ void TrackViewTest::constructInterpolationInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -242,6 +249,7 @@ void TrackViewTest::constructSingleArrayInterpolator() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -259,6 +267,7 @@ void TrackViewTest::constructSingleArrayInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -276,6 +285,7 @@ void TrackViewTest::constructSingleArrayInterpolation() { CORRADE_COMPARE(a.interpolator(), Math::lerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -293,6 +303,7 @@ void TrackViewTest::constructSingleArrayInterpolationDefaults() { CORRADE_COMPARE(a.interpolator(), Math::select); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -310,6 +321,7 @@ void TrackViewTest::constructSingleArrayInterpolationInterpolator() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(a.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -327,6 +339,7 @@ void TrackViewTest::constructSingleArrayInterpolationInterpolatorDefaults() { CORRADE_COMPARE(a.interpolator(), customLerp); CORRADE_COMPARE(a.before(), Extrapolation::Constant); CORRADE_COMPARE(a.after(), Extrapolation::Constant); + CORRADE_COMPARE(a.size(), 2); CORRADE_COMPARE(a.keys().size(), 2); CORRADE_COMPARE(a.values().size(), 2); CORRADE_COMPARE(a[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); @@ -348,6 +361,7 @@ void TrackViewTest::constructCopyStorage() { CORRADE_COMPARE(bv.interpolator(), customLerp); CORRADE_COMPARE(bv.before(), Extrapolation::Extrapolated); CORRADE_COMPARE(bv.after(), Extrapolation::DefaultConstructed); + CORRADE_COMPARE(bv.size(), 2); CORRADE_COMPARE(bv.keys().size(), 2); CORRADE_COMPARE(bv.values().size(), 2); CORRADE_COMPARE(bv[1], (std::pair{5.0f, {0.3f, 0.6f, 1.0f}})); diff --git a/src/Magnum/Animation/Track.h b/src/Magnum/Animation/Track.h index 288b25366..6d065c809 100644 --- a/src/Magnum/Animation/Track.h +++ b/src/Magnum/Animation/Track.h @@ -285,6 +285,9 @@ template{&_data[0].second, _data.size(), sizeof(std::pair)} : nullptr; } - /** @brief Keyframe access */ + /** + * @brief Keyframe access + * + * @see @ref size() + */ const std::pair& operator[](std::size_t i) const { return _data[i]; } /** @@ -610,6 +617,9 @@ template&>(_values); } - /** @brief Keyframe access */ + /** + * @brief Keyframe access + * + * @see @ref size() + */ std::pair operator[](std::size_t i) const { return {keys()[i], values()[i]}; }