diff --git a/wfobj-view.cc b/wfobj-view.cc index 6056f09..8ec7785 100644 --- a/wfobj-view.cc +++ b/wfobj-view.cc @@ -32,7 +32,6 @@ private: void initgl(); void display(); void setProjection(); - void renderMaterial(const WFObj::Material & m); WFObj m_obj; GLuint m_list; @@ -275,7 +274,19 @@ void Viewer::display() it != m_obj.getMaterials().end(); it++) { - renderMaterial(it->second); + WFObj::Material & m = it->second; + if (m.flags & WFObj::Material::SHININESS_BIT) + glUniform1f(m_shininess_loc, m.shininess); + if (m.flags & WFObj::Material::AMBIENT_BIT) + glUniform4fv(m_ambient_loc, 1, &m.ambient[0]); + if (m.flags & WFObj::Material::DIFFUSE_BIT) + glUniform4fv(m_diffuse_loc, 1, &m.diffuse[0]); + if (m.flags & WFObj::Material::SPECULAR_BIT) + glUniform4fv(m_specular_loc, 1, &m.specular[0]); + if (m.flags & WFObj::Material::TEXTURE_BIT) + { + cerr << "error: textured materials not implemented yet" << endl; + } glDrawElements(GL_TRIANGLES, it->second.num_vertices, GL_UNSIGNED_SHORT, (GLvoid *) (sizeof(GLushort) * it->second.first_vertex)); @@ -348,19 +359,3 @@ void Viewer::run() } } } - -void Viewer::renderMaterial(const WFObj::Material & m) -{ - if (m.flags & WFObj::Material::SHININESS_BIT) - glUniform1f(m_shininess_loc, m.shininess); - if (m.flags & WFObj::Material::AMBIENT_BIT) - glUniform4fv(m_ambient_loc, 1, &m.ambient[0]); - if (m.flags & WFObj::Material::DIFFUSE_BIT) - glUniform4fv(m_diffuse_loc, 1, &m.diffuse[0]); - if (m.flags & WFObj::Material::SPECULAR_BIT) - glUniform4fv(m_specular_loc, 1, &m.specular[0]); - if (m.flags & WFObj::Material::TEXTURE_BIT) - { - cerr << "error: textured materials not implemented yet" << endl; - } -}