// ------------------------------------------------------------------- // C Headers // ------------------------------------------------------------------- #include #include #include #include #include // ------------------------------------------------------------------- // Local Headers // ------------------------------------------------------------------- #include "util.h" FILE *utilOpenFile(const char *fileName, const char *mode) { if(!fileName || !mode) return(NULL); #ifdef _MSC_VER FILE *f = NULL; errno_t returnValue = fopen_s(&f, fileName, mode); return(returnValue == 0 ? f : NULL); #else return(fopen(fileName, mode)); #endif } int utilRandomValue(void) { static bool first = true; if(first) { first = false; srand((int)time(NULL)); } return(rand()); } double utilDegreesToRadians(double degrees) { return(degrees * M_PI / 180.0); } XY utilGetXY(double degrees, double radius, double xOffset, double yOffset) { double theta = utilDegreesToRadians(degrees); XY value = { 0 }; value.mX = xOffset + radius * cos(theta); value.mY = yOffset + radius * sin(theta); return(value); } int utilRound(double value) { return((int)(value <= 0 ? value + 0.5 : value - 0.5)); } void utilGetHMS(int *hourPtr, int *minutePtr, int *secondPtr) { *hourPtr = *minutePtr = *secondPtr = 0; time_t now = { 0 }; time(&now); struct tm *ptr = NULL; #ifdef _MSC_VER struct tm theTime = { 0 }; localtime_s(&theTime, &now); ptr = &theTime; #else ptr = localtime(&now); #endif *hourPtr = ptr->tm_hour; *minutePtr = ptr->tm_min; *secondPtr = ptr->tm_sec; if(*hourPtr > 12) *hourPtr -= 12; }