// Material.cpp: implementation of the Material class. // ////////////////////////////////////////////////////////////////////// #include "Material.h" #include ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// Material::Material() { m_ColorTexture=NULL; } Material::~Material() { } void Material::setMaterial() { glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_RECTANGLE_NV); 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); glDisable(GL_TEXTURE_RECTANGLE_NV); 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 %f %f %f",&m_Ambient_Color.x,&m_Ambient_Color.y,&m_Ambient_Color.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"diffusecolor %f %f %f",&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 %f %f %f",&m_Emissive_Color.x,&m_Emissive_Color.y,&m_Emissive_Color.z); file->getline(tempchar,500,'\n'); sscanf(tempchar,"specularcolor %f %f %f",&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() { }