|
@@ -102,16 +102,38 @@ namespace SketchAssistantWPF
|
|
|
|
|
|
|
|
|
public bool optitrackAvailable { get; private set; }
|
|
|
-
|
|
|
-
|
|
|
- double OPTITRACK_X_OFFSET = 0.7878;
|
|
|
- double OPTITRACK_Y_OFFSET = 0.7977;
|
|
|
- double OPTITRACK_CANVAS_HEIGHT = 1.29;
|
|
|
- double OPTITRACK_X_SCALE = -0.254 * (((1.816 / 0.0254) * 96) / (1.816));
|
|
|
- double OPTITRACK_Y_SCALE = 0.254 * (((1.360 / 0.0254) * 96) / (1.360));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public float optiTrackX;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public float optiTrackY;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public float optiTrackZ;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private bool optiTrackInsideDrawingZone = false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private double WARNING_ZONE_BOUNDARY = 0.10;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private Armband armband;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ bool testing = false;
|
|
|
|
|
|
|
|
|
Image rightImageWithoutOverlay;
|
|
|
+
|
|
|
|
|
|
|
|
|
private bool mouseDown;
|
|
@@ -234,6 +256,51 @@ namespace SketchAssistantWPF
|
|
|
return returnSet;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ double OPTITRACK_X_OFFSET = 0.7878;
|
|
|
+ double OPTITRACK_Y_OFFSET = 0.7977;
|
|
|
+ double OPTITRACK_CANVAS_HEIGHT = 1.29;
|
|
|
+ double OPTITRACK_X_SCALE = -0.254 * (((1.816 / 0.0254) * 96) / (1.816));
|
|
|
+ double OPTITRACK_Y_SCALE = 0.254 * (((1.360 / 0.0254) * 96) / (1.360));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private Point ConvertTo96thsOfInch(Point p)
|
|
|
+ {
|
|
|
+ double xCoordinate = (p.X - OPTITRACK_X_OFFSET) * OPTITRACK_X_SCALE;
|
|
|
+ double yCoordinate = (OPTITRACK_CANVAS_HEIGHT - (p.Y - OPTITRACK_Y_OFFSET)) * OPTITRACK_Y_SCALE;
|
|
|
+ return new Point(xCoordinate, yCoordinate);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ private Point ConvertToPixel(Point p)
|
|
|
+ {
|
|
|
+ double xCoordinate = (p.X - OPTITRACK_X_OFFSET) * -1 * (0 / (1.816)) + 0;
|
|
|
+ double yCoordinate = (((OPTITRACK_CANVAS_HEIGHT + 0) - (p.Y - OPTITRACK_Y_OFFSET))) * (0 / (1.360));
|
|
|
+ return new Point(xCoordinate, yCoordinate);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public void SetCurrentFingerPosition(Point p)
|
|
|
+ {
|
|
|
+ Point correctedPoint = ConvertTo96thsOfInch(p);
|
|
|
+ if (testing)
|
|
|
+ {
|
|
|
+ Console.WriteLine("raw coordinates: " + p.X + ";" + p.Y);
|
|
|
+ Console.WriteLine(correctedPoint.X + "," + correctedPoint.Y);
|
|
|
+ }
|
|
|
+ currentCursorPosition = correctedPoint;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -397,33 +464,6 @@ namespace SketchAssistantWPF
|
|
|
mouseDown = programPresenter.IsMousePressed();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- public void SetCurrentFingerPosition(Point p)
|
|
|
- {
|
|
|
- Console.WriteLine("raw coordinates: " + p.X + ";" + p.Y);
|
|
|
- Point correctedPoint = ConvertTo96thsOfInch(p);
|
|
|
- Console.WriteLine(correctedPoint.X + "," + correctedPoint.Y);
|
|
|
- currentCursorPosition = correctedPoint;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- private Point ConvertTo96thsOfInch(Point p)
|
|
|
- {
|
|
|
- double xCoordinate = (p.X - OPTITRACK_X_OFFSET) * OPTITRACK_X_SCALE;
|
|
|
- double yCoordinate = (OPTITRACK_CANVAS_HEIGHT - (p.Y - OPTITRACK_Y_OFFSET)) * OPTITRACK_Y_SCALE;
|
|
|
- return new Point(xCoordinate, yCoordinate);
|
|
|
- }
|
|
|
-
|
|
|
- private Point ConvertToPixel(Point p)
|
|
|
- {
|
|
|
- double xCoordinate = (p.X - OPTITRACK_X_OFFSET) * -1 * (0 / (1.816)) + 0;
|
|
|
- double yCoordinate = (((OPTITRACK_CANVAS_HEIGHT + 0) - (p.Y - OPTITRACK_Y_OFFSET))) * (0 / (1.360));
|
|
|
- return new Point(xCoordinate, yCoordinate);
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -447,7 +487,10 @@ namespace SketchAssistantWPF
|
|
|
{
|
|
|
foreach (Point p in currentLine)
|
|
|
{
|
|
|
- Console.WriteLine(p.X + ";" + p.Y);
|
|
|
+ if (testing)
|
|
|
+ {
|
|
|
+ Console.WriteLine(p.X + ";" + p.Y);
|
|
|
+ }
|
|
|
}
|
|
|
if (valid)
|
|
|
{
|
|
@@ -470,12 +513,6 @@ namespace SketchAssistantWPF
|
|
|
UpdateUI();
|
|
|
}
|
|
|
|
|
|
- public float optiTrackX;
|
|
|
- public float optiTrackY;
|
|
|
- public float optiTrackZ;
|
|
|
- private bool optiTrackInsideDrawingZone = false;
|
|
|
- private double WARNING_ZONE_BOUNDARY = 0.10;
|
|
|
- private Armband armband;
|
|
|
|
|
|
void getOptiTrackPosition(OptiTrack.Frame frame)
|
|
|
{
|
|
@@ -483,6 +520,7 @@ namespace SketchAssistantWPF
|
|
|
optiTrackY = frame.Trackables[0].Y;
|
|
|
optiTrackZ = frame.Trackables[0].Z;
|
|
|
}
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -501,7 +539,10 @@ namespace SketchAssistantWPF
|
|
|
{
|
|
|
optiTrackInsideDrawingZone = true;
|
|
|
StartNewLine();
|
|
|
- Console.WriteLine("new line begun");
|
|
|
+ if (testing)
|
|
|
+ {
|
|
|
+ Console.WriteLine("new line begun");
|
|
|
+ }
|
|
|
}
|
|
|
if (optiTrackZ > WARNING_ZONE_BOUNDARY)
|
|
|
{
|
|
@@ -518,7 +559,10 @@ namespace SketchAssistantWPF
|
|
|
{
|
|
|
optiTrackInsideDrawingZone = false;
|
|
|
FinishCurrentLine(true);
|
|
|
- Console.WriteLine("line finished");
|
|
|
+ if (testing)
|
|
|
+ {
|
|
|
+ Console.WriteLine("line finished");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|