#pragma once #include "OpenNiWin.h" #include "ExClass.h" #include "ExNiJoints.h" #include "ExNiFileDev.h" #define OPENNI_RECORDE_TEMP_FILE ".openni_recorde.oni.$$$" using namespace jbxwl; class CExOpenNiWin : public COpenNiWin { public: CExOpenNiWin(); virtual ~CExOpenNiWin(); public: COpenNiDevice* dev_backup; CExNiFileDev* niFileDev; CExportNiData* niExportData; CNiJoints* niJoints; CExNiNetwork* niNetwork; CExNiSHMemory* sharedMem; CParameterSet appParam; CExTextFrame* pLogFrame; CExFrame* pSensorFrame; CExFrame* pSkeletonFrame; CLogWndDoc* pLogDoc; public: BOOL dataSaving; Vector vect_fwrd; public: CString tempFilePath; CString makeTempFilePath(void); void deleteRecordeTempFile(void) { tunlink(tempFilePath);} void setSensorFramePtr(CExFrame* pfrm) { pSensorFrame = pfrm;} void setSkeletonFramePtr(CExFrame* pfrm) { pSkeletonFrame = pfrm;} void setLogFramePtr(CExTextFrame* pfrm); void setParameter(CParameterSet param); BOOL makeFileDevice(LPCTSTR fname); BOOL remakeFileDevice(LPCTSTR fname); BOOL restoreDevice(void); BOOL startRecord(void) { dataSaving = TRUE;} BOOL stopRecord(void) { dataSaving = FALSE;} public: void convertRot2JointsData(void); void convertPos2JointsData(void); void convertUpperPos2JointsData(void); // void exportJointsData(void); public: virtual void saveJointsData(void); virtual void logingJointsData(void); virtual void checkGroundLevel(void) { if (appParam.useJointConst) niJoints->CheckGroundLevel(m_ground_level);} virtual void checkBoneLength (void) { if (appParam.useJointConst) niJoints->CheckBoneLength();} virtual void convertJointsData(void); virtual void lostTrackingUser(int uid); // { DEBUG_ERR("LOST TRACKING USER (%d)", uid);} virtual void detectTrackingUser(int uid);// { DEBUG_ERR("DETECT TRACKING USER (%d)", uid);} public: // TEST bool setStartBoneLength(void); double stbnLen[OPENNI_JOINT_NUM]; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // UINT openniEventLoop(LPVOID pParam);