Skip to content
Snippets Groups Projects
Commit 37e40c85 authored by Alexis Iakovenko's avatar Alexis Iakovenko
Browse files

Revert "Added all fingers and switched format to list of JSON"

This reverts commit 6e9d0a33.
parent 95f78d3d
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,6 @@ using Leap.Unity; ...@@ -3,7 +3,6 @@ using Leap.Unity;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
...@@ -20,14 +19,8 @@ public class Recorder : MonoBehaviour ...@@ -20,14 +19,8 @@ public class Recorder : MonoBehaviour
private string path = "Assets/Record/Recorded/"; private string path = "Assets/Record/Recorded/";
private StreamWriter mStreamWriter; private StreamWriter mStreamWriter;
private string date;
// Finger bones from base to tip
private Bone.BoneType[] bones = new Bone.BoneType[] {
Bone.BoneType.TYPE_METACARPAL,
Bone.BoneType.TYPE_PROXIMAL,
Bone.BoneType.TYPE_INTERMEDIATE,
Bone.BoneType.TYPE_DISTAL
};
public void ToggleRecording() public void ToggleRecording()
{ {
...@@ -41,7 +34,8 @@ public class Recorder : MonoBehaviour ...@@ -41,7 +34,8 @@ public class Recorder : MonoBehaviour
{ {
Directory.CreateDirectory (path + gestureName); Directory.CreateDirectory (path + gestureName);
mStreamWriter = new StreamWriter(path + gestureName + "/" + recordingNumber.ToString() + ".txt"); mStreamWriter = new StreamWriter(path + gestureName + "/" + recordingNumber.ToString() + ".txt");
mStreamWriter.WriteLine("Gesture: " + gestureName + "; Author: " + userName); mStreamWriter.WriteLine("Gesture: " + gestureName + "; Author: " + userName + "; Recorded: " + date);
mStreamWriter.WriteLine("timestamp l_palm_pos_x l_palm_pos_y l_palm_pos_z r_palm_pos_x r_palm_pos_y r_palm_pos_z");
//UI //UI
recordingLabel.SetActive (true); recordingLabel.SetActive (true);
...@@ -65,91 +59,42 @@ public class Recorder : MonoBehaviour ...@@ -65,91 +59,42 @@ public class Recorder : MonoBehaviour
{ {
if (mStreamWriter != null) if (mStreamWriter != null)
{ {
Dictionary<string, float> hands = new Dictionary<string, float>(); Vector3 leftPalmPosition = Vector3.zero, rightPalmPosition = Vector3.zero;
Vector4 leftPalmRotation = Vector3.zero, rightPalmRotation = Vector3.zero;
Frame frame = LeapService.CurrentFrame; Frame frame = LeapService.CurrentFrame;
foreach (Hand hand in frame.Hands) foreach (Hand hand in frame.Hands)
{ {
if (hand.IsLeft) if (hand.IsLeft)
{ {
handToDict ("l", hand, hands); leftPalmPosition = hand.PalmPosition.ToVector3 ();
leftPalmRotation = new Vector4(hand.Rotation.x, hand.Rotation.y, hand.Rotation.z, hand.Rotation.w);
} }
else else
{ {
handToDict ("r", hand, hands); rightPalmPosition = hand.PalmPosition.ToVector3();
rightPalmRotation = new Vector4(hand.Rotation.x, hand.Rotation.y, hand.Rotation.z, hand.Rotation.w);
} }
} }
hands ["timestamp"] = Time.unscaledTime; mStreamWriter.WriteLine(DataToString(VecToData(leftPalmPosition), VecToData(leftPalmRotation), VecToData(rightPalmPosition), VecToData(rightPalmRotation)));
mStreamWriter.WriteLine(JsonUtility.ToJson(hands));
} }
} }
private void handToDict(string prefix, Hand hand, Dictionary<string, float> result) { private static string VecToData(Vector3 vec)
// Iterate over each finger and bone
foreach (Finger finger in hand.Fingers) {
foreach (var boneType in bones) {
// Load the bone
var bone = finger.Bone (boneType);
var boneID = string.Join ("_", new string[]{prefix, FingerName (finger.Type), BoneName (boneType)});
// Store the center of the bone
result [boneID + "_cen_x"] = bone.Center.x;
result [boneID + "_cen_y"] = bone.Center.y;
result [boneID + "_cen_z"] = bone.Center.z;
// Store the direction of the bone
result [boneID + "_dir_x"] = bone.Direction.x;
result [boneID + "_dir_y"] = bone.Direction.y;
result [boneID + "_dir_z"] = bone.Direction.z;
// Store the length of the bone
result [boneID + "_len"] = bone.Length;
}
}
// Store the palm of the hand
var palmID = string.Join("_", new string[]{ prefix, "palm" });
result [palmID + "_pos_x"] = hand.PalmPosition.x;
result [palmID + "_pos_y"] = hand.PalmPosition.y;
result [palmID + "_pos_z"] = hand.PalmPosition.z;
result [palmID + "_rot_x"] = hand.Rotation.x;
result [palmID + "_rot_y"] = hand.Rotation.y;
result [palmID + "_rot_z"] = hand.Rotation.z;
result [palmID + "_rot_w"] = hand.Rotation.w;
}
private string FingerName(Finger.FingerType fingerType)
{ {
switch (fingerType) { return string.Format("{0} {1} {2}", vec.x, vec.y, vec.z);
case Finger.FingerType.TYPE_INDEX:
return "index";
case Finger.FingerType.TYPE_MIDDLE:
return "middle";
case Finger.FingerType.TYPE_PINKY:
return "pinky";
case Finger.FingerType.TYPE_RING:
return "ring";
case Finger.FingerType.TYPE_THUMB:
return "thumb";
}
return "unknown";
} }
private string BoneName(Bone.BoneType boneType) private static string DataToString(params object[] list)
{ {
switch (boneType) { string[] strs = new string[list.Length];
case Bone.BoneType.TYPE_DISTAL:
return "distral"; for (int i = 0; i < list.Length; i++) {
case Bone.BoneType.TYPE_INTERMEDIATE: strs [i] = list [i].ToString ();
return "intermediate";
case Bone.BoneType.TYPE_METACARPAL:
return "metacarpal";
case Bone.BoneType.TYPE_PROXIMAL:
return "proximal";
} }
return "unknown";
return string.Join (" ", strs);
} }
public void UpdateGestureName(string name) public void UpdateGestureName(string name)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment