public void setNewData(SingleHandData aData) { palmPosition = aData.palmPosition; palmRotation = aData.palmRotation; wristRotation = aData.wristRotation; for (int i = 0; i < 5; ++i) { fingerPositions[i] = aData.fingerPositions[i]; } }
public void ParseRawData(ref Byte[] data, int offset) { DataType handType = (DataType)data[offset]; SingleHandData setData = new SingleHandData(); int start = offset + 1; float x, y, z; x = BitConverter.ToSingle(data, start) * Mathf.Rad2Deg; start += 4; y = BitConverter.ToSingle(data, start) * Mathf.Rad2Deg; start += 4; z = BitConverter.ToSingle(data, start) * Mathf.Rad2Deg; start += 4; if (Single.IsNaN(x) || Single.IsNaN(y) || Single.IsNaN(z)) { Debug.Log("position is nan"); return; } setData.palmPosition = new Vector3(x, y, z); x = BitConverter.ToSingle(data, start); start += 4; x *= Mathf.Rad2Deg; if (x < 0.0f) { x += 360.0f; } y = BitConverter.ToSingle(data, start); start += 4; y *= Mathf.Rad2Deg; if (z < 0.0f) { z += 360.0f; } z = BitConverter.ToSingle(data, start); start += 4; z *= Mathf.Rad2Deg; if (y < 0.0f) { y += 360.0f; } if (Single.IsNaN(x) || Single.IsNaN(y) || Single.IsNaN(z)) { Debug.Log("rotation is nan"); return; } setData.palmRotation = new Vector3(x, y, z); x = BitConverter.ToSingle(data, start); start += 4; z = BitConverter.ToSingle(data, start); start += 4; y = BitConverter.ToSingle(data, start); start += 4; if (Single.IsNaN(x) || Single.IsNaN(y) || Single.IsNaN(z)) { Debug.Log("wrist is nan"); return; } setData.wristRotation = new Vector3(x, y, z); for (int i = 0; i < 5; ++i) { x = BitConverter.ToSingle(data, start); start += 4; z = BitConverter.ToSingle(data, start); start += 4; y = BitConverter.ToSingle(data, start); start += 4; if (Single.IsNaN(x) || Single.IsNaN(y) || Single.IsNaN(z)) { Debug.Log("finger " + i + " is nan"); return; } setData.fingerPositions[i] = new Vector3(x, y, z); } if (handType == DataType.RightHand) { rightHand.setNewData(setData); } else { leftHand.setNewData(setData); } }
public HandNetworkData() { leftHand = new SingleHandData(); rightHand = new SingleHandData(); }