summaryrefslogtreecommitdiff
path: root/liveengine/src/viewport.cpp
diff options
context:
space:
mode:
authorComment <tim@gray.(none)>2012-12-01 07:59:46 +0000
committerComment <tim@gray.(none)>2012-12-01 07:59:46 +0000
commit2b3eaa8dd74c373e7c82a414014c469fe415b66e (patch)
tree987a37eb2b51bbda669db265e301c6ac1bd46997 /liveengine/src/viewport.cpp
parent8c38b912458e60c8eab5a71b003e829bce5afe4a (diff)
whelans the 2nd
Diffstat (limited to 'liveengine/src/viewport.cpp')
-rwxr-xr-xliveengine/src/viewport.cpp83
1 files changed, 68 insertions, 15 deletions
diff --git a/liveengine/src/viewport.cpp b/liveengine/src/viewport.cpp
index 44ba5ef..0311d30 100755
--- a/liveengine/src/viewport.cpp
+++ b/liveengine/src/viewport.cpp
@@ -201,7 +201,7 @@ double viewport::getSetting(const string& setting){
if (setting=="distort") return vars[8].getVal();
return 0.0;
}
-void viewport::mapdraw(float a,unsigned char* controllers,int xshift,int yshift,playlist &list,bool transparentBlack,int note,int mode,ofColor* controller_colours,bool controlColours,float scale,float fscale,float colShift,bool drawCloud){
+void viewport::mapdraw(float a,unsigned char* controllers,int xshift,int yshift,playlist &list,bool transparentBlack,int note,int mode,ofColor* controller_colours,bool controlColours,float scale,float fscale,float colShift,bool drawCloud,bool drawSkel){
//printf("drawing mapped frame %i\n",ofGetFrameNum());
ofNode c=ofNode();
@@ -289,25 +289,78 @@ void viewport::mapdraw(float a,unsigned char* controllers,int xshift,int yshift,
camera.begin();
if (drawCloud) {
-
- int step = 1;
- glBegin(GL_POINTS);
- for(int y = 0; y < 480; y += step) {
- for(int x = 0; x < 640; x += step) {
- ofPoint pos = rUser->getWorldCoordinateAt(x, y, 0); //userID);
- //if (pos.z == 0 ) continue; // gets rid of background -> still a bit weird if userID > 0... //&& isCPBkgnd
- ofColor color = rUser->getWorldColorAt(x,y, 0); //userID);
- glColor4ub((unsigned char)color.r, (unsigned char)color.g, (unsigned char)color.b, (unsigned char)color.a);
- glVertex3f(pos.x, pos.y, pos.z);
- }
- }
- glEnd();
- glColor3f(1.0f, 1.0f, 1.0f);
+ int step = 1;
+ glBegin(GL_POINTS);
+ for(int y = 0; y < 480; y += step) {
+ for(int x = 0; x < 640; x += step) {
+ ofPoint pos = rUser->getWorldCoordinateAt(x, y, 0); //userID);
+ //if (pos.z == 0 ) continue; // gets rid of background -> still a bit weird if userID > 0... //&& isCPBkgnd
+ ofColor color = rUser->getWorldColorAt(x,y, 0); //userID);
+ glColor4ub((unsigned char)color.r, (unsigned char)color.g, (unsigned char)color.b, (unsigned char)color.a);
+ glVertex3f(pos.x, pos.y, pos.z);
+ }
+ }
+ glEnd();
+ glColor3f(1.0f, 1.0f, 1.0f);
+ }
+ if (drawSkel) {
+ ofSetColor(255,0,0);
+ glBegin(GL_LINES);
+ for (int i=0;i<rUser->getNumberOfTrackedUsers();i++) {
+ ofxTrackedUser *u=rUser->getTrackedUser(i);
+ glVertex3f(u->left_shoulder.position[0].X,u->left_shoulder.position[0].Y,u->left_shoulder.position[0].Z);
+ glVertex3f(u->left_shoulder.position[1].X,u->left_shoulder.position[1].Y,u->left_shoulder.position[1].Z);
+
+ glVertex3f(u-> left_upper_arm.position[0].X,u->left_upper_arm.position[0].Y,u-> left_upper_arm.position[0].Z);
+ glVertex3f(u-> left_upper_arm.position[1].X,u->left_upper_arm.position[1].Y,u-> left_upper_arm.position[1].Z);
+
+ glVertex3f(u-> left_lower_arm.position[0].X,u->left_lower_arm.position[0].Y,u-> left_lower_arm.position[0].Z);
+ glVertex3f(u-> left_lower_arm.position[1].X,u->left_lower_arm.position[0].Y,u-> left_lower_arm.position[1].Z);
+
+ glVertex3f(u-> right_shoulder.position[0].X,u->right_shoulder.position[0].Y,u-> right_shoulder.position[0].Z);
+ glVertex3f(u-> right_shoulder.position[1].X,u->right_shoulder.position[1].Y,u-> right_shoulder.position[1].Z);
+
+ glVertex3f(u-> right_upper_arm.position[0].X,u-> right_upper_arm.position[0].Y,u-> right_upper_arm.position[0].Z);
+ glVertex3f(u-> right_upper_arm.position[1].X,u-> right_upper_arm.position[1].Y,u-> right_upper_arm.position[1].Z);
+
+ glVertex3f(u-> right_lower_arm.position[0].X,u-> right_lower_arm.position[0].Y,u-> right_lower_arm.position[0].Z);
+ glVertex3f(u-> right_lower_arm.position[1].X,u-> right_lower_arm.position[1].Y,u-> right_lower_arm.position[1].Z);
+
+ glVertex3f(u-> left_upper_torso.position[0].X,u-> left_upper_torso.position[0].Y,u-> left_upper_torso.position[0].Z);
+ glVertex3f(u-> left_upper_torso.position[1].X,u-> left_upper_torso.position[1].Y,u-> left_upper_torso.position[1].Z);
+
+ glVertex3f(u->right_upper_torso.position[0].X,u->right_upper_torso.position[0].Y,u->right_upper_torso.position[0].Z);
+ glVertex3f(u->right_upper_torso.position[1].X,u->right_upper_torso.position[1].Y,u->right_upper_torso.position[1].Z);
+
+ glVertex3f(u->left_lower_torso.position[0].X,u->left_lower_torso.position[0].Y,u->left_lower_torso.position[0].Z);
+ glVertex3f(u->left_lower_torso.position[1].X,u->left_lower_torso.position[1].Y,u->left_lower_torso.position[1].Z);
+
+ glVertex3f(u->left_upper_leg.position[0].X,u->left_upper_leg.position[0].Y,u->left_upper_leg.position[0].Z);
+ glVertex3f(u->left_upper_leg.position[1].X,u->left_upper_leg.position[1].Y,u->left_upper_leg.position[1].Z);
+
+ glVertex3f(u->left_lower_leg.position[0].X,u->left_lower_leg.position[0].Y,u->left_lower_leg.position[0].Z);
+ glVertex3f(u->left_lower_leg.position[1].X,u->left_lower_leg.position[1].Y,u->left_lower_leg.position[1].Z);
+
+ glVertex3f(u->right_lower_torso.position[0].X,u->right_lower_torso.position[0].Y,u->right_lower_torso.position[0].Z);
+ glVertex3f(u->right_lower_torso.position[1].X,u->right_lower_torso.position[1].Y,u->right_lower_torso.position[1].Z);
+
+ glVertex3f(u->right_upper_leg.position[0].X,u->right_upper_leg.position[0].Y,u->right_upper_leg.position[0].Z);
+ glVertex3f(u->right_upper_leg.position[1].X,u->right_upper_leg.position[1].Y,u->right_upper_leg.position[1].Z);
+
+ glVertex3f(u->right_lower_leg.position[0].X,u->right_lower_leg.position[0].Y,u->right_lower_leg.position[0].Z);
+ glVertex3f(u->right_lower_leg.position[1].X,u->right_lower_leg.position[1].Y,u->right_lower_leg.position[1].Z);
+
+ glVertex3f(u->hip.position[0].X,u->hip.position[0].Y,u->hip.position[0].Z);
+ glVertex3f(u->hip.position[1].X,u->hip.position[1].Y,u->hip.position[1].Z);
+ }
+ glEnd();
+ ofSetColor(255,255,255);
}
bindTexture(rb1);
for (int i=0;i<rUser->getNumberOfTrackedUsers();i++){
+
ofxTrackedUser* u=(rUser->getTrackedUser(i+1));
if (u->neck.found) {