/* Displaying current frames hand joints */
        private void DisplayCursorJoints(long timeStamp = 0)
        {
            mCursorClick[0] = Math.Max(0, mCursorClick[0] - 1);
            mCursorClick[1] = Math.Max(0, mCursorClick[1] - 1);

            int numOfHands = cursorData.QueryNumberOfCursors();

            if (numOfHands == 1)
            {
                mCursorPoints[1].Clear();
            }

            for (int i = 0; i < numOfHands; i++)
            {
                //Get hand by time of appearance
                ICursor cursor;
                if (cursorData.QueryCursorData(AccessOrderType.ACCESS_ORDER_BY_TIME, i, out cursor) == Status.STATUS_NO_ERROR)
                {
                    if (cursor != null)
                    {
                        // collect cursor points

                        Point3DF32 imagePoint = cursor.CursorPointImage;

                        mCursorPoints[i].Enqueue(imagePoint);
                        if (mCursorPoints[i].Count > 50)
                        {
                            mCursorPoints[i].Dequeue();
                        }

                        mCursorHandSide[i] = cursor.BodySide;
                        GestureData gestureData;
                        if (cursorData.IsGestureFiredByHand(GestureType.CURSOR_CLICK, cursor.UniqueId, out gestureData))
                        {
                            mCursorClick[i] = 7;
                        }
                    }
                }
            } // end iterating over hands

            if (numOfHands > 0)
            {
                form.DisplayCursor(numOfHands, mCursorPoints, mCursorClick, mCursorHandSide);
            }
            else
            {
                mCursorPoints[0].Clear();
                mCursorPoints[1].Clear();

                mCursorHandSide[0] = BodySideType.BODY_SIDE_UNKNOWN;
                mCursorHandSide[1] = BodySideType.BODY_SIDE_UNKNOWN;
            }
        }
Пример #2
0
        private Point3DF32[] GetMappedPixels(int cwidth, int cheight, int dwidth, int dheight, PointF32[] invuvmap, float[] depthPixels)
        {
            var mappedPixels = new Point3DF32[cwidth * cheight];

            for (int i = 0; i < invuvmap.Length; i++)
            {
                int u = (int)(invuvmap[i].x * dwidth);
                int v = (int)(invuvmap[i].y * dheight);
                if (u >= 0 && v >= 0 && u + v * dwidth < depthPixels.Length)
                {
                    mappedPixels[i] = new Point3DF32(u, v, depthPixels[u + v * dwidth]);
                }
            }
            return(mappedPixels);
        }
Пример #3
0
        private string PopulateFingerPositionDataToString(Point3DF32 finger)
        {
            string result = finger.x.ToString() + ", " + finger.y.ToString() + ", " + finger.z.ToString();

            return(result);
        }
Пример #4
0
 private Point3DF32 GetDeltaPoint(Point3DF32 point1, Point3DF32 point2)
 {
     return(new Point3DF32(point1.x - point2.x, point1.y - point2.y, point1.z - point2.z));
 }
Пример #5
0
        private string PopulateFingerPositionDataToString(Point3DF32 finger)
        {
            string result = Math.Round(finger.x, 3).ToString(ci) + "," + Math.Round(finger.y, 3).ToString(ci) + "," + Math.Round(finger.z, 3).ToString(ci);

            return(result);
        }