From 4525c22d902e1eff47d6a8a64d022d885ac3a76a Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sat, 30 Jun 2012 09:58:06 +0100 Subject: version 1.0 --- src/obtsDevice.cpp | 97 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 47 deletions(-) (limited to 'src/obtsDevice.cpp') diff --git a/src/obtsDevice.cpp b/src/obtsDevice.cpp index 7138475..630af69 100644 --- a/src/obtsDevice.cpp +++ b/src/obtsDevice.cpp @@ -108,7 +108,7 @@ float obtsDevice::timeCoord(float t){ //function to map time to the z dimension //timescale is the number of pixels per second //return t*timeScale; - return log10(t+1)*(ofGetHeight()/5); + return log10(t+1)*(ofGetHeight()/4); } void obtsDevice::draw(float t) @@ -131,54 +131,57 @@ void obtsDevice::draw(float t) //colour based on IMSI, excitation and movement //sms and calls coloured based on the phone that made them. - float rf=sin((coords.y/(ofGetWidth()*0.9))*TWO_PI); - ofSetColor(colour); //*rf); - float endPos; - for (vector::iterator i=connectionHistory.begin();i!=connectionHistory.end();i++){ - float startPos=-timeCoord(now-(*i).startTime); - endPos=(*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f; - ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); - //printf("%f drawing %f,%f,%f to %f,%f,%f\n",ofGetElapsedTimef(),cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); - } - - for (vector::iterator i=smsHistory.begin();i!=smsHistory.end();i++){ - float timepos=-timeCoord(now-(*i).time); - ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,timepos,cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,timepos); - } + if (connectionHistory.size()) { - ofEnableAlphaBlending(); - - for (vector::iterator i=callHistory.begin();i!=callHistory.end();i++){ - float stimepos=-timeCoord(now-(*i).startTime); - float etimepos=((*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f); - float ctimepos=(*i).connected?-timeCoord(now-(*i).connectedTime):0.0f; - if ((*i).connectedTime>(*i).startTime||!(*i).connected) { //draw ringing section - ofSetColor(colour.r,colour.g,colour.b,0x2f); - glBegin(GL_QUADS); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,stimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,stimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); - glEnd(); + float rf=sin((coords.y/(ofGetWidth()*0.9))*TWO_PI); + ofSetColor(colour); //*rf); + float endPos; + for (vector::iterator i=connectionHistory.begin();i!=connectionHistory.end();i++){ + float startPos=-timeCoord(now-(*i).startTime); + endPos=(*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f; + ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); + //printf("%f drawing %f,%f,%f to %f,%f,%f\n",ofGetElapsedTimef(),cos(coords.x)*coords.y,sin(coords.x)*coords.y,startPos,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); + } + + for (vector::iterator i=smsHistory.begin();i!=smsHistory.end();i++){ + float timepos=-timeCoord(now-(*i).time); + ofLine(cos(coords.x)*coords.y,sin(coords.x)*coords.y,timepos,cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,timepos); } - if ((*i).connected) { //draw connected section - ofSetColor(colour.r,colour.g,colour.b,0x4f); - glBegin(GL_QUADS); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); - glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,etimepos); - glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,etimepos); - glEnd(); + + ofEnableAlphaBlending(); + + for (vector::iterator i=callHistory.begin();i!=callHistory.end();i++){ + float stimepos=-timeCoord(now-(*i).startTime); + float etimepos=((*i).endTime>0.0f?-timeCoord(now-(*i).endTime):0.0f); + float ctimepos=(*i).endTime<.01f&&!(*i).connected?0.0f:-timeCoord(now-(*i).connectedTime); + if (((*i).connectedTime>(*i).startTime)||((!(*i).connected)&&((*i).endTime<.01f))) { //draw ringing section + ofSetColor(colour.r,colour.g,colour.b,0x2f); + glBegin(GL_QUADS); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,stimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,stimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); + glEnd(); + } + if ((*i).connectedTime>0.0f) { //draw connected section + ofSetColor(colour.r,colour.g,colour.b,0x4f); + glBegin(GL_QUADS); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,ctimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,ctimepos); + glVertex3f(cos((*i).recipient->coords.x)*(*i).recipient->coords.y,sin((*i).recipient->coords.x)*(*i).recipient->coords.y,etimepos); + glVertex3f(cos(coords.x)*coords.y,sin(coords.x)*coords.y,etimepos); + glEnd(); + } } + + ofDisableAlphaBlending(); + + int greylev=0x7f+((int)(128.0f*exciteLevel)); + //printf("%s %i\n",number.c_str(),greylev); + ofSetColor(greylev,greylev,greylev,0xff); + ofSetDrawBitmapMode(OF_BITMAPMODE_MODEL_BILLBOARD); + ofDrawBitmapString(number,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); + ofSetDrawBitmapMode(OF_BITMAPMODE_SIMPLE); + exciteLevel=pow(exciteLevel,1+(timeSeg*decay)); } - - ofDisableAlphaBlending(); - - int greylev=0x7f+((int)(128.0f*exciteLevel)); - //printf("%s %i\n",number.c_str(),greylev); - ofSetColor(greylev,greylev,greylev,0xff); - ofSetDrawBitmapMode(OF_BITMAPMODE_MODEL_BILLBOARD); - ofDrawBitmapString(number,cos(coords.x)*coords.y,sin(coords.x)*coords.y,endPos); - ofSetDrawBitmapMode(OF_BITMAPMODE_SIMPLE); - exciteLevel=pow(exciteLevel,1+(timeSeg*decay)); } -- cgit v1.2.3