PeriDyno 1.0.0
Loading...
Searching...
No Matches
MouseInputModule.cpp
Go to the documentation of this file.
1#include "MouseInputModule.h"
2
3namespace dyno
4{
10
14
16 {
17 mMutex.lock();
18
19 if (this->varCacheEvent()->getValue()) {
20 while (!mEventQueue.empty()) {
21 auto e = mEventQueue.back();
22 if (e == event)
23 {
24 mEventQueue.pop_back();
25 }
26 else
27 break;
28 }
29 }
30 else
31 {
32 while (!mEventQueue.empty()) mEventQueue.pop_front();
33 }
34
35 mEventQueue.push_back(event);
36
37 mMutex.unlock();
38 }
39
41 {
42 mMutex.lock();
43 if (!mEventQueue.empty())
44 {
45 onEvent(mEventQueue.front());
46
47 mEventQueue.pop_front();
48 }
49 mMutex.unlock();
50 }
51
53 {
54 bool required = !mEventQueue.empty();
55
56 return required || Module::requireUpdate();
57 }
58
59}
virtual bool requireUpdate()
Definition Module.cpp:164
std::deque< PMouseEvent > mEventQueue
void enqueueEvent(PMouseEvent event)
bool requireUpdate() override
virtual void onEvent(PMouseEvent event)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25