Browse Source

-changed from thumb calc to cross Product between Fingertip and
PalmNormal

Anton 11 years ago
parent
commit
f6667f3adc
1 changed files with 7 additions and 4 deletions
  1. 7 4
      bbiwarg/DataSource/PalmDetection.cs

+ 7 - 4
bbiwarg/DataSource/PalmDetection.cs

@@ -24,11 +24,14 @@ namespace bbiwarg.DataSource
         public Palm getPalm(uint handIndex)
         {
             DenseVector palmMiddle = (DenseVector) input.getPalmPosition3D(handIndex);
-            DenseVector thumbPosition = (DenseVector) input.getFingerTipPositions3D(handIndex)[0];
-            DenseVector tipPosition = (DenseVector)input.getTipPosition3D(handIndex);
+            DenseVector tipPosition = (DenseVector)input.getTipPosition3D(handIndex);
+            DenseVector palmNormal = (DenseVector)input.getPalmNormal3D(handIndex);
+            //DenseVector thumbPosition = (DenseVector) input.getFingerTipPositions3D(handIndex)[0];
 
-            DenseVector palmToThumb_2 = (thumbPosition - palmMiddle) / 2.0f;
-            DenseVector tipToForeFinger = tipPosition - palmMiddle;
+            //DenseVector palmToThumb_2 = (thumbPosition - palmMiddle) / 2.0f;
+            DenseVector tipToForeFinger = tipPosition - palmMiddle;
+            DenseVector palmToThumb_2 = (DenseVector) tipToForeFinger.Cross(palmNormal) / 3.0f;
+           
 
             return new Palm(palmMiddle + palmToThumb_2 + tipToForeFinger,
                             palmMiddle - palmToThumb_2 + tipToForeFinger,