/* * LightInteractionComponent.h * * Created on: Mar 1, 2019 * Author: fredrick */ #ifndef LIGHTINTERACTIONCOMPONENT_H_ #define LIGHTINTERACTIONCOMPONENT_H_ #include #include #include #define GLM_FORCE_RADIANS #include #include #include #include #include #include #include #include #include #include "../messages/DirectionChangeMessage.h" namespace JamSpook { using std::chrono::milliseconds; using std::shared_ptr; using std::make_shared; using std::weak_ptr; using std::dynamic_pointer_cast; using glm::vec3; using glm::mat4; using glm::translate; using glm::rotate; using glm::radians; using ecos::utility::getTranslation; using ecos::core::logging::Log; using ecos::core::logging::LogLevel; using ecos::core::BroadcastObservable; using ecos::core::Message; using ecos::physics::TransformChangeMessage; using ecos::interaction::InteractionSystem; using ecos::interaction::InputDeviceState; using ecos::interaction::ButtonState; using ecos::interaction::InteractionComponent; /// Player interaction component /// Player entity specific interaction system code class LightInteractionComponent : public InteractionComponent { private: vec3 oldDirection; ///< Used to construct the DirectionChangeMessaage public: LightInteractionComponent(mat4 transform, shared_ptr > > entity, weak_ptr wInteractionSystem); virtual ~LightInteractionComponent(); virtual void onInputDeviceStateChange(const InputDeviceState inputDeviceState); virtual void onICCMessage(shared_ptr message); }; } // namespace JamSpook #endif // LIGHTINTERACTIONCOMPONENT_H_