29#ifndef TWEENY_TWEENTRAITS_H
30#define TWEENY_TWEENTRAITS_H
37 template<
typename T,
typename... Ts>
class tween;
41 template<
typename... Ts>
struct equal {
enum { value =
true }; };
42 template<
typename T>
struct equal<T> {
enum { value =
true }; };
43 template<
typename T,
typename... Ts>
struct equal<T, T, Ts...> {
enum { value =
true && equal<Ts...>::value }; };
44 template<
typename T,
typename U,
typename... Ts>
struct equal<T, U, Ts...> {
enum { value =
false }; };
46 template<
typename T,
typename...>
struct first {
typedef T type; };
48 template<
bool equal,
typename... Ts>
51 template<
typename... Ts>
52 struct valuetype<false, Ts...> {
53 typedef std::tuple<Ts...> type;
56 template<
typename... Ts>
57 struct valuetype<true, Ts...> {
58 typedef std::array<
typename first<Ts...>::type,
sizeof...(Ts)> type;
61 template<
typename... Ts>
63 typedef std::tuple<std::function<Ts(
float, Ts, Ts)>...> easingCollection;
64 typedef std::function<bool(tween<Ts...> &, Ts...)> callbackType;
65 typedef std::function<bool(tween<Ts...> &)> noValuesCallbackType;
66 typedef std::function<bool(Ts...)> noTweenCallbackType;
67 typedef typename valuetype<equal<Ts...>::value, Ts...>::type valuesType;
68 typedef std::array<uint16_t,
sizeof...(Ts)> durationsArrayType;
69 typedef tween<Ts...> type;
The tweeny namespace contains all symbols and names for the Tweeny library.
Definition MANUAL.dox:1