multiple hits after gesture recognition - it should stop after the first hit

Proposed multiple hits after gesture recognition - it should stop after the first hit

  • Monday, April 09, 2012 8:53 PM
     
     

    I've got a strange problem. I'm creating a NUI for application and I binded some simple gestures to right and left arrow. The problem is when I start application. When I make gesture for the first time my application is hitting 2 times in a row. After that it works 100% as I want. Only the start is the problem.

    I'm adding two Joints and timestamp to my history struct which is put into the ArrayList

                this._history.Add(new HistoryItem()
                    {
                        timestamp = timestamp,
                        activeHand = hand,
                        controlJoint = controlJoint
                    }
                );

    then in foreach loop I'm comparing data

        if (Math.Abs((hand.Position.X - item.controlJoint.Position.X)) < MainWindow.treshold && Math.Abs((hand.Position.Y - item.controlJoint.Position.Y)) < MainWindow.verticalTreshold)

    If it hits I instantly break the lopp with

        break;

    after that I clear the history ArrayList

        this._history.Clear();

    So I don't get it. Why after the start it hits two times in a row ?

    // edit

    I've created kind of workaround. I've added time control. I'm comparing timestamp of invoking the code and timestamp of last gesture recognition. If its too fast ( i meen couple of ms which it impossible to make ) I don't allow to hit an arrow. I'm not sure if it's a perfect solution but it is a working solution

    • Edited by Fixus Monday, April 09, 2012 9:23 PM found a workaround
    •  

All Replies

  • Wednesday, April 11, 2012 3:29 PM
     
     Proposed

    Ok my problem was the code. Ofc a small bug untracable in the debug. I used one fucntion to analyse a history of frames.

    The method was working in 2 modes. I`ve detached that and created 2 diffrent methods, each for each task and now it works great

    • Proposed As Answer by ykbharat Thursday, April 12, 2012 1:54 PM
    •