Newer
Older
cg / sources / material.cpp
@glproj03 glproj03 on 3 Feb 2006 1 KB added GluModel - GluSphere
#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 + "  ");
}