+ return tweens;\r
+}\r
+\r
+tweener_t get_tweener(std::wstring name)\r
+{\r
+ std::transform(name.begin(), name.end(), name.begin(), std::tolower);\r
+\r
+ if(name == L"linear")\r
+ return [](double t, double b, double c, double d){return ease_none(t, b, c, d, std::vector<double>());};\r
+ \r
+ std::vector<double> params;\r
+ \r
+ static const boost::wregex expr(L"(?<NAME>\\w*)(:(?<V0>\\d+\\.?\\d?))?(:(?<V1>\\d+\\.?\\d?))?"); // boost::regex has no repeated captures?\r
+ boost::wsmatch what;\r
+ if(boost::regex_match(name, what, expr))\r
+ {\r
+ name = what["NAME"].str();\r
+ if(what["V0"].matched)\r
+ params.push_back(boost::lexical_cast<double>(what["V0"].str()));\r
+ if(what["V1"].matched)\r
+ params.push_back(boost::lexical_cast<double>(what["V1"].str()));\r
+ }\r
+ \r
+ auto tweens = get_tweens();\r
+\r