Go to the documentation of this file.00001
00002
00003
00004
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 };
00094
00095 #endif // _XNV_MULTI_PROCESS_FLOW_CLIENT_H_