diff options
| author | Comment <tim@gray.(none)> | 2013-04-28 00:49:39 +0100 |
|---|---|---|
| committer | Comment <tim@gray.(none)> | 2013-04-28 00:49:39 +0100 |
| commit | 29a366df4f1492a5974db87a215f1a310fc853a2 (patch) | |
| tree | c7e3ed0f0d5827c6a2d9072220a914b40134093b | |
initial
| -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 | ||||
| -rw-r--r-- | notes | 14 |
10 files changed, 492 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(); } + + +}; @@ -0,0 +1,14 @@ +i. straight on torso shot detailing the level of video detail captured by the Kinect duo. The torso should not move however the head and mouth should move as if reciting a text - think newsreader. + +ii. the above shot processed as a point cloud. Black and white only. + +iii. similar to i., straight torso shot detailing the level of video detail captured by the Kinect duo but this time with the subject in slightly more dramatic mode i.e. head movements, mouth, forward/backward movement, arms, hands moving, pointing, clutching etc. + +iiii. above shot as point data. Black and white only. + + +(interface:) + +range scale +point/ colour +point size
\ No newline at end of file |
