raSystem  1.0 bata
raLog.cpp
Go to the documentation of this file.
1 #include "..\include\raMain.h"
2 
3 namespace System
4 {
5 // ******************************************************************
6 // Globale Variablen
7 FILE* ra_g_pLogFile = NULL; // Handle der Logbuchdatei
8 
9 // ******************************************************************
10 // Initialisieren der Logbuchdatei
11 RAPI bool raInitLog( raString File)
12 {
13  // Logbuchdatei öffnen
14  ra_g_pLogFile = fopen(File.c_str(), "wt");
15  if(!ra_g_pLogFile) return false;
16 
17  return true;
18 }
19 
20 // ******************************************************************
21 // Schließen der Logbuchdatei
23 {
24  // Datei schließen
25  if(ra_g_pLogFile)
26  {
27  fflush(ra_g_pLogFile);
28  fclose(ra_g_pLogFile);
29  ra_g_pLogFile = NULL;
30  }
31 
32  return true;
33 }
34 
35 // ******************************************************************
36 // Einen Text unverändert in die Logbuchdatei schreiben
38 {
39  // String ins Logbuch schreiben
40  if(ra_g_pLogFile)
41  {
42  fprintf(ra_g_pLogFile, "%s<br>", pcFormat.c_str());
43 #ifdef _DEBUG
44  fflush(ra_g_pLogFile);
45 #endif
46  }
47 
48  return true;
49 }
50 
51 // ******************************************************************
52 // Entfernt HTML-Tags aus einem String
53 bool RemoveHTMLTags( raString pcIn, raString pcOut, DWORD dwOutLength)
54 {
55 #ifndef WIN64
56  DWORD dwInLength = strlen(pcIn);
57 #else
58  size_t dwInLength = strlen(pcIn.c_str());
59 #endif
60  DWORD dwOut = 0;
61 
62  ZeroMemory((void*)pcOut.c_str(), dwOutLength);
63  for(DWORD dwIn = 0; dwIn < dwInLength; dwIn++)
64  {
65  if(pcIn[dwIn] != '<') {pcOut[dwOut] = pcIn[dwIn]; dwOut++;}
66  else
67  {
68  while(pcIn[dwIn] != '>') dwIn++;
69  }
70  }
71 
72  return true;
73 }
74 
75 // ******************************************************************
76 // Einen Text an HTML anpassen und in die Logbuchdatei schreiben
77 RAPI bool raWriteToLog( raString pcFormat)
78 {
79  if(ra_g_pLogFile)
80  {
81  fprintf(ra_g_pLogFile, "<tr><td><font size=\"2\" color=\"#000080\">%s</font></td></tr><br>", pcFormat.c_str());
82 #ifdef _DEBUG
83  fflush(ra_g_pLogFile);
84 #endif
85  }
86  OutputDebugString(pcFormat.c_str());
87 
88  return true;
89 }
90 
91 // ******************************************************************
92 // Einen 2D-Vektor in die Logbuchdatei schreiben
94 {
95  char temp[MAX_PATH];
96  sprintf(temp, "<tr><td><font size=\"2\"><b><font color=\"#000080\">2D-Vektor:</font></b> x = <i>%.3f</i>, y = <i>%.3f</i>, Länge = <i>%.3f</i></td></tr>",
97  v.x, v.y, raVector2Lenght(v));
98  return raWriteToLogDirect(temp);
99 }
100 
101 // ******************************************************************
102 // Einen 3D-Vektor in die Logbuchdatei schreiben
104 {
105  // 3D-Vektor in die Logbuchdatei schreiben
106  char temp[MAX_PATH];
107  sprintf(temp, "<tr><td><font size=\"2\"><b><font color=\"#000080\">3D-Vektor:</font></b> x = <i>%.3f</i>, y = <i>%.3f</i>, z = <i>%.3f</i>, Länge = <i>%.3f</i></td></tr>",
108  v.x, v.y, v.z, raVector3Lenght(v));
109  return raWriteToLogDirect(temp);
110 }
111 
112 // ******************************************************************
113 // Eine Matrix in die Logbuchdatei schreiben
115 {
116  // Matrix in die Logbuchdatei schreiben
117  raWriteToLogDirect("<tr><td><font size=\"2\"><b><font color=\"#000080\">Matrix:</font></b><table>");
118  for(int iRow = 0; iRow < 4; iRow++)
119  {
120  raWriteToLogDirect("<tr>");
121 
122  char buf[25];
123  for(int iColumn = 0; iColumn < 4; iColumn++)
124  {
125  raWriteToLogDirect("<td><font size=\"1\">");
126  sprintf(buf, "<i>%.3f</i>", m.m[iRow][iColumn]);
127  raWriteToLogDirect(buf);
128  raWriteToLogDirect("</td>");
129  }
130 
131  raWriteToLogDirect("</tr>");
132  }
133 
134  return raWriteToLogDirect("</table>");
135 }
136 
137 // ******************************************************************
138 // Eine Ebene in die Logbuchdatei schreiben
140 {
141  // Ebene in die Logbuchdatei schreiben
142  char temp[MAX_PATH];
143  sprintf(temp, "<tr><td><font size=\"2\"><b><font color=\"#000080\">Ebene:</font></b> a = <i>%.3f</i>, b = <i>%.3f</i>, c = <i>%.3f</i>, d = <i>%.3f</i>, Normalenvektorlänge = <i>%.3f</i></td></tr>",
144  p.a, p.b, p.c, p.d, raVector4Lenght(p.n));
145  return raWriteToLogDirect(temp);
146 }
147 
148 // ******************************************************************
149 // Eine Farbe in die Logbuchdatei schreiben
151 {
152  char acHexColor[9];
153 
154  sprintf(acHexColor, "%x", (DWORD)(c) << 8);
155  acHexColor[6] = 0;
156 
157  // Farbe in die Logbuchdatei schreiben
158  char temp[MAX_PATH];
159  sprintf(temp, "<tr><td><font size=\"2\"><b><font color=\"#000080\">Farbe:</font></b> a = <i>%.3f</i>, r = <i>%.3f</i>, g = <i>%.3f</i>, b = <i>%.3f</i>, Hexadezimal: <i>0x%x</i>, <font color=\"#%s\"><i>Probetext</i></font></td></tr>",
160  c.a, c.r, c.g, c.b, (DWORD)(c), acHexColor);
161  return raWriteToLogDirect(temp);
162 }
163 };
RAPI bool raInitLog(raString File)
Definition: raLog.cpp:11
RAPI bool raWriteVector3ToLog(raVector3 &v)
Definition: raLog.cpp:103
raFloat y
Definition: raVector3.h:13
raFloat x
Definition: raVector3.h:12
raVector4 n
Definition: raPlane.h:17
bool RemoveHTMLTags(raString pcIn, raString pcOut, DWORD dwOutLength)
Definition: raLog.cpp:53
#define RAPI
Definition: raMain.h:11
raFloat x
Definition: raVector2.h:10
raFloat d
Definition: raPlane.h:13
Definition: raColor.h:5
float g
Definition: raColor.h:13
float b
Definition: raColor.h:14
raFloat z
Definition: raVector3.h:14
Definition: raPlane.h:3
RAPI bool raWriteColorToLog(raColor &c)
Definition: raLog.cpp:150
raFloat c
Definition: raPlane.h:12
float a
Definition: raColor.h:15
raFloat raVector3Lenght(const raVector3 &v)
Definition: raVector3.h:59
RAPI bool raWriteMatrixToLog(raMatrix &m)
Definition: raLog.cpp:114
raFloat raVector4Lenght(const raVector4 &v)
Definition: raVector4.h:56
std::string raString
Definition: raMain.h:107
raFloat y
Definition: raVector2.h:11
RAPI bool raWriteVector2ToLog(raVector2 &v)
Definition: raLog.cpp:93
FILE * ra_g_pLogFile
Definition: raLog.cpp:7
raFloat b
Definition: raPlane.h:11
RAPI bool raWriteToLog(raString pcFormat)
Definition: raLog.cpp:77
RAPI bool raWriteToLogDirect(raString pcFormat)
Definition: raLog.cpp:37
float m[4][4]
Definition: raMatrix.h:18
RAPI bool raWritePlaneToLog(raPlane &p)
Definition: raLog.cpp:139
raFloat a
Definition: raPlane.h:10
float r
Definition: raColor.h:12
raFloat raVector2Lenght(const raVector2 &v)
Definition: raVector2.h:54
RAPI bool raExitLog()
Definition: raLog.cpp:22