#include <iostream>
#include <interaction_lib/InteractionLib.h>
#include <interaction_lib/misc/InteractionLibPtr.h>
int main()
{
constexpr float width = 2560.0f;
constexpr float height = 1440.0f;
constexpr float offset = 0.0f;
intlib->CoordinateTransformAddOrUpdateDisplayArea(width, height);
intlib->CoordinateTransformSetOriginOffset(offset, offset);
constexpr float size = 500.0f;
constexpr
IL::Rectangle rectC = { 0, height - size, size, size };
constexpr
IL::Rectangle rectD = { width - size, height - size, size, size };
constexpr float z = 0.0f;
intlib->BeginInteractorUpdates();
intlib->AddOrUpdateInteractor(idA, rectA, z);
intlib->AddOrUpdateInteractor(idB, rectB, z);
intlib->AddOrUpdateInteractor(idC, rectC, z);
intlib->AddOrUpdateInteractor(idD, rectD, z);
intlib->CommitInteractorUpdates();
struct Focus
{
size_t count = 0;
};
Focus focus;
{
Focus& focus = *static_cast<Focus*>(context);
std::cout
<<
"Interactor: " << evt.
id <<
", focused: " << std::boolalpha << evt.
hasFocus << "\n";
{
focus.count = focus.id == evt.
id ? focus.count + 1 : 1;
}
}, &focus);
std::cout << "Starting interaction library update loop.\n";
constexpr size_t max_focus_count = 3;
while (focus.count < max_focus_count)
{
intlib->WaitAndUpdate();
}
std::cout << "Interactor " << focus.id << " got focused " << focus.count << " times\n";
}