1 #include "..\include\raMain.h" 17 while(Filename[iChar] != 0)
19 if(Filename[iChar] ==
'\\') iLastBackSlash = iChar;
24 return raString(Filename.c_str() + iLastBackSlash + 1);
35 while(Filename[iChar] != 0)
37 if(Filename[iChar] ==
'.') iLastDot = iChar;
41 return raString(Filename.c_str() + iLastDot + 1).c_str();
46 FILE* pFile = fopen(Filename.c_str(),
"rb");
47 if(pFile) fclose(pFile);
57 if(!raFileExists(Filename))
63 pFile=fopen(Filename.c_str(),
"rb");
64 fseek(pFile,0,SEEK_END);
82 GetCurrentDirectory(260, buf);
86 RINFO(
"Current Path: " + RASYSTEMPATH +
"\n");
89 RINFO(
"Set Log output to: " +
raString(
"./raLog/raslog.html"));
93 if(conf->
Open(
"./raConfig/config.ini"))
102 if(CoInitializeEx(NULL, COINIT_SPEED_OVER_MEMORY) == S_OK)
103 ROK(
"CoInitializeEx");
105 srand(timeGetTime());
108 int iCPU = omp_get_num_procs();
109 omp_set_num_threads(iCPU);
118 ZeroMemory( &info,
sizeof( OSVERSIONINFO ) );
119 ZeroMemory( &ex,
sizeof( OSVERSIONINFOEX ) );
120 info.dwOSVersionInfoSize =
sizeof( OSVERSIONINFO );
121 ex.dwOSVersionInfoSize =
sizeof( OSVERSIONINFOEX );
123 GetVersionEx( &info );
124 GetVersionEx( ( OSVERSIONINFO * ) &ex );
126 if( info.dwMajorVersion == 6 && info.dwMinorVersion == 0 && ex.wProductType == VER_NT_WORKSTATION )
127 return "(6.0) Windows Vista";
129 if( info.dwMajorVersion == 6 && info.dwMinorVersion == 1 && ex.wProductType == VER_NT_WORKSTATION )
130 return "(6.1) Windows 7";
136 MEMORYSTATUS lpBuffer;
137 lpBuffer.dwLength =
sizeof(MEMORYSTATUS);
138 GlobalMemoryStatus (&lpBuffer);
140 return lpBuffer.dwTotalPhys/1024/1024;
148 #define RdTSC __asm _emit 0x0f __asm _emit 0x31 150 __int64 cyclesStart = 0, cyclesStop = 0;
151 unsigned __int64 nCtr = 0, nFreq = 0, nCtrStop = 0;
153 if(!QueryPerformanceFrequency((LARGE_INTEGER *) &nFreq))
return 0;
154 QueryPerformanceCounter((LARGE_INTEGER *) &nCtrStop);
161 mov DWORD PTR cyclesStart, eax
162 mov DWORD PTR [cyclesStart + 4], edx
167 QueryPerformanceCounter((LARGE_INTEGER *) &nCtr);
168 }
while (nCtr < nCtrStop);
173 mov DWORD PTR cyclesStop, eax
174 mov DWORD PTR [cyclesStop + 4], edx
177 return ((
float)cyclesStop-(
float)cyclesStart) / 1024 / 1024;
192 return rand() / RAND_MAX * (max - min) + min;
197 return (
float)rand() / RAND_MAX * (max - min) + min;
201 float ret = (float)((rand() % 20000) - 10000);
202 return ret / 10000.0f;
212 D3DXMatrixInverse((D3DXMATRIX*)&invView, NULL, (D3DXMATRIX*)&pCamera->
GetViewMatrix());
213 D3DXMatrixInverse((D3DXMATRIX*)&invProj, NULL, (D3DXMATRIX*)&pCamera->
GetProjMatrix());
214 D3DXMatrixInverse((D3DXMATRIX*)&Inverse, NULL, (D3DXMATRIX*)&mViewProj);
219 D3DXVec3TransformCoord((D3DXVECTOR3*)v1, (D3DXVECTOR3*)&nearPoint, (D3DXMATRIX*)&Inverse);
220 D3DXVec3TransformCoord((D3DXVECTOR3*)v2, (D3DXVECTOR3*)&farPoint, (D3DXMATRIX*)&Inverse);
236 return mRot * mTrans;
240 int ret = (int) ShellExecute(0,
"open", FileName.c_str(), Parameter.c_str(), System::RASYSTEMPATH.c_str(), SW_SHOWNORMAL);
248 case ERROR_FILE_NOT_FOUND:
249 case ERROR_PATH_NOT_FOUND:
250 sprintf(buf,
"Die Datei %s kann nicht gefunden werden", FileName);
254 case ERROR_BAD_FORMAT :
255 RERROR(
"Die aufgerufene Anwendung ist ungültig oder beschädigt!");
258 case SE_ERR_ACCESSDENIED:
260 sprintf(buf,
"Zugriff auf Datei %s wurde verweigert", FileName);
269 sprintf(buf,
"Datei %s kann nicht geöffnet werden", FileName);
279 return sqrtf((
float)X);
283 return acosf((
float)X);
287 return abs((
float)X);
291 return abs((
float)X);
295 return abs((
float)X);
299 return sinf((
float)X);
303 return cosf((
float)X);
307 return tanf((
float)X);
RAPI float raGetCpuFrequency()
RAPI bool raInitLog(raString File)
virtual const raMatrix GetProjMatrix()
raString raGetWinVersion()
RAPI bool raRunProgramm(const raString FileName, const raString Parameter)
RAPI raFloat raSinf(raFloat X)
static bool LoadConfig(IConfigFile *mconfig)
RAPI raFloat raAcosf(raFloat X)
RAPI raMatrix raMatrixRotationY(const float f)
virtual bool Open(const char filename[])
RAPI void raSetAktive(bool Aktive)
RAPI raFloat raTanf(raFloat X)
static bool LoadStandardConfig()
RAPI raFloat raSqrtf(raFloat X)
RAPI bool raIsAktive(void)
RAPI float raGetRandFloat(float min, float max)
RAPI float raGetRandPercent()
RAPI raMatrix raGetRandMatrix(float scaleX, float scaleY, float scaleZ, float offsetY)
void RAPI ROK(raString x)
RAPI bool raCloseEngine(void)
virtual const raMatrix GetViewMatrix()
RAPI raMatrix raMatrixTranslation(const raVector3 &v)
RAPI raFloat raAbs(raFloat X)
void RAPI RINFO(raString x)
RAPI raFloat raCosf(raFloat X)
RAPI int raGetRandInt(int min, int max)
RAPI void raComputePickRay(raCamera *pCamera, float xPos, float yPos, raVector3 *v1, raVector3 *v2)
void RAPI RERROR(raString x)