#ifndef B3_FILE_UTILS_H #define B3_FILE_UTILS_H #include #include "b3Scalar.h" #include //ptrdiff_h #include struct b3FileUtils { b3FileUtils() { } virtual ~b3FileUtils() { } static bool findFile(const char* orgFileName, char* relativeFileName, int maxRelativeFileNameMaxLen) { FILE* f=0; f = fopen(orgFileName,"rb"); if (f) { //printf("original file found: [%s]\n", orgFileName); sprintf(relativeFileName,"%s", orgFileName); fclose(f); return true; } //printf("Trying various directories, relative to current working directory\n"); const char* prefix[]={"./","./data/","../data/","../../data/","../../../data/","../../../../data/"}; int numPrefixes = sizeof(prefix)/sizeof(const char*); f=0; bool fileFound = false; for (int i=0;!f && i0); if (maxPathLength>0) { path[len] = 0; } } return len; } static char toLowerChar(const char t) { if (t>=(char)'A' && t<=(char)'Z') return t + ((char)'a' - (char)'A'); else return t; } static void toLower(char* str) { int len=strlen(str); for (int i=0;i