|
From: Mike D. <o3d...@us...> - 2004-07-25 10:37:20
|
Update of /cvsroot/grappelmann/spaceplane In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17386 Added Files: material.cpp material.h transform.cpp transform.h Log Message: - added material and transform nodes --- NEW FILE: transform.cpp --- /* $Id */ #include "transform.h" Transform::Transform(SceneObject* parent) : SceneObject(parent), m_rotationSize(0) { } Transform::Transform(const Transform& rhs) { m_translation = rhs.m_translation; m_rotation = rhs.m_rotation; m_rotationSize = rhs.m_rotationSize; } Transform::~Transform() { } bool Transform::setTranslation(Coord3D& translation) { m_translation = translation; return true; } bool Transform::setRotation(Coord3D& rotation, double rotationSize) { m_rotation = rotation; m_rotationSize = rotationSize; return true; } bool Transform::_draw() { cout << "<Transform::_draw>\trotation size [" << m_rotationSize << "] x [" << m_rotation.m_x << "] y [" << m_rotation.m_y << "] z [" << m_rotation.m_z << "]" << endl; cout << "<Transform::_draw>\ttranslation x [" << m_translation.m_x << "] y [" << m_translation.m_y << "] z [" << m_translation.m_z << "]" << endl; glRotatef(m_rotationSize, m_rotation.m_x, m_rotation.m_y, m_rotation.m_z); glTranslatef(m_translation.m_x, m_translation.m_y, m_translation.m_z); drawChildren(); return true; } /* $Log: transform.cpp,v $ Revision 1.1 2004/07/25 10:37:12 o3dozone - added material and transform nodes */ --- NEW FILE: material.cpp --- /* $Id */ #include "material.h" Material::Material(SceneObject* parent) : SceneObject(parent) { } Material::Material(const Material& rhs) { } Material::~Material() { } bool Material::setDiffuse(vector<double>& diffuse) { m_diffuse = diffuse; return true; } bool Material::setEmission(vector<double>& emission) { m_emission = emission; return true; } bool Material::setShininess(double shininess) { m_shininess = shininess; return true; } bool Material::setSpecular(vector<double>& specular) { m_specular = specular; return true; } bool Material::setAmbient(double ambient) { m_ambient = ambient; return true; } bool Material::_draw() { GLfloat mat_specular[] = { m_specular[0], m_specular[1], m_specular[2], 1.0 }; GLfloat mat_shininess[] = { m_shininess }; GLfloat mat_ambient[] = { m_ambient, m_ambient, m_ambient, 1.0 }; GLfloat mat_diffuse[] = { m_diffuse[0], m_diffuse[1], m_diffuse[2], 1.0 }; GLfloat mat_emission[] = { m_emission[0], m_emission[1], m_emission[2], 1.0 }; glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission); drawChildren(); return true; } /* $Log: material.cpp,v $ Revision 1.1 2004/07/25 10:37:12 o3dozone - added material and transform nodes */ --- NEW FILE: transform.h --- #ifndef TRANSFORM_H #define TRANSFORM_H /* $Id: transform.h,v 1.1 2004/07/25 10:37:12 o3dozone Exp $ */ #include "scene_object.h" #include "coord3d.h" #include <iostream> class Transform : public SceneObject { public: Transform(SceneObject* parent = NULL); Transform(const Transform& rhs); virtual ~Transform(); bool setTranslation(Coord3D& translation); bool setRotation(Coord3D& rotation, double rotationSize); protected: virtual bool _draw(); private: Coord3D m_translation; Coord3D m_rotation; double m_rotationSize; }; /* $Log: transform.h,v $ Revision 1.1 2004/07/25 10:37:12 o3dozone - added material and transform nodes */ #endif --- NEW FILE: material.h --- #ifndef MATERIAL_H #define MATERIAL_H /* $Id: material.h,v 1.1 2004/07/25 10:37:12 o3dozone Exp $ */ /* <Appearance> <Material ambientIntensity="0.500" diffuseColor="0.640 0.640 0.640" emissiveColor="0.800 0.800 0.800" shininess="0.196" specularColor="1.000 1.000 1.000" transparency="0.000"/> </Appearance> */ #include "scene_object.h" #include <iostream> class Material : public SceneObject { public: Material(SceneObject* parent = NULL); Material(const Material& rhs); virtual ~Material(); bool setDiffuse(vector<double>& diffuse); bool setEmission(vector<double>& emission); bool setShininess(double shininess); bool setSpecular(vector<double>& specular); bool setAmbient(double ambient); protected: virtual bool _draw(); private: vector<double> m_diffuse; vector<double> m_emission; double m_shininess; vector<double> m_specular; double m_ambient; }; /* $Log: material.h,v $ Revision 1.1 2004/07/25 10:37:12 o3dozone - added material and transform nodes */ #endif |