[Orxonox-commit 7620] r12213 - in code/branches/MouseAPI_FS19/src/modules: . MouseAPI

tkuonen at orxonox.net tkuonen at orxonox.net
Thu Mar 21 14:26:59 CET 2019


Author: tkuonen
Date: 2019-03-21 14:26:59 +0100 (Thu, 21 Mar 2019)
New Revision: 12213

Added:
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
   code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
Modified:
   code/branches/MouseAPI_FS19/src/modules/CMakeLists.txt
Log:
Define MouseAPI


Modified: code/branches/MouseAPI_FS19/src/modules/CMakeLists.txt
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/CMakeLists.txt	2019-03-21 13:19:16 UTC (rev 12212)
+++ code/branches/MouseAPI_FS19/src/modules/CMakeLists.txt	2019-03-21 13:26:59 UTC (rev 12213)
@@ -52,3 +52,4 @@
 ADD_SUBDIRECTORY(orxyroad)
 ADD_SUBDIRECTORY(orxokart)
 ADD_SUBDIRECTORY(wagnis)
+ADD_SUBDIRECTORY(MouseAPI)

Added: code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt	                        (rev 0)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/CMakeLists.txt	2019-03-21 13:26:59 UTC (rev 12213)
@@ -0,0 +1,13 @@
+SET_SOURCE_FILES(MOUSEAPI_SRC_FILES
+  mouseapi.cc
+)
+
+
+ORXONOX_ADD_LIBRARY(mouseapi
+  MODULE
+  FIND_HEADER_FILES
+  PCH_FILE
+  LINK_LIBRARIES
+    orxonox
+  SOURCE_FILES ${MOUSEAPI_SRC_FILES}
+)

Added: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc	                        (rev 0)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc	2019-03-21 13:26:59 UTC (rev 12213)
@@ -0,0 +1,25 @@
+#include "mouseapi.h"
+
+MouseAPI::MouseAPI()
+{
+
+}
+
+MouseAPI::~MouseAPI(){}
+
+virtual void MouseAPI::buttonPressed (MouseButtonCode::ByEnum button){}
+virtual void MouseAPI::mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize){}
+virtual void MouseAPI::mouseScrolled (int abs, int rel){}
+
+void addClickableObject(const Vector3& position,float radius,const list<ClickEvent>& events,void (*onClickedFunction)())
+{
+    clickEvents.insert({position,radius,events,onClickedFunction});
+}
+void addScrollElement(const Vector3& position,float radius,void (*onScrolledFunction)(int abs,int rel,const IntVector2&  mousePos))
+{
+    scrollEvents.insert(position,radius,onScrolledFunction);
+}
+void addScrollElement(void (*onScrolledFunction)(int abs,int rel,const IntVector2&  mousePos))
+{
+    scrollEvents.insert(onScrolledFunction);
+}

Added: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h	                        (rev 0)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h	2019-03-21 13:26:59 UTC (rev 12213)
@@ -0,0 +1,62 @@
+#ifndef MOUSEAPI_H
+#define MOUSEAPI_H
+
+#include <util/Math.h>
+#include <list>
+#include <core/input/InputHandler.h>
+
+namespace orxonox
+{
+
+class MouseAPI : public InputHandler
+{
+
+private:
+
+    struct clickableElement
+    {
+        Vector3 position;
+        float radius;
+        list<ClickEvent> events;
+        void (*onClickedFunction)();
+        clickableElement(const Vector3& position,float radius,const list<ClickEvent>& events,void (*onClickedFunction)()):position(position),
+            radius(radius), events(events), onClickedFunction(onClickedFunction){}
+    };
+
+    struct scrollElement
+    {
+        bool considerPosition;
+        Vector3 position;
+        float radius;
+        void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos);
+        scrollEvents(void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos)):considerPosition(false),
+            onScrolledFunction(onScrolledFunction){}
+        scrollEvents(Vector3& position, float radius, void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos)):considerPosition(true),
+            position(position), radius(radius), onScrolledFunction(onScrolledFunction){}
+    };
+
+
+    std::list<clickableElement> clickEvents;
+    std::list<scrollElement> scrollEvents;
+
+
+public:
+    enum ClickEvent
+    {
+        rightClick,leftClick,middleCLick
+    };
+
+    MouseAPI();
+    ~MouseAPI();
+    virtual void buttonPressed (MouseButtonCode::ByEnum button);
+    virtual void buttonReleased(MouseButtonCode::ByEnum button){}
+    virtual void buttonHeld    (MouseButtonCode::ByEnum button){}
+    virtual void mouseMoved    (IntVector2 abs, IntVector2 rel, IntVector2 clippingSize);
+    virtual void mouseScrolled (int abs, int rel);
+
+    void addClickableObject(const Vector3& position,float radius,const list<ClickEvent>& events,void (*onClickedFunction)());
+    void addScrollElement(const Vector3& position,float radius,void (*onScrolledFunction)(int abs,int rel,const IntVector2&  mousePos));
+    void addScrollElement(void (*onScrolledFunction)(int abs,int rel,const IntVector2&  mousePos));
+};
+}
+#endif // MOUSEAPI_H



More information about the Orxonox-commit mailing list