From 830c57a71eb071c74a5f074196e7da4faed397d8 Mon Sep 17 00:00:00 2001 From: magdesign Date: Sat, 11 Nov 2017 12:54:39 +0100 Subject: [PATCH 01/12] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e38fa9b..85f6af1 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ Would be cool to adjust the speed with a simple flag, simple opacity transition ### 2. Play all videos from a folder This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* ### 3. Circular shapes for mapping (there are only square and tringle shapes so far) -Circualr mapping shape +Circualr mapping shape (if possible with movable center distorsion) ### 4. Grid Warp (meshing of square shapes) +check out this http://www.hv-a.com/lpmt/sssm.pdf on page: 10 https://forum.openframeworks.cc/t/grid-mesh-warping/12883 ### 5. SoftEdge Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. From 194d268e3d4d54798a84926742951dfc89a8650c Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 20 Nov 2017 12:24:52 +0100 Subject: [PATCH 02/12] changed keyboard shortcuts to PVJ 3.x --- .../Modes/ProjectionMappingMode.cpp | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Application/Modes/ProjectionMappingMode.cpp b/src/Application/Modes/ProjectionMappingMode.cpp index 39d4f5b..6351f57 100644 --- a/src/Application/Modes/ProjectionMappingMode.cpp +++ b/src/Application/Modes/ProjectionMappingMode.cpp @@ -64,11 +64,11 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->createSurface(SurfaceType::GRID_WARP_SURFACE); break; - case 'h': + case 'x': app->createSurface(SurfaceType::HEXAGON_SURFACE); break; - case OF_KEY_BACKSPACE: + case 'd': app->eraseSurface(app->getSurfaceManager()->getSelectedSurfaceIndex()); break; @@ -76,19 +76,19 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->togglePerspective(); break; - case '}': + case 'n': app->addGridRow(); break; - case '{': + case 'm': app->removeGridRow(); break; - case ']': + case 'v': app->addGridColumn(); break; - case '[': + case 'b': app->removeGridColumn(); break; @@ -100,15 +100,15 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->selectPrevSurface(); break; - case '>': + case 'k': app->selectNextVertex(); break; - case '<': + case 'l': app->selectPrevVertex(); break; - case OF_KEY_UP: + case '8': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(0.0f, -10.0f)); }else{ @@ -116,7 +116,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case OF_KEY_DOWN: + case '9': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(0.0f, 10.0f)); }else{ @@ -124,7 +124,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case OF_KEY_LEFT: + case '7': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(-10.0f, 0.0f)); }else{ @@ -132,7 +132,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case OF_KEY_RIGHT: + case '0': if(app->isShiftKeyDown()){ app->moveSelection(ofVec2f(10.0f, 0.0f)); }else{ @@ -140,23 +140,23 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg } break; - case ' ': + case 'w': app->togglePause(); break; - case OF_KEY_TAB: + case '5': app->setNextSource(); break; - case 'd': + case 'a': app->duplicateSurface(); break; - case '0': // Move selected surface up the layer stack + case 'h': // Move selected surface up the layer stack app->moveLayerUp(); break; - case '9': // Move selected surface down the layer stack + case 'j': // Move selected surface down the layer stack app->moveLayerDown(); break; @@ -168,7 +168,7 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->scaleDown(); break; - case 'l': + case 'y': _bDrawLayerPanel = !_bDrawLayerPanel; break; @@ -295,4 +295,4 @@ void ProjectionMappingMode::onGuiEvent(Application * app, GuiEvent & e){ } } // namespace piMapper -} // namespace ofx \ No newline at end of file +} // namespace ofx From 75b8c7f4129815cbb0b6ca359efbdb41f69af15e Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 20 Nov 2017 12:30:27 +0100 Subject: [PATCH 03/12] Updatet Keystrokes to PVJ 3.x --- src/Application/Application.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/Application.cpp b/src/Application/Application.cpp index 88aa30b..e38ae8c 100644 --- a/src/Application/Application.cpp +++ b/src/Application/Application.cpp @@ -121,7 +121,7 @@ void Application::onKeyPressed(ofKeyEventArgs & args){ setSourceMode(); break; - case 'i': + case 'c': toggleInfo(); break; @@ -133,7 +133,7 @@ void Application::onKeyPressed(ofKeyEventArgs & args){ undo(); break; - case 'n': + case 'f': setNextPreset(); break; From 5a3c678139f129903c8ad4e92a9af552d0b3ddd4 Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 20 Nov 2017 20:51:06 +0100 Subject: [PATCH 04/12] Update README.md --- README.md | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 85f6af1..7d5e2bb 100644 --- a/README.md +++ b/README.md @@ -185,33 +185,41 @@ Key | Function 2 | Texture editing mode 3 | Projection mapping mode, use this to select a surface first 4 | Source selection mode -i | Show info +c | Show info t | Add triangle surface q | Add quad surface +x | Add quad surface g | Add grid warp surface -d | duplicate selected surface -\+ | Scale surface up -\- | Scale surface down +a | duplicate selected surface ++ | Scale surface up +- | Scale surface down p | toggle perspective warping (quad surfaces only) -] | add columns to grid surface (grid warp surfaces only) -[ | remove columns from grid surface (grid warp surfaces only) -} | add rows to grid surface (grid warp surfaces only) -{ | remove rows from grid surface (grid warp surfaces only) +v | add columns to grid surface (grid warp surfaces only) +b | remove columns from grid surface (grid warp surfaces only) +n | add rows to grid surface (grid warp surfaces only) +m | remove rows from grid surface (grid warp surfaces only) . | select next surface (projection mapping mode only) , | select previous surface (projection mapping mode only) -\> | select next vertex -\< | select previous vertex -0 | Move selected surface one layer up -9 | Move selected surface one layer down +k | select next vertex +l | select previous vertex +h | Move selected surface one layer up +j | Move selected surface one layer down s | Save composition -l | Hide/show layer panel +y | Hide/show layer panel z | Undo rbt | Reboot (Raspberry Pi only) sdn | Shutdown (Raspberry Pi only) new | Clear composition (remove all surfaces) ext | Exit application and return to command line -BACKSPACE ('\' via SSH) | Delete surface. -SPACE | Toggle pause for video sources (texture and projection mapping modes) -TAB | Select next source (no need to use the source selection interface) -Arrow keys | Move selection. If no surface is selected in the projection mapping mode, all surfaces are moved. +d | Delete surface. +w | Toggle pause for video sources (texture and projection mapping modes) +5 | Select next source (no need to use the source selection interface) +8 | Move selection Up +9 | Move selection Down +7 | Move selection Left +0 | Move selection Right +If no surface is selected in the projection mapping mode, all surfaces are moved. + +Dont know if this works already: + \/ | Toggle 1px/10px steps for keyboard moves on Raspberry Pi From bf61d47cb26b6fd838a8124be56b6a760ded5aa9 Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 20 Nov 2017 20:51:50 +0100 Subject: [PATCH 05/12] Update README.md --- README.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/README.md b/README.md index 7d5e2bb..968bdd7 100644 --- a/README.md +++ b/README.md @@ -48,15 +48,6 @@ You can use the example application of the addon for projection mapping projects ``` -## Compiling on Linux - -There might be issues with compiling because `ofxOMXPlayer` and `ofxRPiCameraVideoGrabber` addons do not exist on Linux and also other non-RPi platforms. To avoid the issues, do the following. - -1. Open `example/addons.make` and remove ofxOMXPlayer line. -2. Open `example-camera/addons.make` and remove ofxRPiCameraVideoGrabber line. -3. Compile one or both examples by using make. - - ## Problems with Audio If you are having problems with audio playback, here are two steps for you. Before you do these, make sure audio of your video file works. From 6aff63c316bf6e98c77b718c970419b8a9d737c2 Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 20 Nov 2017 20:55:01 +0100 Subject: [PATCH 06/12] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 968bdd7..a5215ce 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,8 @@ q | Add quad surface x | Add quad surface g | Add grid warp surface a | duplicate selected surface -+ | Scale surface up -- | Scale surface down +\+ | Scale surface up +\- | Scale surface down p | toggle perspective warping (quad surfaces only) v | add columns to grid surface (grid warp surfaces only) b | remove columns from grid surface (grid warp surfaces only) From 6d0b641a26dd25f5432dceadabe8e2d4d0f5158b Mon Sep 17 00:00:00 2001 From: magdesign Date: Sat, 25 Nov 2017 17:22:41 +0100 Subject: [PATCH 07/12] Update ProjectionMappingMode.cpp --- src/Application/Modes/ProjectionMappingMode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Application/Modes/ProjectionMappingMode.cpp b/src/Application/Modes/ProjectionMappingMode.cpp index 6351f57..9495743 100644 --- a/src/Application/Modes/ProjectionMappingMode.cpp +++ b/src/Application/Modes/ProjectionMappingMode.cpp @@ -160,11 +160,11 @@ void ProjectionMappingMode::onKeyPressed(Application * app, ofKeyEventArgs & arg app->moveLayerDown(); break; - case '+': // Scale surface up + case 'o': // Scale surface up app->scaleUp(); break; - case '-': // Scale surface down + case 'i': // Scale surface down app->scaleDown(); break; From 3ce53c1fecfb468868047ac1f85d9c491079b7d8 Mon Sep 17 00:00:00 2001 From: magdesign Date: Sat, 25 Nov 2017 17:40:01 +0100 Subject: [PATCH 08/12] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a5215ce..cc1feb4 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,8 @@ q | Add quad surface x | Add quad surface g | Add grid warp surface a | duplicate selected surface -\+ | Scale surface up -\- | Scale surface down +o | Scale surface up +i | Scale surface down p | toggle perspective warping (quad surfaces only) v | add columns to grid surface (grid warp surfaces only) b | remove columns from grid surface (grid warp surfaces only) From ed71ea38b4871a69e477a22eedf097c11984c288 Mon Sep 17 00:00:00 2001 From: magdesign Date: Tue, 28 Nov 2017 21:30:37 +0100 Subject: [PATCH 09/12] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index cc1feb4..a673779 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,6 @@ This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. -The keybindings will be changed to ones matching to PocketVJ CP and there will be an audio branch added. - # ofxPiMapper From e161a626c6b6035fffb0b1fa4bbac4e268e84c1d Mon Sep 17 00:00:00 2001 From: magdesign Date: Wed, 29 Nov 2017 23:30:04 +0100 Subject: [PATCH 10/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a673779..f9b3695 100644 --- a/README.md +++ b/README.md @@ -177,7 +177,7 @@ Key | Function c | Show info t | Add triangle surface q | Add quad surface -x | Add quad surface +x | Add hexagon surface g | Add grid warp surface a | duplicate selected surface o | Scale surface up From bc9dd8e06e55465691b6c30a6fcc72cb65e3d6fe Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 4 Dec 2017 14:19:05 +0100 Subject: [PATCH 11/12] Update README.md --- README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f9b3695..ab9c5d4 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,20 @@ This should be selectable as an additional FBO source in PiMapper, looping all images in the /media/internal/images/* folder Would be cool to adjust the speed with a simple flag, simple opacity transition welcome, but not necessary. Refresh state, so it checks if there are new images added during playback and play them as well. make all images fullscreen. (if its not possible to handle various sizes as one, i will make an imagemagick script to convert all to 1920x1080) -### 2. Play all videos from a folder -This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* -### 3. Circular shapes for mapping (there are only square and tringle shapes so far) +### 2. Circular shapes for mapping (there are only square and tringle shapes so far) Circualr mapping shape (if possible with movable center distorsion) -### 4. Grid Warp (meshing of square shapes) +### 3. Bezier handles +Adding bezier handles to masks for better aligment: https://github.com/TsubokuLab/ofxBezierWarpManager +### 4. Play all videos from a folder +This should be a an additional FBO source in PiMapper, looping all videos in /media/internal/video/* +### 5. Grid Warp (meshing of square shapes) check out this http://www.hv-a.com/lpmt/sssm.pdf on page: 10 https://forum.openframeworks.cc/t/grid-mesh-warping/12883 -### 5. SoftEdge +### 6. SoftEdge Image overlay to making adges transparent, could be achieved with overlaing a png with a black gradient. +Finalize the mapping converter: https://github.com/magdesign/mapping-converter + This will be an opensource project and freely available for everyone. Targeting OF_0.9.x on RaspberryPi. Each function will be rewarded to the coder from a pot sponsered by pocketvj.com. From a9f9fcab64744ab4ecbb49616b195df00732c2a5 Mon Sep 17 00:00:00 2001 From: magdesign Date: Mon, 4 Dec 2017 14:19:32 +0100 Subject: [PATCH 12/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ab9c5d4..2b3f6e2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This should be selectable as an additional FBO source in PiMapper, looping all i Would be cool to adjust the speed with a simple flag, simple opacity transition welcome, but not necessary. Refresh state, so it checks if there are new images added during playback and play them as well. make all images fullscreen. (if its not possible to handle various sizes as one, i will make an imagemagick script to convert all to 1920x1080) ### 2. Circular shapes for mapping (there are only square and tringle shapes so far) -Circualr mapping shape (if possible with movable center distorsion) +Circular mapping shape (if possible with movable center distorsion) ### 3. Bezier handles Adding bezier handles to masks for better aligment: https://github.com/TsubokuLab/ofxBezierWarpManager ### 4. Play all videos from a folder