@@ -191,9 +191,51 @@ House::House(glm::mat4& modelview, GLint& modelviewPos, Texture& texture) :
191
191
{ 1 .0f , 1 .0f , 1 .0f },{1 .0f , 1 .0f }}, // top right
192
192
{{ (HALF_BASE_WIDTH - WALL_THICK), WALL_HEIGHT, -WALL_THICK },
193
193
{ 1 .0f , 1 .0f , 1 .0f },{0 .0f , 1 .0f }}, // top left
194
+ }},
194
195
195
- }}
196
+ // front right wall
197
+ _roofRight{std::vector<Vertex>{
198
+ // front face
199
+ {{ HALF_BASE_WIDTH + ROOF_THICK, WALL_HEIGHT, ROOF_THICK },
200
+ {1 .0f , 1 .0f , 1 .0f },{0 .0f , 0 .0f } }, // bottom left
201
+ { { HALF_BASE_WIDTH + ROOF_THICK, WALL_HEIGHT, -(BASE_HEIGHT + ROOF_THICK)},
202
+ {1 .0f , 1 .0f , 1 .0f },{1 .0f , 0 .0f }}, // bottom right
203
+ {{ 0 , ROOF_HEIGHT + ROOF_THICK, -(BASE_HEIGHT + ROOF_THICK) },
204
+ {1 .0f , 1 .0f , 1 .0f },{1 .0f , 1 .0f }}, // top right
205
+ {{ 0 , ROOF_HEIGHT + ROOF_THICK, ROOF_THICK },
206
+ {1 .0f , 1 .0f , 1 .0f },{0 .0f , 1 .0f }}, // top left
207
+ // back face
208
+ {{ HALF_BASE_WIDTH+ ROOF_THICK, WALL_HEIGHT- ROOF_THICK, -(BASE_HEIGHT + ROOF_THICK)},
209
+ { 1 .0f , 1 .0f , 1 .0f },{0 .0f , 0 .0f }}, // bottom left
210
+ {{ HALF_BASE_WIDTH+ ROOF_THICK, WALL_HEIGHT- ROOF_THICK, ROOF_THICK },
211
+ { 1 .0f , 1 .0f , 1 .0f },{1 .0f , 0 .0f }}, // bottom right
212
+ {{ 0 , ROOF_HEIGHT, ROOF_THICK },
213
+ { 1 .0f , 1 .0f , 1 .0f },{1 .0f , 1 .0f }}, // top right
214
+ {{ 0 , ROOF_HEIGHT, -(BASE_HEIGHT + ROOF_THICK) },
215
+ { 1 .0f , 1 .0f , 1 .0f },{0 .0f , 1 .0f }}, // top left
216
+ }},
196
217
218
+ // front right wall
219
+ _roofLeft{std::vector<Vertex>{
220
+ // front face
221
+ {{ -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT, -(BASE_HEIGHT + ROOF_THICK)},
222
+ {1 .0f , 1 .0f , 1 .0f },{0 .0f , 0 .0f } }, // bottom left
223
+ { { -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT, ROOF_THICK },
224
+ {1 .0f , 1 .0f , 1 .0f },{1 .0f , 0 .0f }}, // bottom right
225
+ {{ 0 , (ROOF_HEIGHT + ROOF_THICK), ROOF_THICK },
226
+ {1 .0f , 1 .0f , 1 .0f },{1 .0f , 1 .0f }}, // top right
227
+ { { 0 , (ROOF_HEIGHT + ROOF_THICK), -(BASE_HEIGHT + ROOF_THICK) },
228
+ {1 .0f , 1 .0f , 1 .0f },{0 .0f , 1 .0f }}, // top left
229
+ // back face
230
+ {{ -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT- ROOF_THICK, ROOF_THICK },
231
+ { 1 .0f , 1 .0f , 1 .0f },{0 .0f , 0 .0f }}, // bottom left
232
+ {{ -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT- ROOF_THICK, -(BASE_HEIGHT + ROOF_THICK)},
233
+ { 1 .0f , 1 .0f , 1 .0f },{1 .0f , 0 .0f }}, // bottom right
234
+ { { 0 , ROOF_HEIGHT, -(BASE_HEIGHT + ROOF_THICK) },
235
+ { 1 .0f , 1 .0f , 1 .0f },{1 .0f , 1 .0f }}, // top right
236
+ {{ 0 , ROOF_HEIGHT, ROOF_THICK },
237
+ { 1 .0f , 1 .0f , 1 .0f },{0 .0f , 1 .0f }}, // top left
238
+ }}
197
239
{
198
240
_quadric = gluNewQuadric ();
199
241
}
@@ -213,7 +255,7 @@ void House::draw() {
213
255
drawFloor ();
214
256
drawLateralWalls ();
215
257
// drawPrismWalls();
216
- // drawRoof();
258
+ drawRoof ();
217
259
// drawCylinder();
218
260
// drawFlag();
219
261
// drawChimney();
@@ -309,49 +351,14 @@ void House::drawFloor() {
309
351
_texture.enableTexture (false );
310
352
}
311
353
312
- // void House::drawRoof() {
313
- // _texture.enableTexture(true);
314
- // _texture.bind(TextureEnum::ROOF);
315
- //
316
- // glMaterialfv(GL_FRONT, GL_SPECULAR, MATERIAL_RED);
317
- // glMaterialf(GL_FRONT, GL_SHININESS, SHININESS_HIGH);
318
- //
319
- // Rect rectangles[] = {
320
- // // right roof wall
321
- // {
322
- // { HALF_BASE_WIDTH + ROOF_THICK, WALL_HEIGHT, ROOF_THICK },
323
- // { HALF_BASE_WIDTH + ROOF_THICK, WALL_HEIGHT, -(BASE_HEIGHT + ROOF_THICK)},
324
- // { 0, ROOF_HEIGHT + ROOF_THICK, -(BASE_HEIGHT + ROOF_THICK) },
325
- // { 0, ROOF_HEIGHT + ROOF_THICK, ROOF_THICK },
326
- // _colorRoofExternal
327
- // },{
328
- // { HALF_BASE_WIDTH+ ROOF_THICK, WALL_HEIGHT- ROOF_THICK, -(BASE_HEIGHT + ROOF_THICK)},
329
- // { HALF_BASE_WIDTH+ ROOF_THICK, WALL_HEIGHT- ROOF_THICK, ROOF_THICK },
330
- // { 0, ROOF_HEIGHT, ROOF_THICK },
331
- // { 0, ROOF_HEIGHT, -(BASE_HEIGHT + ROOF_THICK) },
332
- // _colorRoofInternal
333
- // },
334
- // // left roof wall
335
- // {
336
- // { -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT, -(BASE_HEIGHT + ROOF_THICK)},
337
- // { -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT, ROOF_THICK },
338
- // { 0, (ROOF_HEIGHT + ROOF_THICK), ROOF_THICK },
339
- // { 0, (ROOF_HEIGHT + ROOF_THICK), -(BASE_HEIGHT + ROOF_THICK) },
340
- // _colorRoofExternal
341
- // },{
342
- // { -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT- ROOF_THICK, ROOF_THICK },
343
- // { -(HALF_BASE_WIDTH + ROOF_THICK), WALL_HEIGHT- ROOF_THICK, -(BASE_HEIGHT + ROOF_THICK)},
344
- // { 0, ROOF_HEIGHT, -(BASE_HEIGHT + ROOF_THICK) },
345
- // { 0, ROOF_HEIGHT, ROOF_THICK },
346
- // _colorRoofInternal
347
- // }
348
- // };
349
- //
350
- // _utils.draw_parallelepiped(rectangles[0], rectangles[1]);
351
- // _utils.draw_parallelepiped(rectangles[2], rectangles[3]);
352
- // _texture.enableTexture(false);
353
- // }
354
- //
354
+ void House::drawRoof () {
355
+ _texture.enableTexture (true );
356
+ _texture.bind (TextureEnum::ROOF);
357
+ _roofLeft.draw ();
358
+ _roofRight.draw ();
359
+ _texture.enableTexture (false );
360
+ }
361
+
355
362
// void House::setExternalMaterial() const {
356
363
// glMaterialfv(GL_FRONT, GL_SPECULAR, MATERIAL_WHITE);
357
364
// glMaterialf(GL_FRONT, GL_SHININESS, SHININESS_LOW);
@@ -560,4 +567,6 @@ void House::init() {
560
567
_wallRight.init ();
561
568
_wallFrontLeft.init ();
562
569
_wallFrontRight.init ();
570
+ _roofLeft.init ();
571
+ _roofRight.init ();
563
572
}
0 commit comments