diff options
| -rw-r--r-- | example-twitter/src/main.cpp | 33 | ||||
| -rw-r--r-- | example-twitter/src/ofApp.cpp | 90 | ||||
| -rw-r--r-- | example-twitter/src/ofApp.h | 42 | ||||
| -rw-r--r-- | example-twitter/src/ofxExampleTwitterClient.h | 58 | ||||
| -rw-r--r-- | offsetProject/src/main.cpp | 2 | ||||
| -rw-r--r-- | offsetProject/src/ofApp.cpp | 71 | ||||
| -rw-r--r-- | offsetProject/src/ofApp.h | 9 |
7 files changed, 286 insertions, 19 deletions
diff --git a/example-twitter/src/main.cpp b/example-twitter/src/main.cpp new file mode 100644 index 0000000..88fe943 --- /dev/null +++ b/example-twitter/src/main.cpp @@ -0,0 +1,33 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker <http://christopherbaker.net> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#include "ofApp.h" + + +int main() +{ + ofSetupOpenGL(100,100,OF_WINDOW); + ofRunApp(new ofApp()); +} diff --git a/example-twitter/src/ofApp.cpp b/example-twitter/src/ofApp.cpp new file mode 100644 index 0000000..1b71796 --- /dev/null +++ b/example-twitter/src/ofApp.cpp @@ -0,0 +1,90 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker <http://christopherbaker.net> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#include "ofApp.h" + + +//------------------------------------------------------------------------------ +void ofApp::setup() +{ + ofSetFrameRate(30); + ofSetLogLevel(OF_LOG_VERBOSE); + + // A simplified interface when using the ofxExampleTwitterClient class. + // Twitter-specific configuration details can be taken care of the + // ofxOAuth base class. + //client.setup("CONSUMER_KEY","CONSUMER_SECRET"); + +client.setup("jGt8ptINLee1hvoaVI2wcQ","lIU8KixtRkVo285pdf5quiiHfTzrq8GTGEH88S6fs"); + /* +twitter + +timredfern +API key jGt8ptINLee1hvoaVI2wcQ +secret lIU8KixtRkVo285pdf5quiiHfTzrq8GTGEH88S6fs + + +instagram + +CLIENT INFO +CLIENT ID c1d74d701fdf4ddd9f8d30ee9e8f944b +CLIENT SECRET 763f2fd6cee84cc8bd8f989e3a7ba788 +WEBSITE URL http://eclectronics.org/test +REDIRECT URI http://127.0.0.1 + +*/ + + // Once authenticated, press the spacebar to try a test call. +} + +//------------------------------------------------------------------------------ +void ofApp::draw() +{ + if(client.isAuthorized()) + { + ofBackground(0,255,0); + } + else + { + ofBackground(255,0,0); + } +} + +//------------------------------------------------------------------------------ +void ofApp::keyPressed(int key) +{ + if(key == ' ') + { + if(client.isAuthorized()) + { + std::string s = client.exampleMethod(); + ofLogNotice("testApp::keyPressed") << s; + } + else + { + ofLogWarning("testApp::keyPressed") << "Not authorized yet."; + } + } +} diff --git a/example-twitter/src/ofApp.h b/example-twitter/src/ofApp.h new file mode 100644 index 0000000..8e86fe6 --- /dev/null +++ b/example-twitter/src/ofApp.h @@ -0,0 +1,42 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker <http://christopherbaker.net> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#pragma once + + +#include "ofMain.h" +#include "ofxExampleTwitterClient.h" + + +class ofApp: public ofBaseApp +{ +public: + void setup(); + void draw(); + void keyPressed(int key); + + ofxExampleTwitterClient client; + +}; diff --git a/example-twitter/src/ofxExampleTwitterClient.h b/example-twitter/src/ofxExampleTwitterClient.h new file mode 100644 index 0000000..615ef12 --- /dev/null +++ b/example-twitter/src/ofxExampleTwitterClient.h @@ -0,0 +1,58 @@ +// ============================================================================= +// +// Copyright (c) 2010-2013 Christopher Baker <http://christopherbaker.net> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +// ============================================================================= + + +#pragma once + + +#include "ofxOAuth.h" + + +class ofxExampleTwitterClient: public ofxOAuth +{ +public: + ofxExampleTwitterClient() + { + } + + virtual ~ofxExampleTwitterClient() + { + } + + void setup(const std::string& consumerKey, + const std::string& consumerSecret) + { + ofxOAuth::setup("https://api.twitter.com", + consumerKey, + consumerSecret); + } + + // Once setup is called, authenticated calls can be made. + // This method is just an example of whatyour calls might look like. + std::string exampleMethod() + { + return get("/1.1/search/tweets.json?q=#tycleeson"); + } + +}; diff --git a/offsetProject/src/main.cpp b/offsetProject/src/main.cpp index d134fc9..bce5f94 100644 --- a/offsetProject/src/main.cpp +++ b/offsetProject/src/main.cpp @@ -1,6 +1,6 @@ #include "ofApp.h" int main() { - ofSetupOpenGL(1024, 768, OF_WINDOW); + ofSetupOpenGL(1280, 960, OF_WINDOW); ofRunApp(new ofApp()); } 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; + + } } diff --git a/offsetProject/src/ofApp.h b/offsetProject/src/ofApp.h index 6188611..9406a0f 100644 --- a/offsetProject/src/ofApp.h +++ b/offsetProject/src/ofApp.h @@ -7,6 +7,13 @@ #define MIN_TILE_SIZE 4 //has to be a divisor of 320 and 240 as the tiles are centred #define MAX_TILE_SIZE 32 //has to be a power of 2 * MIN_TILE_SIZE +#define MODE_COLOURTILES 0 +#define MODE_DEPTH 1 +#define MODE_COMPONENTS 2 + +#define NUM_MODES 3 + + class offsetCvColorImage : public ofxCvColorImage { public: void extend( int w, int h ) { @@ -58,4 +65,6 @@ public: int angle; int levels; int extend_w,extend_h; + + int mode; }; |
