Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_input.hpp
Go to the documentation of this file.
1#pragma once
2#include "foray_helpers.hpp"
4
5namespace foray::osi {
8 {
9 public:
11 FORAY_GETTER_V(Device)
15 FORAY_GETTER_CR(Name)
16
17 protected:
19 int32_t mId = {};
20 std::string mName = {};
21
22 inline InputBase() = default;
23 inline InputBase(InputDevice* device, int32_t id, std::string_view name) : mDevice(device), mId(id), mName(name) {}
24 };
25
27 class InputAnalogue : public InputBase
28 {
29 public:
31 FORAY_GETTER_V(AxisId)
32
33
34 virtual int16_t State() const = 0;
35
36 protected:
38
40 InputAnalogue(InputDevice* device, int32_t id, std::string_view name, EAxis axis) : InputBase(device, id, name), mAxisId(axis) {}
41 };
42
44 class InputBinary : public InputBase
45 {
46 public:
48 FORAY_GETTER_V(ButtonId)
49
50
51 virtual bool State() const = 0;
52
53 protected:
55
57 InputBinary(InputDevice* device, int32_t id, std::string_view name, EButton button) : InputBase(device, id, name), mButtonId(button) {}
58 };
59
62 {
63 public:
65 FORAY_GETTER_V(DirectionalId)
66
67 protected:
70 InputDirectional(InputDevice* device, int32_t id, std::string_view name, EDirectional directional) : InputBase(device, id, name), mDirectionalId(directional) {}
71 };
72
73} // namespace foray
Represents a single input with a state represented by a signed 16bit integer.
Definition foray_input.hpp:28
virtual int16_t State() const =0
Axis id of the input.
EAxis mAxisId
Definition foray_input.hpp:37
InputAnalogue()
Definition foray_input.hpp:39
InputAnalogue(InputDevice *device, int32_t id, std::string_view name, EAxis axis)
Definition foray_input.hpp:40
Base class for a single input channel of an input device.
Definition foray_input.hpp:8
std::string mName
Definition foray_input.hpp:20
int32_t mId
Definition foray_input.hpp:19
InputBase(InputDevice *device, int32_t id, std::string_view name)
Definition foray_input.hpp:23
InputDevice * mDevice
Device providing this input.
Definition foray_input.hpp:18
Represents a single input with a state represented by a boolean value.
Definition foray_input.hpp:45
virtual bool State() const =0
Button id of the input.
InputBinary(InputDevice *device, int32_t id, std::string_view name, EButton button)
Definition foray_input.hpp:57
EButton mButtonId
Definition foray_input.hpp:54
InputBinary()
Definition foray_input.hpp:56
Wraps a generic input device (mouse, keyboard, joystick, controller ...) in a hardware agnostic way.
Definition foray_inputdevice.hpp:13
Represents a stateless directional input.
Definition foray_input.hpp:62
InputDirectional(InputDevice *device, int32_t id, std::string_view name, EDirectional directional)
Definition foray_input.hpp:70
EDirectional mDirectionalId
Directional input id of the inptu.
Definition foray_input.hpp:68
InputDirectional()
Definition foray_input.hpp:69
#define FORAY_GETTER_V(member)
Return value.
Definition foray_basics.hpp:39
#define FORAY_GETTER_CR(member)
Return constant reference.
Definition foray_basics.hpp:60
Definition foray_env.hpp:7
EAxis
Definition foray_helpers.hpp:308
EButton
All supported buttons (mouse, controllers, etc.) and keys (keyboard)
Definition foray_helpers.hpp:8
EDirectional
Enum for identification of stateless directional inputs.
Definition foray_helpers.hpp:364