mirror of
https://github.com/storytold/LiveScan3D.git
synced 2026-10-18 07:34:02 +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 dx = 0.0f;
|
||||||
float dy = 0.0f;
|
float dy = 0.0f;
|
||||||
|
|
||||||
|
byte brightnessModifier = 0;
|
||||||
|
|
||||||
Vector2 MousePrevious = new Vector2();
|
Vector2 MousePrevious = new Vector2();
|
||||||
Vector2 MouseCurrent = new Vector2();
|
Vector2 MouseCurrent = new Vector2();
|
||||||
float[] cameraPosition = new float[3];
|
float[] cameraPosition = new float[3];
|
||||||
@@ -69,6 +71,8 @@ namespace KinectServer
|
|||||||
DateTime tFPSUpdateTimer = DateTime.Now;
|
DateTime tFPSUpdateTimer = DateTime.Now;
|
||||||
int nTickCounter = 0;
|
int nTickCounter = 0;
|
||||||
|
|
||||||
|
bool bDrawMarkings = true;
|
||||||
|
|
||||||
// this struct is used for drawing
|
// this struct is used for drawing
|
||||||
struct VertexC4ubV3f
|
struct VertexC4ubV3f
|
||||||
{
|
{
|
||||||
@@ -112,9 +116,11 @@ namespace KinectServer
|
|||||||
WindowBorder = WindowBorder.Resizable;
|
WindowBorder = WindowBorder.Resizable;
|
||||||
WindowState = WindowState.Normal;
|
WindowState = WindowState.Normal;
|
||||||
ClientSize = new System.Drawing.Size(800, 600);
|
ClientSize = new System.Drawing.Size(800, 600);
|
||||||
|
CursorVisible = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
CursorVisible = false;
|
||||||
WindowBorder = WindowBorder.Hidden;
|
WindowBorder = WindowBorder.Hidden;
|
||||||
WindowState = WindowState.Fullscreen;
|
WindowState = WindowState.Fullscreen;
|
||||||
}
|
}
|
||||||
@@ -123,7 +129,39 @@ namespace KinectServer
|
|||||||
|
|
||||||
void OnKeyDown(object sender, KeyboardKeyEventArgs e)
|
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>
|
/// <summary>Load resources here.</summary>
|
||||||
@@ -284,72 +322,53 @@ namespace KinectServer
|
|||||||
nTickCounter = 0;
|
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)
|
lock (vertices)
|
||||||
{
|
{
|
||||||
bool bShowSkeletons = settings.bShowSkeletons;
|
bool bShowSkeletons = settings.bShowSkeletons;
|
||||||
|
|
||||||
PointCount = vertices.Count / 3;
|
PointCount = vertices.Count / 3;
|
||||||
//bounding box
|
LineCount = 0;
|
||||||
LineCount = 12;
|
if (bDrawMarkings)
|
||||||
//markers
|
{
|
||||||
LineCount += settings.lMarkerPoses.Count * 3;
|
//bounding box
|
||||||
//cameras
|
LineCount += 12;
|
||||||
LineCount += cameraPoses.Count * 3;
|
//markers
|
||||||
if (bShowSkeletons)
|
LineCount += settings.lMarkerPoses.Count * 3;
|
||||||
LineCount += 24 * bodies.Count;
|
//cameras
|
||||||
|
LineCount += cameraPoses.Count * 3;
|
||||||
|
if (bShowSkeletons)
|
||||||
|
LineCount += 24 * bodies.Count;
|
||||||
|
}
|
||||||
|
|
||||||
VBO = new VertexC4ubV3f[PointCount + 2 * LineCount];
|
VBO = new VertexC4ubV3f[PointCount + 2 * LineCount];
|
||||||
|
|
||||||
for (int i = 0; i < PointCount; i++)
|
for (int i = 0; i < PointCount; i++)
|
||||||
{
|
{
|
||||||
VBO[i].R = (byte)colors[i * 3];
|
VBO[i].R = (byte)Math.Max(0, Math.Min(255, (colors[i * 3] + brightnessModifier)));
|
||||||
VBO[i].G = (byte)colors[i * 3 + 1];
|
VBO[i].G = (byte)Math.Max(0, Math.Min(255, (colors[i * 3 + 1] + brightnessModifier)));
|
||||||
VBO[i].B = (byte)colors[i * 3 + 2];
|
VBO[i].B = (byte)Math.Max(0, Math.Min(255, (colors[i * 3 + 2] + brightnessModifier)));
|
||||||
VBO[i].A = 255;
|
VBO[i].A = 255;
|
||||||
VBO[i].Position.X = vertices[i * 3];
|
VBO[i].Position.X = vertices[i * 3];
|
||||||
VBO[i].Position.Y = vertices[i * 3 + 1];
|
VBO[i].Position.Y = vertices[i * 3 + 1];
|
||||||
VBO[i].Position.Z = vertices[i * 3 + 2];
|
VBO[i].Position.Z = vertices[i * 3 + 2];
|
||||||
}
|
}
|
||||||
|
|
||||||
int iCurLineCount = 0;
|
if (bDrawMarkings)
|
||||||
iCurLineCount += AddBoundingBox(PointCount + 2 * iCurLineCount);
|
|
||||||
for (int i = 0; i < settings.lMarkerPoses.Count; i++)
|
|
||||||
{
|
{
|
||||||
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