octree traversal rewritten to avoid recursion
reenabled -O3 optimizations (was accidentaly disabled, now it traces even faster! :-))
realtime_bunny: added FPS counter, fixed a bug in ply loader
min3 and max3 templates added to common.h
/*
* Pyrit Ray Tracer
* file: common.h
*
* Radek Brich, 2006-2007
*/
#ifndef COMMON_H
#define COMMON_H
#include <stdio.h>
#include <stdarg.h>
#include <float.h>
#ifdef PYRIT_DOUBLE
# define Float double
# define Eps DBL_EPSILON
# define Inf DBL_MAX
#else
# define Float float
# define Eps 1e-6
# define Inf FLT_MAX
#endif
/* verbosity level:
0: only errors (E)
1: major status messages (*)
2: minor status, progress (-)
3: debug messages (D)
4: more debug
default = 2
*/
extern int pyrit_verbosity;
inline void dbgmsg(const int vlevel, const char *format, ...)
{
if (pyrit_verbosity >= vlevel)
{
va_list ap;
va_start(ap, format);
vprintf(format, ap);
va_end(ap);
fflush(stdout);
}
}
template<typename Type> const Type &min3(const Type &a, const Type &b, const Type &c)
{
if (a <= b)
{
if (a <= c)
return a;
else
return c;
}
else
{
if (b <= c)
return b;
else
return c;
}
}
template<typename Type> const Type &max3(const Type &a, const Type &b, const Type &c)
{
if (a >= b)
{
if (a >= c)
return a;
else
return c;
}
else
{
if (b >= c)
return b;
else
return c;
}
}
#endif