PeriDyno 1.2.1
Loading...
Searching...
No Matches
MouseInputModule.cpp
Go to the documentation of this file.
1#include "MouseInputModule.h"
2#define PYTHON
3
4namespace dyno
5{
10
14
16 {
17 mMutex.lock();
18#ifdef PYTHON
19 std::cout << "MouseInputModule::enqueueEvent" << std::endl;
20#endif // PYTHON
21
22 if (this->varCacheEvent()->getValue()) {
23 while (!mEventQueue.empty()) {
24 auto e = mEventQueue.back();
25 if (e == event)
26 {
27 mEventQueue.pop_back();
28 }
29 else
30 break;
31 }
32 }
33 else
34 {
35 while (!mEventQueue.empty()) mEventQueue.pop_front();
36 }
37
38 mEventQueue.push_back(event);
39
40 mMutex.unlock();
41 }
42
44 {
45 mMutex.lock();
46#ifdef PYTHON
47 std::cout << "MouseInputModule::updateImpl" << std::endl;
48#endif // PYTHON
49 if (!mEventQueue.empty())
50 {
51#ifdef PYTHON
52 std::cout << "onEvent" << std::endl;
53#endif // PYTHON
54 onEvent(mEventQueue.front());
55
56 mEventQueue.pop_front();
57 }
58 mMutex.unlock();
59 }
60
62 {
63 bool required = !mEventQueue.empty();
64
65 return required || Module::requireUpdate();
66 }
67}
virtual bool requireUpdate()
Definition Module.cpp:207
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