diff options
Diffstat (limited to 'src/testApp.cpp')
| -rwxr-xr-x | src/testApp.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/testApp.cpp b/src/testApp.cpp index 312aa57..e443c1e 100755 --- a/src/testApp.cpp +++ b/src/testApp.cpp @@ -1,4 +1,20 @@ #include "testApp.h" +string urlDecode(string &SRC) { + string ret; + char ch; + int i, ii; + for (i=0; i<SRC.length(); i++) { + if (int(SRC[i])==37) { + sscanf(SRC.substr(i+1,2).c_str(), "%x", &ii); + ch=static_cast<char>(ii); + ret+=ch; + i=i+2; + } else { + ret+=SRC[i]; + } + } + return (ret); +} //-------------------------------------------------------------- guiWindow::~guiWindow(){ cout << "gui window destroyed" << endl; @@ -245,7 +261,6 @@ void testApp::mousePressed(int x, int y, int button){ case 0: selectedPoint=boundaries[selectedBoundary].findPoint(p); if (selectedPoint<0) { - selectedPoint=boundaries[selectedBoundary].points.size(); boundaries[selectedBoundary].add(p); } else boundaries[selectedBoundary].points[selectedPoint]=p; @@ -286,7 +301,8 @@ void testApp::dragEvent(ofDragInfo dragInfo) { printf("got draginfo: %f,%f,%f\n",dragInfo.position.x,dragInfo.position.y,dragInfo.position.z); int sta=dragInfo.files[0].find_last_of("\\/")+1; int len=(dragInfo.files[0].find_last_of(".")+4)-sta; - string filename=dragInfo.files[0].substr(sta,len); + string f=dragInfo.files[0].substr(sta,len); + string filename=urlDecode(f); for (int i=0;i<boundaries.size();i++) { if (boundaries[i].checkFile(dragInfo.position,filename)) printf("loaded %s into shape %i\n",filename.c_str(),i); } |
