|
@@ -116,17 +116,56 @@ namespace BBIWARG.TUIO
|
|
|
List<int> updatedIDs = new List<int>();
|
|
|
foreach (Palm palm in frameData.TrackedPalms)
|
|
|
{
|
|
|
+
|
|
|
if (tobjects.Keys.Contains(palm.TrackID))
|
|
|
{
|
|
|
// update / move
|
|
|
List<TuioObject> palmTobjs = tobjects[palm.TrackID];
|
|
|
Vector2D[] corners = palm.Quad.Corners;
|
|
|
for (int i = 0; i < 4; i++)
|
|
|
+ {
|
|
|
+ /* BEGIN HACK */
|
|
|
+ int x0 = 0;
|
|
|
+ int y0 = 0;
|
|
|
+ int x1 = 0;
|
|
|
+ int y1 = 0;
|
|
|
+
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[0].X;
|
|
|
+ y0 = (int)corners[0].Y;
|
|
|
+ x1 = (int)corners[2].X;
|
|
|
+ y1 = (int)corners[2].Y;
|
|
|
+ }
|
|
|
+ else if (i == 1)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[1].X;
|
|
|
+ y0 = (int)corners[1].Y;
|
|
|
+ x1 = (int)corners[3].X;
|
|
|
+ y1 = (int)corners[3].Y;
|
|
|
+ }
|
|
|
+ else if (i == 2)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[2].X;
|
|
|
+ y0 = (int)corners[2].Y;
|
|
|
+ x1 = (int)corners[0].X;
|
|
|
+ y1 = (int)corners[0].Y;
|
|
|
+ }
|
|
|
+ else if (i == 3)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[3].X;
|
|
|
+ y0 = (int)corners[3].Y;
|
|
|
+ x1 = (int)corners[1].X;
|
|
|
+ y1 = (int)corners[1].Y;
|
|
|
+ }
|
|
|
+ /* END HACK */
|
|
|
server.updateTuioObject(
|
|
|
- palmTobjs[i],
|
|
|
- corners[i].X,
|
|
|
- corners[i].Y,
|
|
|
- frameData.DepthImage.getDepthAt((int) corners[i].X, (int) corners[i].Y));
|
|
|
+ palmTobjs[i],
|
|
|
+ corners[i].X,
|
|
|
+ corners[i].Y,
|
|
|
+ frameData.DepthImage.getDepthAtFixed(x0, y0, x1, y1));
|
|
|
+ //frameData.DepthImage.getDepthAt((int)corners[i].X, (int)corners[i].Y));
|
|
|
+ }
|
|
|
updatedIDs.Add(palm.TrackID);
|
|
|
}
|
|
|
else
|
|
@@ -136,10 +175,46 @@ namespace BBIWARG.TUIO
|
|
|
Vector2D[] corners = palm.Quad.Corners;
|
|
|
for (int i = 0; i < 4; i++)
|
|
|
{
|
|
|
+
|
|
|
+ /* BEGIN HACK */
|
|
|
+ int x0 = 0;
|
|
|
+ int y0 = 0;
|
|
|
+ int x1 = 0;
|
|
|
+ int y1 = 0;
|
|
|
+
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[0].X;
|
|
|
+ y0 = (int)corners[0].Y;
|
|
|
+ x1 = (int)corners[2].X;
|
|
|
+ y1 = (int)corners[2].Y;
|
|
|
+ }
|
|
|
+ else if (i == 1)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[1].X;
|
|
|
+ y0 = (int)corners[1].Y;
|
|
|
+ x1 = (int)corners[3].X;
|
|
|
+ y1 = (int)corners[3].Y;
|
|
|
+ }
|
|
|
+ else if (i == 2)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[2].X;
|
|
|
+ y0 = (int)corners[2].Y;
|
|
|
+ x1 = (int)corners[0].X;
|
|
|
+ y1 = (int)corners[0].Y;
|
|
|
+ }
|
|
|
+ else if (i == 3)
|
|
|
+ {
|
|
|
+ x0 = (int)corners[3].X;
|
|
|
+ y0 = (int)corners[3].Y;
|
|
|
+ x1 = (int)corners[1].X;
|
|
|
+ y1 = (int)corners[1].Y;
|
|
|
+ }
|
|
|
+ /* END HACK */
|
|
|
palmTobjs.Add(server.addTuioObject(
|
|
|
corners[i].X,
|
|
|
corners[i].Y,
|
|
|
- frameData.DepthImage.getDepthAt((int) corners[i].X, (int) corners[i].Y))); //palm.TrackID + 0.1f * i));
|
|
|
+ frameData.DepthImage.getDepthAtFixed(x0, y0, x1, y1))); //palm.TrackID + 0.1f * i));
|
|
|
}
|
|
|
tobjects.Add(palm.TrackID, palmTobjs);
|
|
|
updatedIDs.Add(palm.TrackID);
|