Al's Programming Resource Homepage  Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

main.cpp File Reference

#include <windows.h>
#include "shared.h"
#include "general.h"
#include "listnode.h"
#include "locmath.h"
#include "vector.h"
#include "vertex.h"
#include "quat.h"
#include "matrix.h"
#include "texture.h"
#include "polygon.h"
#include "tll.h"
#include "plane.h"
#include "object.h"
#include "camera.h"
#include "light.h"
#include "collision.h"
#include "glfont.h"
#include "bspline.h"
#include "bsp.h"
#include "portal.h"
#include "pvs.h"
#include "tga.h"
#include "lightmap.h"
#include "winfuncs.h"
#include "console.h"
#include "log.h"
#include "mmgr.h"
#include "resource.rh"

Go to the source code of this file.

Functions

int InitGL (int Width, int Height)
void ReSizeGLScene (int Width, int Height)
void DrawGLScene (void)
LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE, LPSTR, int)

Variables

ConsoleWindow Console
HGLRC hRC
HDC hDC
HWND hWnd
HINSTANCE g_hInst
RECT screen
PAINTSTRUCT ps
char AppDirectory [MAX_PATH]
float ApplicationStartTime
float pi = 3.141592
float radian = pi / 180
float epsilon = 0.05
bool key [256]
bool released_key [256]
int currentCamera = 0
int numCameras = 4
float step = 30.0
float lasttime
float multiplier
const int average = 10
float lastmultiplier [average]
int fps
int GL_LIGHT [8] = {GL_LIGHT0, GL_LIGHT1, GL_LIGHT2, GL_LIGHT3, GL_LIGHT4, GL_LIGHT5, GL_LIGHT6, GL_LIGHT7}
int currentLight = 0
int numLights = 0
PLANE frustum [6]
int numVertices = 37
VERTEXvertex = new VERTEX[numVertices]
int numPolygons = 58
POLYGONpolygon = new POLYGON[numPolygons]
POLYGONbsppolygon = new POLYGON[numPolygons]
TEXTUREtexture = new TEXTURE[4]
CAMERAcamera = new CAMERA[numCameras + 1]
CAMERA LastCam
LIGHTlight = new LIGHT[numLights + 1]
float lightColor [3] = {1.0, 1.0, 1.0}
HWND hWndStartDlg
int DialogInUse = 0
char szText [BUFFER_SIZE]
GLFONT myFont
float Min_X
float Min_Y
float Min_Z
float Max_X
float Max_Y
float Max_Z
int numleavesvisible = 0
int showportals = 0
int numlistleaves = 0
int numlistpartitions = 0
int numcurrentportals = 0
int numleaves = 0
int currentleaf = 0
int numpartitions = 0
bool BuiltBSP = false
BSP_noderoot = new BSP_node
LinkedList< PORTALPortalList
int numportals = 0
PORTALportal
int numStaticLights = 9
StaticLightstaticlight = new StaticLight[numStaticLights]
int numLightmaps = 0
Lightmaplightmap = new Lightmap[numPolygons]
int visible = 0
int numSplines = 0
int cameraMode = 2
int currentSpline = 0
int lookAtPath = 0
char SplineFileName [MAX_PATH]
SPLINEspline
LinkedList< SPLINESplineList
LinkedList< ListNodeLeafList
LinkedList< ListNodePartitionList
ListNodelistnode


Function Documentation

void DrawGLScene void   
 

Definition at line 236 of file main.cpp.

References LIGHT::Apply(), CalculatePVS(), CountVisibleLeaves(), currentCamera, currentleaf, DrawMyText(), DrawSplines(), DrawWorld(), CollisionPacket::eRadius, ExtractFrustum(), FindCurrentLeaf(), numleavesvisible, numLights, OBJECT::Position, CollisionPacket::sourcePoint, CollisionPacket::velocity, VECTOR::x, VECTOR::y, and VECTOR::z.

Referenced by WinMain(), and WndProc().

