|  | #include "rive/artboard.hpp" | 
|  | #include "rive/animation/blend_state_transition.hpp" | 
|  | #include "rive/animation/blend_state_instance.hpp" | 
|  | #include "rive/animation/blend_state_1d.hpp" | 
|  | #include "rive/animation/blend_state_direct.hpp" | 
|  | #include "rive/animation/blend_state_1d_instance.hpp" | 
|  | #include "rive/animation/blend_state_direct_instance.hpp" | 
|  |  | 
|  | using namespace rive; | 
|  |  | 
|  | const LinearAnimationInstance* BlendStateTransition::exitTimeAnimationInstance( | 
|  | const StateInstance* from) const | 
|  | { | 
|  | if (from != nullptr) | 
|  | { | 
|  | switch (from->state()->coreType()) | 
|  | { | 
|  | case BlendState1D::typeKey: | 
|  |  | 
|  | return static_cast<const BlendState1DInstance*>(from)->animationInstance( | 
|  | m_ExitBlendAnimation); | 
|  |  | 
|  | case BlendStateDirect::typeKey: | 
|  |  | 
|  | return static_cast<const BlendStateDirectInstance*>(from)->animationInstance( | 
|  | m_ExitBlendAnimation); | 
|  | } | 
|  | } | 
|  |  | 
|  | return nullptr; | 
|  | } | 
|  |  | 
|  | const LinearAnimation* BlendStateTransition::exitTimeAnimation(const LayerState* from) const | 
|  | { | 
|  | if (m_ExitBlendAnimation != nullptr) | 
|  | { | 
|  | return m_ExitBlendAnimation->animation(); | 
|  | } | 
|  | return nullptr; | 
|  | } |