94 lines
2.5 KiB
C++
Executable File
94 lines
2.5 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef DTSAPPTIME_H_
|
|
#define DTSAPPTIME_H_
|
|
|
|
#include "DTSTypes.h"
|
|
#include "DTSShape.h"
|
|
#include "DTSPlusTypes.h"
|
|
|
|
namespace DTS
|
|
{
|
|
class AppTime
|
|
{
|
|
static AppTime smDefaultTime;
|
|
static F64 smTOL;
|
|
static bool smPrintInt;
|
|
static bool smPrintFloat;
|
|
|
|
F64 f64;
|
|
U32 u32;
|
|
char * mBuffer;
|
|
|
|
public:
|
|
|
|
void set(F64 f, U32 i) { u32=i;f64=f; }
|
|
|
|
// app can use however desired
|
|
F32 getF32() const { return (F32)f64; }
|
|
F64 getF64() const { return f64; }
|
|
U32 getU32() const { return u32; }
|
|
S32 getS32() const { return S32(u32); }
|
|
|
|
const char * getStr() const;
|
|
|
|
static const AppTime & DefaultTime() { return smDefaultTime; }
|
|
static void SetDefaultTime(const AppTime & def) { smDefaultTime = def; }
|
|
static F64 TOL() { return smTOL; }
|
|
static void SetTOL(F64 tol) { smTOL = tol; }
|
|
static void SetPrintInt(bool i) { smPrintInt=i; }
|
|
static void SetPrintFloat(bool f) { smPrintFloat=f; }
|
|
|
|
// operators...
|
|
AppTime & operator+=(const AppTime & r)
|
|
{
|
|
f64 += r.f64;
|
|
u32 += r.u32;
|
|
return *this;
|
|
}
|
|
AppTime & operator-=(const AppTime & r)
|
|
{
|
|
f64 -= r.f64;
|
|
u32 -= r.u32;
|
|
return *this;
|
|
}
|
|
friend AppTime operator+(const AppTime & a, const AppTime & b)
|
|
{
|
|
return AppTime(a.f64+b.f64,a.u32+b.u32);
|
|
}
|
|
friend bool operator<(const AppTime & a, const AppTime & b)
|
|
{
|
|
return (a.f64 < b.f64 && a.u32 <= b.u32);
|
|
}
|
|
friend bool operator>(const AppTime & a, const AppTime & b)
|
|
{
|
|
return b<a;
|
|
}
|
|
friend bool operator<=(const AppTime & a, const AppTime & b)
|
|
{
|
|
return (a.f64 <= b.f64 && a.u32 <= b.u32);
|
|
}
|
|
friend bool operator>=(const AppTime & a, const AppTime & b)
|
|
{
|
|
return b<=a;
|
|
}
|
|
friend bool operator==(const AppTime & a, const AppTime & b)
|
|
{
|
|
return ((fabs(a.f64 - b.f64) < AppTime::TOL()) && (a.u32 == b.u32));
|
|
}
|
|
friend bool operator!=(const AppTime & a, const AppTime & b)
|
|
{
|
|
return !(a==b);
|
|
}
|
|
|
|
AppTime(F64 f, U32 i) { set(f,i); mBuffer=NULL; }
|
|
AppTime() { set(0,0); mBuffer=NULL; }
|
|
~AppTime() { delete [] mBuffer; }
|
|
};
|
|
};
|
|
|
|
#endif // DTSAPPTIME_H_
|