/// <summary> /// Clears all gesture data. /// </summary> public void Clear() { Xdata.Clear(); Ydata.Clear(); Zdata.Clear(); Gdata.Clear(); Time.Clear(); }
/// <summary> /// Stores this frame of accelerometer data for simple gesture recognition. /// </summary> /// <param name="x">The x-axis acceleration</param> /// <param name="y">The y-axis acceleration</param> /// <param name="z">The z-axis acceleration</param> /// <param name="dT">time elapsed since last frame in seconds</param> internal void feedData(int x, int y, int z, double dT) { if (totalTime + dT == totalTime) { totalTime = 0; } totalTime += dT; //check Maxima if (Math.Abs(x) > maxXYZ) { maxXYZ = Math.Abs(x); } if (Math.Abs(x) > maxXYZ) { maxXYZ = Math.Abs(y); } if (Math.Abs(x) > maxXYZ) { maxXYZ = Math.Abs(z); } double grav = Math.Sqrt(x * x + y * y + z * z); if (grav > maxG) { maxG = grav; } //log this frame Xdata.Add(x); Ydata.Add(y); Zdata.Add(z); Gdata.Add(grav); Time.Add((int)(totalTime * 1000)); //clean old data while (Time.Count > 0 && totalTime - Time[0] > 1000) { Xdata.RemoveAt(0); Ydata.RemoveAt(0); Zdata.RemoveAt(0); Gdata.RemoveAt(0); Time.RemoveAt(0); } }