diff options
Diffstat (limited to 'TRRSS_01_rec')
| -rwxr-xr-x | TRRSS_01_rec/Makefile | 2 | ||||
| -rwxr-xr-x | TRRSS_01_rec/TRRSS_01_rec.cbp | 123 | ||||
| -rw-r--r-- | TRRSS_01_rec/TRRSS_01_rec.layout | 25 | ||||
| -rwxr-xr-x | TRRSS_01_rec/TRRSS_01_rec.workspace | 9 | ||||
| -rw-r--r-- | TRRSS_01_rec/addons.make | 5 | ||||
| -rwxr-xr-x | TRRSS_01_rec/config.make | 56 | ||||
| -rwxr-xr-x | TRRSS_01_rec/src/main.cpp | 19 | ||||
| -rwxr-xr-x | TRRSS_01_rec/src/testApp.cpp | 164 | ||||
| -rwxr-xr-x | TRRSS_01_rec/src/testApp.h | 75 |
9 files changed, 478 insertions, 0 deletions
diff --git a/TRRSS_01_rec/Makefile b/TRRSS_01_rec/Makefile new file mode 100755 index 0000000..2d83a77 --- /dev/null +++ b/TRRSS_01_rec/Makefile @@ -0,0 +1,2 @@ +include config.make +include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/Makefile.examples diff --git a/TRRSS_01_rec/TRRSS_01_rec.cbp b/TRRSS_01_rec/TRRSS_01_rec.cbp new file mode 100755 index 0000000..9fd8544 --- /dev/null +++ b/TRRSS_01_rec/TRRSS_01_rec.cbp @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6" /> + <Project> + <Option title="TRRSS_01_rec" /> + <Option makefile_is_custom="1" /> + <Option pch_mode="2" /> + <Option compiler="gcc" /> + <Option virtualFolders="addons/;src/;build config/;addons/ofxOpenNI/src/;" /> + <Build> + <Target title="Debug"> + <Option output="bin/$(PROJECT_NAME)_debug" prefix_auto="1" extension_auto="1" /> + <Option working_dir="bin" /> + <Option object_output="obj/Debug/" /> + <Option external_deps="../../openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworksDebug.a;" /> + <Option type="1" /> + <Option compiler="gcc" /> + <Option projectLinkerOptionsRelation="2" /> + </Target> + <Target title="Release"> + <Option output="bin/$(PROJECT_NAME)" prefix_auto="1" extension_auto="1" /> + <Option working_dir="bin" /> + <Option object_output="obj/Release/" /> + <Option external_deps="../../openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a;" /> + <Option type="1" /> + <Option compiler="gcc" /> + <Option projectLinkerOptionsRelation="2" /> + </Target> + </Build> + <Unit filename="addons.make"> + <Option virtualFolder="build config/" /> + </Unit> + <Unit filename="config.make"> + <Option virtualFolder="build config" /> + </Unit> + <Unit filename="src/main.cpp"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="src/testApp.cpp"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="src/testApp.h"> + <Option virtualFolder="src/" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxDepthGenerator.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxDepthGenerator.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxGestureGenerator.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxGestureGenerator.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxHandGenerator.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxHandGenerator.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxHardwareDriver.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxHardwareDriver.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxIRGenerator.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxIRGenerator.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxImageGenerator.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxImageGenerator.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNI.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNIContext.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNIContext.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNIMacros.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNIRecorder.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNIRecorder.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxTrackedHand.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxTrackedHand.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxTrackedUser.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxTrackedUser.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxUserGenerator.cpp"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Unit filename="../../openFrameworks/addons/ofxOpenNI/src/ofxUserGenerator.h"> + <Option virtualFolder="addons/ofxOpenNI/src" /> + </Unit> + <Extensions> + <code_completion /> + <envvars /> + <debugger /> + </Extensions> + </Project> +</CodeBlocks_project_file> diff --git a/TRRSS_01_rec/TRRSS_01_rec.layout b/TRRSS_01_rec/TRRSS_01_rec.layout new file mode 100644 index 0000000..9a9709a --- /dev/null +++ b/TRRSS_01_rec/TRRSS_01_rec.layout @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<CodeBlocks_layout_file> + <ActiveTarget name="Debug" /> + <File name="addons.make" open="1" top="0" tabpos="2"> + <Cursor position="53" topLine="0" /> + </File> + <File name="config.make" open="0" top="0" tabpos="0"> + <Cursor position="601" topLine="0" /> + </File> + <File name="src/main.cpp" open="0" top="0" tabpos="0"> + <Cursor position="187" topLine="0" /> + </File> + <File name="src/testApp.cpp" open="1" top="1" tabpos="6"> + <Cursor position="2624" topLine="24" /> + </File> + <File name="src/testApp.h" open="0" top="0" tabpos="0"> + <Cursor position="731" topLine="15" /> + </File> + <File name="../../openFrameworks/addons/ofxOpenNI/src/ofxImageGenerator.h" open="1" top="0" tabpos="5"> + <Cursor position="1643" topLine="21" /> + </File> + <File name="../../openFrameworks/addons/ofxOpenNI/src/ofxOpenNIContext.h" open="0" top="0" tabpos="0"> + <Cursor position="1305" topLine="16" /> + </File> +</CodeBlocks_layout_file> diff --git a/TRRSS_01_rec/TRRSS_01_rec.workspace b/TRRSS_01_rec/TRRSS_01_rec.workspace new file mode 100755 index 0000000..d8488cd --- /dev/null +++ b/TRRSS_01_rec/TRRSS_01_rec.workspace @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> +<CodeBlocks_workspace_file> + <Workspace title="TRRSS_01_rec"> + <Project filename="TRRSS_01_rec.cbp" active="1"> + <Depends filename="../../openFrameworks/libs/openFrameworksCompiled/project/linux64/libopenFrameworks.cbp" /> + </Project> + <Project filename="../../openFrameworks/libs/openFrameworksCompiled/project/linux64/libopenFrameworks.cbp" /> + </Workspace> +</CodeBlocks_workspace_file> diff --git a/TRRSS_01_rec/addons.make b/TRRSS_01_rec/addons.make new file mode 100644 index 0000000..0b4df47 --- /dev/null +++ b/TRRSS_01_rec/addons.make @@ -0,0 +1,5 @@ +ofxOpenNI +ofxFenster +ofxGui +ofxXmlSettings +ofxMayaCam diff --git a/TRRSS_01_rec/config.make b/TRRSS_01_rec/config.make new file mode 100755 index 0000000..821a73a --- /dev/null +++ b/TRRSS_01_rec/config.make @@ -0,0 +1,56 @@ +# add custom variables to this file + +# OF_ROOT allows to move projects outside apps/* just set this variable to the +# absoulte path to the OF root folder + +OF_ROOT = ../../openFrameworks + + +# USER_CFLAGS allows to pass custom flags to the compiler +# for example search paths like: +# USER_CFLAGS = -I src/objects + +USER_CFLAGS = -I $(OF_ROOT)/addons/ofxOpenNI/include/openni -I $(OF_ROOT)/addons/ofxOpenNI/include/nite -I $(OF_ROOT)/addons/ofxOpenNI/src + + +# USER_LDFLAGS allows to pass custom flags to the linker +# for example libraries like: +# USER_LDFLAGS = libs/libawesomelib.a + +USER_LDFLAGS = -lOpenNI + + +EXCLUDE_FROM_SOURCE="bin,.xcodeproj,obj" + +# change this to add different compiler optimizations to your project + +USER_COMPILER_OPTIMIZATION = -march=native -mtune=native -Os + + +# android specific, in case you want to use different optimizations +USER_LIBS_ARM = +USER_LIBS_ARM7 = +USER_LIBS_NEON = + +# android optimizations + +ANDROID_COMPILER_OPTIMIZATION = -Os + +NDK_PLATFORM = android-8 + +# uncomment this for custom application name (if the folder name is different than the application name) +#APPNAME = folderName + +# uncomment this for custom package name, must be the same as the java package that contains OFActivity +#PKGNAME = cc.openframeworks.$(APPNAME) + + + + + +# linux arm flags + +LINUX_ARM7_COMPILER_OPTIMIZATIONS = -march=armv7-a -mtune=cortex-a8 -finline-functions -funroll-all-loops -O3 -funsafe-math-optimizations -mfpu=neon -ftree-vectorize -mfloat-abi=hard -mfpu=vfp + + + diff --git a/TRRSS_01_rec/src/main.cpp b/TRRSS_01_rec/src/main.cpp new file mode 100755 index 0000000..1f1c3a1 --- /dev/null +++ b/TRRSS_01_rec/src/main.cpp @@ -0,0 +1,19 @@ +#include "ofMain.h" +#include "testApp.h" +#include "ofAppGlutWindow.h" + +//======================================================================== +int main( ){ + + ofAppGlutWindow window; + ofSetupOpenGL(ofxFensterManager::get(),1024,768, OF_WINDOW); //2048,768 + //ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context + //ofSetupOpenGL(&window, 1024,768, OF_WINDOW); + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + //ofRunApp( new testApp()); + ofRunFensterApp( new testApp()); + +} diff --git a/TRRSS_01_rec/src/testApp.cpp b/TRRSS_01_rec/src/testApp.cpp new file mode 100755 index 0000000..1c333bf --- /dev/null +++ b/TRRSS_01_rec/src/testApp.cpp @@ -0,0 +1,164 @@ +#include "testApp.h" +//texture binding with normalised coords +void bindTexture(ofBaseHasTexture &t) { + ofTexture &tex = t.getTextureReference(); + tex.bind(); + + glMatrixMode(GL_TEXTURE); + glPushMatrix(); + glLoadIdentity(); + + ofTextureData texData = tex.getTextureData(); + if(texData.textureTarget == GL_TEXTURE_RECTANGLE_ARB) { + glScalef(tex.getWidth(), tex.getHeight(), 1.0f); + } else { + glScalef(tex.getWidth() / texData.tex_w, tex.getHeight() / texData.tex_h, 1.0f); + } + + glMatrixMode(GL_MODELVIEW); +} +void unbindTexture(ofBaseHasTexture &t) { + t.getTextureReference().unbind(); + + glMatrixMode(GL_TEXTURE); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); +} +void bindTex(ofTexture &tex) { + tex.bind(); + + glMatrixMode(GL_TEXTURE); + glPushMatrix(); + glLoadIdentity(); + + ofTextureData texData = tex.getTextureData(); + if(texData.textureTarget == GL_TEXTURE_RECTANGLE_ARB) { + glScalef(tex.getWidth(), tex.getHeight(), 1.0f); + } else { + glScalef(tex.getWidth() / texData.tex_w, tex.getHeight() / texData.tex_h, 1.0f); + } + + glMatrixMode(GL_MODELVIEW); +} +void unbindTex(ofTexture &tex) { + tex.unbind(); + + glMatrixMode(GL_TEXTURE); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); +} +//-------------------------------------------------------------- +void testApp::setup(){ + recordContext.setup(); + recordDepth.setup(&recordContext); + recordImage.setup(&recordContext); + recordUser.setup(&recordContext); + recordUser.setUseCloudPoints(true); + recordContext.toggleRegisterViewport(); + + guiWin=new guiWindow(); + ofxFenster* win=ofxFensterManager::get()->createFenster(0, 0, 200, 400, OF_WINDOW); + win->setWindowTitle("config"); + win->addListener(guiWin); + guiWin->setup(); +} + +//-------------------------------------------------------------- +void testApp::update(){ + recordContext.update(); + recordDepth.update(); + recordImage.update(); + recordUser.update(); +} + +//-------------------------------------------------------------- +void testApp::draw(){ + cam.begin(); + //bind texture recordImage + //get point data from recordDepth + //draw textured polys and allow manipulation + ofPushMatrix(); + ofTranslate(320,240,-1000); + //ofRotate(0,0,1,180); + bindTex(recordImage.getTexture()); + int step = 1; + for(int y = step; y < 480; y += step) { + glBegin(GL_QUADS); + for(int x = step; x < 640; x += step) { + ofPoint pos1 = recordUser.getWorldCoordinateAt(x-step, y-step, 0); //userID); + ofPoint pos2 = recordUser.getWorldCoordinateAt(x, y-step, 0); //userID); + ofPoint pos3 = recordUser.getWorldCoordinateAt(x-step, y, 0); //userID); + ofPoint pos4 = recordUser.getWorldCoordinateAt(x, y, 0); //userID); + + if ((guiWin->distMin<pos1.z&&pos1.z<guiWin->distMax)&& + (guiWin->distMin<pos2.z&&pos2.z<guiWin->distMax)&& + (guiWin->distMin<pos3.z&&pos3.z<guiWin->distMax)&& + (guiWin->distMin<pos4.z&&pos4.z<guiWin->distMax)) { + + glTexCoord2f(((float)x-step)/640.0f,((float)y-step)/480.0f); + glVertex3f(pos1.x, -pos1.y,pos1.z); + glTexCoord2f(((float)x)/640.0f,((float)y-step)/480.0f); + glVertex3f(pos2.x, -pos2.y,pos2.z); + glTexCoord2f(((float)x)/640.0f,((float)y)/480.0f); + glVertex3f(pos4.x, -pos4.y,pos4.z); + glTexCoord2f(((float)x-step)/640.0f,((float)y)/480.0f); + glVertex3f(pos3.x, -pos3.y,pos3.z); + } + } + glEnd(); + } + ofPopMatrix(); + + unbindTex(recordImage.getTexture()); + + //recordImage.draw(0, 0, ofGetWidth(),ofGetHeight()); + + cam.end(); + + +} + +//-------------------------------------------------------------- +void testApp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void testApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void testApp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void testApp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mousePressed(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void testApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void testApp::dragEvent(ofDragInfo dragInfo){ + +} diff --git a/TRRSS_01_rec/src/testApp.h b/TRRSS_01_rec/src/testApp.h new file mode 100755 index 0000000..1da9c6e --- /dev/null +++ b/TRRSS_01_rec/src/testApp.h @@ -0,0 +1,75 @@ +#pragma once + +//for tomorrow: drawing interface & screengrab + +//thursday: +//2 camera calibration +//recording - whats the best format - in memeory + save at end? +//movie + pixels? + +#include "ofMain.h" +#include "ofxOpenNI.h" + +#include "ofxFensterManager.h" +#include "ofxGui.h" + +#include "ofxMayaCam.h" + +class guiWindow; + +class testApp : public ofxFensterListener{ + + public: + void setup(); + void update(); + void draw(); + + void keyPressed (int key); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void windowResized(int w, int h); + void dragEvent(ofDragInfo dragInfo); + void gotMessage(ofMessage msg); + + ofxOpenNIContext recordContext; + ofxDepthGenerator recordDepth; + ofxImageGenerator recordImage; + ofxUserGenerator recordUser; + + guiWindow *guiWin; + + ofxMayaCam cam; + +}; + +class guiWindow: public ofxFensterListener{ + public: + ofxPanel gui; + ofxFloatSlider dMin; + ofxParameter<float> distMin; + ofxFloatSlider dMax; + ofxParameter<float> distMax; + ofxToggle dPoints; + ofxParameter<bool> drawPoints; + ofxFloatSlider pSize; + ofxParameter<float> pointSize; + + + void setup(){ + gui.setup("","panel.xml",0,0); + distMin=400; + gui.add(dMin.setup("min distance",distMin,0,5000,255)); + distMax=2000; + gui.add(dMax.setup("max distance",distMax,0,5000,255)); + drawPoints=false; + gui.add(dPoints.setup("draw points",drawPoints)); + pointSize=2.0; + gui.add(pSize.setup("point size",pointSize,1.0,20.0,255)); + } + void draw() { gui.draw(); } + + +}; |
