CameraAbstract.h

Go to the documentation of this file.
00001 /*
00002 *       This file contains abstract class for camera loaded from DLL.
00003 *
00004 *       Author:
00005 *                       Tomas Mrkvicka
00006 *                       xmrkvi03@stud.fit.vutbr.cz
00007 *
00008 */
00009 
00010 #include <windows.h>
00011 
00012 //FORWARD DECLARATIONS
00013 namespace NSCameras
00014 {
00015         class TCameraAbstract;
00016 };
00017 
00018 #ifndef _CAMERAS_CAMERAABSTRACT_HH_
00019 #define _CAMERAS_CAMERAABSTRACT_HH_
00020 
00021 namespace NSCameras
00022 {
00023 
00024 ////////////////////////////////////////////////////////////////////////////////
00025 ////////////////////////////////////////////////////////////////////////////////
00026 ////////////////////////////////////////////////////////////////////////////////
00027 // TCameraAbstract
00028 
00029 /** Tato trida reprezentuje rozhrani pro kameru, ze ktere se ziskavaji snimky ve formatu RGB.
00030 *
00031 *       Objekt tridy musi byt odstranen pomoci metody Destroy() - operator DELETE nelze pouzit
00032 *       protoze pamet je alokovana uvnitr DLL.
00033 *
00034 *       \note   Zarovnani bajtu v pixelu typu RGB na pocitacich s ukladanim bajtu little endian je
00035 *                       nasledujici [ADRESA 0]BGRBGRBGR...
00036 */
00037 class TCameraAbstract
00038 {
00039 //PUBLIC METHODS
00040 public:
00041         virtual DWORD           GetDataSize(void) = 0;                          ///< velikost jednoho snimku v bajtech
00042         virtual void            GetData(void * dest) = 0;                       ///< ulozi do pripravene pameti aktualni
00043                                                                                                                         ///< obrazova data
00044                                                                                                                         ///< data jsou vzdy ve formatu RGB a jsou ulozena
00045                                                                                                                         ///< souvisle v pameti
00046 
00047         virtual int                     GetWidth(void) = 0;                                     ///< sirka dat v pixelech
00048         virtual int                     GetHeight(void) = 0;                            ///< vyska dat v pixelech
00049 
00050         virtual void            Destroy(void) = 0;                                      ///< zniceni tohoto objektu
00051 
00052 //PROTECTED METHODS
00053 protected:
00054                                                 TCameraAbstract(void){};                                                ///< konstruktor
00055                                                 ~TCameraAbstract(void){};                                               ///< destruktor
00056                                                 TCameraAbstract( const TCameraAbstract & orig );///< falesny kopirovaci konstruktor
00057         void                            operator=( const TCameraAbstract & orig );              ///< falesny kopirovaci konstruktor
00058 };
00059 
00060 // TCameraAbstract
00061 ////////////////////////////////////////////////////////////////////////////////
00062 ////////////////////////////////////////////////////////////////////////////////
00063 ////////////////////////////////////////////////////////////////////////////////
00064 
00065 //ukazatele na funkce pro ziskani kamery z DLL
00066 
00067 typedef TCameraAbstract* (*PTR_CAMERAGET)(void);        
00068 typedef TCameraAbstract* (*PTR_CAMERAGETIMAGE)( const char * filename );
00069 
00070 }; //END of namespace NSCameras
00071 using namespace NSCameras;
00072 
00073 #endif

Generated on Sat Nov 17 16:23:33 2007 for Image Processing Pipeline - Camera Sources Implementation by  doxygen 1.4.6-NO