[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