diff --git a/src/Magnum/Animation/Track.h b/src/Magnum/Animation/Track.h index 32db6a06e..e09effd1a 100644 --- a/src/Magnum/Animation/Track.h +++ b/src/Magnum/Animation/Track.h @@ -519,7 +519,7 @@ template class TrackViewStorage { private: template friend class TrackView; - template explicit TrackViewStorage(const Containers::StridedArrayView1D& keys, const Containers::StridedArrayView1D::value, const void, void>::type>& values, Interpolation interpolation, R(*interpolator)(const V&, const V&, Float), Extrapolation before, Extrapolation after) noexcept: _keys{keys}, _values{values}, _interpolator{reinterpret_cast(interpolator)}, _interpolation{interpolation}, _before{before}, _after{after} {} + explicit TrackViewStorage(const Containers::StridedArrayView1D& keys, const Containers::StridedArrayView1D::value, const void, void>::type>& values, Interpolation interpolation, void(*interpolator)(), Extrapolation before, Extrapolation after) noexcept: _keys{keys}, _values{values}, _interpolator{interpolator}, _interpolation{interpolation}, _before{before}, _after{after} {} Containers::StridedArrayView1D _keys; Containers::StridedArrayView1D::value, const void, void>::type> _values; @@ -593,7 +593,7 @@ template&, const Containers::StridedArrayView1D&, Interpolation, Extrapolation, Extrapolation) * for an alternative. */ - /*implicit*/ TrackView(const Containers::StridedArrayView1D& keys, const Containers::StridedArrayView1D& values, Interpolator interpolator, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{keys, values, Interpolation::Custom, interpolator, before, after} {} + /*implicit*/ TrackView(const Containers::StridedArrayView1D& keys, const Containers::StridedArrayView1D& values, Interpolator interpolator, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{keys, values, Interpolation::Custom, reinterpret_cast(interpolator), before, after} {} /** @overload * Equivalent to calling @ref TrackView(const Containers::StridedArrayView1D&, const Containers::StridedArrayView1D&, Interpolator, Extrapolation, Extrapolation) @@ -638,7 +638,7 @@ template& keys, const Containers::StridedArrayView1D& values, Interpolation interpolation, Interpolator interpolator, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{keys, values, interpolation, interpolator, before, after} {} + /*implicit*/ TrackView(const Containers::StridedArrayView1D& keys, const Containers::StridedArrayView1D& values, Interpolation interpolation, Interpolator interpolator, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{keys, values, interpolation, reinterpret_cast(interpolator), before, after} {} /** @overload * Equivalent to calling @ref TrackView(const Containers::StridedArrayView1D&, const Containers::StridedArrayView1D&, Interpolation, Interpolator, Extrapolation, Extrapolation) @@ -659,7 +659,7 @@ template data, Interpolation interpolation, Interpolator interpolator, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{Containers::StridedArrayView1D{data, data ? &data[0].first : nullptr, data.size(), sizeof(std::pair)}, Containers::StridedArrayView1D{data, data ? &data[0].second : nullptr, data.size(), sizeof(std::pair)}, interpolation, interpolator, before, after} {} + /*implicit*/ TrackView(Containers::ArrayView data, Interpolation interpolation, Interpolator interpolator, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{Containers::StridedArrayView1D{data, data ? &data[0].first : nullptr, data.size(), sizeof(std::pair)}, Containers::StridedArrayView1D{data, data ? &data[0].second : nullptr, data.size(), sizeof(std::pair)}, interpolation, reinterpret_cast(interpolator), before, after} {} /** @overload * Equivalent to calling @ref TrackView(Containers::ArrayView, Interpolation, Interpolator, Extrapolation, Extrapolation) @@ -683,7 +683,7 @@ template& keys, const Containers::StridedArrayView1D& values, Interpolation interpolation, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{keys, values, interpolation, interpolatorFor(interpolation), before, after} {} + /*implicit*/ TrackView(const Containers::StridedArrayView1D& keys, const Containers::StridedArrayView1D& values, Interpolation interpolation, Extrapolation before, Extrapolation after) noexcept: TrackViewStorage{keys, values, interpolation, reinterpret_cast(interpolatorFor(interpolation)), before, after} {} /** @overload * Equivalent to calling @ref TrackView(const Containers::StridedArrayView1D&, const Containers::StridedArrayView1D&, Interpolation, Extrapolation, Extrapolation) @@ -716,7 +716,7 @@ template::value && std::is_same::value>::type> /*implicit*/ TrackView(const TrackView& other) noexcept: TrackViewStorage{other._keys, other._values, other._interpolation, reinterpret_cast(other._interpolator), other._before, other._after} {} + template::value && std::is_same::value>::type> /*implicit*/ TrackView(const TrackView& other) noexcept: TrackViewStorage{other._keys, other._values, other._interpolation, other._interpolator, other._before, other._after} {} /** * @brief Interpolation function