00237 {
00238       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00239 
00240     LastCam = camera[currentCamera];
00241     camera[currentCamera].Update();
00242 
00243     CollisionPacket cp;
00244     cp.eRadius.x = 1.0;
00245     cp.eRadius.y = 1.0;
00246     cp.eRadius.z = 1.0;
00247     cp.sourcePoint.x = LastCam.Position.x;
00248     cp.sourcePoint.y = LastCam.Position.y;
00249     cp.sourcePoint.z = LastCam.Position.z;
00250     cp.velocity.x = camera[currentCamera].Position.x - LastCam.Position.x;
00251     cp.velocity.y = camera[currentCamera].Position.y - LastCam.Position.y;
00252     cp.velocity.z = camera[currentCamera].Position.z - LastCam.Position.z;
00253 
00254 //    CheckForCollision(&camera[currentCamera].Position, &cp);
00255 
00256     camera[currentCamera].Apply();
00257 
00258     for(int loop = 0; loop <= numLights; loop++)
00259         light[loop].Apply();
00260 
00261     currentleaf = FindCurrentLeaf(camera[currentCamera].Position, root);
00262 
00263     ExtractFrustum();  // Calculate the view frustum planes
00264     CalculatePVS(currentleaf);    // Calculate the visible leaves
00265     numleavesvisible = CountVisibleLeaves(); // Count the number of portals visible
00266 
00267     glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
00268     DrawWorld(root);
00269     glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
00270 
00271     DrawSplines(SplineList);           // Required to calculate the camera path
00272     DrawMyText();              // Draw text last
00273 }

int InitGL int    Width,
int    Height
 

Definition at line 150 of file main.cpp.

References AddPortalsToLeaves(), ApplicationStartTime, BuildBSP(), BuiltBSP, cameraMode, CreateBSPLightmaps(), FindTruePortals(), glFontCreate(), BSP_node::leaf, LoadBSPLightmaps(), MakeNodeLists(), MakePortalList(), Max_X, Max_Y, Max_Z, Min_X, Min_Y, Min_Z, BSP_node::nodeid, BSP_node::nodelightmaplist, BSP_node::nodepolylist, numPolygons, BSP_node::numpolys, SetGLCamera(), SetGLLighting(), SetGLMaterial(), SetGLProperties(), SetGLTexture(), SetGLWorld(), SetSplines(), SetStaticLights(), POLYGON::Vertex, BSP_node::visible, VERTEX::x, VERTEX::y, and VERTEX::z.

Referenced by WinMain().

00151 {
00152     CLog::addLine("--- Program Start ---");
00153 
00154     int ReturnValue;
00155 
00156     ApplicationStartTime = (float)GetTickCount();
00157     cameraMode = 2;
00158 
00159     SetGLProperties();
00160     SetGLMaterial();
00161     SetGLLighting(light);
00162     SetGLCamera(camera);
00163     SetSplines(SplineList);
00164 
00165     if (!SetGLTexture(texture))
00166         ReturnValue = 0;
00167     else
00168         ReturnValue = 1;
00169 
00170     // Create the font texture
00171     glFontCreate(&myFont, "roman.glf", 600);
00172 
00173     SetGLWorld(polygon, texture, vertex);
00174 
00175     // Find the bounding box of the data set
00176     Min_X = polygon[0].Vertex[0].x;
00177     Min_Y = polygon[0].Vertex[0].y;
00178     Min_Z = polygon[0].Vertex[0].z;
00179     Max_X = polygon[0].Vertex[0].x;
00180     Max_Y = polygon[0].Vertex[0].y;
00181     Max_Z = polygon[0].Vertex[0].z;
00182     for (int loop = 0; loop < numPolygons; loop++)
00183     {
00184         for (int i = 0; i < 3; i++)
00185         {
00186             if (polygon[loop].Vertex[i].x < Min_X )
00187                 Min_X = polygon[loop].Vertex[i].x;
00188             if (polygon[loop].Vertex[i].y < Min_Y )
00189                 Min_Y = polygon[loop].Vertex[i].y;
00190             if (polygon[loop].Vertex[i].z < Min_Z )
00191                 Min_Z = polygon[loop].Vertex[i].z;
00192             if (polygon[loop].Vertex[i].x > Max_X )
00193                 Max_X = polygon[loop].Vertex[i].x;
00194             if (polygon[loop].Vertex[i].y > Max_Y )
00195                 Max_Y = polygon[loop].Vertex[i].y;
00196             if (polygon[loop].Vertex[i].z > Max_Z )
00197                 Max_Z = polygon[loop].Vertex[i].z;
00198         }
00199     }
00200 
00201     // BSP initialization
00202     for (int i = 0; i < numPolygons; i++)
00203         bsppolygon[i] = polygon[i];
00204 
00205     root->nodeid = 0;
00206     root->leaf = 0;
00207     root->visible = 0;
00208     root->numpolys = numPolygons;
00209     root->nodepolylist = bsppolygon;
00210     root->nodelightmaplist = lightmap;
00211     
00212     BuildBSP(root);
00213     BuiltBSP = true;
00214 
00215     // Portal Creation
00216     MakeNodeLists(root);
00217     MakePortalList();
00218     AddPortalsToLeaves(root);
00219     FindTruePortals(root);
00220 
00221     // initialize static lights
00222     SetStaticLights(staticlight);
00223 
00224     // Create the lightmaps
00225     CreateBSPLightmaps(root);
00226     LoadBSPLightmaps(root);
00227 
00228     return ReturnValue;
00229 }

