mirror of
https://github.com/storytold/LiveScan3D.git
synced 2026-10-09 00:09:58 +00:00
Added new features in live view window.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user