6#ifndef OPENEV_CONTAINERS_QUEUE_HPP
7#define OPENEV_CONTAINERS_QUEUE_HPP
9#include "openev/containers/array.hpp"
10#include "openev/containers/vector.hpp"
18#ifndef OPENEV_ARRAY_HPP
19template <
typename T, std::
size_t N>
23#ifndef OPENEV_VECTOR_HPP
36 using std::queue<T>::queue;
40 inline void push(
const T &e) {
41 std::queue<T>::push(e);
49 template <std::
size_t N>
51 for(
const T &e : array) {
52 std::queue<T>::emplace(std::move(e));
61 for(
const T &e : vector) {
62 std::queue<T>::emplace(std::move(e));
71 return (std::queue<T>::back()).t - (std::queue<T>::front()).t;
78 [[nodiscard]]
inline double rate()
const {
79 return std::queue<T>::size() /
duration();
86 [[nodiscard]]
inline double midTime()
const {
87 return 0.5 * (std::queue<T>::front().t + std::queue<T>::back().t);
90using Queuei = Queue_<Eventi>;
91using Queuel = Queue_<Eventl>;
92using Queuef = Queue_<Eventf>;
93using Queued = Queue_<Eventd>;
94using Queue = Queue_<Event>;
95using AugmentedQueuei = Queue_<AugmentedEventi>;
96using AugmentedQueuel = Queue_<AugmentedEventl>;
97using AugmentedQueuef = Queue_<AugmentedEventf>;
98using AugmentedQueued = Queue_<AugmentedEventd>;
99using AugmentedQueue = Queue_<AugmentedEvent>;
This class extends std::array to implement event arrays. For more information, please refer here.
Definition array.hpp:21
This class extends std::queue to implement event queues. For more information, please refer here.
Definition queue.hpp:35
double rate() const
Compute event rate as the ratio between the number of events and the time difference between the last...
Definition queue.hpp:78
void push(const Array_< T, N > &array)
Push elements from an array of events.
Definition queue.hpp:50
void push(const Vector_< T > &vector)
Push elements from a vector of events.
Definition queue.hpp:60
double midTime() const
Calculate the midpoint time between the oldest and the newest event.
Definition queue.hpp:86
double duration() const
Time difference between the last and the first event in the queue.
Definition queue.hpp:70
This class extends std::vector to implement event vectors. For more information, please refer here.
Definition vector.hpp:36
Basic event-based vision structures based on OpenCV components.