summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2018-08-05 18:02:42 +0200
committerXaviDCR92 <xavi.dcr@gmail.com>2018-08-05 18:02:42 +0200
commit37070c559d37069ddd05f77b803ab92c5266e80c (patch)
tree93f616ca5d790a6c22e8c4bf5d8830843e466c8d
parent4efe5ad6f9c8abb53df1e06921ce010ced24868e (diff)
* Cursor: fixed invalid returned position when cursor was pointing to anything over X or Y screen resolution/2.
-rw-r--r--Cursor.cpp20
-rw-r--r--Cursor.h9
2 files changed, 24 insertions, 5 deletions
diff --git a/Cursor.cpp b/Cursor.cpp
index 2b02ad6..64cfab1 100644
--- a/Cursor.cpp
+++ b/Cursor.cpp
@@ -3,6 +3,7 @@
* ******************************************************************/
#include "Cursor.h"
+#include "Camera.h"
#include <stdint.h>
/* *******************************************************************
@@ -37,9 +38,10 @@
* \brief Constructor for Cursor class.
*
*********************************************************************/
-Cursor::Cursor(void) :
+Cursor::Cursor(const Camera& c) :
_x(CURSOR_DEFAULT_X),
-_y(CURSOR_DEFAULT_Y)
+_y(CURSOR_DEFAULT_Y),
+_cam(c)
{
}
@@ -73,6 +75,16 @@ void Cursor::move(const int8_t x, const int8_t y)
}
}
+uint8_t Cursor::getScreenX(void)
+{
+ return _x;
+}
+
+uint8_t Cursor::getScreenY(void)
+{
+ return _y;
+}
+
/*****************************************************************//**
*
* \brief This function simply returns cursor X position.
@@ -82,7 +94,7 @@ void Cursor::move(const int8_t x, const int8_t y)
*********************************************************************/
uint8_t Cursor::getX(void)
{
- return _x;
+ return _cam.getRealX(_x);
}
/*****************************************************************//**
@@ -94,7 +106,7 @@ uint8_t Cursor::getX(void)
*********************************************************************/
uint8_t Cursor::getY(void)
{
- return _y;
+ return _cam.getRealY(_y);
}
/*****************************************************************//**
diff --git a/Cursor.h b/Cursor.h
index 33ba008..90d55cc 100644
--- a/Cursor.h
+++ b/Cursor.h
@@ -5,6 +5,7 @@
* Includes
* ******************************************************************/
+#include "Camera.h"
#include <stdbool.h>
#include <stdint.h>
@@ -16,6 +17,9 @@
* Global types definition
* ******************************************************************/
+/* Forward declaration. */
+class Camera;
+
/* *******************************************************************
* Global variables declaration
* ******************************************************************/
@@ -31,16 +35,19 @@
class Cursor
{
public:
- explicit Cursor(void);
+ explicit Cursor(const Camera& c);
void move(const int8_t x = 0, const int8_t y = 0);
uint8_t getX(void);
uint8_t getY(void);
+ uint8_t getScreenX(void);
+ uint8_t getScreenY(void);
bool isXCentered(void);
bool isYCentered(void);
private:
uint8_t _x;
uint8_t _y;
+ const Camera& _cam;
};
#endif /* CURSOR_H__ */