Mouse.h 956 B

1234567891011121314151617181920212223242526272829303132333435
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. class ApplicationWindow;
  6. /// Mouse interface class, keeps track of the mouse button state and of the absolute and relative movements of the mouse.
  7. class Mouse
  8. {
  9. public:
  10. /// Constructor
  11. Mouse() = default;
  12. virtual ~Mouse() = default;
  13. /// Initialization / shutdown
  14. virtual bool Initialize(ApplicationWindow *inWindow) = 0;
  15. virtual void Shutdown() = 0;
  16. /// Update the mouse state
  17. virtual void Poll() = 0;
  18. virtual int GetX() const = 0;
  19. virtual int GetY() const = 0;
  20. virtual int GetDX() const = 0;
  21. virtual int GetDY() const = 0;
  22. virtual bool IsLeftPressed() const = 0;
  23. virtual bool IsRightPressed() const = 0;
  24. virtual bool IsMiddlePressed() const = 0;
  25. virtual void HideCursor() = 0;
  26. virtual void ShowCursor() = 0;
  27. };