diff --git a/.gitignore b/.gitignore index e43b0f9..e8d9ce7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +example-* diff --git a/example-fboTexture/.gitignore b/example-fboTexture/.gitignore deleted file mode 100644 index 1af20d0..0000000 --- a/example-fboTexture/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -obj -*.xcodeproj -*.plist -*.xcconfig -*~ -config.make diff --git a/example-fboTexture/Makefile b/example-fboTexture/Makefile deleted file mode 100644 index 7a7fe8b..0000000 --- a/example-fboTexture/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Attempt to load a config.make file. -# If none is found, project defaults in config.project.make will be used. -ifneq ($(wildcard config.make),) - include config.make -endif - -# make sure the the OF_ROOT location is defined -ifndef OF_ROOT - OF_ROOT=../../.. -endif - -# call the project makefile! -include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk diff --git a/example-fboTexture/addons.make b/example-fboTexture/addons.make deleted file mode 100644 index 802cd29..0000000 --- a/example-fboTexture/addons.make +++ /dev/null @@ -1,3 +0,0 @@ -ofxPiMapper -ofxUI -ofxXmlSettings diff --git a/example-fboTexture/bin/.gitignore b/example-fboTexture/bin/.gitignore deleted file mode 100644 index 44fbbc9..0000000 --- a/example-fboTexture/bin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.app -data/*.jpg -data/settings.xml -data/surfaces.xml diff --git a/example-fboTexture/bin/data/defaultSurfaces.xml b/example-fboTexture/bin/data/defaultSurfaces.xml deleted file mode 100755 index 4bcc56a..0000000 --- a/example-fboTexture/bin/data/defaultSurfaces.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - 250.000000000 - 34.000000000 - - - 374.000000000 - 201.000000000 - - - 535.000000000 - 35.000000000 - - - - - 0.101999998 - 0.335999995 - - - 0.328000009 - 0.689999998 - - - 0.705999970 - 0.393999994 - - - - image - image1.jpg - - - - - - 24.396121979 - 259.170288086 - - - 250.000000000 - 34.000000000 - - - 214.630920410 - 282.926849365 - - - - - 0.251666665 - 0.090000004 - - - 0.449999988 - 0.696666658 - - - 0.870000005 - 0.173333332 - - - - image - image5.jpg - - - - - - 75.709846497 - 450.636596680 - - - 214.630920410 - 282.926849365 - - - 24.396121979 - 259.170288086 - - - - - 0.981523871 - 0.471785098 - - - 0.245601788 - 0.110941604 - - - 0.662217021 - 0.714698017 - - - - image - image4.jpg - - - - - - 527.148498535 - 277.815002441 - - - 320.170959473 - 461.102355957 - - - 285.250427246 - 209.424682617 - - - - - 0.031067841 - 0.511202157 - - - 0.450178742 - 0.116164304 - - - 0.543386877 - 0.609848201 - - - - image - none - - - diff --git a/example-fboTexture/bin/data/sources/images/image1.jpg b/example-fboTexture/bin/data/sources/images/image1.jpg deleted file mode 100644 index 88cf12e..0000000 Binary files a/example-fboTexture/bin/data/sources/images/image1.jpg and /dev/null differ diff --git a/example-fboTexture/bin/data/sources/images/image2.jpg b/example-fboTexture/bin/data/sources/images/image2.jpg deleted file mode 100644 index 4111693..0000000 Binary files a/example-fboTexture/bin/data/sources/images/image2.jpg and /dev/null differ diff --git a/example-fboTexture/bin/data/sources/images/image3.jpg b/example-fboTexture/bin/data/sources/images/image3.jpg deleted file mode 100644 index fffdd35..0000000 Binary files a/example-fboTexture/bin/data/sources/images/image3.jpg and /dev/null differ diff --git a/example-fboTexture/bin/data/sources/images/image4.jpg b/example-fboTexture/bin/data/sources/images/image4.jpg deleted file mode 100644 index 3291a57..0000000 Binary files a/example-fboTexture/bin/data/sources/images/image4.jpg and /dev/null differ diff --git a/example-fboTexture/bin/data/sources/images/image5.jpg b/example-fboTexture/bin/data/sources/images/image5.jpg deleted file mode 100644 index d9f2908..0000000 Binary files a/example-fboTexture/bin/data/sources/images/image5.jpg and /dev/null differ diff --git a/example-fboTexture/src/main.cpp b/example-fboTexture/src/main.cpp deleted file mode 100644 index 0e0278d..0000000 --- a/example-fboTexture/src/main.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "ofMain.h" -#include "ofApp.h" - -int main() -{ -#ifdef TARGET_RASPBERRY_PI - ofSetupOpenGL(600, 500, OF_FULLSCREEN); -#else - ofSetupOpenGL(600, 500, OF_WINDOW); -#endif - ofRunApp(new ofApp()); -} \ No newline at end of file diff --git a/example-fboTexture/src/ofApp.cpp b/example-fboTexture/src/ofApp.cpp deleted file mode 100755 index 7012632..0000000 --- a/example-fboTexture/src/ofApp.cpp +++ /dev/null @@ -1,164 +0,0 @@ -#include "ofApp.h" - -void ofApp::setup() -{ - bShowInfo = false; - - // check if the surfaces.xml file is there - // if not - load defaultSurfaces.xml - if ( ofFile::doesFileExist("surfaces.xml") ) { - surfaceManager.loadXmlSettings("surfaces.xml"); - } else { - surfaceManager.loadXmlSettings("defaultSurfaces.xml"); - } - - // Pass the surface manager to the mapper graphical user interface - gui.setSurfaceManager( &surfaceManager ); - - // Create FBO - fbo = new ofFbo(); - fbo->allocate( 500, 500 ); - setFboAsTexture(); - - // Genereate rects - int numRects = 20; // change this to add more or less rects - for ( int i=0; igetHeight()), fbo->getWidth(), ofRandom(20)) ); - rectSpeeds.push_back( (1.0f + ofRandom(5)) ); - } -} - -void ofApp::update() -{ - // Move rects - for ( int i=0; i fbo->getHeight() ) { - rects[i].y = -rects[i].getHeight(); - } - } - - // Fill FBO - fbo->begin(); - ofClear(0); - ofBackground(0); - ofSetColor(255); - for ( int i=0; iend(); -} - -void ofApp::draw() -{ - // Draw the piMapper GUI - gui.draw(); - - if ( bShowInfo ) { - // Draw instructions - stringstream ss; - ss << "There are 4 modes:\n\n"; - ss << " 1. Presentation mode\n"; - ss << " 2. Texture mapping mode\n"; - ss << " 3. Projection mapping mode\n"; - ss << " 4. Source selection mode\n\n"; - ss << "You can switch between the modes by using <1>, <2>, <3> and <4> keys on the keyboard.\n\n"; - ss << "Press or to add random or normal surface.\n"; - ss << "Press to add a new quad surface.\n"; - ss << "Press to save the composition.\n"; - ss << "Press to toggle fullscreen.\n"; - ss << "Press to reassign the fbo texture to the first surface\n"; - ss << "Hit to hide this message."; - - ofDrawBitmapStringHighlight(ss.str(), 10, 20, ofColor(0,0,0,100), ofColor(255,255,255,200)); - } -} - -void ofApp::exit() -{ - // Clear FBO from mem - delete fbo; -} - -void ofApp::keyPressed(int key) -{ - cout << "Key pressed: " << static_cast(key) << endl; - - switch (key) { - case '1': gui.setMode(ofxGuiMode::NONE); break; - case '2': gui.setMode(ofxGuiMode::TEXTURE_MAPPING); break; - case '3': gui.setMode(ofxGuiMode::PROJECTION_MAPPING); break; - case '4': gui.setMode(ofxGuiMode::SOURCE_SELECTION); break; - case 'i': bShowInfo = !bShowInfo; break; - case 'r': addRandomSurface(); break; - case 'q': addQuadSurface(); break; - case 'n': addSurface(); break; - case 'f': ofToggleFullscreen(); break; - case 's': surfaceManager.saveXmlSettings("surfaces.xml"); break; - case 'a': setFboAsTexture(); break; - case OF_KEY_BACKSPACE: surfaceManager.removeSelectedSurface(); break; - default: break; - } -} - -void ofApp::addRandomSurface() -{ - int surfaceType = ofxSurfaceType::TRIANGLE_SURFACE; - vector vertices; - vertices.push_back( ofVec2f( ofRandomWidth(), ofRandomHeight() ) ); - vertices.push_back( ofVec2f( ofRandomWidth(), ofRandomHeight() ) ); - vertices.push_back( ofVec2f( ofRandomWidth(), ofRandomHeight() ) ); - vector texCoords; - texCoords.push_back( ofVec2f( ofRandomuf(), ofRandomuf() ) ); - texCoords.push_back( ofVec2f( ofRandomuf(), ofRandomuf() ) ); - texCoords.push_back( ofVec2f( ofRandomuf(), ofRandomuf() ) ); - surfaceManager.addSurface(surfaceType, vertices, texCoords); - - // select this surface right away - surfaceManager.selectSurface(surfaceManager.size()-1); -} - -void ofApp::addQuadSurface() -{ - int surfaceType = ofxSurfaceType::QUAD_SURFACE; - vector vertices; - - int border = 50; - vertices.push_back( ofVec2f(border, border) ); - vertices.push_back( ofVec2f(border, ofGetHeight() - border) ); - vertices.push_back( ofVec2f(ofGetWidth() - border, ofGetHeight() - border) ); - vertices.push_back( ofVec2f(ofGetWidth() - border, border) ); - - vector texCoords; - texCoords.push_back( ofVec2f(ofVec2f(0.0f, 0.0f)) ); - texCoords.push_back( ofVec2f(ofVec2f(1.0f, 0.0f)) ); - texCoords.push_back( ofVec2f(ofVec2f(1.0f, 1.0f)) ); - texCoords.push_back( ofVec2f(ofVec2f(0.0f, 1.0f)) ); - - surfaceManager.addSurface(surfaceType, vertices, texCoords); - - // select this surface right away - surfaceManager.selectSurface(surfaceManager.size()-1); -} - -void ofApp::addSurface() -{ - int surfaceType = ofxSurfaceType::TRIANGLE_SURFACE; - vector vertices; - vertices.push_back( ofVec2f( (float)ofGetWidth()/2.0f, 0.0f ) ); - vertices.push_back( ofVec2f( (float)ofGetWidth(), (float)ofGetHeight() ) ); - vertices.push_back( ofVec2f( 0.0f, (float)ofGetHeight() ) ); - vector texCoords; - texCoords.push_back( ofVec2f( 0.5f, 0.0f ) ); - texCoords.push_back( ofVec2f( 1.0f, 1.0f ) ); - texCoords.push_back( ofVec2f( 0.0f, 1.0f ) ); - surfaceManager.addSurface(surfaceType, vertices, texCoords); - - // select this surface right away - surfaceManager.selectSurface(surfaceManager.size()-1); -} - -void ofApp::setFboAsTexture() -{ - surfaceManager.getSurface(0)->setTexture( &fbo->getTextureReference() ); -} \ No newline at end of file diff --git a/example-fboTexture/src/ofApp.h b/example-fboTexture/src/ofApp.h deleted file mode 100755 index 05d7a8f..0000000 --- a/example-fboTexture/src/ofApp.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef H_OF_APP -#define H_OF_APP - -#include "ofMain.h" -#include "ofxPiMapper.h" - -class ofApp : public ofBaseApp -{ -public: - void setup(); - void update(); - void draw(); - void exit(); - - void keyPressed(int key); - - void addRandomSurface(); - void addQuadSurface(); - void addSurface(); - void setFboAsTexture(); - - ofImage image; - ofxSurfaceManager surfaceManager; - ofxSurfaceManagerGui gui; - bool bShowInfo; - ofFbo* fbo; - vector rects; - vector rectSpeeds; -}; - -#endif \ No newline at end of file diff --git a/example/bin/data/defaultSurfaces.xml b/example/bin/data/defaultSurfaces.xml old mode 100644 new mode 100755 diff --git a/example/src/ofApp.cpp b/example/src/ofApp.cpp old mode 100644 new mode 100755 index 6b90cf1..7012632 --- a/example/src/ofApp.cpp +++ b/example/src/ofApp.cpp @@ -2,39 +2,56 @@ void ofApp::setup() { - //image.loadImage("TestPatternInvert.jpg"); bShowInfo = false; - /* - surfaceManager.addSurface( ofxSurfaceType::TRIANGLE_SURFACE ); - - surfaceManager.addSurface( ofxSurfaceType::TRIANGLE_SURFACE ); - surfaceManager.getSurface(1)->setVertex(0, ofVec2f(10, 10)); - surfaceManager.getSurface(1)->setVertex(1, ofVec2f(400, 20)); - surfaceManager.getSurface(1)->setVertex(2, ofVec2f(300, 400)); - */ - // check if the surfaces.xml file is there // if not - load defaultSurfaces.xml - if ( ofFile::doesFileExist("surfaces.xml") ) { surfaceManager.loadXmlSettings("surfaces.xml"); } else { surfaceManager.loadXmlSettings("defaultSurfaces.xml"); } + // Pass the surface manager to the mapper graphical user interface gui.setSurfaceManager( &surfaceManager ); + + // Create FBO + fbo = new ofFbo(); + fbo->allocate( 500, 500 ); + setFboAsTexture(); + + // Genereate rects + int numRects = 20; // change this to add more or less rects + for ( int i=0; igetHeight()), fbo->getWidth(), ofRandom(20)) ); + rectSpeeds.push_back( (1.0f + ofRandom(5)) ); + } } void ofApp::update() { - ofBackground(0); + // Move rects + for ( int i=0; i fbo->getHeight() ) { + rects[i].y = -rects[i].getHeight(); + } + } + + // Fill FBO + fbo->begin(); + ofClear(0); + ofBackground(0); + ofSetColor(255); + for ( int i=0; iend(); } void ofApp::draw() { - //surfaceManager.draw(); - // if using gui - use ofxSurfaceManagerGui::draw() instead of surfaceManager::draw() + // Draw the piMapper GUI gui.draw(); if ( bShowInfo ) { @@ -47,14 +64,22 @@ void ofApp::draw() ss << " 4. Source selection mode\n\n"; ss << "You can switch between the modes by using <1>, <2>, <3> and <4> keys on the keyboard.\n\n"; ss << "Press or to add random or normal surface.\n"; + ss << "Press to add a new quad surface.\n"; ss << "Press to save the composition.\n"; ss << "Press to toggle fullscreen.\n"; + ss << "Press to reassign the fbo texture to the first surface\n"; ss << "Hit to hide this message."; ofDrawBitmapStringHighlight(ss.str(), 10, 20, ofColor(0,0,0,100), ofColor(255,255,255,200)); } } +void ofApp::exit() +{ + // Clear FBO from mem + delete fbo; +} + void ofApp::keyPressed(int key) { cout << "Key pressed: " << static_cast(key) << endl; @@ -66,32 +91,16 @@ void ofApp::keyPressed(int key) case '4': gui.setMode(ofxGuiMode::SOURCE_SELECTION); break; case 'i': bShowInfo = !bShowInfo; break; case 'r': addRandomSurface(); break; + case 'q': addQuadSurface(); break; case 'n': addSurface(); break; case 'f': ofToggleFullscreen(); break; case 's': surfaceManager.saveXmlSettings("surfaces.xml"); break; + case 'a': setFboAsTexture(); break; case OF_KEY_BACKSPACE: surfaceManager.removeSelectedSurface(); break; default: break; } } -void ofApp::mousePressed(int x, int y, int button) -{ - //cout << "Mouse pressed." << endl; - //surfaceManager.mousePressed(x, y, button); -} - -void ofApp::mouseReleased(int x, int y, int button) -{ - //cout << "Mouse released." << endl; - //surfaceManager.mouseReleased(x, y, button); -} - -void ofApp::mouseDragged(int x, int y, int button) -{ - // - //surfaceManager.mouseDragged(x, y, button); -} - void ofApp::addRandomSurface() { int surfaceType = ofxSurfaceType::TRIANGLE_SURFACE; @@ -109,6 +118,29 @@ void ofApp::addRandomSurface() surfaceManager.selectSurface(surfaceManager.size()-1); } +void ofApp::addQuadSurface() +{ + int surfaceType = ofxSurfaceType::QUAD_SURFACE; + vector vertices; + + int border = 50; + vertices.push_back( ofVec2f(border, border) ); + vertices.push_back( ofVec2f(border, ofGetHeight() - border) ); + vertices.push_back( ofVec2f(ofGetWidth() - border, ofGetHeight() - border) ); + vertices.push_back( ofVec2f(ofGetWidth() - border, border) ); + + vector texCoords; + texCoords.push_back( ofVec2f(ofVec2f(0.0f, 0.0f)) ); + texCoords.push_back( ofVec2f(ofVec2f(1.0f, 0.0f)) ); + texCoords.push_back( ofVec2f(ofVec2f(1.0f, 1.0f)) ); + texCoords.push_back( ofVec2f(ofVec2f(0.0f, 1.0f)) ); + + surfaceManager.addSurface(surfaceType, vertices, texCoords); + + // select this surface right away + surfaceManager.selectSurface(surfaceManager.size()-1); +} + void ofApp::addSurface() { int surfaceType = ofxSurfaceType::TRIANGLE_SURFACE; @@ -124,4 +156,9 @@ void ofApp::addSurface() // select this surface right away surfaceManager.selectSurface(surfaceManager.size()-1); +} + +void ofApp::setFboAsTexture() +{ + surfaceManager.getSurface(0)->setTexture( &fbo->getTextureReference() ); } \ No newline at end of file diff --git a/example/src/ofApp.h b/example/src/ofApp.h old mode 100644 new mode 100755 index 6c6a67f..05d7a8f --- a/example/src/ofApp.h +++ b/example/src/ofApp.h @@ -10,19 +10,22 @@ public: void setup(); void update(); void draw(); + void exit(); void keyPressed(int key); - void mousePressed(int x, int y, int button); - void mouseReleased(int x, int y, int button); - void mouseDragged(int x, int y, int button); void addRandomSurface(); + void addQuadSurface(); void addSurface(); + void setFboAsTexture(); ofImage image; ofxSurfaceManager surfaceManager; ofxSurfaceManagerGui gui; bool bShowInfo; + ofFbo* fbo; + vector rects; + vector rectSpeeds; }; #endif \ No newline at end of file