ToyMaker Game Engine 0.0.2
ToyMaker is a game engine developed and maintained by Zoheb Shujauddin.
Loading...
Searching...
No Matches
interface_pointer_callback.hpp
Go to the documentation of this file.
1
10
16
17#ifndef ZOAPPINTERFACEPOINTERCALLBACK_H
18#define ZOAPPINTERFACEPOINTERCALLBACK_H
19
20namespace ToyMaker {
21 class IRightClickable;
22 class ILeftClickable;
23 class IHoverable;
24
37 public:
42 ~IUsePointer()=default;
43 protected:
52 bool leftClickOn(ILeftClickable& clickable, glm::vec4 clickLocation);
53
62 bool leftReleaseOn(ILeftClickable& clickable, glm::vec4 clickLocation);
63
72 bool pointerEnter(IHoverable& hoverable, glm::vec4 hoverLocation);
73
81 bool pointerLeave(IHoverable& hoverable);
82 };
83
97 virtual bool onPointerLeftClick(glm::vec4 clickLocation)=0;
98
106 virtual bool onPointerLeftRelease(glm::vec4 clickLocation)=0;
107 friend class IUsePointer;
108 };
109
110 // class IRightClickable {
111 // virtual bool onPointerRightClick(glm::vec4 clickLocation)=0;
112 // virtual bool onPointerRightRelease(glm::vec4 clickLocation)=0;
113 // friend class IUsePointer;
114 // };
115
129 virtual bool onPointerEnter(glm::vec4 hoverLocation)=0;
130
137 virtual bool onPointerLeave()=0;
138 friend class IUsePointer;
139 };
140
141 // inline bool IUsePointer::rightClickOn(IRightClickable& clickable, glm::vec4 clickLocation) { return clickable.onPointerRightClick(clickLocation); }
142 // inline bool IUsePointer::rightReleaseOn(IRightClickable& clickable, glm::vec4 clickLocation) { return clickable.onPointerRightRelease(clickLocation); }
143
144 inline bool IUsePointer::leftClickOn(ILeftClickable& clickable, glm::vec4 clickLocation) { return clickable.onPointerLeftClick(clickLocation); }
145 inline bool IUsePointer::leftReleaseOn(ILeftClickable& clickable, glm::vec4 clickLocation) { return clickable.onPointerLeftRelease(clickLocation); }
146
147 inline bool IUsePointer::pointerEnter(IHoverable& hoverable, glm::vec4 hoverLocation) { return hoverable.onPointerEnter(hoverLocation); }
148 inline bool IUsePointer::pointerLeave(IHoverable& hoverable) { return hoverable.onPointerLeave(); }
149
150}
151
152#endif
The interface implemented by aspects which wish to respond to pointer hover related events.
Definition interface_pointer_callback.hpp:121
virtual bool onPointerEnter(glm::vec4 hoverLocation)=0
Virtual method called by a subclass of IUsePointer to signal that a pointer has entered this object's...
virtual bool onPointerLeave()=0
Virtual method called by a subclass of IUsePointer to signal that a pointer has just left this object...
The interface used by aspects which wish to respond to mouse left click events (or equivalent).
Definition interface_pointer_callback.hpp:89
virtual bool onPointerLeftRelease(glm::vec4 clickLocation)=0
Virtual method called by a subclass of IUsePointer to signal that a left mousebutton release event ha...
virtual bool onPointerLeftClick(glm::vec4 clickLocation)=0
Virtual method called by a subclass of IUsePointer to signal that a left mousebutton press event has ...
The interface used by aspects, objects, which cast pointer rays to interact with objects present in t...
Definition interface_pointer_callback.hpp:36
~IUsePointer()=default
Virtual IUsePointer destructor, so that subclasses can use their own.
bool leftReleaseOn(ILeftClickable &clickable, glm::vec4 clickLocation)
Calls the left mouse button release (or equivalent) callback on an object.
Definition interface_pointer_callback.hpp:145
bool pointerEnter(IHoverable &hoverable, glm::vec4 hoverLocation)
Callback for when a pointer enters a region containing an object.
Definition interface_pointer_callback.hpp:147
bool pointerLeave(IHoverable &hoverable)
Callback for when a pointer leaves a region containing an object.
Definition interface_pointer_callback.hpp:148
bool leftClickOn(ILeftClickable &clickable, glm::vec4 clickLocation)
Calls the left mouse button press (or equivalent) callback on an object.
Definition interface_pointer_callback.hpp:144
Namespace containing all class definitions and functions related to the ToyMaker engine.
Definition application.hpp:24