diff --git a/main/Scene-load.cc b/main/Scene-load.cc index 6b18a9d..5a70bc6 100644 --- a/main/Scene-load.cc +++ b/main/Scene-load.cc @@ -15,18 +15,17 @@ void Scene::load(const char * filename) refptr node = parse(filename); processNode(node); - Transform transform; - transform.translate(0, 2, 0); - +#if 0 refptr m = new Material(); refptr shape = new Sphere(0.5); - shape->setTransform(transform); + shape->setTransform(m_transforms.top()); shape->setMaterial(m); m_shapes.push_back(shape); refptr light = new PointLight(); light->setPosition(Vector(2, -1, 2)); m_lights.push_back(light); +#endif #if 0 Transform transform; diff --git a/shapes/Shape.cc b/shapes/Shape.cc index 5211c00..7f496de 100755 --- a/shapes/Shape.cc +++ b/shapes/Shape.cc @@ -5,10 +5,18 @@ #include using namespace std; +static refptr default_material; +static bool default_material_initialized = false; + Shape::Shape() { m_transparency = 0.0; - m_material = new Material(Material::white); + if (default_material_initialized == false) + { + default_material = new Material(); + default_material_initialized = true; + } + m_material = default_material; } Shape::~Shape() diff --git a/util/Material.cc b/util/Material.cc index c70d95c..f541fbe 100644 --- a/util/Material.cc +++ b/util/Material.cc @@ -1,8 +1,6 @@ #include "Material.h" -const Material Material::white = Material(); - Material::Material() { m_ambient_color = Color::white; diff --git a/util/Material.h b/util/Material.h index a5af021..63f2d73 100644 --- a/util/Material.h +++ b/util/Material.h @@ -7,9 +7,6 @@ class Material { public: - /* static members */ - static const Material white; - Material(); void setAmbientColor(const Color & ambient)