Added new features in live view window.

This commit is contained in:
Marek Kowalski
2017-01-25 11:36:40 +01:00
parent 64027fc77d
commit d15f242aca
+67 -48
View File
@@ -55,6 +55,8 @@ namespace KinectServer
float dx = 0.0f;
float dy = 0.0f;
byte brightnessModifier = 0;
Vector2 MousePrevious = new Vector2();
Vector2 MouseCurrent = new Vector2();
float[] cameraPosition = new float[3];
@@ -69,6 +71,8 @@ namespace KinectServer
DateTime tFPSUpdateTimer = DateTime.Now;
int nTickCounter = 0;
bool bDrawMarkings = true;
// this struct is used for drawing
struct VertexC4ubV3f
{
@@ -112,9 +116,11 @@ namespace KinectServer
WindowBorder = WindowBorder.Resizable;
WindowState = WindowState.Normal;
ClientSize = new System.Drawing.Size(800, 600);
CursorVisible = true;
}
else
{
CursorVisible = false;
WindowBorder = WindowBorder.Hidden;
WindowState = WindowState.Fullscreen;
}
@@ -123,7 +129,39 @@ namespace KinectServer
void OnKeyDown(object sender, KeyboardKeyEventArgs e)
{
// e.Key
var keyboard = e.Keyboard;
if (keyboard[Key.Escape])
{
Exit();
}
if (keyboard[Key.Plus])
{
PointSize += 0.1f;
GL.PointSize(PointSize);
}
if (keyboard[Key.Minus])
{
if (PointSize != 0)
PointSize -= 0.1f;
GL.PointSize(PointSize);
}
if (keyboard[Key.W])
cameraPosition[2] -= KEYBOARD_MOVE_SPEED;
if (keyboard[Key.A])
cameraPosition[0] -= KEYBOARD_MOVE_SPEED;
if (keyboard[Key.S])
cameraPosition[2] += KEYBOARD_MOVE_SPEED;
if (keyboard[Key.D])
cameraPosition[0] += KEYBOARD_MOVE_SPEED;
if (keyboard[Key.F])
ToggleFullscreen();
if (keyboard[Key.M])
bDrawMarkings = !bDrawMarkings;
if (keyboard[Key.O])
brightnessModifier = (byte)Math.Max(0, brightnessModifier - 10);
if (keyboard[Key.P])
brightnessModifier = (byte)Math.Min(255, brightnessModifier + 10);
}
/// <summary>Load resources here.</summary>
@@ -284,72 +322,53 @@ namespace KinectServer
nTickCounter = 0;
}
var keyboard = OpenTK.Input.Keyboard.GetState();
if (keyboard[Key.Escape])
{
Exit();
}
if (keyboard[Key.Plus])
{
PointSize += 0.1f;
GL.PointSize(PointSize);
}
if (keyboard[Key.Minus])
{
if (PointSize != 0)
PointSize -= 0.1f;
GL.PointSize(PointSize);
}
if (keyboard[Key.W])
cameraPosition[2] -= KEYBOARD_MOVE_SPEED;
if (keyboard[Key.A])
cameraPosition[0] -= KEYBOARD_MOVE_SPEED;
if (keyboard[Key.S])
cameraPosition[2] += KEYBOARD_MOVE_SPEED;
if (keyboard[Key.D])
cameraPosition[0] += KEYBOARD_MOVE_SPEED;
if (keyboard[Key.F])
ToggleFullscreen();
lock (vertices)
{
bool bShowSkeletons = settings.bShowSkeletons;
PointCount = vertices.Count / 3;
//bounding box
LineCount = 12;
//markers
LineCount += settings.lMarkerPoses.Count * 3;
//cameras
LineCount += cameraPoses.Count * 3;
if (bShowSkeletons)
LineCount += 24 * bodies.Count;
LineCount = 0;
if (bDrawMarkings)
{
//bounding box
LineCount += 12;
//markers
LineCount += settings.lMarkerPoses.Count * 3;
//cameras
LineCount += cameraPoses.Count * 3;
if (bShowSkeletons)
LineCount += 24 * bodies.Count;
}
VBO = new VertexC4ubV3f[PointCount + 2 * LineCount];
for (int i = 0; i < PointCount; i++)
{
VBO[i].R = (byte)colors[i * 3];
VBO[i].G = (byte)colors[i * 3 + 1];
VBO[i].B = (byte)colors[i * 3 + 2];
VBO[i].R = (byte)Math.Max(0, Math.Min(255, (colors[i * 3] + brightnessModifier)));
VBO[i].G = (byte)Math.Max(0, Math.Min(255, (colors[i * 3 + 1] + brightnessModifier)));
VBO[i].B = (byte)Math.Max(0, Math.Min(255, (colors[i * 3 + 2] + brightnessModifier)));
VBO[i].A = 255;
VBO[i].Position.X = vertices[i * 3];
VBO[i].Position.Y = vertices[i * 3 + 1];
VBO[i].Position.Z = vertices[i * 3 + 2];
}
int iCurLineCount = 0;
iCurLineCount += AddBoundingBox(PointCount + 2 * iCurLineCount);
for (int i = 0; i < settings.lMarkerPoses.Count; i++)
if (bDrawMarkings)
{
iCurLineCount += AddMarker(PointCount + 2 * iCurLineCount, settings.lMarkerPoses[i].pose);
int iCurLineCount = 0;
iCurLineCount += AddBoundingBox(PointCount + 2 * iCurLineCount);
for (int i = 0; i < settings.lMarkerPoses.Count; i++)
{
iCurLineCount += AddMarker(PointCount + 2 * iCurLineCount, settings.lMarkerPoses[i].pose);
}
for (int i = 0; i < cameraPoses.Count; i++)
{
iCurLineCount += AddCamera(PointCount + 2 * iCurLineCount, cameraPoses[i]);
}
if (bShowSkeletons)
iCurLineCount += AddBodies(PointCount + 2 * iCurLineCount);
}
for (int i = 0; i < cameraPoses.Count; i++)
{
iCurLineCount += AddCamera(PointCount + 2 * iCurLineCount, cameraPoses[i]);
}
if (bShowSkeletons)
iCurLineCount += AddBodies(PointCount + 2 * iCurLineCount);
}
}