-const char TraceLevel::TRACE_NONE_STR[]= "none";
-const char TraceLevel::TRACE_TEXT_STR[]= "text";
-const char TraceLevel::TRACE_PHM_STR[]= "phm";
-const char TraceLevel::TRACE_RAYS_STR[]= "rays";
-const char TraceLevel::TRACE_PLOT_STR[]= "plot";
-const char TraceLevel::TRACE_CLIPPING_STR[]= "clipping";
+const int Trace::TRACE_INVALID = -1;
+const int Trace::TRACE_NONE = 0;
+const int Trace::TRACE_CONSOLE = 1;
+const int Trace::TRACE_PHANTOM = 2;
+const int Trace::TRACE_PROJECTIONS = 3;
+const int Trace::TRACE_PLOT = 4;
+const int Trace::TRACE_CLIPPING = 5;
+
+const int Trace::BIT_CONSOLE = 0x0001;
+const int Trace::BIT_PHANTOM = 0x0002;
+const int Trace::BIT_PROJECTIONS = 0x0004;
+const int Trace::BIT_PLOT = 0x0008;
+const int Trace::BIT_CLIPPING = 0x0010;
+
+const char* Trace::s_aszTraceName[] =
+{
+ "none",
+ "console",
+ "phantom",
+ "proj",
+ "plot",
+ "clipping",
+};
+
+const char* Trace::s_aszTraceTitle[] =
+{
+ "None",
+ "Console",
+ "Phantom",
+ "Projections",
+ "Plot",
+ "Clipping",
+};
+
+const int Trace::s_iTraceCount = sizeof(s_aszTraceName) / sizeof(const char*);
+
+
+const char*
+Trace::convertTraceIDToName (const int idTrace)
+{
+ const char *name = "";
+
+ if (idTrace >= 0 && idTrace < s_iTraceCount)
+ return (s_aszTraceName[idTrace]);