Browse Source

Animation: added Track[View]::size().

pull/191/head
Vladimír Vondruš 8 years ago
parent
commit
75e479859b
  1. 14
      src/Magnum/Animation/Test/TrackTest.cpp
  2. 14
      src/Magnum/Animation/Test/TrackViewTest.cpp
  3. 18
      src/Magnum/Animation/Track.h

14
src/Magnum/Animation/Test/TrackTest.cpp

@ -125,6 +125,7 @@ void TrackTest::constructEmpty() {
const Track<Float, Vector3> 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<Float, Vector3>{5.0f, {0.3f, 0.6f, 1.0f}}));

14
src/Magnum/Animation/Test/TrackViewTest.cpp

@ -125,6 +125,7 @@ void TrackViewTest::constructEmpty() {
const TrackView<Float, Vector3> 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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{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<Float, Vector3>{5.0f, {0.3f, 0.6f, 1.0f}}));

18
src/Magnum/Animation/Track.h

@ -285,6 +285,9 @@ template<class K, class V, class R
*/
Extrapolation after() const { return _after; }
/** @brief Keyframe count */
std::size_t size() const { return _data.size(); }
/**
* @brief Keyframe data
*
@ -310,7 +313,11 @@ template<class K, class V, class R
return _data ? Containers::StridedArrayView<const V>{&_data[0].second, _data.size(), sizeof(std::pair<K, V>)} : nullptr;
}
/** @brief Keyframe access */
/**
* @brief Keyframe access
*
* @see @ref size()
*/
const std::pair<K, V>& operator[](std::size_t i) const { return _data[i]; }
/**
@ -610,6 +617,9 @@ template<class K, class V, class R
*/
Extrapolation after() const { return _after; }
/** @brief Keyframe count */
std::size_t size() const { return _keys.size(); }
/**
* @brief Key data
*
@ -628,7 +638,11 @@ template<class K, class V, class R
return reinterpret_cast<const Containers::StridedArrayView<const V>&>(_values);
}
/** @brief Keyframe access */
/**
* @brief Keyframe access
*
* @see @ref size()
*/
std::pair<K, V> operator[](std::size_t i) const {
return {keys()[i], values()[i]};
}

Loading…
Cancel
Save