void ReSizeGLScene int    Width,
int    Height
 

Definition at line 231 of file main.cpp.

References SetGLView().

Referenced by WndProc().

00232 {
00233     SetGLView(Width, Height);
00234 }

int WINAPI WinMain HINSTANCE    hInstance,
HINSTANCE   ,
LPSTR   ,
int   
 

Definition at line 446 of file main.cpp.

References AppDirectory, average, cameraMode, Console, currentCamera, currentLight, DialogInUse, DrawGLScene(), FALSE, g_hInst, GetTimePassed(), hDC, hRC, hWnd, InitGL(), key, lastmultiplier, lasttime, multiplier, numCameras, numLights, released_key, screen, showportals, step, TRUE, and WndProc().

00450 {
00451     MSG        msg;
00452     g_hInst = hInstance;
00453     GetWindowRect(GetDesktopWindow(), &screen);
00454 
00455     WNDCLASSEX    wc;
00456     wc.cbSize = sizeof(WNDCLASSEX);
00457     wc.style            = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_SAVEBITS;
00458     wc.lpfnWndProc        = (WNDPROC) WndProc;
00459     wc.cbClsExtra        = 0;
00460     wc.cbWndExtra        = 0;
00461     wc.hInstance        = hInstance;
00462     wc.hIcon            = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MYICON));
00463     wc.hIconSm          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MYICON));
00464     wc.hCursor            = LoadCursor(NULL, IDC_ARROW);
00465     wc.hbrBackground    = NULL;
00466     wc.lpszMenuName        = NULL;
00467     wc.lpszClassName    = "OpenGL WinClass";
00468 
00469 
00470     if(!RegisterClassEx(&wc))
00471     {
00472         MessageBox(NULL,"Failed To Register The Window Class.","Error",MB_OK|MB_ICONERROR);
00473         return FALSE;
00474     }
00475 
00476     hWnd = CreateWindowEx(
00477     WS_EX_LEFT,
00478     "OpenGL WinClass",
00479     "OpenGL & Win32 Tutorial No.14",
00480     WS_MAXIMIZE |
00481     WS_CLIPCHILDREN |
00482     WS_CLIPSIBLINGS |
00483     WS_POPUPWINDOW |
00484     WS_VISIBLE,
00485     0, 0,
00486     screen.right, screen.bottom,
00487     NULL,
00488     NULL,
00489     hInstance,
00490     NULL);
00491 
00492     if(!hWnd)
00493     {
00494         MessageBox(NULL,"Window Creation Error.","Error",MB_OK|MB_ICONERROR);
00495         return FALSE;
00496     }
00497 
00498     DEVMODE dmScreenSettings;
00499     memset(&dmScreenSettings, 0, sizeof(DEVMODE));
00500     dmScreenSettings.dmSize        = sizeof(DEVMODE);
00501     dmScreenSettings.dmPelsWidth    = screen.right;
00502     dmScreenSettings.dmPelsHeight    = screen.bottom;
00503     dmScreenSettings.dmFields    = DM_PELSWIDTH | DM_PELSHEIGHT;
00504     ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN);
00505 
00506     ShowWindow(hWnd, SW_HIDE);
00507 
00508     GetCurrentDirectory(MAX_PATH, AppDirectory);
00509 
00510         Console.Open();
00511 
00512     if(DialogBox(hInstance, "STARTDLG", hWnd, (DLGPROC)StartProc) == IDOK)
00513     {
00514         if (!InitGL(screen.right, screen.bottom))
00515         {
00516             SendMessage(hWnd, WM_CLOSE, 0, 0);
00517         }
00518         else
00519         {
00520             ShowWindow(hWnd, SW_SHOW);
00521             UpdateWindow(hWnd);
00522             SetFocus(hWnd);
00523             wglMakeCurrent(hDC,hRC);
00524             SetCursorPos((int)(screen.right * 0.5), (int)(screen.bottom * 0.5));
00525             ShowCursor(0);
00526         }
00527     }
00528     else
00529     {
00530         delete[] lightmap;
00531         delete[] staticlight;
00532         delete[] texture;
00533         delete[] vertex;
00534         delete[] camera;
00535         delete[] light;
00536         delete[] polygon;
00537         delete[] bsppolygon;
00538         delete root;
00539         PostQuitMessage(0);            
00540     }
00541 
00542     while (1)
00543     {
00544         while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
00545         {
00546             if (GetMessage(&msg, NULL, 0, 0))
00547             {
00548                 TranslateMessage(&msg);
00549                 DispatchMessage(&msg);
00550             }
00551             else
00552             {
00553                 return TRUE;
00554             }
00555         }
00556 
00557         if(!DialogInUse)
00558         {
00559             SetCursorPos((int)(screen.right * 0.5), (int)(screen.bottom * 0.5));
00560             DrawGLScene();
00561             glFlush();
00562               SwapBuffers(hDC);
00563         }
00564 
00565         multiplier = GetTimePassed(lasttime, average, lastmultiplier);
00566         camera[currentCamera].Multiplier = multiplier;
00567         light[currentLight].Multiplier = multiplier;
00568 
00569         if (key['C'] && released_key['C'] == 0)
00570         {
00571             if (currentCamera < numCameras)
00572                 currentCamera++;
00573             else
00574                 currentCamera = 0;
00575             released_key['C'] = 1;
00576         }
00577 
00578         if (!key['C'])
00579             released_key['C'] = 0;
00580 
00581         if (key['L'] && released_key['L'] == 0)
00582         {
00583             if (currentLight < numLights)
00584                 currentLight++;
00585             else
00586                 currentLight = 0;
00587             released_key['L'] = 1;
00588         }
00589 
00590         if (!key['L'])
00591             released_key['L'] = 0;
00592 
00593         if (key['P'] && released_key['P'] == 0)
00594         {
00595             if (showportals)
00596                 showportals = 0;
00597             else
00598                 showportals = 1;
00599             released_key['P'] = 1;
00600         }
00601 
00602         if (!key['P'])
00603             released_key['P'] = 0;
00604 
00605         if (key['M'] && released_key['M'] == 0)
00606         {
00607             if (cameraMode == 2)
00608                 cameraMode = 0;
00609             else
00610                 cameraMode = 2;
00611             released_key['M'] = 1;
00612         }
00613 
00614         if (!key['M'])
00615             released_key['M'] = 0;
00616 
00617         if (key[49])
00618         {
00619             step = 10.0;
00620         }
00621 
00622         if (key[50])
00623         {
00624             step = 20.0;
00625         }
00626 
00627         if (key[51])
00628         {
00629             step = 30.0;
00630         }
00631 
00632         if (key[52])
00633         {
00634             step = 40.0;
00635         }
00636 
00637         if (key[53])
00638         {
00639             step = 50.0;
00640         }
00641 
00642         if (key[54])
00643         {
00644             step = 60.0;
00645         }
00646 
00647         if (key[55])
00648         {
00649             step = 70.0;
00650         }
00651 
00652         if (key[56])
00653         {
00654             step = 80.0;
00655         }
00656 
00657         if (key[57])
00658         {
00659             step = 90.0;
00660         }
00661 
00662         if (key[VK_NUMPAD6])
00663         {
00664             light[currentLight].Movement_x += step;
00665         }
00666 
00667         if (key[VK_NUMPAD4])
00668         {
00669             light[currentLight].Movement_x -= step;
00670         }
00671 
00672         if (key[VK_NUMPAD2])
00673         {
00674             light[currentLight].Movement_z += step;
00675         }
00676 
00677         if (key[VK_NUMPAD8])
00678         {
00679             light[currentLight].Movement_z -= step;
00680         }
00681 
00682         if (key[VK_NUMPAD7])
00683         {
00684             light[currentLight].Movement_y += step;
00685         }
00686 
00687         if (key[VK_NUMPAD9])
00688         {
00689             light[currentLight].Movement_y -= step;
00690         }
00691 
00692         if (key[VK_NUMPAD5] && released_key[VK_NUMPAD5] == 0)
00693         {
00694             if (light[currentLight].Positional == FALSE)
00695                 light[currentLight].Positional = TRUE;
00696             else
00697                 light[currentLight].Positional = FALSE;
00698             released_key[VK_NUMPAD5] = 1;
00699         }
00700 
00701         if (!key[VK_NUMPAD5])
00702             released_key[VK_NUMPAD5] = 0;
00703 
00704         if (key[VK_RIGHT])
00705         {
00706             camera[currentCamera].Movement_x += step;
00707         }
00708 
00709         if (key[VK_LEFT])
00710         {
00711             camera[currentCamera].Movement_x -= step;
00712         }
00713 
00714         if (key[VK_DOWN])
00715         {
00716             camera[currentCamera].Movement_z += step;
00717         }
00718 
00719         if (key[VK_UP])
00720         {
00721             camera[currentCamera].Movement_z -= step;
00722         }
00723 
00724         if (key[VK_PRIOR])
00725         {
00726             camera[currentCamera].Movement_y += step;
00727         }
00728 
00729         if (key[VK_NEXT])
00730         {
00731             camera[currentCamera].Movement_y -= step;
00732         }
00733 
00734         if (key[VK_SPACE])
00735         {
00736             camera[currentCamera].Reset();
00737         }
00738 
00739         if (key[VK_ESCAPE] || key['Q'])
00740             SendMessage(hWnd,WM_CLOSE,0,0);
00741     }
00742 }

