NITE 1.5.1 - API Reference

XnVMultiProcessFlowClient.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 *                                                                              *
00003 *   PrimeSense NITE 1.3                                                        *
00004 *   Copyright (C) 2010 PrimeSense Ltd.                                         *
00005 *                                                                              *
00006 *******************************************************************************/
00007 
00008 
00009 #ifndef _XNV_MULTI_PROCESS_FLOW_CLIENT_H_
00010 #define _XNV_MULTI_PROCESS_FLOW_CLIENT_H_
00011 
00012 #include "XnVSessionGenerator.h"
00013 #include "XnVMultipleHands.h"
00014 
00015 struct XnVNiteMultiprocessData;
00016 class XnVMultiprocessReadSynchronizer;
00017 class IdToContextMapping;
00018 class XnVIntContextHash;
00019 
00031 class XNV_NITE_API XnVMultiProcessFlowClient :
00032     public XnVSessionGenerator
00033 {
00034 public:
00042     XnVMultiProcessFlowClient(const XnChar* sOutputSectionName, const XnChar* strName = "XnVMultiProcessFlowClient");
00046     ~XnVMultiProcessFlowClient();
00047 
00054     XnStatus Initialize();
00055 
00063     XnStatus ReadState();
00064 
00070     XnStatus LosePoint(XnUInt32 nID);
00076     XnStatus LosePoints();
00077 
00078     XnStatus EndSession();
00079     XnStatus ForceSession(const XnPoint3D& ptFocus);
00080     XnStatus TrackPoint(const XnPoint3D& pt);
00081 protected:
00082     XnVHandPointContext* GetLocalContext(XnUInt32 nID);
00083 
00084     void SendEventsForStateDiff(const XnVNiteMultiprocessData& NewState);
00085 
00086     XnVMultiprocessReadSynchronizer* m_pReadingLock;
00087     XnVNiteMultiprocessData* m_pLastReadState;
00088     XnVHandPointContext* m_pInputHandContext;
00089     XnPoint3D m_ptInputHandPoint;
00090     XnVIntContextHash* m_pExistingPointContexts;
00091 
00092     XnVMultipleHands m_Hands;
00093 }; // XnVMultiProcessFlowClient
00094 
00095 #endif // _XNV_MULTI_PROCESS_FLOW_CLIENT_H_