14#include "../util/vision/FetchContainers.hpp"
20#include <shared_mutex>
77 const int nPropResolutionY,
78 const int nPropFramesPerSecond,
79 const PIXEL_FORMATS ePropPixelFormat,
80 const double dPropHorizontalFOV,
81 const double dPropVerticalFOV,
82 const bool bEnableRecordingFlag,
83 const int nNumFrameRetrievalThreads = 5)
87 m_nPropResolutionX = nPropResolutionX;
88 m_nPropResolutionY = nPropResolutionY;
89 m_nPropFramesPerSecond = nPropFramesPerSecond;
90 m_ePropPixelFormat = ePropPixelFormat;
91 m_dPropHorizontalFOV = dPropHorizontalFOV;
92 m_dPropVerticalFOV = dPropVerticalFOV;
93 m_bEnableRecordingFlag = bEnableRecordingFlag;
94 m_nNumFrameRetrievalThreads = nNumFrameRetrievalThreads;
95 m_stCameraPoseOffset =
Pose{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0};
141 void SetCameraPoseOffset(
const double dPosX,
const double dPosY,
const double dPosZ,
const double dQX,
const double dQY,
const double dQZ,
const double dQW)
144 m_stCameraPoseOffset.dPosX = dPosX;
145 m_stCameraPoseOffset.dPosY = dPosY;
146 m_stCameraPoseOffset.dPosZ = dPosZ;
147 m_stCameraPoseOffset.dQX = dQX;
148 m_stCameraPoseOffset.dQY = dQY;
149 m_stCameraPoseOffset.dQZ = dQZ;
150 m_stCameraPoseOffset.dQW = dQW;
238 int m_nPropResolutionX;
239 int m_nPropResolutionY;
240 int m_nPropFramesPerSecond;
241 int m_nNumFrameRetrievalThreads;
242 PIXEL_FORMATS m_ePropPixelFormat;
243 double m_dPropHorizontalFOV;
244 double m_dPropVerticalFOV;
245 Pose m_stCameraPoseOffset;
246 std::atomic_bool m_bEnableRecordingFlag;
249 std::queue<containers::FrameFetchContainer<T>> m_qFrameCopySchedule;
250 std::shared_mutex m_muPoolScheduleMutex;
251 std::shared_mutex m_muFrameCopyMutex;
254 virtual std::future<bool> RequestFrameCopy(T& tFrame) = 0;
This interface defines the base functions needed to multi-thread a class in Autonomy_Software....
Interface class used to easily multithread a child class.
Definition AutonomyThread.hpp:40
This interface class serves as a base for all other classes that will implement and interface with a ...
Definition Camera.hpp:34
void SetEnableRecordingFlag(const bool bEnableRecordingFlag)
Mutator for the Enable Recording Flag private member.
Definition Camera.hpp:115
Camera(const int nPropResolutionX, const int nPropResolutionY, const int nPropFramesPerSecond, const PIXEL_FORMATS ePropPixelFormat, const double dPropHorizontalFOV, const double dPropVerticalFOV, const bool bEnableRecordingFlag, const int nNumFrameRetrievalThreads=5)
Construct a new Camera object.
Definition Camera.hpp:76
void SetCameraPoseOffset(const Pose &stPoseOffset)
Mutator for the Camera Pose Offset private member.
Definition Camera.hpp:125
Pose GetCameraPoseOffset() const
Accessor for the Camera Pose Offset private member.
Definition Camera.hpp:223
cv::Size GetPropResolution() const
Accessor for the Prop Resolution private member.
Definition Camera.hpp:161
void SetCameraPoseOffset(const double dPosX, const double dPosY, const double dPosZ, const double dQX, const double dQY, const double dQZ, const double dQW)
Mutator for the Camera Pose Offset private member.
Definition Camera.hpp:141
virtual ~Camera()
Destroy the Camera object.
Definition Camera.hpp:105
int GetPropFramesPerSecond() const
Accessor for the Prop Frames Per Second private member.
Definition Camera.hpp:171
bool GetEnableRecordingFlag() const
Accessor for the Enable Recording Flag private member.
Definition Camera.hpp:213
virtual bool GetCameraIsOpen()=0
Accessor for the Camera Is Open private member.
double GetPropVerticalFOV() const
Accessor for the Prop Vertical F O V private member.
Definition Camera.hpp:202
PIXEL_FORMATS GetPropPixelFormat() const
Accessor for the Prop Pixel Format private member.
Definition Camera.hpp:182
double GetPropHorizontalFOV() const
Accessor for the Prop Horizontal F O V private member.
Definition Camera.hpp:192
Defines a simple struct to hold pose data.
Definition Camera.hpp:48