Nebula
Loading...
Searching...
No Matches
displayevent.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
13#include "core/types.h"
14#include "input/key.h"
15#include "input/char.h"
16#include "input/mousebutton.h"
17#include "math/vec2.h"
18#include "coregraphics/window.h"
19
20//------------------------------------------------------------------------------
21namespace CoreGraphics
22{
24{
25public:
54
62 DisplayEvent(Code c, CoreGraphics::WindowId wnd, const Math::vec2& absPos, const Math::vec2& normPos);
68 DisplayEvent(Code c, Input::MouseButton::Code b, const Math::vec2& absPos, const Math::vec2& normPos);
71
73 Code GetEventCode() const;
77 const Math::vec2& GetAbsMousePos() const;
79 const Math::vec2& GetNormMousePos() const;
83 Input::Char GetChar() const;
88
89private:
98};
99
100//------------------------------------------------------------------------------
103inline
107 absMousePos(0.0f, 0.0f),
108 normMousePos(0.0f, 0.0f),
109 keyCode(Input::Key::InvalidKey),
110 charCode(0),
111 mouseButtonCode(Input::MouseButton::InvalidMouseButton)
112{
113 // empty
114}
115
116//------------------------------------------------------------------------------
119inline
121 code(c),
123 absMousePos(0.0f, 0.0f),
124 normMousePos(0.0f, 0.0f),
125 keyCode(Input::Key::InvalidKey),
126 charCode(0),
127 mouseButtonCode(Input::MouseButton::InvalidMouseButton)
128{
129 // empty
130}
131
132
133//------------------------------------------------------------------------------
136inline
138 code(c),
139 windowId(wnd),
140 absMousePos(0.0f, 0.0f),
141 normMousePos(0.0f, 0.0f),
142 keyCode(Input::Key::InvalidKey),
143 charCode(0),
144 mouseButtonCode(Input::MouseButton::InvalidMouseButton)
145{
146 // empty
147}
148
149//------------------------------------------------------------------------------
152inline
154 code(c),
155 windowId(wnd),
156 absMousePos(absPos),
157 normMousePos(normPos),
158 keyCode(Input::Key::InvalidKey),
159 charCode(0),
160 mouseButtonCode(Input::MouseButton::InvalidMouseButton)
161{
162 // empty
163}
164
165//------------------------------------------------------------------------------
168inline
170 code(c),
172 absMousePos(0.0f, 0.0f),
173 normMousePos(0.0f, 0.0f),
174 keyCode(k),
175 charCode(0),
176 mouseButtonCode(Input::MouseButton::InvalidMouseButton)
177{
178 // empty
179}
180
181//------------------------------------------------------------------------------
184inline
186 code(c),
188 absMousePos(0.0f, 0.0f),
189 normMousePos(0.0f, 0.0f),
190 keyCode(Input::Key::InvalidKey),
191 charCode(chr),
192 mouseButtonCode(Input::MouseButton::InvalidMouseButton)
193{
194 // empty
195}
196
197//------------------------------------------------------------------------------
200inline
202 code(c),
204 absMousePos(absPos),
205 normMousePos(normPos),
206 keyCode(Input::Key::InvalidKey),
207 charCode(0),
209{
210 // empty
211}
212
213//------------------------------------------------------------------------------
216inline
218 code(c),
220 absMousePos(0.0f, 0.0f),
221 normMousePos(0.0f, 0.0f),
222 keyCode(Input::Key::InvalidKey),
223 charCode(0),
224 mouseButtonCode(Input::MouseButton::InvalidMouseButton),
225 files(files)
226{
227 // empty
228}
229
230//------------------------------------------------------------------------------
235{
236 return this->code;
237}
238
239//------------------------------------------------------------------------------
244{
245 return this->windowId;
246}
247
248//------------------------------------------------------------------------------
251inline const Math::vec2&
253{
254 return this->absMousePos;
255}
256
257//------------------------------------------------------------------------------
260inline const Math::vec2&
262{
263 return this->normMousePos;
264}
265
266//------------------------------------------------------------------------------
269inline Input::Key::Code
271{
272 return this->keyCode;
273}
274
275//------------------------------------------------------------------------------
278inline Input::Char
280{
281 return this->charCode;
282}
283
284//------------------------------------------------------------------------------
289{
290 return this->mouseButtonCode;
291}
292
293//------------------------------------------------------------------------------
296inline const
298{
299 return this->files;
300}
301
302} // namespace CoreGraphics
303//------------------------------------------------------------------------------
304
A translated character code.
Code code
Definition displayevent.h:90
Math::vec2 normMousePos
Definition displayevent.h:93
Code GetEventCode() const
get event code
Definition displayevent.h:234
Input::Key::Code GetKey() const
get key code
Definition displayevent.h:270
const Util::Array< Util::String > & GetFiles() const
Get files.
Definition displayevent.h:297
DisplayEvent()
default constructor
Definition displayevent.h:104
CoreGraphics::WindowId windowId
Definition displayevent.h:91
CoreGraphics::WindowId GetWindowId() const
get window id
Definition displayevent.h:243
Input::Char charCode
Definition displayevent.h:95
Input::MouseButton::Code GetMouseButton() const
get mouse button code
Definition displayevent.h:288
const Math::vec2 & GetAbsMousePos() const
get absolute mouse pos (in pixels)
Definition displayevent.h:252
Input::Char GetChar() const
get character code
Definition displayevent.h:279
Input::Key::Code keyCode
Definition displayevent.h:94
Math::vec2 absMousePos
Definition displayevent.h:92
Util::Array< Util::String > files
Definition displayevent.h:97
const Math::vec2 & GetNormMousePos() const
get normalized mouse pos (from 0.0 to 1.0)
Definition displayevent.h:261
Code
event codes
Definition displayevent.h:28
@ Character
Definition displayevent.h:45
@ WindowMinimized
Definition displayevent.h:34
@ WindowClose
Definition displayevent.h:31
@ WindowMoved
Definition displayevent.h:38
@ WindowReopen
Definition displayevent.h:32
@ WindowResized
Definition displayevent.h:37
@ MouseButtonDown
Definition displayevent.h:48
@ WindowOpen
Definition displayevent.h:30
@ MouseButtonUp
Definition displayevent.h:49
@ InvalidCode
Definition displayevent.h:29
@ KeyUp
Definition displayevent.h:44
@ MouseButtonDoubleClick
Definition displayevent.h:50
@ KeyDown
Definition displayevent.h:43
@ MouseWheelBackward
Definition displayevent.h:52
@ MouseWheelForward
Definition displayevent.h:51
@ SetFocus
Definition displayevent.h:41
@ ToggleFullscreenWindowed
Definition displayevent.h:36
@ SetCursor
Definition displayevent.h:39
@ CloseRequested
Definition displayevent.h:33
@ KillFocus
Definition displayevent.h:42
@ MouseMove
Definition displayevent.h:47
@ Drop
Definition displayevent.h:46
@ WindowRestored
Definition displayevent.h:35
@ Paint
Definition displayevent.h:40
Input::MouseButton::Code mouseButtonCode
Definition displayevent.h:96
Code
key codes
Definition key.h:25
Code
code enums
Definition mousebutton.h:23
Nebula's dynamic array class.
Definition array.h:61
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition accelerationstructure.h:24
This simple Id pool implements a set of free and used consecutive integers.
Definition id.h:135
static constexpr Id32 InvalidId32
Definition id.h:143
FIXME!
unsigned char Char
Definition char.h:16
Definition window.h:25
A 2-component float vector class.
Definition vec2.h:21