// Material.cpp: implementation of the Material class. // ////////////////////////////////////////////////////////////////////// #include "Material.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Material::Material() { m_ColorTexture=NULL; } Material::~Material() { } void Material::setMaterial() { glMaterialfv(GL_FRONT,GL_AMBIENT,m_Ambient_Color.GetArrayf()); glMaterialfv(GL_FRONT,GL_DIFFUSE,m_Diffuse_Color.GetArrayf()); glMaterialfv(GL_FRONT,GL_SPECULAR,m_Specular_Color.GetArrayf()); glMaterialfv(GL_FRONT,GL_EMISSION,m_Emissive_Color.GetArrayf()); glMaterialf(GL_FRONT,GL_SHININESS,(float)m_Shininess); if(m_ColorTexture) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D,m_ColorTexture->getTextureHandler()); } } void Material::Load(ifstream *file) { fprintf(stderr, "Loading Material...\n"); char* tempchar=new char[500]; file->getline(tempchar,500,'\n'); sscanf(tempchar,"ambientcolor %lf %lf %lf",&m_Ambient_Color.x,&m_Ambient_Color.y,&m_Ambient_Color.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"diffusecolor %lf %lf %lf",&m_Diffuse_Color.x,&m_Diffuse_Color.y,&m_Diffuse_Color.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"transparency %f",&m_transparency); file->getline(tempchar,500,'\n'); sscanf(tempchar,"emissivecolor %lf %lf %lf",&m_Emissive_Color.x,&m_Emissive_Color.y,&m_Emissive_Color.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"specularcolor %lf %lf %lf",&m_Specular_Color.x,&m_Specular_Color.y,&m_Specular_Color.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"shininess %lf",&m_Shininess); file->getline(tempchar,500,'\n'); unsigned int texturecount; sscanf(tempchar,"textures: %ui",&texturecount); //texturák for(unsigned int i=0;igetline(tempchar,500,' '); file->getline(tempchar,500,'\n'); m_ColorTexture->setFilename(tempchar); m_ColorTexture->LoadImage(); m_Diffuse_Color=Vector(1,1,1); } } void Material::MakeTexture() { }