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{ namespace F2 {
00012
00013 class Sensor;
00014
00019 struct _Frame: public FCam::_Frame {
00020 RowSkip::e rowSkip;
00021 ColSkip::e colSkip;
00022 RowBin::e rowBin;
00023 ColBin::e colBin;
00024
00025 int roiStartX;
00026 int roiStartY;
00027
00028 FCam::F2::Shot _shot;
00029
00030 const FCam::F2::Shot &shot() const { return _shot; }
00031 const FCam::Shot &baseShot() const { return shot(); }
00032
00033
00034
00035 BayerPattern bayerPattern() const;
00036 unsigned short minRawValue() const;
00037 unsigned short maxRawValue() const;
00038 void rawToRGBColorMatrix(int kelvin, float *matrix) const;
00039 const std::string &manufacturer() const;
00040 const std::string &model() const;
00041
00042 _Frame();
00043 };
00044
00050 class Frame: public FCam::Frame {
00051 protected:
00052 const _Frame *get() const { return static_cast<_Frame*>(ptr.get()); }
00053
00054 public:
00055
00060 Frame(_Frame *f=NULL): FCam::Frame(f) {}
00061
00063 RowSkip::e rowSkip() const { return get()->rowSkip; }
00064
00066 ColSkip::e colSkip() const { return get()->colSkip; }
00067
00069 RowBin::e rowBin() const { return get()->rowBin; }
00070
00072 ColBin::e colBin() const { return get()->colBin; }
00073
00078 int roiStartX() const { return get()->roiStartX; }
00079
00084 int roiStartY() const { return get()->roiStartY; }
00085
00089 const FCam::F2::Shot &shot() const {
00090 return get()->shot();
00091 }
00092
00093 };
00094
00095 }
00096 }
00097
00098 #endif