LRESULT CALLBACK WndProc HWND    hWnd,
UINT    message,
WPARAM    wParam,
LPARAM    lParam
 

Definition at line 275 of file main.cpp.

References cameraMode, Console, currentCamera, DeleteBSP(), DeleteSpline(), DrawGLScene(), FALSE, LinkedList< T >::Get(), glFontDestroy(), hDC, hRC, hWnd, key, numportals, numSplines, ps, ReSizeGLScene(), screen, TRUE, and PORTAL::Vertex.

Referenced by WinMain().

00279 {
00280     GLuint    PixelFormat;
00281     static    PIXELFORMATDESCRIPTOR pfd=
00282     {
00283            sizeof(PIXELFORMATDESCRIPTOR),
00284         1,
00285         PFD_DRAW_TO_WINDOW |
00286         PFD_SUPPORT_OPENGL |
00287         PFD_DOUBLEBUFFER,
00288         PFD_TYPE_RGBA,
00289         16,
00290         0, 0, 0, 0, 0, 0,
00291         0,
00292         0,
00293         0,
00294         0, 0, 0, 0,
00295         16,
00296         0,
00297         0,
00298         PFD_MAIN_PLANE,
00299         0,
00300         0, 0, 0
00301     };
00302 
00303 
00304     switch (message)
00305     {
00306         case WM_CREATE:
00307             hDC = GetDC(hWnd);
00308 
00309             PixelFormat = ChoosePixelFormat(hDC, &pfd);
00310 
00311             if (!PixelFormat)
00312             {
00313                    MessageBox(NULL,"Can't find a suitable PixelFormat.","Error",MB_OK|MB_ICONERROR);
00314                 PostQuitMessage(0);
00315                 break;
00316             }
00317 
00318             if(!SetPixelFormat(hDC,PixelFormat,&pfd))
00319             {
00320                 MessageBox(NULL,"Can't set the PixelFormat.","Error",MB_OK|MB_ICONERROR);
00321                 PostQuitMessage(0);
00322                 break;
00323             }
00324 
00325             hRC = wglCreateContext(hDC);
00326             if(!hRC)
00327             {
00328                 MessageBox(NULL,"Can't create a GL Rendering Context.","Error",MB_OK|MB_ICONERROR);
00329                 PostQuitMessage(0);
00330                 break;
00331             }
00332 
00333             if(!wglMakeCurrent(hDC, hRC))
00334             {
00335                 MessageBox(NULL,"Can't activate the GL Rendering Context.","Error",MB_OK|MB_ICONERROR);
00336                 PostQuitMessage(0);
00337                 break;
00338             }
00339         break;
00340 
00341         case WM_SYSCOMMAND:
00342         {
00343             switch (wParam)
00344             {
00345                 case SC_SCREENSAVE:
00346                 case SC_MONITORPOWER:
00347                     return 0;
00348             }
00349             break;
00350         }
00351 
00352         if (DialogInUse)
00353         {
00354             case WM_PAINT:
00355                 BeginPaint(hWnd,&ps);
00356                 DrawGLScene();
00357                 glFlush();
00358                 SwapBuffers(hDC);
00359                 EndPaint(hWnd,&ps);
00360             break;
00361         }
00362 
00363         case WM_CLOSE:
00364             delete[] lightmap;
00365             delete[] staticlight;
00366             delete[] texture;
00367             delete[] vertex;
00368             delete[] camera;
00369             delete[] light;
00370             delete[] polygon;
00371 
00372             for (int i = numSplines - 1; i >= 0; i--)
00373                 DeleteSpline(i, SplineList);
00374 
00375             if (BuiltBSP)
00376                 DeleteBSP(root);
00377             delete root;
00378 
00379             for (int i = numportals; i > 0; i--)
00380             {
00381                 portal = PortalList.Get(i);
00382                 delete[] portal->Vertex;
00383             }
00384             
00385             glFontDestroy(&myFont);
00386             
00387             CLog::addLine("--- End of Program ---");
00388             Console.Close();
00389 
00390             ChangeDisplaySettings(NULL, 0);
00391             wglMakeCurrent(hDC,NULL);
00392             wglDeleteContext(hRC);
00393             ReleaseDC(hWnd,hDC);
00394             DestroyWindow(hWnd);
00395         break;
00396 
00397         case WM_DESTROY:
00398             PostQuitMessage(0);
00399         break;
00400 
00401         case WM_KEYDOWN:
00402             key[wParam] = TRUE;
00403         break;
00404 
00405         case WM_KEYUP:
00406             key[wParam] = FALSE;
00407         break;
00408 
00409         case WM_SIZE:
00410             SetCursorPos((int)(screen.right * 0.5), (int)(screen.bottom * 0.5));
00411             ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));
00412         break;
00413 
00414         case WM_MOUSEMOVE:
00415             if (cameraMode == 0)
00416             {
00417                 camera[currentCamera].Delta_x = float(HIWORD(lParam) - screen.bottom * 0.5) * 10;
00418                 camera[currentCamera].Delta_y = float(LOWORD(lParam) - screen.right * 0.5) * 10;
00419             }
00420         break;
00421 
00422         case WM_LBUTTONDOWN:
00423             camera[currentCamera].Delta_z = -120.0;
00424         break;
00425 
00426         case WM_RBUTTONDOWN:
00427             camera[currentCamera].Delta_z = 120.0;
00428         break;
00429 
00430         case WM_LBUTTONUP:
00431             if (wParam != MK_RBUTTON)
00432                 camera[currentCamera].Delta_z = 0.0;
00433         break;
00434 
00435         case WM_RBUTTONUP:
00436             if (wParam != MK_LBUTTON)
00437                 camera[currentCamera].Delta_z = 0.0;
00438         break;
00439 
00440         default:
00441             return (DefWindowProc(hWnd, message, wParam, lParam));
00442     }
00443     return (0);
00444 }


