Go to the documentation of this file.00001 #ifndef FCAM_F2_FRAME_H
00002 #define FCAM_F2_FRAME_H
00003
00007
00008 #include "../Frame.h"
00009 #include "Shot.h"
00010
00011 namespace FCam {
00012 namespace F2 {
00013
00014 class Sensor;
00015
00020 struct _Frame: public FCam::_Frame {
00021 RowSkip::e rowSkip;
00022 ColSkip::e colSkip;
00023 RowBin::e rowBin;
00024 ColBin::e colBin;
00025
00026 int roiStartX;
00027 int roiStartY;
00028
00029 FCam::F2::Shot _shot;
00030
00031 const FCam::F2::Shot &shot() const { return _shot; }
00032 const FCam::Shot &baseShot() const { return shot(); }
00033
00034
00035
00036 BayerPattern bayerPattern() const;
00037 unsigned short minRawValue() const;
00038 unsigned short maxRawValue() const;
00039 void rawToRGBColorMatrix(int kelvin, float *matrix) const;
00040 const std::string &manufacturer() const;
00041 const std::string &model() const;
00042
00043 _Frame();
00044 };
00045
00051 class Frame: public FCam::Frame {
00052 protected:
00053 const _Frame *get() const { return static_cast<_Frame *>(ptr.get()); }
00054
00055 public:
00056
00061 Frame(_Frame *f=NULL): FCam::Frame(f) {}
00062
00064 RowSkip::e rowSkip() const { return get()->rowSkip; }
00065
00067 ColSkip::e colSkip() const { return get()->colSkip; }
00068
00070 RowBin::e rowBin() const { return get()->rowBin; }
00071
00073 ColBin::e colBin() const { return get()->colBin; }
00074
00079 int roiStartX() const { return get()->roiStartX; }
00080
00085 int roiStartY() const { return get()->roiStartY; }
00086
00090 const FCam::F2::Shot &shot() const {
00091 return get()->shot();
00092 }
00093
00094 };
00095
00096 }
00097 }
00098
00099 #endif