hover_tracker.cpp 754 B

123456789101112131415161718192021222324
  1. #include "hover_tracker.h"
  2. #include "game/core/world.h"
  3. #include "render/gl/camera.h"
  4. HoverTracker::HoverTracker(Game::Systems::PickingService *pickingService)
  5. : m_pickingService(pickingService), m_hoveredEntityId(0) {}
  6. Engine::Core::EntityID
  7. HoverTracker::updateHover(float sx, float sy, Engine::Core::World &world,
  8. const Render::GL::Camera &camera, int viewportWidth,
  9. int viewportHeight) {
  10. if (!m_pickingService)
  11. return 0;
  12. if (sx < 0 || sy < 0 || sx >= viewportWidth || sy >= viewportHeight) {
  13. m_hoveredEntityId = 0;
  14. return 0;
  15. }
  16. m_hoveredEntityId = m_pickingService->updateHover(
  17. sx, sy, world, camera, viewportWidth, viewportHeight);
  18. return m_hoveredEntityId;
  19. }