Skip to content

Commit 4e653c7

Browse files
committed
S13 - shader roof
1 parent d2c145c commit 4e653c7

File tree

2 files changed

+56
-45
lines changed

2 files changed

+56
-45
lines changed

s13_casa/house.cpp

Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,51 @@ House::House(glm::mat4& modelview, GLint& modelviewPos, Texture& texture) :
191191
{ 1.0f, 1.0f, 1.0f},{1.0f, 1.0f}}, // top right
192192
{{ (HALF_BASE_WIDTH - WALL_THICK), WALL_HEIGHT, -WALL_THICK },
193193
{ 1.0f, 1.0f, 1.0f},{0.0f, 1.0f}}, // top left
194+
}},
194195

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+
}},
196217

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+
}}
197239
{
198240
_quadric = gluNewQuadric();
199241
}
@@ -213,7 +255,7 @@ void House::draw() {
213255
drawFloor();
214256
drawLateralWalls();
215257
// drawPrismWalls();
216-
// drawRoof();
258+
drawRoof();
217259
// drawCylinder();
218260
// drawFlag();
219261
// drawChimney();
@@ -309,49 +351,14 @@ void House::drawFloor() {
309351
_texture.enableTexture(false);
310352
}
311353

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+
355362
//void House::setExternalMaterial() const {
356363
// glMaterialfv(GL_FRONT, GL_SPECULAR, MATERIAL_WHITE);
357364
// glMaterialf(GL_FRONT, GL_SHININESS, SHININESS_LOW);
@@ -560,4 +567,6 @@ void House::init() {
560567
_wallRight.init();
561568
_wallFrontLeft.init();
562569
_wallFrontRight.init();
570+
_roofLeft.init();
571+
_roofRight.init();
563572
}

s13_casa/house.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ class House {
7272
Box _wallLeft;
7373
Box _wallFrontLeft;
7474
Box _wallFrontRight;
75+
Box _roofRight;
76+
Box _roofLeft;
7577

7678
void setExternalMaterial() const;
7779
};

0 commit comments

Comments
 (0)