diff --git a/Sources/ConsoleApp/ConsoleApp.csproj b/Sources/ConsoleApp/ConsoleApp.csproj
index 11b775b..4d45df5 100644
--- a/Sources/ConsoleApp/ConsoleApp.csproj
+++ b/Sources/ConsoleApp/ConsoleApp.csproj
@@ -36,6 +36,7 @@
..\packages\Microsoft.Kinect.2.0.1410.19000\lib\net45\Microsoft.Kinect.dll
+
@@ -54,6 +55,14 @@
+
+ {2d44487e-f514-4063-9494-2af1e8c9e9c8}
+ KinectUtils
+
+
+ {2496DFB1-EB55-47A1-A780-211E079B289D}
+ MyGesturesBank
+
{0751c83e-7845-4e5f-a5d3-e11aba393aca}
Lib
diff --git a/Sources/ConsoleApp/Program.cs b/Sources/ConsoleApp/Program.cs
index fb7ff8d..b8f5ea7 100644
--- a/Sources/ConsoleApp/Program.cs
+++ b/Sources/ConsoleApp/Program.cs
@@ -1,11 +1,14 @@
using Lib;
using Microsoft.Kinect;
+using MyGesturesBank;
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using System.Windows.Controls;
namespace ConsoleApp
{
@@ -13,6 +16,32 @@ namespace ConsoleApp
{
static void Main(string[] args)
{
+ KinectManager kinectManager = new KinectManager();
+ Canvas skeletonCanvas = null;
+ KinectStreamsFactory Factory = new KinectStreamsFactory(kinectManager, skeletonCanvas);
+ BodyImageStream CurrentKinectStream = (BodyImageStream)Factory[KinectStreams.Body];
+ CurrentKinectStream.Start();
+ PostureHandUp handUpPosture = new PostureHandUp();
+ PostureHandsOnHead handsOnHeadPosture = new PostureHandsOnHead();
+ handUpPosture.GestureRecognized += (sender, e) =>
+ {
+ Console.WriteLine("Posture Hand Up reconnue !");
+ };
+ handsOnHeadPosture.GestureRecognized += (sender, e) =>
+ {
+ Console.WriteLine("Posture Hands On Head reconnue !");
+ };
+ Body body = null;
+ while (true)
+ {
+ body = CurrentKinectStream.Bodies.FirstOrDefault();
+ if (body != null)
+ {
+ handUpPosture.TestGesture(body);
+ handsOnHeadPosture.TestGesture(body);
+ }
+ Thread.Sleep(50);
+ }
// KinectManager kinectManager = new KinectManager();
// if (kinectManager.StartSensor())
// {
@@ -38,7 +67,7 @@ namespace ConsoleApp
// // Boucle pour tester les postures
// while (true)
// {
- // Body body = kinectManager.GetNextBody(); // Méthode fictive pour obtenir les données du corps
+ // Body body = kinecManager.GetNextBody(); // Méthode fictive pour obtenir les données du corps
// if (body != null)
// {
// handUpPosture.TestGesture(body);
@@ -47,7 +76,8 @@ namespace ConsoleApp
// Thread.Sleep(50); // Une petite pause pour ne pas surcharger le CPU
// }
- }
+ //}
+ }
}
}
diff --git a/Sources/KinectUtils/GestureManager.cs b/Sources/KinectUtils/GestureManager.cs
index d9e08a5..339375f 100644
--- a/Sources/KinectUtils/GestureManager.cs
+++ b/Sources/KinectUtils/GestureManager.cs
@@ -32,5 +32,9 @@ namespace KinectUtils
{
throw new NotImplementedException();
}
+ static public void StopAcquiringFrames()
+ {
+ throw new NotImplementedException();
+ }
}
}
diff --git a/Sources/Lib/BodyImageStream.cs b/Sources/Lib/BodyImageStream.cs
index 8b7b9bc..eea0d35 100644
--- a/Sources/Lib/BodyImageStream.cs
+++ b/Sources/Lib/BodyImageStream.cs
@@ -153,20 +153,22 @@ namespace Lib
if (bodyframe != null)
{
bodyframe.GetAndRefreshBodyData(this.bodies);
-
- Canvas.Children.Clear(); // nettoyer le Canvas avant de dessiner
-
- foreach (var body in this.bodies)
+ // nettoyer le Canvas avant de dessiner
+ if (Canvas != null)
{
- if (body.IsTracked)
+ Canvas.Children.Clear();
+ foreach (var body in this.bodies)
{
- // dessiner le squelette
- drawskeleton(body);
+ if (body.IsTracked)
+ {
+ // dessiner le squelette
+ drawskeleton(body);
+ }
}
}
}
}
}
}
-}
+ }
diff --git a/Sources/LibMyGesturesBank/MyGesturesBank.csproj b/Sources/LibMyGesturesBank/MyGesturesBank.csproj
index 7a43ab1..aedd2ed 100644
--- a/Sources/LibMyGesturesBank/MyGesturesBank.csproj
+++ b/Sources/LibMyGesturesBank/MyGesturesBank.csproj
@@ -47,8 +47,6 @@
-
-
diff --git a/Sources/LibMyGesturesBank/PostureHandsOnHead .cs b/Sources/LibMyGesturesBank/PostureHandsOnHead .cs
index 7ad19b9..4b8df45 100644
--- a/Sources/LibMyGesturesBank/PostureHandsOnHead .cs
+++ b/Sources/LibMyGesturesBank/PostureHandsOnHead .cs
@@ -20,10 +20,11 @@ namespace MyGesturesBank
private bool IsHandNearHead(Joint hand, Joint head)
{
// Exemple de condition : la main est à moins de 30 cm de la tête
- return Math.Sqrt(
+ double distance = Math.Sqrt(
Math.Pow(hand.Position.X - head.Position.X, 2) +
Math.Pow(hand.Position.Y - head.Position.Y, 2) +
- Math.Pow(hand.Position.Z - head.Position.Z, 2)) < 0.3;
+ Math.Pow(hand.Position.Z - head.Position.Z, 2));
+ return distance < 0.3 && distance > 0;
}
public override string GestureName => "Hands On Head";
diff --git a/Sources/LibMyGesturesBank/RightHandUp.cs b/Sources/LibMyGesturesBank/RightHandUp.cs
deleted file mode 100644
index 259d3a5..0000000
--- a/Sources/LibMyGesturesBank/RightHandUp.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace LibMyGesturesBank
-{
- internal class RightHandUp
- {
- }
-}
diff --git a/Sources/LibMyGesturesBank/TwoHandsDragon.cs b/Sources/LibMyGesturesBank/TwoHandsDragon.cs
deleted file mode 100644
index a5e9d5f..0000000
--- a/Sources/LibMyGesturesBank/TwoHandsDragon.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace LibMyGesturesBank
-{
- internal class TwoHandsDragon
- {
- }
-}