diff options
Diffstat (limited to 'extern/mantaflow/preprocessed/general.cpp')
-rw-r--r-- | extern/mantaflow/preprocessed/general.cpp | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/extern/mantaflow/preprocessed/general.cpp b/extern/mantaflow/preprocessed/general.cpp new file mode 100644 index 00000000000..266e6c8719d --- /dev/null +++ b/extern/mantaflow/preprocessed/general.cpp @@ -0,0 +1,167 @@ + + +// DO NOT EDIT ! +// This file is generated using the MantaFlow preprocessor (prep generate). + +/****************************************************************************** + * + * MantaFlow fluid solver framework + * Copyright 2011-2016 Tobias Pfaff, Nils Thuerey + * + * This program is free software, distributed under the terms of the + * Apache License, Version 2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Globally used macros and functions (e.g. time measurements), + * and doxygen documentation collection. + * + ******************************************************************************/ + +/*! \mainpage Welcome to mantaflow! + * + * Here you can find the auto-generated documentation of the mantaflow framework. + * + * One of the most useful parts is probably the list of python functions, classes and the C++ + * kernels. Those can be found found in the ''Modules'' section. For python functions the + * parameters (e.g. Grids, Real or int values) are automatically transferred to and from python. + * Thus, this list is a good reference how to call the functions used in the example scenes. + * + */ + +// Define plugin documentation group +// all kernels, plugin functions and classes will automatically be added to this group +//! @defgroup Plugins Functions callable from Python +//! @defgroup PyClasses Classes exposed to Python +//! @defgroup Kernels Computation Kernels + +#include "general.h" +#if defined(WIN32) || defined(_WIN32) +# define WIN32_LEAN_AND_MEAN +# define NOMINMAX +# include <windows.h> +# undef WIN32_LEAN_AND_MEAN +# undef NOMINMAX +#else +# include <sys/time.h> +# include "gitinfo.h" +#endif + +using namespace std; + +namespace Manta { + +int gDebugLevel = 1; + +void MuTime::get() +{ +#if defined(WIN32) || defined(_WIN32) + LARGE_INTEGER liTimerFrequency; + QueryPerformanceFrequency(&liTimerFrequency); + LARGE_INTEGER liLastTime; + QueryPerformanceCounter(&liLastTime); + time = (INT)(((double)liLastTime.QuadPart / liTimerFrequency.QuadPart) * 1000); +#else + struct timeval tv; + struct timezone tz; + tz.tz_minuteswest = 0; + tz.tz_dsttime = 0; + gettimeofday(&tv, &tz); + time = (tv.tv_sec * 1000) + (tv.tv_usec / 1000); +#endif +} + +MuTime MuTime::update() +{ + MuTime o = *this; + get(); + return *this - o; +} + +string MuTime::toString() +{ + stringstream ss; + ss << *this; + return ss.str(); +} + +ostream &operator<<(ostream &os, const MuTime &t) +{ + unsigned long ms = (unsigned long)((double)t.time / (60.0 * 1000.0)); + unsigned long ss = (unsigned long)(((double)t.time / 1000.0) - ((double)ms * 60.0)); + int ps = (int)(((double)t.time - (double)ss * 1000.0) / 1.0); + + if (ms > 0) { + os << ms << "m" << ss << "s"; + } + else { + if (ps > 0) { + os << ss << "."; + if (ps < 10) { + os << "0"; + } + if (ps < 100) { + os << "0"; + } + os << ps << "s"; + } + else { + os << ss << "s"; + } + } + return os; +} + +//! print info about this mantaflow build, used eg by printBuildInfo in fluidsolver.cpp +std::string buildInfoString() +{ + std::ostringstream infoStr; +#ifndef MANTAVERSION +# define MANTAVERSION "<unknown-version>" +#endif + infoStr << "mantaflow " << MANTAVERSION; + + // os +#if defined(WIN32) || defined(_WIN32) + infoStr << " win"; +#endif +#ifdef __APPLE__ + infoStr << " mac"; +#endif +#ifdef LINUX + infoStr << " linux"; +#endif + + // 32/64 bit + if (sizeof(size_t) == 8) + infoStr << " 64bit"; + else + infoStr << " 32bit"; + + // fp precision +#if FLOATINGPOINT_PRECISION == 2 + infoStr << " fp2"; +#else + infoStr << " fp1"; +#endif + + // other compile switches +#ifdef DEBUG + infoStr << " debug"; +#endif +#ifdef OPENMP + infoStr << " omp"; +#endif + + // repository info (git commit id) +#ifndef MANTA_GIT_VERSION +# define MANTA_GIT_VERSION "<unknown-commit>" +#endif + infoStr << " " << MANTA_GIT_VERSION; + + infoStr << " from " << __DATE__ << ", " << __TIME__; + return infoStr.str(); +} + +//! note - generic PYTHON helpers in fluidsolver.cpp , no python bindings here + +} // namespace Manta |