#include "material.h" #include <GL/gl.h> #include <GL/glu.h> Material::Material() { Color _ambient = Color(0.5,0.5,0.5); Color _specular = Color(0.5,0.5,0.5); init(_ambient, _specular); } Material::Material(Color _ambient) { Color _specular = Color(0.5,0.5,0.5); init(_ambient, _specular); } Material::Material(Color _ambient, Color _specular) { init(_ambient, _specular); } void Material::init(Color _ambient, Color _specular) { ambient = _ambient.clone(); specular = _specular.clone(); } void Material::draw() { ambient->drawColor(); specular->drawColor(GL_SPECULAR); glMateriali(GL_FRONT, GL_SHININESS, 45); } Material* Material::clone() { Color a = *ambient; Color s = *specular; return new Material(a, s); } void Material::ptdump(std::string id) { printf("M::%s %p %p %p\n", id.c_str(), this, ambient, specular); } void Material::vardump(std::string whitespace) { printf("%sMaterial:\n", whitespace.c_str()); ambient->vardump(whitespace + " "); specular->vardump(whitespace + " "); }