diff Orchestland/Assets/LeapMotion/Scripts/Hands/DebugHand.cs @ 3:0030a1b971fb default tip

merge
author Yuta ANSE <e135745@ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2015 23:23:43 +0900
parents f7675884f2a1
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Orchestland/Assets/LeapMotion/Scripts/Hands/DebugHand.cs	Fri Jul 17 23:23:43 2015 +0900
@@ -0,0 +1,55 @@
+/******************************************************************************\
+* Copyright (C) Leap Motion, Inc. 2011-2014.                                   *
+* Leap Motion proprietary. Licensed under Apache 2.0                           *
+* Available at http://www.apache.org/licenses/LICENSE-2.0.html                 *
+\******************************************************************************/
+
+using UnityEngine;
+using System.Collections;
+using Leap;
+
+/**
+ * A HandModel that draws lines for the bones in the hand and its fingers.
+ * 
+ * The debugs lines are only drawn in the Editor Scene view (when a hand is tracked) and
+ * not in the Game view. Use debug hands when you aren't using visible hands in a scene
+ * so that you can see where the hands are in the scene view.
+ * */
+public class DebugHand : HandModel {
+
+  /**
+  * Initializes the hand and calls the line drawing function.
+  */
+  public override void InitHand() {
+    for (int f = 0; f < fingers.Length; ++f) {
+      if (fingers[f] != null)
+        fingers[f].InitFinger();
+    }
+
+    DrawDebugLines();
+  }
+
+  /**
+  * Updates the hand and calls the line drawing function.
+  */
+  public override void UpdateHand() {
+    for (int f = 0; f < fingers.Length; ++f) {
+      if (fingers[f] != null)
+        fingers[f].UpdateFinger();
+    }
+
+    DrawDebugLines();
+  }
+
+  /**
+  * Draws lines from elbow to wrist, wrist to palm, and normal to the palm.
+  */
+  protected void DrawDebugLines() {
+    HandModel hand = GetComponent<HandModel>();
+    Debug.DrawLine(hand.GetElbowPosition(), hand.GetWristPosition(), Color.red);
+    Debug.DrawLine(hand.GetWristPosition(), hand.GetPalmPosition(), Color.white);
+    Debug.DrawLine(hand.GetPalmPosition(),
+                   hand.GetPalmPosition() + hand.GetPalmNormal(), Color.black);
+    Debug.Log(Vector3.Dot(hand.GetPalmDirection(), hand.GetPalmNormal()));
+  }
+}