| #ifndef _RIVE_JOYSTICK_HPP_ | |
| #define _RIVE_JOYSTICK_HPP_ | |
| #include "rive/generated/joystick_base.hpp" | |
| #include "rive/joystick_flags.hpp" | |
| #include "rive/math/mat2d.hpp" | |
| #include <stdio.h> | |
| namespace rive | |
| { | |
| class Artboard; | |
| class LinearAnimation; | |
| class TransformComponent; | |
| class Joystick : public JoystickBase | |
| { | |
| public: | |
| void update(ComponentDirt value) override; | |
| void apply(Artboard* artboard) const; | |
| StatusCode onAddedClean(CoreContext* context) override; | |
| StatusCode onAddedDirty(CoreContext* context) override; | |
| bool isJoystickFlagged(JoystickFlags flag) const | |
| { | |
| return ((JoystickFlags)joystickFlags()) & flag; | |
| } | |
| bool canApplyBeforeUpdate() const { return m_handleSource == nullptr; } | |
| protected: | |
| void buildDependencies() override; | |
| private: | |
| Mat2D m_worldTransform; | |
| Mat2D m_inverseWorldTransform; | |
| LinearAnimation* m_xAnimation = nullptr; | |
| LinearAnimation* m_yAnimation = nullptr; | |
| TransformComponent* m_handleSource = nullptr; | |
| }; | |
| } // namespace rive | |
| #endif |