3 * @brief The cheese cube module.
5 * Copyright 2001, 2008 David Ashley <dashxdr@gmail.com>
6 * Copyright 2008 Stephen M. Webb <stephen.webb@bregmasoft.ca>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of Version 2 of the GNU General Public License as
10 * published by the Free Software Foundation.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 #if defined(_WIN32) && !defined(__CYGWIN__)
24 # define WIN32_LEAN_AND_MEAN 1
30 void makebcube(float scale
)
32 float sizex
,sizey
,sizez
;
33 float bsizex
,bsizey
,bsizez
;
36 sizex
=sizey
=sizez
=0.6f
*scale
;
41 glDisable(GL_TEXTURE_2D
);
42 glEnable(GL_NORMALIZE
);
45 glNormal3f( 0.0, sizey
, 0.0);
46 glVertex3f( sizex
, bsizey
, sizez
);
47 glVertex3f( sizex
, bsizey
,-sizez
);
48 glVertex3f(-sizex
, bsizey
,-sizez
);
49 glVertex3f(-sizex
, bsizey
, sizez
);
51 glNormal3f( 0.0, 0.0, sizez
);
52 glVertex3f( sizex
, sizey
, bsizez
);
53 glVertex3f(-sizex
, sizey
, bsizez
);
54 glVertex3f(-sizex
,-sizey
, bsizez
);
55 glVertex3f( sizex
,-sizey
, bsizez
);
58 glNormal3f( 0.0, 0.0,-sizez
);
59 glVertex3f(-sizex
,-sizey
,-bsizez
);
60 glVertex3f(-sizex
, sizey
,-bsizez
);
61 glVertex3f( sizex
, sizey
,-bsizez
);
62 glVertex3f( sizex
,-sizey
,-bsizez
);
64 glNormal3f( sizex
, 0.0, 0.0);
65 glVertex3f( bsizex
, sizey
, sizez
);
66 glVertex3f( bsizex
,-sizey
, sizez
);
67 glVertex3f( bsizex
,-sizey
,-sizez
);
68 glVertex3f( bsizex
, sizey
,-sizez
);
70 glNormal3f(-sizex
, 0.0, 0.0);
71 glVertex3f(-bsizex
,-sizey
,-sizez
);
72 glVertex3f(-bsizex
,-sizey
, sizez
);
73 glVertex3f(-bsizex
, sizey
, sizez
);
74 glVertex3f(-bsizex
, sizey
,-sizez
);
76 glNormal3f( 0.0,-sizey
, 0.0);
77 glVertex3f(-sizex
,-bsizey
,-sizez
);
78 glVertex3f( sizex
,-bsizey
,-sizez
);
79 glVertex3f( sizex
,-bsizey
, sizez
);
80 glVertex3f(-sizex
,-bsizey
, sizez
);
84 glNormal3f( 0.0, sizey
, sizez
);
85 glVertex3f( -sizex
, bsizey
, sizez
);
86 glVertex3f( -sizex
, sizey
, bsizez
);
87 glVertex3f( sizex
, sizey
, bsizez
);
88 glVertex3f( sizex
, bsizey
, sizez
);
90 glNormal3f( sizex
, 0.0, sizez
);
91 glVertex3f( bsizex
, sizey
, sizez
);
92 glVertex3f( sizex
, sizey
, bsizez
);
93 glVertex3f( sizex
, -sizey
, bsizez
);
94 glVertex3f( bsizex
, -sizey
, sizez
);
96 glNormal3f( sizex
, sizey
, 0.0);
97 glVertex3f(bsizex
, sizey
, -sizez
);
98 glVertex3f(sizex
, bsizey
, -sizez
);
99 glVertex3f(sizex
, bsizey
, sizez
);
100 glVertex3f(bsizex
, sizey
, sizez
);
102 glNormal3f( 0.0, -sizey
, -sizez
);
103 glVertex3f( -sizex
, -bsizey
, -sizez
);
104 glVertex3f( -sizex
, -sizey
, -bsizez
);
105 glVertex3f( sizex
, -sizey
, -bsizez
);
106 glVertex3f( sizex
, -bsizey
, -sizez
);
108 glNormal3f( -sizex
, 0.0, -sizez
);
109 glVertex3f( -bsizex
, sizey
, -sizez
);
110 glVertex3f( -sizex
, sizey
, -bsizez
);
111 glVertex3f( -sizex
, -sizey
, -bsizez
);
112 glVertex3f( -bsizex
, -sizey
, -sizez
);
114 glNormal3f( -sizex
, -sizey
, 0.0);
115 glVertex3f(-bsizex
, -sizey
, -sizez
);
116 glVertex3f(-sizex
, -bsizey
, -sizez
);
117 glVertex3f(-sizex
, -bsizey
, sizez
);
118 glVertex3f(-bsizex
, -sizey
, sizez
);
120 glNormal3f( 0.0, -sizey
, sizez
);
121 glVertex3f( sizex
, -bsizey
, sizez
);
122 glVertex3f( sizex
, -sizey
, bsizez
);
123 glVertex3f( -sizex
, -sizey
, bsizez
);
124 glVertex3f( -sizex
, -bsizey
, sizez
);
126 glNormal3f( 0.0, sizey
, -sizez
);
127 glVertex3f( -sizex
, sizey
, -bsizez
);
128 glVertex3f( -sizex
, bsizey
, -sizez
);
129 glVertex3f( sizex
, bsizey
, -sizez
);
130 glVertex3f( sizex
, sizey
, -bsizez
);
132 glNormal3f( -sizex
, 0.0, sizez
);
133 glVertex3f( -bsizex
, -sizey
, sizez
);
134 glVertex3f( -sizex
, -sizey
, bsizez
);
135 glVertex3f( -sizex
, sizey
, bsizez
);
136 glVertex3f( -bsizex
,sizey
, sizez
);
138 glNormal3f( sizex
, 0.0, -sizez
);
139 glVertex3f( sizex
, sizey
, -bsizez
);
140 glVertex3f( bsizex
, sizey
, -sizez
);
141 glVertex3f( bsizex
, -sizey
, -sizez
);
142 glVertex3f( sizex
,-sizey
, -bsizez
);
144 glNormal3f( -sizex
, sizey
, 0.0);
145 glVertex3f( -bsizex
,sizey
, sizez
);
146 glVertex3f( -sizex
, bsizey
, sizez
);
147 glVertex3f( -sizex
, bsizey
, -sizez
);
148 glVertex3f( -bsizex
, sizey
, -sizez
);
150 glNormal3f( sizex
, -sizey
, 0.0);
151 glVertex3f( sizex
, -bsizey
, -sizez
);
152 glVertex3f( bsizex
, -sizey
, -sizez
);
153 glVertex3f( bsizex
, -sizey
, sizez
);
154 glVertex3f( sizex
, -bsizey
, sizez
);
159 glBegin(GL_TRIANGLES
);
161 glNormal3f(sizex
,sizey
,sizez
);
162 glVertex3f(bsizex
,sizey
,sizez
);
163 glVertex3f(sizex
,bsizey
,sizez
);
164 glVertex3f(sizex
,sizey
,bsizez
);
166 glNormal3f(-sizex
,sizey
,sizez
);
167 glVertex3f(-sizex
,bsizey
,sizez
);
168 glVertex3f(-bsizex
,sizey
,sizez
);
169 glVertex3f(-sizex
,sizey
,bsizez
);
171 glNormal3f(-sizex
,-sizey
,sizez
);
172 glVertex3f(-bsizex
,-sizey
,sizez
);
173 glVertex3f(-sizex
,-bsizey
,sizez
);
174 glVertex3f(-sizex
,-sizey
,bsizez
);
176 glNormal3f(sizex
,-sizey
,sizez
);
177 glVertex3f(sizex
,-bsizey
,sizez
);
178 glVertex3f(bsizex
,-sizey
,sizez
);
179 glVertex3f(sizex
,-sizey
,bsizez
);
182 glNormal3f(-sizex
,-sizey
,-sizez
);
183 glVertex3f(-sizex
,-sizey
,-bsizez
);
184 glVertex3f(-sizex
,-bsizey
,-sizez
);
185 glVertex3f(-bsizex
,-sizey
,-sizez
);
187 glNormal3f(sizex
,-sizey
,-sizez
);
188 glVertex3f(sizex
,-sizey
,-bsizez
);
189 glVertex3f(bsizex
,-sizey
,-sizez
);
190 glVertex3f(sizex
,-bsizey
,-sizez
);
192 glNormal3f(sizex
,sizey
,-sizez
);
193 glVertex3f(sizex
,sizey
,-bsizez
);
194 glVertex3f(sizex
,bsizey
,-sizez
);
195 glVertex3f(bsizex
,sizey
,-sizez
);
197 glNormal3f(-sizex
,sizey
,-sizez
);
198 glVertex3f(-sizex
,sizey
,-bsizez
);
199 glVertex3f(-bsizex
,sizey
,-sizez
);
200 glVertex3f(-sizex
,bsizey
,-sizez
);