SLProject  4.2.000
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
Utils.h File Reference
#include <string>
#include <vector>
#include <cfloat>
#include <memory>
#include <FileLog.h>
#include <CustomLog.h>
#include <functional>
Include dependency graph for Utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Utils::ComputerInfos
 Class for holding computer information. More...
 

Namespaces

 Utils
 Utils provides utilities for string & file handling, logging and math functions.
 

Functions

string Utils::toString (float f, int roundedDecimals=1)
 Returns a string from a float with max. one trailing zero. More...
 
string Utils::toString (double d, int roundedDecimals=1)
 Returns a string from a double with max. one trailing zero. More...
 
string Utils::toLowerString (string s)
 Returns a string in lower case. More...
 
string Utils::toUpperString (string s)
 Returns a string in upper case. More...
 
string Utils::trimString (const string &s, const string &drop=" ")
 Trims a string at both end. More...
 
string Utils::trimRightString (const string &s, const string &drop)
 trims a string at the right end More...
 
string Utils::trimLeftString (const string &s, const string &drop)
 trims a string at the left end More...
 
void Utils::splitString (const string &s, char delimiter, vector< string > &splits)
 Splits an input string at a delimiter character into a string vector. More...
 
void Utils::replaceString (string &source, const string &from, const string &to)
 Replaces in the source string the from string by the to string. More...
 
vector< string > Utils::getStringLines (const string &multiLineString)
 Returns a vector of string one per line of a multiline string. More...
 
string Utils::readTextFileIntoString (const char *logTag, const string &pathAndFilename)
 Reads a text file into a string and returns it. More...
 
void Utils::writeStringIntoTextFile (const char *logTag, const string &stringToWrite, const string &pathAndFilename)
 Writes a string into a text file. More...
 
string Utils::replaceNonFilenameChars (string source, char replaceChar='-')
 replaces non-filename characters: /|?%*:"<>' More...
 
string Utils::getLocalTimeString ()
 Returns local time as string like "Wed Feb 13 15:46:11 2019". More...
 
string Utils::getDateTime1String ()
 Returns local time as string like "13.02.19-15:46". More...
 
string Utils::getDateTime2String ()
 Returns local time as string like "20190213-154611". More...
 
string Utils::getHostName ()
 Returns the computer name. More...
 
string Utils::formatString (string fmt_str,...)
 Returns a formatted string as sprintf. More...
 
bool Utils::containsString (const string &container, const string &search)
 Returns true if container contains the search string. More...
 
bool Utils::startsWithString (const string &container, const string &startStr)
 Return true if the container string starts with the startStr. More...
 
bool Utils::endsWithString (const string &container, const string &endStr)
 Return true if the container string ends with the endStr. More...
 
string Utils::unifySlashes (const string &inputDir, bool withTrailingSlash=true)
 Returns the inputDir string with unified forward slashes, e.g.: "dirA/dirB/". More...
 
bool Utils::getFileContent (const string &fileName, vector< string > &vecOfStrings)
 Returns true if content of file could be put in a vector of strings. More...
 
bool Utils::compareNatural (const string &a, const string &b)
 Naturally compares two strings (used for filename sorting) More...
 
string Utils::getPath (const string &pathFilename)
 Returns the path w. '\' of path-filename string. More...
 
string Utils::getFileName (const string &pathFilename)
 Returns the filename of path-filename string. More...
 
string Utils::getFileNameWOExt (const string &pathFilename)
 Returns the filename without extension. More...
 
string Utils::getDirName (const string &pathFilename)
 Strip last component from file name. More...
 
string Utils::getFileExt (const string &filename)
 Returns the file extension without dot in lower case. More...
 
vector< string > Utils::getDirNamesInDir (const string &dirName, bool fullPath=true)
 Returns a vector directory names with path in dir. More...
 
vector< string > Utils::getAllNamesInDir (const string &dirName, bool fullPath=true)
 Returns a vector of sorted names (files and directories) with path in dir. More...
 
vector< string > Utils::getFileNamesInDir (const string &dirName, bool fullPath=true)
 Returns a vector of sorted filesnames in dirName. More...
 
