From 48052d7863ec91cf08576758692d4e15098b03f8 Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks Date: Mon, 12 Sep 2016 09:12:09 +0300 Subject: [PATCH] Add storing and reseting TextureMappingState canvas translation In SetApplicationStateCmd --- src/Application/States/ApplicationBaseState.h | 4 ++++ src/Application/States/TextureMappingState.cpp | 11 +++++++++++ src/Application/States/TextureMappingState.h | 3 +++ src/Commands/SetApplicationStateCmd.cpp | 3 +++ src/Commands/SetApplicationStateCmd.h | 2 ++ 5 files changed, 23 insertions(+) diff --git a/src/Application/States/ApplicationBaseState.h b/src/Application/States/ApplicationBaseState.h index 80aa507..07d2457 100644 --- a/src/Application/States/ApplicationBaseState.h +++ b/src/Application/States/ApplicationBaseState.h @@ -25,6 +25,10 @@ class ApplicationBaseState { virtual void onBackgroundPressed(Application * app, GuiBackgroundEvent & e){} virtual void onGuiEvent(Application * app, GuiEvent & e) = 0; + + // These are only used by TextureMappingState for now. + virtual ofPoint getTranslation(){ return ofPoint(0, 0); } + virtual void setTranslation(ofPoint p){} }; diff --git a/src/Application/States/TextureMappingState.cpp b/src/Application/States/TextureMappingState.cpp index 0c520ba..cdc878e 100644 --- a/src/Application/States/TextureMappingState.cpp +++ b/src/Application/States/TextureMappingState.cpp @@ -125,5 +125,16 @@ void TextureMappingState::onMouseDragged(Application * app, ofMouseEventArgs & a } } +ofPoint TextureMappingState::getTranslation(){ + cout << "TextureMappingState::getTranslation()" << endl; + return _canvasTranslate; +} + +void TextureMappingState::setTranslation(ofPoint p){ + cout << "TextureMappingState::setTranslation()" << endl; + _canvasTranslate = p; + _clickCanvasTranslate = p; +} + } // namespace piMapper } // namespace ofx \ No newline at end of file diff --git a/src/Application/States/TextureMappingState.h b/src/Application/States/TextureMappingState.h index dee24b3..de3c021 100644 --- a/src/Application/States/TextureMappingState.h +++ b/src/Application/States/TextureMappingState.h @@ -27,6 +27,9 @@ class TextureMappingState : public ApplicationBaseState { void onMouseDragged(Application * app, ofMouseEventArgs & args); void onGuiEvent(Application * app, GuiEvent & e){} + + ofPoint getTranslation(); + void setTranslation(ofPoint p); private: static TextureMappingState * _instance; diff --git a/src/Commands/SetApplicationStateCmd.cpp b/src/Commands/SetApplicationStateCmd.cpp index e691fec..8246b84 100644 --- a/src/Commands/SetApplicationStateCmd.cpp +++ b/src/Commands/SetApplicationStateCmd.cpp @@ -21,6 +21,8 @@ SetApplicationStateCmd::SetApplicationStateCmd(Application * app, void SetApplicationStateCmd::exec(){ _prevApplicationState = _application->getState(); _application->setState(_applicationState); + _applicationState->setTranslation(ofPoint(0, 0)); + _translation = _prevApplicationState->getTranslation(); // TODO: To be removed. _prevGuiMode = _gui->getMode(); @@ -30,6 +32,7 @@ void SetApplicationStateCmd::exec(){ void SetApplicationStateCmd::undo(){ ofLogNotice("SetApplicationStateCmd", "undo"); _application->setState(_prevApplicationState); + _application->getState()->setTranslation(_translation); // TODO: To be removed. _gui->setMode(_prevGuiMode); diff --git a/src/Commands/SetApplicationStateCmd.h b/src/Commands/SetApplicationStateCmd.h index 0776215..61daf9a 100644 --- a/src/Commands/SetApplicationStateCmd.h +++ b/src/Commands/SetApplicationStateCmd.h @@ -26,6 +26,8 @@ class SetApplicationStateCmd : public BaseUndoCmd { ApplicationBaseState * _prevApplicationState; ApplicationBaseState * _applicationState; + ofPoint _translation; + // TODO: Remove these after porting to app state system is done SurfaceManagerGui * _gui; int _prevGuiMode;