void mapWithCollision( StateFun&& st_fun, EventFun&& ev_fun, TimeNodeFun&& tn_fun, NothingFun&& nothing_fun, const QVector<id_type<StateModel>>& createdStates, const QVector<id_type<EventModel>>& createdEvents, const QVector<id_type<TimeNodeModel>>& createdTimeNodes) { auto collidingStates = getCollidingStates(createdStates); if(!collidingStates.empty()) { st_fun(collidingStates.first()); return; } auto collidingEvents = getCollidingEvents(createdEvents); if(!collidingEvents.empty()) { ev_fun(collidingEvents.first()); return; } auto collidingTimeNodes = getCollidingTimeNodes(createdTimeNodes); if(!collidingTimeNodes.empty()) { tn_fun(collidingTimeNodes.first()); return; } nothing_fun(); }
void mapWithCollision( QPointF point, StateFun st_fun, EventFun ev_fun, TimeNodeFun tn_fun, NothingFun nothing_fun, const QVector<Id<StateModel>>& createdStates, const QVector<Id<EventModel>>& createdEvents, const QVector<Id<TimeNodeModel>>& createdTimeNodes) { auto collidingStates = getCollidingStates(point, createdStates); if(!collidingStates.empty()) { st_fun(collidingStates.first()); return; } auto collidingEvents = getCollidingEvents(point, createdEvents); if(!collidingEvents.empty()) { ev_fun(collidingEvents.first()); return; } auto collidingTimeNodes = getCollidingTimeNodes(point, createdTimeNodes); if(!collidingTimeNodes.empty()) { tn_fun(collidingTimeNodes.first()); return; } nothing_fun(); }