#ifndef EditorWidgetSystem_h__ #define EditorWidgetSystem_h__ #include #include "../GLM.h" #include "../Core/System.h" #include "../Rendering/IRenderer.h" #include "../Rendering/Util/ScreenCoords.h" #include "../Core/EMouseMove.h" #include "../Core/EMousePress.h" #include "../Core/EMouseRelease.h" class EditorWidgetSystem : public ImpureSystem, PureSystem { public: EditorWidgetSystem(World* world, EventBroker* eventBroker, IRenderer* renderer); virtual void Update(double dt) override; virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cEditorWidget, double dt) override; void debugPrintVector(const char* name, glm::vec3 axisNDC); void debugPrintVector(const char* name, glm::vec4 axisNDC); void debugPrintVector(const char* name, glm::vec2 axisNDC); private: IRenderer* m_Renderer; // State EntityWrapper m_PickEntity = EntityWrapper::Invalid; PickData m_PickData; glm::vec2 m_MouseDelta; EventRelay m_EMouseMove; bool OnMouseMove(const Events::MouseMove& e); EventRelay m_EMousePress; bool OnMousePress(const Events::MousePress& e); EventRelay m_EMouseRelease; bool OnMouseRelease(const Events::MouseRelease& e); }; #endif