1 #pragma once
2 // -- NOT to be included in headers --
3
4 #include <iomanip>
5 #include <OgreLogManager.h>
6 #include <OgreStringConverter.h>
7 #include <MyGUI_LanguageManager.h>
8
9 // Log in ogre.log
10 #define LogO(s) Ogre::LogManager::getSingleton().logMessage(s)
11
12 // to string
13 #define toStr(v) Ogre::StringConverter::toString(v)
14 #define toStrC(v) Ogre::StringConverter::toString(v).c_str()
15
16 // translation
17 #define TR(s) MyGUI::LanguageManager::getInstance().replaceTags(s)
18
19
20 // format int,float to string
21 static Ogre::String iToStr(const int v, const char width=0)
22 {
23 std::ostringstream s;
24 if (width != 0) s.width(width); //s.fill(fill);
25 s << std::fixed << v;
26 return s.str();
27 }
28 static Ogre::String fToStr(const float v, const char precision=2, const char width=4, const char fill=' ')
29 {
30 std::ostringstream s;
31 if (width != 0) s.width(width); s.fill(fill);
32 s << std::fixed << std::setprecision(precision) << v;
33 return s.str();
34 }
35
36 // string to var
37 #define s2r(s) Ogre::StringConverter::parseReal(s)
38 #define s2i(s) Ogre::StringConverter::parseInt(s)
39 #define s2c(s) Ogre::StringConverter::parseColourValue(s)
40
41 #define s2v2(s) Ogre::StringConverter::parseVector2(s)
42 #define s2v(s) Ogre::StringConverter::parseVector3(s)
43 #define s2v4(s) Ogre::StringConverter::parseVector4(s)
44
45 #define b2s(b) (b) ? "true" : "false"
46
47
48 const int ciShadowSizesNum = 5;
49 const int ciShadowSizesA[ciShadowSizesNum] = {256,512,1024,2048,4096};
50
StrTime(float time)51 static Ogre::String StrTime(float time) // format time string
52 {
53 int min = (int) time / 60;
54 float secs = time - min*60;
55 if (time != 0.f)
56 { Ogre::String ss = toStr(min)+":"+fToStr(secs,2,5,'0');
57 return ss;
58 }else
59 return "-:--.--";
60 }
StrTime2(float time)61 static Ogre::String StrTime2(float time) // short
62 {
63 int min = (int) time / 60;
64 float secs = time - min*60;
65 if (time != 0.0)
66 { Ogre::String ss = toStr(min)+":"+fToStr(secs,0,2,'0');
67 return ss;
68 }else
69 return "-:--";
70 }
71