source: GTP/branches/IllumWPdeliver2008dec/IlluminationWP/demos/Standalone/Hierarchical Systems Demo [OpenGL]/RESOURCES/include/My3DGraphRes/SkyBox.cpp @ 3255

Revision 3255, 3.4 KB checked in by szirmay, 15 years ago (diff)
Line 
1#include ".\skybox.h"
2
3SkyBox::SkyBox(void)
4{
5}
6
7SkyBox::~SkyBox(void)
8{
9}
10
11void SkyBox::Display(Camera& cam)
12{       
13        glMatrixMode(GL_PROJECTION);
14        glPushMatrix();
15        glLoadIdentity();
16
17        cam.SetProjection();
18       
19        glMatrixMode(GL_MODELVIEW);
20        glPushMatrix();
21        glLoadIdentity();
22        cam.setViewforBbox();
23/*     
24        glRotatef(-cam.m_Orientation.y,0,1,0);
25        glRotatef(360-cam.m_Orientation.x,1,0,0);       */
26       
27        glDepthMask(GL_FALSE);
28        glDisable(GL_DEPTH_TEST);
29
30        float d=-0.002;
31        glEnable(GL_TEXTURE_2D);
32        glBindTexture(GL_TEXTURE_2D,m_Textures[0].getTextureHandler());
33        glBegin(GL_QUADS);
34       
35                glTexCoord2f(-d,1+d);
36                glVertex3f(-1,-1,-1);
37                glTexCoord2f(-d,-d);
38                glVertex3f(-1,1,-1);
39                glTexCoord2f(1+d,-d);
40                glVertex3f(1,1,-1);
41                glTexCoord2f(1+d,1+d);
42                glVertex3f(1,-1,-1);
43        glEnd();
44
45        glBindTexture(GL_TEXTURE_2D,m_Textures[1].getTextureHandler());
46        glBegin(GL_QUADS);
47               
48                glTexCoord2f(-d,1+d);
49                glVertex3f(+1,-1,+1);
50                glTexCoord2f(-d,-d);
51                glVertex3f(1,1,1);
52                glTexCoord2f(1+d,-d);
53                glVertex3f(-1,1,1);
54                glTexCoord2f(1+d,1+d);
55                glVertex3f(-1,-1,1);
56        glEnd();
57
58        glBindTexture(GL_TEXTURE_2D,m_Textures[4].getTextureHandler());
59        glBegin(GL_QUADS);
60                       
61                glTexCoord2f(-d,1+d);
62                glVertex3f(-1,-1,1);
63                glTexCoord2f(-d,-d);
64                glVertex3f(-1,1,1);
65                glTexCoord2f(1+d,-d);
66                glVertex3f(-1,1,-1);
67                glTexCoord2f(1+d,1+d);
68                glVertex3f(-1,-1,-1);
69        glEnd();
70
71        glBindTexture(GL_TEXTURE_2D,m_Textures[5].getTextureHandler());
72        glBegin(GL_QUADS);
73       
74                glTexCoord2f(-d,1+d);
75                glVertex3f(1,-1,-1);
76                glTexCoord2f(-d,-d);
77                glVertex3f(1,1,-1);
78                glTexCoord2f(1+d,-d);
79                glVertex3f(1,1,1);
80                glTexCoord2f(1+d,1+d);
81                glVertex3f(1,-1,1);
82        glEnd();
83
84        glBindTexture(GL_TEXTURE_2D,m_Textures[2].getTextureHandler());
85        glBegin(GL_QUADS);
86               
87                glTexCoord2f(-d,1+d);
88                glVertex3f(-1,-1,-1);
89                glTexCoord2f(1+d,1+d);
90                glVertex3f(-1,-1,1);
91                glTexCoord2f(1+d,-d);
92                glVertex3f(1,-1,1);
93                glTexCoord2f(-d,-d);
94                glVertex3f(1,-1,-1);
95        glEnd();
96
97        glBindTexture(GL_TEXTURE_2D,m_Textures[3].getTextureHandler());
98        glBegin(GL_QUADS);
99               
100                glTexCoord2f(1+d,-d);
101                glVertex3f(-1,1,1);
102                glTexCoord2f(-d,-d);
103                glVertex3f(-1,1,-1);
104                glTexCoord2f(-d,1+d);
105                glVertex3f(1,1,-1);
106                glTexCoord2f(1+d,1+d);
107                glVertex3f(1,1,1);
108        glEnd();
109       
110
111        glMatrixMode(GL_MODELVIEW);
112        glPopMatrix();
113        glMatrixMode(GL_PROJECTION);
114        glPopMatrix();
115       
116    glDisable(GL_TEXTURE_2D);
117        glDepthMask(GL_TRUE);
118        glEnable(GL_DEPTH_TEST);
119}
120
121int SkyBox::Initialize(char* filename,char* ext)
122{       
123        char *fname=new char[20];
124        fname[0]=NULL;
125        strcat(fname,filename);
126        m_Textures[0].setFilename(strcat(strcat(fname,"back."),ext));
127        //m_Textures[0].setFilename("test.png");
128        fname=new char[20];
129        fname[0]=NULL;
130        strcat(fname,filename);
131        m_Textures[1].setFilename(strcat(strcat(fname,"front."),ext));
132        fname=new char[20];
133        fname[0]=NULL;
134        strcat(fname,filename);
135        m_Textures[2].setFilename(strcat(strcat(fname,"bottom."),ext));
136        fname=new char[20];
137        fname[0]=NULL;
138        strcat(fname,filename);
139        m_Textures[3].setFilename(strcat(strcat(fname,"top."),ext));
140        fname=new char[20];
141        fname[0]=NULL;
142        strcat(fname,filename);
143        m_Textures[4].setFilename(strcat(strcat(fname,"left."),ext));
144        fname=new char[20];
145        fname[0]=NULL;
146        strcat(fname,filename);
147        m_Textures[5].setFilename(strcat(strcat(fname,"right."),ext));
148
149        for(int i=0;i<6;i++)
150        {
151                m_Textures[i].LoadImage();
152        }
153
154        return true;
155}
Note: See TracBrowser for help on using the repository browser.