void glutKeyboard (unsigned char key, int x, int y)
{
    switch (key)
    {
    case 27:
        exit (1);
    case '1':
        g_nViewState = DISPLAY_MODE_OVERLAY;
        g_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);
        break;
    case '2':
        g_nViewState = DISPLAY_MODE_DEPTH;
        g_depth.GetAlternativeViewPointCap().ResetViewPoint();
        break;
    case '3':
        g_nViewState = DISPLAY_MODE_IMAGE;
        g_depth.GetAlternativeViewPointCap().ResetViewPoint();
        break;
    case 's':
        takePhoto();
        break;
    case 'm':
        g_context.SetGlobalMirror(!g_context.GetGlobalMirror());
        break;
    }
}
void toggleMirror(int )
{
	XnStatus nRetVal = g_Context.SetGlobalMirror(!g_Context.GetGlobalMirror());
	if (nRetVal != XN_STATUS_OK)
	{
		displayMessage("Failed to set global mirror: %s", xnGetStatusString(nRetVal));
	}
}
Exemple #3
0
//----------------------------------------------------
// キーボード処理
//----------------------------------------------------
void glutKeyboard (unsigned char key, int x, int y){
	switch (key){
		case '1':	// オーバーレイモード
			g_nViewState = DISPLAY_MODE_OVERLAY;
			g_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);	// イメージとデプスのずれを無くす
			break;
		case '2':	// デプスモード
			g_nViewState = DISPLAY_MODE_DEPTH;
			g_depth.GetAlternativeViewPointCap().ResetViewPoint();		// デプスの大きさを元に戻す?
			break;
		case '3':	// イメージモード
			g_nViewState = DISPLAY_MODE_IMAGE;
			g_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);	// イメージとデプスのずれを無くす
			break;
		case '4':	// クロマキーモード
			g_nViewState = DISPLAY_MODE_CHROMA;
			g_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);	// イメージとデプスのずれを無くす
			break;
		case '5':	// ポイントクラウドモード
			g_nViewState = DISPLAY_MODE_POINT_CLOUD;
			g_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);	// イメージとデプスのずれを無くす
			break;
			
		case 'm':	// ★連打厳禁!!(何故か重くなる)★
			g_context.SetGlobalMirror(!g_context.GetGlobalMirror());	// ミラーリング
			break;
		case 'd':
			g_debugMode = !g_debugMode;									// デバッグモードのオンオフ
			break;

		case 'f':
			g_fullScreenMode = !g_fullScreenMode;	// フルスクリーンモードの切り替え(トグルスイッチ)

			if(g_fullScreenMode){					// フルスクリーンモード
				glutFullScreen();
			}else{									// ウィンドウモード
				glutPositionWindow(100, 100);
				glutReshapeWindow(KINECT_IMAGE_WIDTH, KINECT_IMAGE_HEIGHT);
			}
			break;

		case 's':	// スクリーンショットを撮る(深さも撮る)
			g_screenShotDepthMode = true;
		case 'S':	// スクリーンショットを撮る(深さは撮らない)
			g_screenShotImageMode = true;
			break;

		case 'R':	// レコードストップ
			g_recorder.RemoveNodeFromRecording(g_image);
			g_recorder.RemoveNodeFromRecording(g_depth);

			cout << "recording stop!" << endl;
			break;

		// 閾値の増減
		case 't': g_chromaThresh += 10; break;
		case 'T': g_chromaThresh -= 10; break;

		//case 'p':
		//	g_pointSize += 0.000001;
		//	break;
		//case 'P':
		//	g_pointSize -= 0.000001;
		//	break;

		// 視点移動
		case 'x': g_lokEyeX ++; g_lokDirX ++; break;
		case 'X': g_lokEyeX --; g_lokDirX --; break;
		case 'y': g_lokEyeY ++; g_lokDirY ++; break;
		case 'Y': g_lokEyeY --; g_lokDirY --; break;
		case 'z': g_lokEyeZ += 1; g_lokDirZ += 1; break;
		case 'Z': g_lokEyeZ -= 1; g_lokDirZ -= 1; break;

		// 強制終了
		case 27:	// Escボタン
		case 'q':
		case 'Q':
			exit (1);
	}
}
bool GetMirrorMode()
{
	return (deviceContext.GetGlobalMirror() == 0) ? false : true;
}