Variable Documentation

char AppDirectory[MAX_PATH]
 

Definition at line 45 of file main.cpp.

Referenced by StartProc(), and WinMain().

float ApplicationStartTime
 

Definition at line 46 of file main.cpp.

Referenced by bsplinepoint(), and InitGL().

const int average = 10
 

Definition at line 65 of file main.cpp.

Referenced by GetTimePassed(), and WinMain().

POLYGON* bsppolygon = new POLYGON[numPolygons]
 

Definition at line 84 of file main.cpp.

bool BuiltBSP = false
 

Definition at line 119 of file main.cpp.

Referenced by InitGL().

CAMERA* camera = new CAMERA[numCameras + 1]
 

Definition at line 90 of file main.cpp.

int cameraMode = 2
 

Definition at line 138 of file main.cpp.

Referenced by InitGL(), WinMain(), and WndProc().

ConsoleWindow Console
 

Definition at line 36 of file main.cpp.

Referenced by WinMain(), and WndProc().

int currentCamera = 0
 

Definition at line 58 of file main.cpp.

Referenced by CalculatePVS(), DrawGLScene(), FindVisibleLeaves(), WinMain(), and WndProc().

int currentleaf = 0
 

Definition at line 117 of file main.cpp.

Referenced by DrawGLScene(), and DrawMyText().

int currentLight = 0
 

Definition at line 71 of file main.cpp.

Referenced by DrawHalo(), and WinMain().

int currentSpline = 0
 

Definition at line 139 of file main.cpp.

Referenced by LoadSplines().

int DialogInUse = 0
 

Definition at line 99 of file main.cpp.

Referenced by ColorDialogHook(), and WinMain().

float epsilon = 0.05
 

Definition at line 51 of file main.cpp.

int fps
 

Definition at line 67 of file main.cpp.

Referenced by DrawMyText(), and GetTimePassed().

PLANE frustum[6]
 

Definition at line 75 of file main.cpp.

HINSTANCE g_hInst
 

Definition at line 42 of file main.cpp.

Referenced by WinMain().

int GL_LIGHT[8] = {GL_LIGHT0, GL_LIGHT1, GL_LIGHT2, GL_LIGHT3, GL_LIGHT4, GL_LIGHT5, GL_LIGHT6, GL_LIGHT7}
 

Definition at line 70 of file main.cpp.

HDC hDC [static]
 

Definition at line 40 of file main.cpp.

Referenced by WinMain(), and WndProc().

HGLRC hRC [static]
 

Definition at line 39 of file main.cpp.

Referenced by WinMain(), and WndProc().

HWND hWnd
 

Definition at line 41 of file main.cpp.

Referenced by GetLightColor(), WinMain(), and WndProc().

HWND hWndStartDlg
 

Definition at line 98 of file main.cpp.

Referenced by StartProc().

bool key[256]
 

Definition at line 54 of file main.cpp.

Referenced by WinMain(), and WndProc().

CAMERA LastCam
 

Definition at line 91 of file main.cpp.

float lastmultiplier[average]
 

Definition at line 66 of file main.cpp.

Referenced by GetTimePassed(), and WinMain().

float lasttime
 

Definition at line 63 of file main.cpp.

Referenced by GetTimePassed(), and WinMain().

LinkedList<ListNode> LeafList
 

Definition at line 146 of file main.cpp.

LIGHT* light = new LIGHT[numLights + 1]
 

Definition at line 94 of file main.cpp.

float lightColor[3] = {1.0, 1.0, 1.0}
 

Definition at line 95 of file main.cpp.

Referenced by GetLightColor().

Lightmap* lightmap = new Lightmap[numPolygons]
 

Definition at line 133 of file main.cpp.

Referenced by CreateLightmaps().

ListNode* listnode
 

Definition at line 148 of file main.cpp.

int lookAtPath = 0
 

Definition at line 140 of file main.cpp.

Referenced by LoadSplines().

float Max_X
 

Definition at line 106 of file main.cpp.

Referenced by CreateLargePortal(), and InitGL().

float Max_Y
 

Definition at line 106 of file main.cpp.

Referenced by CreateLargePortal(), and InitGL().

float Max_Z
 

Definition at line 106 of file main.cpp.

Referenced by CreateLargePortal(), and InitGL().

float Min_X
 

Definition at line 106 of file main.cpp.

Referenced by CreateLargePortal(), and InitGL().

float Min_Y
 

Definition at line 106 of file main.cpp.

Referenced by CreateLargePortal(), and InitGL().

float Min_Z
 

Definition at line 106 of file main.cpp.

Referenced by CreateLargePortal(), and InitGL().

float multiplier
 

Definition at line 64 of file main.cpp.

Referenced by GetTimePassed(), and WinMain().

GLFONT myFont
 

Definition at line 103 of file main.cpp.

int numCameras = 4
 

Definition at line 59 of file main.cpp.

Referenced by SetGLCamera(), and WinMain().

int numcurrentportals = 0
 

Definition at line 113 of file main.cpp.

Referenced by DrawMyText().

int numleaves = 0
 

Definition at line 116 of file main.cpp.

Referenced by CountVisibleLeaves().

int numleavesvisible = 0
 

Definition at line 109 of file main.cpp.

Referenced by DrawGLScene(), and DrawMyText().

int numLightmaps = 0
 

Definition at line 132 of file main.cpp.

Referenced by CreateLightmaps().

int numLights = 0
 

Definition at line 72 of file main.cpp.

Referenced by DrawGLScene(), SetGLLighting(), and WinMain().

int numlistleaves = 0
 

Definition at line 111 of file main.cpp.

Referenced by MakeNodeLists().

int numlistpartitions = 0
 

Definition at line 112 of file main.cpp.

Referenced by MakeNodeLists().

int numpartitions = 0
 

Definition at line 118 of file main.cpp.

Referenced by MakePortalList().

int numPolygons = 58
 

Definition at line 82 of file main.cpp.

Referenced by InitGL(), and SetGLWorld().

int numportals = 0
 

Definition at line 124 of file main.cpp.

Referenced by AddPortalsToLeaves(), MakePortalList(), and WndProc().

int numSplines = 0
 

Definition at line 137 of file main.cpp.

Referenced by LoadSplines(), SetSplines(), and WndProc().

int numStaticLights = 9
 

Definition at line 128 of file main.cpp.

Referenced by CreateLightmaps().

int numVertices = 37
 

Definition at line 78 of file main.cpp.

Referenced by POLYGON::POLYGON(), and VERTEX::VERTEX().

LinkedList<ListNode> PartitionList
 

Definition at line 147 of file main.cpp.

float pi = 3.141592
 

Definition at line 49 of file main.cpp.

Referenced by OBJECT::GetXUnit(), OBJECT::GetYUnit(), OBJECT::MoveX(), and OBJECT::MoveY().

POLYGON* polygon = new POLYGON[numPolygons]
 

Definition at line 83 of file main.cpp.

Referenced by CheckForCollision(), ClipPortalToBackLeaf(), ClipPortalToFrontLeaf(), InvertPortals(), and SetGLWorld().

PORTAL* portal
 

Definition at line 125 of file main.cpp.

LinkedList<PORTAL> PortalList
 

Definition at line 123 of file main.cpp.

PAINTSTRUCT ps
 

Definition at line 44 of file main.cpp.

Referenced by WndProc().

float radian = pi / 180
 

Definition at line 50 of file main.cpp.

Referenced by OBJECT::Rotate().

bool released_key[256]
 

Definition at line 55 of file main.cpp.

Referenced by WinMain().

BSP_node* root = new BSP_node
 

Definition at line 120 of file main.cpp.

RECT screen
 

Definition at line 43 of file main.cpp.

Referenced by WinMain(), and WndProc().

int showportals = 0
 

Definition at line 110 of file main.cpp.

Referenced by WinMain().

SPLINE* spline
 

Definition at line 142 of file main.cpp.

char SplineFileName[MAX_PATH]
 

Definition at line 141 of file main.cpp.

Referenced by StartProc().

LinkedList<SPLINE> SplineList
 

Definition at line 143 of file main.cpp.

Referenced by AddSpline(), DeleteSpline(), DrawSplines(), LoadSplines(), and SetSplines().

StaticLight* staticlight = new StaticLight[numStaticLights]
 

Definition at line 129 of file main.cpp.

float step = 30.0
 

Definition at line 60 of file main.cpp.

Referenced by WinMain().

char szText[BUFFER_SIZE]
 

Definition at line 100 of file main.cpp.

Referenced by StartProc().

TEXTURE* texture = new TEXTURE[4]
 

Definition at line 87 of file main.cpp.

Referenced by DrawBillboards(), DrawFire(), DrawHalo(), SetGLTexture(), and SetGLWorld().

VERTEX* vertex = new VERTEX[numVertices]
 

Definition at line 79 of file main.cpp.

Referenced by SetGLVertices(), and SetGLWorld().

int visible = 0
 

Definition at line 136 of file main.cpp.


Generated on Fri Dec 23 05:20:41 2005 for Potentially Visible Sets by doxygen1.2.15