summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorComment <tim@gray.(none)>2013-04-28 00:49:39 +0100
committerComment <tim@gray.(none)>2013-04-28 00:49:39 +0100
commit29a366df4f1492a5974db87a215f1a310fc853a2 (patch)
treec7e3ed0f0d5827c6a2d9072220a914b40134093b
initial
-rwxr-xr-xTRRSS_01_rec/Makefile2
-rwxr-xr-xTRRSS_01_rec/TRRSS_01_rec.cbp123
-rw-r--r--TRRSS_01_rec/TRRSS_01_rec.layout25
-rwxr-xr-xTRRSS_01_rec/TRRSS_01_rec.workspace9
-rw-r--r--TRRSS_01_rec/addons.make5
-rwxr-xr-xTRRSS_01_rec/config.make56
-rwxr-xr-xTRRSS_01_rec/src/main.cpp19
-rwxr-xr-xTRRSS_01_rec/src/testApp.cpp164
-rwxr-xr-xTRRSS_01_rec/src/testApp.h75
-rw-r--r--notes14
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(); }
+
+
+};
diff --git a/notes b/notes
new file mode 100644
index 0000000..5cc1168
--- /dev/null
+++ b/notes
@@ -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