6 #ifndef IFM3D_FG_FRAME_H
7 #define IFM3D_FG_FRAME_H
11 #include <ifm3d/device/device.h>
12 #include <ifm3d/fg/buffer.h>
13 #include <ifm3d/fg/buffer_id.h>
14 #include <ifm3d/fg/module_frame_grabber.h>
20 using TimePointT = std::chrono::time_point<std::chrono::system_clock,
21 std::chrono::nanoseconds>;
23 using BufferList = std::vector<Buffer>;
24 using BufferDataListMap = std::map<ifm3d::buffer_id, BufferList>;
33 using Ptr = std::shared_ptr<Frame>;
35 Frame(
const BufferDataListMap& images,
36 const std::vector<TimePointT>& timestamps,
37 uint64_t frame_count);
71 std::optional<size_t> index = std::nullopt);
92 decltype(std::declval<std::map<buffer_id, BufferList>>().begin())
94 [[nodiscard]] decltype(std::declval<
97 begin() const noexcept;
98 decltype(std::declval<std::map<
buffer_id, BufferList>>().end())
100 [[nodiscard]] decltype(std::declval<
103 end() const noexcept;
108 std::unique_ptr<Impl> _impl;
The class Buffer represent a STL container to store data from the ifm devices in 2 dimension and supp...
Definition: buffer.h:99
Represent a frame of data received from the the device.
Definition: frame.h:31
bool HasBuffer(buffer_id id)
Check if a image with the given id is available in this frame.
Buffer & GetBuffer(buffer_id key, std::optional< size_t > index=std::nullopt)
Get the image with the given id.
std::vector< buffer_id > GetBuffers()
Get the list of available buffers.
uint32_t FrameCount()
Get the frame count according to algorithm output.
size_t GetBufferCount(buffer_id id)
Get the total number of image with the given id.
std::vector< TimePointT > TimeStamps()
Get the timestamps of the frame.
BufferId
BufferIds available for use with the default Organizer.
Definition: buffer_id.h:19