source: GTP/branches/IllumWPdeliver2008dec/IlluminationWP/demos/Standalone/Hierarchical Systems Demo [OpenGL]/RESOURCES/include/My3DGraphRes/Material.cpp @ 3255

Revision 3255, 2.3 KB checked in by szirmay, 15 years ago (diff)
Line 
1// Material.cpp: implementation of the Material class.
2//
3//////////////////////////////////////////////////////////////////////
4
5#include "Material.h"
6#include <glh/glh_extensions.h>
7
8//////////////////////////////////////////////////////////////////////
9// Construction/Destruction
10//////////////////////////////////////////////////////////////////////
11
12Material::Material()
13{
14        m_ColorTexture=NULL;           
15}
16
17Material::~Material()
18{
19
20}
21
22void Material::setMaterial()
23{       
24        glDisable(GL_TEXTURE_2D);
25        glDisable(GL_TEXTURE_RECTANGLE_NV);
26       
27        glMaterialfv(GL_FRONT,GL_AMBIENT,m_Ambient_Color.GetArrayf());
28        glMaterialfv(GL_FRONT,GL_DIFFUSE,m_Diffuse_Color.GetArrayf());
29        glMaterialfv(GL_FRONT,GL_SPECULAR,m_Specular_Color.GetArrayf());
30        glMaterialfv(GL_FRONT,GL_EMISSION,m_Emissive_Color.GetArrayf());
31
32        glMaterialf(GL_FRONT,GL_SHININESS,(float)m_Shininess);
33       
34        if(m_ColorTexture)
35        {
36                glEnable(GL_TEXTURE_2D);
37                glDisable(GL_TEXTURE_RECTANGLE_NV);
38                glBindTexture(GL_TEXTURE_2D,m_ColorTexture->getTextureHandler());
39        }
40}
41
42void Material::Load(ifstream *file)
43{
44        fprintf(stderr, "Loading Material...\n");
45        char* tempchar=new char[500];
46        file->getline(tempchar,500,'\n');
47        sscanf(tempchar,"ambientcolor %f %f %f",&m_Ambient_Color.x,&m_Ambient_Color.y,&m_Ambient_Color.z);
48        file->getline(tempchar,500,'\n');
49        sscanf(tempchar,"diffusecolor %f %f %f",&m_Diffuse_Color.x,&m_Diffuse_Color.y,&m_Diffuse_Color.z);
50        file->getline(tempchar,500,'\n');
51        sscanf(tempchar,"transparency %f",&m_transparency);
52        file->getline(tempchar,500,'\n');
53        sscanf(tempchar,"emissivecolor %f %f %f",&m_Emissive_Color.x,&m_Emissive_Color.y,&m_Emissive_Color.z);
54        file->getline(tempchar,500,'\n');
55        sscanf(tempchar,"specularcolor %f %f %f",&m_Specular_Color.x,&m_Specular_Color.y,&m_Specular_Color.z);
56        file->getline(tempchar,500,'\n');
57        sscanf(tempchar,"shininess %lf",&m_Shininess);
58        file->getline(tempchar,500,'\n');
59        unsigned int texturecount;
60        sscanf(tempchar,"textures: %ui",&texturecount);
61
62        //texturák
63        for(unsigned int i=0;i<texturecount;i++)
64        {
65                m_ColorTexture=new Texture;
66                file->getline(tempchar,500,' ');
67                file->getline(tempchar,500,'\n');
68                m_ColorTexture->setFilename(tempchar);
69                m_ColorTexture->LoadImage();
70                m_Diffuse_Color=Vector(1,1,1);
71        }
72}
73
74
75void Material::MakeTexture()
76{
77       
78}
Note: See TracBrowser for help on using the repository browser.