From 07232410b51426dc7af87dddf64945de3f3b847b Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks Date: Sat, 6 Feb 2016 14:51:34 +0100 Subject: [PATCH] Exec `MvSelectionCmd` on arrow keypresses --- src/Application/ProjectionMappingState.cpp | 34 +++++++++++++++++++++- src/Application/ProjectionMappingState.h | 1 + 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/Application/ProjectionMappingState.cpp b/src/Application/ProjectionMappingState.cpp index 5beb82c..4e56ba2 100644 --- a/src/Application/ProjectionMappingState.cpp +++ b/src/Application/ProjectionMappingState.cpp @@ -18,7 +18,7 @@ void ProjectionMappingState::draw(Application * app){ void ProjectionMappingState::onKeyPressed(Application * app, ofKeyEventArgs & args){ switch(args.key){ - + case 't': app->getCmdManager()->exec( new AddSurfaceCmd( @@ -136,6 +136,38 @@ void ProjectionMappingState::onKeyPressed(Application * app, ofKeyEventArgs & ar case '<': app->getCmdManager()->exec(new SelPrevVertexCmd(app->getSurfaceManager())); break; + + case OF_KEY_UP: + if(app->isShiftKeyDown()){ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(0.0f, -10.0f))); + }else{ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(0.0f, -1.0f))); + } + break; + + case OF_KEY_DOWN: + if(app->isShiftKeyDown()){ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(0.0f, 10.0f))); + }else{ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(0.0f, 1.0f))); + } + break; + + case OF_KEY_LEFT: + if(app->isShiftKeyDown()){ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(-10.0f, 0.0f))); + }else{ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(-1.0f, 0.0f))); + } + break; + + case OF_KEY_RIGHT: + if(app->isShiftKeyDown()){ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(10.0f, 0.0f))); + }else{ + app->getCmdManager()->exec(new MvSelectionCmd(app->getSurfaceManager(), ofVec2f(1.0f, 0.0f))); + } + break; default: break; diff --git a/src/Application/ProjectionMappingState.h b/src/Application/ProjectionMappingState.h index 4905b44..10cef68 100644 --- a/src/Application/ProjectionMappingState.h +++ b/src/Application/ProjectionMappingState.h @@ -14,6 +14,7 @@ #include "SelPrevSurfaceCmd.h" #include "SelNextVertexCmd.h" #include "SelPrevVertexCmd.h" +#include "MvSelectionCmd.h" #include "TogglePerspectiveCmd.h" #include "SurfaceType.h"