public static Fingertip[] FromArray(
            double[] point2D1x, double[] point2D1y,
            double[] point2D2x, double[] point2D2y,
            double[] point3Dx, double[] point3Dy, double[] point3Dz,
            bool[] status, double[] height,
            int N, int delta)
        {
            Fingertip[] rsl = new Fingertip[N];
            POINT3D p3D;
            POINT2D p2D1;
            POINT2D p2D2;

            for (int i = 0; i < N; i++)
            {
                p3D.X = point3Dx[i + delta];
                p3D.Y = point3Dy[i + delta];
                p3D.Z = point3Dz[i + delta];

                p2D1.X = point2D1x[i + delta];
                p2D1.Y = point2D1y[i + delta];

                p2D2.X = point2D2x[i + delta];
                p2D2.Y = point2D2y[i + delta];

                rsl[i] = new Fingertip(p3D, p2D1, p2D2, status[i + delta], height[i + delta]);
            }
            return rsl;
        }
        private int _N; // Number of fingertips

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="Fingertips">list of fingertips</param>
        /// <param name="N">number of fingertips</param>
        public GroupOfFingers(Fingertip[] Fingertips, int N)
        {
            _Fingertips = Fingertips;
            _N = N;
        }