# HG changeset patch # User Becky Stewart # Date 1297961281 0 # Node ID 36e3faa5e9d44df63436b8e28c714e5a8ced5b55 # Parent abe9b8bfebf073e952dee93a4e0c87912c66c80f Initial push of Davy's code for tracking people. diff -r abe9b8bfebf0 -r 36e3faa5e9d4 of/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/of/main.cpp Thu Feb 17 16:48:01 2011 +0000 @@ -0,0 +1,16 @@ +#include "ofMain.h" +#include "testApp.h" +#include "ofAppGlutWindow.h" + +//======================================================================== +int main( ){ + + ofAppGlutWindow window; + ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp( new testApp()); + +} diff -r abe9b8bfebf0 -r 36e3faa5e9d4 of/testApp.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/of/testApp.cpp Thu Feb 17 16:48:01 2011 +0000 @@ -0,0 +1,126 @@ +#include "testApp.h" + +//-------------------------------------------------------------- +void testApp::setup(){ + drawIt=false; + // load the default ofxOpenNI config settings + // see bin/data/openni/config/ofxopenni_config.xml + context.setupUsingXMLFile(); + + // uncomment this to see what open ni is doing inside + //context.enableLogging(OF_LOG_VERBOSE); + + // setup resources + depth.setup(&context); + image.setup(&context); + user.setup(&context, &depth); +// Davy.loadImage("images/davy.jpg"); + ofEnableSmoothing(); + ofSetBackgroundAuto(false); + ofBackground(238,238,224); + ofEnableAlphaBlending(); + ofSetLineWidth(12); +} + +//-------------------------------------------------------------- +void testApp::update(){ + + + // update the open ni context and user tracker + context.update(); + user.update(); +} + +//-------------------------------------------------------------- +void testApp::draw(){ + + // draw depth and rgb images + //depth.draw(); +if (drawIt != true) { +image.draw(); +user.draw(); +} + // draw all the users automatically? + + + + stringstream info; + info << "number of tracked users: " << user.getNumTrackedUsers() << endl; + + // draw the neck positions of each user + for(int i = 0; i < user.getNumTrackedUsers(); ++i) { + ofxTrackedUser* tracked = user.getTrackedUser(i); + if(tracked != NULL) { + info << i << " neck pos: " + << tracked->left_lower_arm.end.x << " " + << tracked->left_lower_arm.end.y << " " + << tracked->neck.begin.z << endl; +if (tracked->neck.begin.x != 0) + +ofSetColor(139,0,0,100); + ofNoFill(); + float w = ofGetWidth(); + float h = ofGetHeight(); +ofBezier(tracked->neck.begin.x,tracked->neck.begin.y,tracked->neck.end.x,tracked->neck.end.y,tracked->left_lower_arm.begin.x,tracked->left_lower_arm.begin.y,tracked->left_lower_arm.end.x,/*tracked->left_lower_arm.end.y*/ w); +ofBezier(tracked->neck.begin.x,tracked->neck.begin.y,tracked->neck.end.x,tracked->neck.end.y,tracked->right_lower_arm.begin.x,tracked->right_lower_arm.begin.y,tracked->right_lower_arm.end.x,/*tracked->right_lower_arm.end.y*/ w); +ofBezier(tracked->neck.begin.x,tracked->neck.begin.y,tracked->neck.end.x,tracked->neck.end.y,tracked->left_lower_leg.begin.x,tracked->left_lower_leg.begin.y,tracked->left_lower_leg.end.x,/*tracked->left_lower_leg.end.y*/ h); +ofBezier(tracked->neck.begin.x,tracked->neck.begin.y,tracked->neck.end.x,tracked->neck.end.y,tracked->right_lower_leg.begin.x,tracked->right_lower_leg.begin.y,tracked->right_lower_leg.end.x,/*tracked->right_lower_leg.end.y*/ h); +ofFill(); +ofSetColor(255,255,100); + ofCircle(tracked->neck.begin.x,tracked->neck.begin.y,30); +ofSetColor(0); +ofCircle(tracked->neck.begin.x,tracked->neck.begin.y,35); +ofSetColor(255,255,100); + ofCircle(tracked->neck.begin.x,tracked->neck.begin.y,30); + ofSetColor(0); +ofCircle(tracked->neck.begin.x+10.0f,tracked->neck.begin.y,6); +ofCircle(tracked->neck.begin.x-10.0f,tracked->neck.begin.y,6); + } + } + ofFill(); + ofSetColor(238,238,224,20); + ofRect(0,0,ofGetWidth(),ofGetHeight()); + ofDrawBitmapString(info.str(), 10, 500); +} + +//-------------------------------------------------------------- +void testApp::keyPressed(int key){ + ofSetColor(238,238,224); + ofRect(0,0,ofGetWidth(),ofGetHeight()); +drawIt =!drawIt; + ofToggleFullscreen(); +} + +//-------------------------------------------------------------- +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){ + ofSetColor(238,238,224); + ofFill(); + ofRect(0,0,ofGetWidth(),ofGetHeight()); + +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + diff -r abe9b8bfebf0 -r 36e3faa5e9d4 of/testApp.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/of/testApp.h Thu Feb 17 16:48:01 2011 +0000 @@ -0,0 +1,32 @@ +#ifndef _TEST_APP +#define _TEST_APP + +// uncomment this for OF 007 compatibility +//#define OFX_OPENNI_BETA + +#include "ofMain.h" +#include "ofxOpenNI.h" + +class testApp : public ofBaseApp{ + + 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); + ofxOpenNIContext context; + ofxDepthGenerator depth; + ofxUserGenerator user; + ofxImageGenerator image; + //ofImage Davy; + bool drawIt; +}; + +#endif