summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--example-twitter/src/main.cpp33
-rw-r--r--example-twitter/src/ofApp.cpp90
-rw-r--r--example-twitter/src/ofApp.h42
-rw-r--r--example-twitter/src/ofxExampleTwitterClient.h58
-rw-r--r--offsetProject/src/main.cpp2
-rw-r--r--offsetProject/src/ofApp.cpp71
-rw-r--r--offsetProject/src/ofApp.h9
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;
};