// 初期化
        private void xnInitialize()
        {
            // コンテキストの初期化
            ScriptNode scriptNode;

            context = Context.CreateFromXmlFile(CONFIG_XML_PATH, out scriptNode);

            // イメージジェネレータの作成
            image = context.FindExistingNode(NodeType.Image) as ImageGenerator;
            if (image == null)
            {
                throw new Exception(context.GlobalErrorState);
            }

            // NITEのためのセッションマネージャを作成
            sessionManager = new SessionManager(context, "Wave,Click", "RaiseHand");

            // セッションの開始と終了を通知するコールバックを登録する
            sessionManager.SessionStart         += new EventHandler <PositionEventArgs>(sessionManager_SessionStart);
            sessionManager.SessionEnd           += new EventHandler(sessionManager_SessionEnd);
            sessionManager.SessionFocusProgress += new EventHandler <SessionProgressEventArgs>(sessionManager_SessionFocusProgress);

            // Wave(左右運動の検出器)
            waveDetector       = new NITE.WaveDetector();
            waveDetector.Wave += new EventHandler(waveDetector_Wave);

            // リスナーに追加する
            sessionManager.AddListener(waveDetector);

            // ジェネレータの動作を開始する
            context.StartGeneratingAll();
        }
        public WebNect()
        {
            this.context = new OpenNI.Context(SAMPLE_XML_FILE);
            this.sessionManager = new NITE.SessionManager(this.context, "Click", "RaiseHand");
            this.context.StartGeneratingAll();

            this.sessionManager.SessionStart += new
                    EventHandler<NITE.PositionEventArgs>(sessionManager_SessionStart);
            this.sessionManager.SessionFocusProgress += new
                    EventHandler<NITE.SessionProgressEventArgs>(sessionManager_SessionProgress);
            this.sessionManager.SessionEnd += sessionManager_SessionEnd;

            this.waveDetector = new NITE.WaveDetector();
            this.waveDetector.Wave += waveDetector_Wave;
            this.waveDetector.PointUpdate += new EventHandler<HandEventArgs>(waveDetector_PointUpdate);
            this.sessionManager.AddListener(this.waveDetector);

            this.zmq_context = new ZMQ.Context(1);
            this.zmq_publisher = this.zmq_context.Socket(SocketType.PUB);
            this.zmq_publisher.Bind(this.SOCKET_SOURCE);
            Console.WriteLine("ZMQ Socket at {0}", this.SOCKET_SOURCE);

            this.shouldRun = true;
            this.readerThread = new Thread(ReaderThread);
            this.readerThread.Start();
        }
        // 初期化
        private void xnInitialize()
        {
            // コンテキストの初期化
              ScriptNode scriptNode;
              context = Context.CreateFromXmlFile( CONFIG_XML_PATH, out scriptNode );

              // イメージジェネレータの作成
              image = context.FindExistingNode(NodeType.Image) as ImageGenerator;
              if (image == null) {
            throw new Exception(context.GlobalErrorState);
              }

              // NITEのためのセッションマネージャを作成
              sessionManager = new SessionManager(context, "Wave,Click", "RaiseHand");

              // セッションの開始と終了を通知するコールバックを登録する
              sessionManager.SessionStart += new EventHandler<PositionEventArgs>(sessionManager_SessionStart);
              sessionManager.SessionEnd += new EventHandler(sessionManager_SessionEnd);
              sessionManager.SessionFocusProgress += new EventHandler<SessionProgressEventArgs>(sessionManager_SessionFocusProgress);

              // Wave(左右運動の検出器)
              waveDetector = new NITE.WaveDetector();
              waveDetector.Wave += new EventHandler(waveDetector_Wave);

              // リスナーに追加する
              sessionManager.AddListener(waveDetector);

              // ジェネレータの動作を開始する
              context.StartGeneratingAll();
        }