MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ handle_drag()

void MayaFlux::Portal::Forma::Context::handle_drag ( double  px,
double  py,
IO::MouseButtons  btn 
)
private

Definition at line 356 of file Context.cpp.

357{
358 const glm::vec2 ndc = to_ndc(px, py);
359 const int btn_idx = static_cast<int>(btn);
360
361 if (!m_dragging[btn_idx]) {
362 const auto hit = m_layer->hit_test(ndc);
363 if (hit)
364 m_dragging[btn_idx] = hit;
365 else
366 return;
367 }
368
369 auto it = m_callbacks.find(*m_dragging[btn_idx]);
370 if (it != m_callbacks.end() && it->second.drag.count(btn_idx))
371 it->second.drag[btn_idx](*m_dragging[btn_idx], ndc);
372}
std::optional< uint32_t > m_dragging[3]
Definition Context.hpp:285
std::shared_ptr< Layer > m_layer
Definition Context.hpp:263
glm::vec2 to_ndc(double px, double py) const noexcept
Definition Context.cpp:268
std::unordered_map< uint32_t, ElementCallbacks > m_callbacks
Definition Context.hpp:269

References m_callbacks, m_dragging, m_layer, and to_ndc().

Referenced by register_handlers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: