Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****************************************************
- Grafika komputerowa, OpenGL w środowisku MS Windows
- ****************************************************/
- #include <windows.h>
- #include <math.h>
- #include <gl\gl.h>
- #include <gl\glu.h>
- #define PI 3.1415926
- //deklaracja funkcji obslugi okna
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
- BOOL SetWindowPixelFormat(HDC hDC);
- BOOL CreateViewGLContext(HDC hDC);
- void RenderScene();
- void CreateMaze();
- int g_GLPixelIndex = 0;
- HGLRC g_hGLContext = NULL;
- HDC g_context = NULL;
- double g_counter = 0.0;
- enum GLDisplayListNames
- {
- //PRZEDNIA SCIANA
- Wall1a = 1,
- Wall1b = 2,
- Wall1c = 3,
- Wall1d = 4,
- Wall1e = 5,
- Wall1f = 6,
- Wall1g = 7,
- Wall1h = 8,
- Wall1i = 9,
- Wall1j = 10,
- Wall1k = 11,
- Wall1l = 12,
- Wall1m = 13,
- Wall1n = 14,
- Wall1o = 15,
- Wall1p = 16,
- Wall1r = 17,
- Wall1s = 18,
- //TYLNA ŚCIANA
- Wall2a = 19,
- Wall2b = 20,
- Wall2c = 21,
- Wall2d = 22,
- Wall2e = 23,
- Wall2f = 24,
- Wall2g = 25,
- Wall2h = 26,
- Wall2i = 27,
- Wall2j = 28,
- Wall2k = 29,
- Wall2l = 30,
- Wall2m = 31,
- Wall2n = 32,
- Wall2o = 33,
- Wall2p = 34,
- Wall2r = 35,
- Wall2s = 36,
- //ŚCIANA BOCZNA1(lewy bok)
- Wall3a = 37,
- Wall3b = 38,
- //ŚCIANA BOCZNA2(góra)
- Wall4a = 39,
- Wall4b = 40,
- //ŚCIANA BOCZNA3(dół)
- Wall5a = 41,
- Wall5b = 42,
- //ŚCIANA BOCZNA4(prawy bok)
- Wall6a = 43,
- Wall6b = 44,
- Wall6c = 45,
- Wall6d = 46,
- Wall6e = 47,
- Wall6f = 48,
- Wall6g = 49,
- Wall6h = 50,
- Wall6i = 51,
- Wall6j = 52,
- Wall6k = 53,
- Wall6l = 54,
- Floor = 100,
- };
- //funkcja Main - dla Windows
- int WINAPI WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
- MSG meldunek; //innymi slowy "komunikat"
- WNDCLASS nasza_klasa; //klasa głównego okna aplikacji
- HWND okno;
- static char nazwa_klasy[] = "Podstawowa";
- //Definiujemy klase głównego okna aplikacji
- //Okreslamy tu wlasciwosci okna, szczegoly wygladu oraz
- //adres funkcji przetwarzajacej komunikaty
- nasza_klasa.style = CS_HREDRAW | CS_VREDRAW;
- nasza_klasa.lpfnWndProc = WndProc; //adres funkcji realizującej przetwarzanie meldunków
- nasza_klasa.cbClsExtra = 0 ;
- nasza_klasa.cbWndExtra = 0 ;
- nasza_klasa.hInstance = hInstance; //identyfikator procesu przekazany przez MS Windows podczas uruchamiania programu
- nasza_klasa.hIcon = 0;
- nasza_klasa.hCursor = LoadCursor(0, IDC_ARROW);
- nasza_klasa.hbrBackground = (HBRUSH) GetStockObject(GRAY_BRUSH);
- nasza_klasa.lpszMenuName = "Menu" ;
- nasza_klasa.lpszClassName = nazwa_klasy;
- //teraz rejestrujemy klasę okna głównego
- RegisterClass (&nasza_klasa);
- /*tworzymy okno główne
- okno będzie miało zmienne rozmiary, listwę z tytułem, menu systemowym
- i przyciskami do zwijania do ikony i rozwijania na cały ekran, po utworzeniu
- będzie widoczne na ekranie */
- okno = CreateWindow(nazwa_klasy, "Grafika komputerowa", WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
- 100, 50, 700, 700, NULL, NULL, hInstance, NULL);
- ShowWindow (okno, nCmdShow) ;
- //odswiezamy zawartosc okna
- UpdateWindow (okno) ;
- // GŁÓWNA PĘTLA PROGRAMU
- while (GetMessage(&meldunek, NULL, 0, 0))
- /* pobranie komunikatu z kolejki; funkcja GetMessage zwraca FALSE tylko dla
- komunikatu wm_Quit; dla wszystkich pozostałych komunikatów zwraca wartość TRUE */
- {
- TranslateMessage(&meldunek); // wstępna obróbka komunikatu
- DispatchMessage(&meldunek); // przekazanie komunikatu właściwemu adresatowi (czyli funkcji obslugujacej odpowiednie okno)
- }
- return (int)meldunek.wParam;
- }
- /********************************************************************
- FUNKCJA OKNA realizujaca przetwarzanie meldunków kierowanych do okna aplikacji*/
- LRESULT CALLBACK WndProc (HWND okno, UINT kod_meldunku, WPARAM wParam, LPARAM lParam)
- {
- HMENU mPlik, mInfo, mGlowne;
- /* PONIŻSZA INSTRUKCJA DEFINIUJE REAKCJE APLIKACJI NA POSZCZEGÓLNE MELDUNKI */
- switch (kod_meldunku)
- {
- case WM_CREATE: //meldunek wysyłany w momencie tworzenia okna
- {
- mPlik = CreateMenu();
- AppendMenu(mPlik, MF_STRING, 101, "&Koniec");
- mInfo = CreateMenu();
- AppendMenu(mInfo, MF_STRING, 200, "&Autor...");
- mGlowne = CreateMenu();
- AppendMenu(mGlowne, MF_POPUP, (UINT_PTR) mPlik, "&Plik");
- AppendMenu(mGlowne, MF_POPUP, (UINT_PTR) mInfo, "&Informacja");
- SetMenu(okno, mGlowne);
- DrawMenuBar(okno);
- g_context = GetDC(okno);
- if (SetWindowPixelFormat(g_context)==FALSE)
- return FALSE;
- if (CreateViewGLContext(g_context)==FALSE)
- return 0;
- CreateMaze(); // definiujemy listy tworzące labirynt
- SetTimer(okno, 1, 33, NULL);
- return 0;
- }
- case WM_COMMAND: //reakcje na wybór opcji z menu
- switch (wParam)
- {
- case 101: DestroyWindow(okno); //wysylamy meldunek WM_DESTROY
- break;
- case 200: MessageBox(okno, "Imię i nazwisko:\nNumer indeksu: ", "Autor", MB_OK);
- }
- return 0;
- case WM_LBUTTONDOWN: //reakcja na lewy przycisk myszki
- {
- int x = LOWORD(lParam);
- int y = HIWORD(lParam);
- return 0;
- }
- case WM_PAINT:
- {
- PAINTSTRUCT paint;
- HDC kontekst;
- kontekst = BeginPaint(okno, &paint);
- RenderScene();
- SwapBuffers(kontekst);
- EndPaint(okno, &paint);
- return 0;
- }
- case WM_TIMER:
- InvalidateRect(okno, NULL, FALSE);
- g_counter += 0.5;
- if (g_counter > 359)
- g_counter = 0;
- return 0;
- case WM_SIZE:
- {
- int cx = LOWORD(lParam);
- int cy = HIWORD(lParam);
- GLsizei width, height;
- GLdouble aspect;
- width = cx;
- height = cy;
- if (cy==0)
- aspect = (GLdouble)width;
- else
- aspect = (GLdouble)width/(GLdouble)height;
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(55, aspect, 1, 50.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glDrawBuffer(GL_BACK);
- glEnable(GL_LIGHTING);
- glEnable(GL_DEPTH_TEST);
- return 0;
- }
- case WM_DESTROY: //obowiązkowa obsługa meldunku o zamknięciu okna
- if(wglGetCurrentContext()!=NULL)
- {
- // dezaktualizacja kontekstu renderującego
- wglMakeCurrent(NULL, NULL) ;
- }
- if (g_hGLContext!=NULL)
- {
- wglDeleteContext(g_hGLContext);
- g_hGLContext = NULL;
- }
- ReleaseDC(okno, g_context);
- KillTimer(okno, 1);
- PostQuitMessage (0) ;
- return 0;
- default: //standardowa obsługa pozostałych meldunków
- return DefWindowProc(okno, kod_meldunku, wParam, lParam);
- }
- }
- BOOL SetWindowPixelFormat(HDC hDC)
- {
- PIXELFORMATDESCRIPTOR pixelDesc;
- pixelDesc.nSize = sizeof(PIXELFORMATDESCRIPTOR);
- pixelDesc.nVersion = 1;
- pixelDesc.dwFlags = PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL |PFD_DOUBLEBUFFER |PFD_STEREO_DONTCARE;
- pixelDesc.iPixelType = PFD_TYPE_RGBA;
- pixelDesc.cColorBits = 32;
- pixelDesc.cRedBits = 8;
- pixelDesc.cRedShift = 16;
- pixelDesc.cGreenBits = 8;
- pixelDesc.cGreenShift = 8;
- pixelDesc.cBlueBits = 8;
- pixelDesc.cBlueShift = 0;
- pixelDesc.cAlphaBits = 0;
- pixelDesc.cAlphaShift = 0;
- pixelDesc.cAccumBits = 64;
- pixelDesc.cAccumRedBits = 16;
- pixelDesc.cAccumGreenBits = 16;
- pixelDesc.cAccumBlueBits = 16;
- pixelDesc.cAccumAlphaBits = 0;
- pixelDesc.cDepthBits = 32;
- pixelDesc.cStencilBits = 8;
- pixelDesc.cAuxBuffers = 0;
- pixelDesc.iLayerType = PFD_MAIN_PLANE;
- pixelDesc.bReserved = 0;
- pixelDesc.dwLayerMask = 0;
- pixelDesc.dwVisibleMask = 0;
- pixelDesc.dwDamageMask = 0;
- g_GLPixelIndex = ChoosePixelFormat( hDC, &pixelDesc);
- if (g_GLPixelIndex==0)
- {
- g_GLPixelIndex = 1;
- if (DescribePixelFormat(hDC, g_GLPixelIndex, sizeof(PIXELFORMATDESCRIPTOR), &pixelDesc)==0)
- {
- return FALSE;
- }
- }
- if (SetPixelFormat( hDC, g_GLPixelIndex, &pixelDesc)==FALSE)
- {
- return FALSE;
- }
- return TRUE;
- }
- BOOL CreateViewGLContext(HDC hDC)
- {
- g_hGLContext = wglCreateContext(hDC);
- if (g_hGLContext == NULL)
- {
- return FALSE;
- }
- if (wglMakeCurrent(hDC, g_hGLContext)==FALSE)
- {
- return FALSE;
- }
- return TRUE;
- }
- void RenderScene()
- {
- GLfloat BlueSurface[] = { 0.0f, 0.0f, 0.4f, 1.0f};
- GLfloat GreySurface[] = { 0.7f, 0.7f, 0.7f, 1.0f};
- GLfloat LightAmbient[] = { 0.1f, 0.1f, 0.1f, 0.1f };
- GLfloat LightDiffuse[] = { 0.8f, 0.8f, 0.8f, 0.8f };
- GLfloat LightPosition[] = { 0.0f, 1.0f, 1.0f, 0.0f };
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient); //1 składowa: światło otaczające (bezkierunkowe)
- glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse); //2 składowa: światło rozproszone (kierunkowe)
- glLightfv(GL_LIGHT0, GL_POSITION, LightPosition);
- glEnable(GL_LIGHT0);
- glPushMatrix();
- gluLookAt(0, 6, 19 , 0, 0, 0 , 0, 1, 0);
- glRotated(g_counter, 0, 1, 0);
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, GreySurface );
- //SCIANA PRZEDNIA
- glCallList(Wall1a);
- glCallList(Wall1b);
- glCallList(Wall1c);
- glCallList(Wall1d);
- glCallList(Wall1e);
- glCallList(Wall1f);
- glCallList(Wall1g);
- glCallList(Wall1h);
- glCallList(Wall1i);
- glCallList(Wall1j);
- glCallList(Wall1k);
- glCallList(Wall1l);
- glCallList(Wall1m);
- glCallList(Wall1n);
- glCallList(Wall1o);
- glCallList(Wall1p);
- glCallList(Wall1r);
- glCallList(Wall1s);
- //TYLNA ŚCIANA
- glCallList(Wall2a);
- glCallList(Wall2b);
- glCallList(Wall2c);
- glCallList(Wall2d);
- glCallList(Wall2e);
- glCallList(Wall2f);
- glCallList(Wall2g);
- glCallList(Wall2h);
- glCallList(Wall2i);
- glCallList(Wall2j);
- glCallList(Wall2k);
- glCallList(Wall2l);
- glCallList(Wall2m);
- glCallList(Wall2n);
- glCallList(Wall2o);
- glCallList(Wall2p);
- glCallList(Wall2r);
- glCallList(Wall2s);
- //ŚCIANY BOCZNE
- glCallList(Wall3a);
- glCallList(Wall3b);
- glCallList(Wall4a);
- glCallList(Wall4b);
- glCallList(Wall5a);
- glCallList(Wall5b);
- glCallList(Wall6a);
- glCallList(Wall6b);
- glCallList(Wall6c);
- glCallList(Wall6d);
- glCallList(Wall6e);
- glCallList(Wall6f);
- glCallList(Wall6g);
- glCallList(Wall6h);
- glCallList(Wall6i);
- glCallList(Wall6j);
- glCallList(Wall6k);
- glCallList(Wall6l);
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, BlueSurface);
- glRotated(30, 0, 1, 0);
- glTranslated(1, 1, 3);
- //SCIANA PRZEDNIA
- glCallList(Wall1a);
- glCallList(Wall1b);
- glCallList(Wall1c);
- glCallList(Wall1d);
- glCallList(Wall1e);
- glCallList(Wall1f);
- glCallList(Wall1g);
- glCallList(Wall1h);
- glCallList(Wall1i);
- glCallList(Wall1j);
- glCallList(Wall1k);
- glCallList(Wall1l);
- glCallList(Wall1m);
- glCallList(Wall1n);
- glCallList(Wall1o);
- glCallList(Wall1p);
- glCallList(Wall1r);
- glCallList(Wall1s);
- //TYLNA ŚCIANA
- glCallList(Wall2a);
- glCallList(Wall2b);
- glCallList(Wall2c);
- glCallList(Wall2d);
- glCallList(Wall2e);
- glCallList(Wall2f);
- glCallList(Wall2g);
- glCallList(Wall2h);
- glCallList(Wall2i);
- glCallList(Wall2j);
- glCallList(Wall2k);
- glCallList(Wall2l);
- glCallList(Wall2m);
- glCallList(Wall2n);
- glCallList(Wall2o);
- glCallList(Wall2p);
- glCallList(Wall2r);
- glCallList(Wall2s);
- //ŚCIANY BOCZNE
- glCallList(Wall3a);
- glCallList(Wall3b);
- glCallList(Wall4a);
- glCallList(Wall4b);
- glCallList(Wall5a);
- glCallList(Wall5b);
- glCallList(Wall6a);
- glCallList(Wall6b);
- glCallList(Wall6c);
- glCallList(Wall6d);
- glCallList(Wall6e);
- glCallList(Wall6f);
- glCallList(Wall6g);
- glCallList(Wall6h);
- glCallList(Wall6i);
- glCallList(Wall6j);
- glCallList(Wall6k);
- glCallList(Wall6l);
- //glCallList(Floor);
- glPopMatrix();
- glFlush();
- }
- void CreateMaze()
- {
- //PRZEDNIA SCIANA
- glNewList(Wall1a,GL_COMPILE); // GL_COMPILE - lista jest kompilowana, ale nie wykonywana
- glBegin(GL_TRIANGLES ); // inne opcje: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP
- // GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUAD_STRIP, GL_POLYGON
- glNormal3d( 0.0, 0.0, 1.0);
- glVertex3d( 0.0, 0.0, 0.0);
- glVertex3d( 1.0, 0.0, 0.0);
- glVertex3d( 1.0, 6.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1b,GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d( 0.0, 0.0, 1.0);
- glVertex3d( 0.0, 0.0, 0.0);
- glVertex3d( 0.0, 6.0, 0.0);
- glVertex3d( 1.0, 6.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1c, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(1.0, 6.0, 0.0);
- glVertex3d(3.0, 6.0, 0.0);
- glVertex3d(3.0, 5.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1d, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(1.0, 6.0, 0.0);
- glVertex3d(3.0, 5.0, 0.0);
- glVertex3d(1.0, 5.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1e, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(3.0, 6.0, 0.0);
- glVertex3d(4.0, 5.0, 0.0);
- glVertex3d(3.0, 5.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1f, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(4.0, 5.0, 0.0);
- glVertex3d(2.5f, 5.0, 0.0);
- glVertex3d(2.5f, 4.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1g, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(2.5f, 4.0, 0.0);
- glVertex3d(4.0, 4.0, 0.0);
- glVertex3d(4.0, 5.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1h, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(4.0, 4.0, 0.0);
- glVertex3d(3.0, 4.0, 0.0);
- glVertex3d(3.0, 3.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1i, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(3.0, 4.0, 0.0);
- glVertex3d(1.0, 4.0, 0.0);
- glVertex3d(1.0, 3.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1j, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(1.0, 3.0, 0.0);
- glVertex3d(3.0, 3.0, 0.0);
- glVertex3d(3.0, 4.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1k, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(3.0, 3.0, 0.0);
- glVertex3d(1.0, 3.0, 0.0);
- glVertex3d(1.0, 2.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1l, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(1.0, 2.0, 0.0);
- glVertex3d(3.0, 2.0, 0.0);
- glVertex3d(3.0, 3.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1m, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(4.0, 2.0, 0.0);
- glVertex3d(3.0, 3.0, 0.0);
- glVertex3d(3.0, 2.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1n, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(4.0, 2.0, 0.0);
- glVertex3d(4.0, 1.0, 0.0);
- glVertex3d(2.5f, 2.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1o, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(4.0, 1.0, 0.0);
- glVertex3d(2.5f, 2.0, 0.0);
- glVertex3d(2.5f, 1.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1p, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(4.0, 1.0, 0.0);
- glVertex3d(3.0, 0.0, 0.0);
- glVertex3d(3.0, 1.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1r, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(1.0, 0.0, 0.0);
- glVertex3d(3.0, 0.0, 0.0);
- glVertex3d(1.0, 1.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall1s, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, 1.0);
- glVertex3d(3.0, 0.0, 0.0);
- glVertex3d(3.0, 1.0, 0.0);
- glVertex3d(1.0, 1.0, 0.0);
- glEnd();
- glEndList();
- //TYLNA ŚCIANA
- glNewList(Wall2a, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(0.0, 0.0, -1.0);
- glVertex3d(1.0, 0.0, -1.0);
- glVertex3d(1.0, 6.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2b, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(0.0, 0.0, -1.0);
- glVertex3d(0.0, 6.0, -1.0);
- glVertex3d(1.0, 6.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2c, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(1.0, 6.0, -1.0);
- glVertex3d(3.0, 6.0, -1.0);
- glVertex3d(3.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2d, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(1.0, 6.0, -1.0);
- glVertex3d(3.0, 5.0, -1.0);
- glVertex3d(1.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2e, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(3.0, 6.0, -1.0);
- glVertex3d(4.0, 5.0, -1.0);
- glVertex3d(3.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2f, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(4.0, 5.0, -1.0);
- glVertex3d(2.5f, 5.0, -1.0);
- glVertex3d(2.5f, 4.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2g, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(2.5f, 4.0, -1.0);
- glVertex3d(4.0, 4.0, -1.0);
- glVertex3d(4.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2h, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(4.0, 4.0, -1.0);
- glVertex3d(3.0, 4.0, -1.0);
- glVertex3d(3.0, 3.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2i, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(3.0, 4.0, -1.0);
- glVertex3d(1.0, 4.0, -1.0);
- glVertex3d(1.0, 3.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2j, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(1.0, 3.0, -1.0);
- glVertex3d(3.0, 3.0, -1.0);
- glVertex3d(3.0, 4.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2k, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(3.0, 3.0, -1.0);
- glVertex3d(1.0, 3.0, -1.0);
- glVertex3d(1.0, 2.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2l, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(1.0, 2.0, -1.0);
- glVertex3d(3.0, 2.0, -1.0);
- glVertex3d(3.0, 3.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2m, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(4.0, 2.0, -1.0);
- glVertex3d(3.0, 3.0, -1.0);
- glVertex3d(3.0, 2.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2n, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(4.0, 2.0, -1.0);
- glVertex3d(4.0, 1.0, -1.0);
- glVertex3d(2.5f, 2.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2o, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(4.0, 1.0, -1.0);
- glVertex3d(2.5f, 2.0, -1.0);
- glVertex3d(2.5f, 1.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2p, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(4.0, 1.0, -1.0);
- glVertex3d(3.0, 0.0, -1.0);
- glVertex3d(3.0, 1.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2r, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(1.0, 0.0, -1.0);
- glVertex3d(3.0, 0.0, -1.0);
- glVertex3d(1.0, 1.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall2s, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 0.0, -1.0);
- glVertex3d(3.0, 0.0, -1.0);
- glVertex3d(3.0, 1.0, -1.0);
- glVertex3d(1.0, 1.0, -1.0);
- glEnd();
- glEndList();
- //ŚCIANY BOCZNE
- glNewList(Wall3a, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(-1.0, 0.0, 0.0);
- glVertex3d(0.0, 6.0, -1.0);
- glVertex3d(0.0, 0.0, 0.0);
- glVertex3d(0.0, 0.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall3b, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(-1.0, 0.0, 0.0);
- glVertex3d(0.0, 6.0, -1.0);
- glVertex3d(0.0, 0.0, 0.0);
- glVertex3d(0.0, 6.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall4a, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, -1.0, 0.0);
- glVertex3d(0.0, 6.0, -1.0);
- glVertex3d(3.0, 6.0, 0.0);
- glVertex3d(0.0, 6.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Wall4b, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, -1.0, 0.0);
- glVertex3d(3.0, 6.0, 0.0);
- glVertex3d(3.0, 6.0, -1.0);
- glVertex3d(0.0, 6.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall5a, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 1.0, 0.0);
- glVertex3d(0.0, 0.0, -1.0);
- glVertex3d(0.0, 0.0, 0.0);
- glVertex3d(3.0, 0.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall5b, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(0.0, 1.0, 0.0);
- glVertex3d(0.0, 0.0, 0.0);
- glVertex3d(3.0, 0.0, 0.0);
- glVertex3d(3.0, 0.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6a, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 1.0, 0.0);
- glVertex3d(3.0, 6.0, 0.0);
- glVertex3d(4.0, 5.0, 0.0);
- glVertex3d(4.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6b, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 1.0, 0.0);
- glVertex3d(3.0, 6.0, 0.0);
- glVertex3d(3.0, 6.0, -1.0);
- glVertex3d(4.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6c, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 0.0, 0.0);
- glVertex3d(4.0, 5.0, 0.0);
- glVertex3d(4.0, 4.0, 0.0);
- glVertex3d(4.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6d, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 0.0, 0.0);
- glVertex3d(4.0, 4.0, 0.0);
- glVertex3d(4.0, 4.0, -1.0);
- glVertex3d(4.0, 5.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6e, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, -1.0, 0.0);
- glVertex3d(4.0, 4.0, 0.0);
- glVertex3d(3.0, 4.0, 0.0);
- glVertex3d(4.0, 4.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6f, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, -1.0, 0.0);
- glVertex3d(3.0, 4.0, -1.0);
- glVertex3d(3.0, 4.0, 0.0);
- glVertex3d(4.0, 4.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6g, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 1.0, 0.0);
- glVertex3d(4.0, 2.0, 0.0);
- glVertex3d(3.0, 3.0, 0.0);
- glVertex3d(3.0, 3.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6h, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 1.0, 0.0);
- glVertex3d(4.0, 2.0, -1.0);
- glVertex3d(4.0, 2.0, 0.0);
- glVertex3d(3.0, 3.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6i, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 0.0, 0.0);
- glVertex3d(4.0, 2.0, 0.0);
- glVertex3d(4.0, 1.0, 0.0);
- glVertex3d(4.0, 1.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6j, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, 0.0, 0.0);
- glVertex3d(4.0, 2.0, 0.0);
- glVertex3d(4.0, 2.0, -1.0);
- glVertex3d(4.0, 1.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6k, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, -1.0, 0.0);
- glVertex3d(3.0, 0.0, 0.0);
- glVertex3d(4.0, 1.0, 0.0);
- glVertex3d(3.0, 0.0, -1.0);
- glEnd();
- glEndList();
- glNewList(Wall6l, GL_COMPILE);
- glBegin(GL_TRIANGLES);
- glNormal3d(1.0, -1.0, 0.0);
- glVertex3d(3.0, 0.0, -1.0);
- glVertex3d(4.0, 1.0, -1.0);
- glVertex3d(4.0, 1.0, 0.0);
- glEnd();
- glEndList();
- glNewList(Floor,GL_COMPILE);
- glBegin(GL_POLYGON);
- glNormal3d( 0.0, 1.0, 0.0);
- glVertex3d( -20, -1, -30.0);
- glVertex3d( -20, -1, 10.0);
- glVertex3d( 20, -1, 10.0);
- glVertex3d( 20, -1, -30.0);
- glEnd();
- glEndList();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement