00001 #ifndef __data_capture_hpp__ 00002 #define __data_capture_hpp__ 00003 00004 #include <XnOS.h> 00005 #include <XnCppWrapper.h> 00006 00007 #include <fovis/fovis.hpp> 00008 00009 namespace fovis_example 00010 { 00011 00012 class DataCapture 00013 { 00014 public: 00015 DataCapture(); 00016 ~DataCapture(); 00017 00018 bool initialize(); 00019 00020 bool startDataCapture(); 00021 00022 bool stopDataCapture(); 00023 00024 bool captureOne(); 00025 00026 fovis::DepthImage* getDepthImage() { 00027 return depth_image; 00028 } 00029 00030 const fovis::CameraIntrinsicsParameters& getRgbParameters() const { 00031 return rgb_params; 00032 } 00033 00034 const uint8_t* getGrayImage() { 00035 return gray_buf; 00036 } 00037 00038 private: 00039 xn::Context context; 00040 xn::EnumerationErrors errors; 00041 00042 xn::DepthGenerator depth_gen; 00043 xn::DepthMetaData depth_md; 00044 xn::ImageGenerator image_gen; 00045 xn::ImageMetaData image_md; 00046 00047 fovis::DepthImage* depth_image; 00048 00049 int width; 00050 int height; 00051 00052 fovis::CameraIntrinsicsParameters rgb_params; 00053 00054 float* depth_data; 00055 00056 uint8_t* gray_buf; 00057 }; 00058 00059 } 00060 00061 #endif