| 232 | } |
| 233 | |
| 234 | EasingFunction get(EasingType easing) |
| 235 | { |
| 236 | static std::unordered_map<EasingType, EasingFunction> easingFunctions; |
| 237 | if (easingFunctions.empty()) |
| 238 | { |
| 239 | easingFunctions.insert(std::make_pair(EasingType::Linear, Linear)); |
| 240 | easingFunctions.insert(std::make_pair(EasingType::InSine, InSine)); |
| 241 | easingFunctions.insert(std::make_pair(EasingType::OutSine, OutSine)); |
| 242 | easingFunctions.insert(std::make_pair(EasingType::InOutSine, InOutSine)); |
| 243 | easingFunctions.insert(std::make_pair(EasingType::InQuad, InQuad)); |
| 244 | easingFunctions.insert(std::make_pair(EasingType::OutQuad, OutQuad)); |
| 245 | easingFunctions.insert(std::make_pair(EasingType::InOutQuad, InOutQuad)); |
| 246 | easingFunctions.insert(std::make_pair(EasingType::InCubic, InCubic)); |
| 247 | easingFunctions.insert(std::make_pair(EasingType::OutCubic, OutCubic)); |
| 248 | easingFunctions.insert(std::make_pair(EasingType::InOutCubic, InOutCubic)); |
| 249 | easingFunctions.insert(std::make_pair(EasingType::InQuart, InQuart)); |
| 250 | easingFunctions.insert(std::make_pair(EasingType::OutQuart, OutQuart)); |
| 251 | easingFunctions.insert(std::make_pair(EasingType::InOutQuart, InOutQuart)); |
| 252 | easingFunctions.insert(std::make_pair(EasingType::InQuint, InQuint)); |
| 253 | easingFunctions.insert(std::make_pair(EasingType::OutQuint, OutQuint)); |
| 254 | easingFunctions.insert(std::make_pair(EasingType::InOutQuint, InOutQuint)); |
| 255 | easingFunctions.insert(std::make_pair(EasingType::InExpo, InExpo)); |
| 256 | easingFunctions.insert(std::make_pair(EasingType::OutExpo, OutExpo)); |
| 257 | easingFunctions.insert(std::make_pair(EasingType::InOutExpo, InOutExpo)); |
| 258 | easingFunctions.insert(std::make_pair(EasingType::InCirc, InCirc)); |
| 259 | easingFunctions.insert(std::make_pair(EasingType::OutCirc, OutCirc)); |
| 260 | easingFunctions.insert(std::make_pair(EasingType::InOutCirc, InOutCirc)); |
| 261 | easingFunctions.insert(std::make_pair(EasingType::InBack, InBack)); |
| 262 | easingFunctions.insert(std::make_pair(EasingType::OutBack, OutBack)); |
| 263 | easingFunctions.insert(std::make_pair(EasingType::InOutBack, InOutBack)); |
| 264 | easingFunctions.insert(std::make_pair(EasingType::InElastic, InElastic)); |
| 265 | easingFunctions.insert(std::make_pair(EasingType::OutElastic, OutElastic)); |
| 266 | easingFunctions.insert( |
| 267 | std::make_pair(EasingType::InOutElastic, InOutElastic)); |
| 268 | easingFunctions.insert(std::make_pair(EasingType::InBounce, InBounce)); |
| 269 | easingFunctions.insert(std::make_pair(EasingType::OutBounce, OutBounce)); |
| 270 | easingFunctions.insert(std::make_pair(EasingType::InOutBounce, InOutBounce)); |
| 271 | } |
| 272 | |
| 273 | if (const auto function = easingFunctions.find(easing); |
| 274 | function != easingFunctions.end()) |
| 275 | { |
| 276 | return function->second; |
| 277 | } |
| 278 | const int enumValue = static_cast<std::underlying_type_t<EasingType>>(easing); |
| 279 | throw Exceptions::UnknownEasingFromEnum(enumValue, EXC_INFO); |
| 280 | } |
| 281 | |
| 282 | EasingFunction get(const std::string& easing) |
| 283 | { |
nothing calls this directly
no test coverage detected