diff options
Diffstat (limited to 'offsetProject/src/ofApp.cpp')
| -rw-r--r-- | offsetProject/src/ofApp.cpp | 71 |
1 files changed, 53 insertions, 18 deletions
diff --git a/offsetProject/src/ofApp.cpp b/offsetProject/src/ofApp.cpp index ab02ea2..1f73212 100644 --- a/offsetProject/src/ofApp.cpp +++ b/offsetProject/src/ofApp.cpp @@ -68,12 +68,13 @@ void ofApp::setup() { cerr<<"level "<<l<<" mipmap: "<<colourTiles[l].getWidth()<<"x"<<colourTiles[l].getHeight()<<endl; } + mode=MODE_COLOURTILES; } //-------------------------------------------------------------- void ofApp::update() { - ofBackground(100, 100, 100); + ofSetWindowTitle(ofToString(ofGetFrameRate())); kinect.update(); @@ -112,8 +113,8 @@ void ofApp::update() { } void ofApp::checktile(int level,int x,int y,int size){ - int levels_factor=255/levels; - if (depthTiles[level].getPixels()[y*((int)depthTiles[level].getWidth())+x]>level*levels_factor&&level>0){ + int levels_factor=128/levels; + if (level>0&&max(0,depthTiles[level].getPixels()[y*((int)depthTiles[level].getWidth())+x]-128)>level*levels_factor){ for (int i=0;i<2;i++){ for (int j=0;j<2;j++){ checktile(level-1,x*2+i,y*2+j,size/2); @@ -131,30 +132,53 @@ void ofApp::checktile(int level,int x,int y,int size){ //-------------------------------------------------------------- void ofApp::draw() { - ofSetColor(255, 255, 255); + ofBackground(0,0,0); - //recursively draw pixels + ofSetColor(255, 255, 255); int pixelsize=ofGetWidth()/colourTiles[levels-1].getWidth(); - //int yoffset= - for (int i=0;i<colourTiles[levels-1].getWidth();i++){ - for (int j=0;j<colourTiles[levels-1].getHeight();j++){ - checktile(levels-1,i,j,pixelsize); - } + + switch(mode){ + case MODE_COLOURTILES: + + //recursively draw pixels + + //int yoffset= + + for (int i=0;i<colourTiles[levels-1].getWidth();i++){ + for (int j=0;j<colourTiles[levels-1].getHeight();j++){ + checktile(levels-1,i,j,pixelsize); + } + } + break; + + case MODE_DEPTH: + + depthImage.draw(0,0,ofGetWidth(),ofGetHeight()); + break; + + case MODE_COMPONENTS: + + depthImage.draw(0,0, 640,480); + colourImage.draw(640,0, 640,480); + + int xoffs=10; + for (int i=0;i<depthTiles.size();i++){ + depthTiles[i].draw(xoffs,500,depthTiles[i].getWidth(),depthTiles[i].getHeight()); + colourTiles[i].draw(xoffs+640,500,colourTiles[i].getWidth(),colourTiles[i].getHeight()); + xoffs+=(colourTiles[i].getWidth()+10); + } + break; + } + /* - depthImage.draw(10, 10, 640, 480); - colourImage.draw(10, 500, 640, 480); + - int xoffs=660; - for (int i=0;i<depthTiles.size();i++){ - depthTiles[i].draw(xoffs,10,depthTiles[i].getWidth(),depthTiles[i].getHeight()); - colourTiles[i].draw(xoffs,500,colourTiles[i].getWidth(),colourTiles[i].getHeight()); - xoffs+=(colourTiles[i].getWidth()+10); - } + */ @@ -263,6 +287,17 @@ void ofApp::keyPressed (int key) { if(angle<-30) angle=-30; kinect.setCameraTiltAngle(angle); break; + + case OF_KEY_LEFT: + mode--; + if (mode<0) mode==NUM_MODES-1; + break; + + case OF_KEY_RIGHT: + mode=(mode+1)%NUM_MODES; + break; + + } } |