bool Utils::dirExists (const string &path)
 Returns true if a directory exists. More...
 
unsigned int Utils::getFileSize (const string &filename)
 Returns the file size in bytes. More...
 
unsigned int Utils::getFileSize (std::ifstream &fs)
 
bool Utils::makeDir (const string &path)
 Creates a directory with given path. More...
 
bool Utils::makeDirRecurse (string path)
 Creates a directory with given path recursively. More...
 
void Utils::removeDir (const string &path)
 RemoveDir deletes a directory with given path. More...
 
void Utils::removeFile (const string &path)
 RemoveFile deletes a file with given path. More...
 
bool Utils::fileExists (const string &pathfilename)
 Returns true if a file exists. More...
 
string Utils::getAppsWritableDir (string appName="SLProject")
 Returns the writable configuration directory. More...
 
string Utils::getCurrentWorkingDir ()
 Returns the working directory. More...
 
bool Utils::deleteFile (string &pathfilename)
 Deletes a file on the filesystem. More...
 
void Utils::loopFileSystemRec (const string &path, function< void(string path, string baseName, int depth)> processFile, function< void(string path, string baseName, int depth)> processDir, const int depth=0)
 process all files and folders recursively naturally sorted More...
 
void Utils::dumpFileSystemRec (const char *logtag, const string &folderpath)
 Dumps all folders and files recursovely. More...
 
string Utils::findFile (const string &filename, const vector< string > &pathsToCheck)
 Tries to find a filename on various paths to check. More...
 
void Utils::initFileLog (const std::string &logDir, bool forceFlush)
 Instantiates FileLog instance. More...
 
void Utils::log (const char *tag, const char *format,...)
 logs a formatted string platform independently More...
 
void Utils::exitMsg (const char *tag, const char *msg, int line, const char *file)
 Terminates the application with a message. No leak checking. More...
 
void Utils::warnMsg (const char *tag, const char *msg, int line, const char *file)
 Platform independent warn message output. More...
 
void Utils::errorMsg (const char *tag, const char *msg, int line, const char *file)
 Platform independent error message output. More...
 
unsigned int Utils::maxThreads ()
 Returns in release config the max. NO. of threads otherwise 1. More...
 
template<class T >
Utils::sign (T a)
 
template<class T >
Utils::floor (T a)
 
template<class T >
Utils::ceil (T a)
 
template<class T >
Utils::fract (T a)
 
template<class T >
Utils::abs (T a)
 
template<class T >
Utils::mod (T a, T b)
 
template<class T >
Utils::step (T edge, T x)
 
template<class T >
Utils::pulse (T a, T b, T x)
 
template<class T >
Utils::clamp (T a, T min, T max)
 
template<class T >
Utils::mix (T mix, T a, T b)
 
template<class T >
Utils::lerp (T x, T a, T b)
 
bool Utils::isPowerOf2 (unsigned int a)
 Returns true if a number is of power of 2. More...
 
float Utils::random (float min, float max)
 Returns a uniform distributed random float number between min and max. More...
 
int Utils::random (int min, int max)
 Returns a uniform distributed random int number between min and max. More...
 
int Utils::gcd (int a, int b)
 Greatest common divisor of two integer numbers (ggT = grösster gemeinsame Teiler) More...
 
unsigned Utils::closestPowerOf2 (unsigned num)
 Returns the closest power of 2 to a passed number. More...
 
unsigned Utils::nextPowerOf2 (unsigned num)
 Returns the next power of 2 to a passed number. More...
 

Variables

static std::unique_ptr< FileLog > Utils::fileLog
 
static const float Utils::PI = 3.14159265358979f
 
static const float Utils::RAD2DEG = 180.0f / PI
 
static const float Utils::DEG2RAD = PI / 180.0f
 
static const float Utils::TWOPI = 2.0f * PI
 
static const float Utils::ONEOVERPI = 1.0f / PI
 
static const float Utils::HALFPI = PI * 0.5f
 

Detailed Description

Authors
Marcus Hudritsch
Date
May 2019
Remarks
Please use clangformat to format the code. See more code style on https://github.com/cpvrlab/SLProject4/wiki/SLProject-Coding-Style

Definition in file Utils.h.