www.pudn.com > 3d_terrain.rar > Material.cpp, change:1998-04-07,size:2915b
//********************************************
// Material.cpp
//********************************************
// pierre.alliez@cnet.francetelecom.fr
// Created : 24/02/98
// Modified : 24/02/98
//********************************************
#include "stdafx.h"
#include "Material.h"
//********************************************
// Constructor
//********************************************
CMaterial::CMaterial()
{
// Default
SetAmbient(0.0f,0.33f,0.5f,1.0f);
SetDiffuse(0.5f,0.5f,0.5f,1.0f);
SetSpecular(1.0f,1.0f,1.0f,1.0f);
SetShininess(84.0f);
SetEmission(0.0f,0.0f,0.0f,1.0f);
}
//////////////////////////////////////////////
// DATA SETTINGS
//////////////////////////////////////////////
//********************************************
// SetAmbient
//********************************************
void CMaterial::SetAmbient(float r,
float g,
float b,
float a)
{
m_pAmbient[0] = r;
m_pAmbient[1] = g;
m_pAmbient[2] = b;
m_pAmbient[3] = a;
}
//********************************************
// SetDiffuse
//********************************************
void CMaterial::SetDiffuse(float r,
float g,
float b,
float a)
{
m_pDiffuse[0] = r;
m_pDiffuse[1] = g;
m_pDiffuse[2] = b;
m_pDiffuse[3] = a;
}
//********************************************
// SetSpecular
//********************************************
void CMaterial::SetSpecular(float r,
float g,
float b,
float a)
{
m_pSpecular[0] = r;
m_pSpecular[1] = g;
m_pSpecular[2] = b;
m_pSpecular[3] = a;
}
//********************************************
// SetEmission
//********************************************
void CMaterial::SetEmission(float r,
float g,
float b,
float a)
{
m_pEmission[0] = r;
m_pEmission[1] = g;
m_pEmission[2] = b;
m_pEmission[3] = a;
}
//********************************************
// SetShininess
//********************************************
void CMaterial::SetShininess(float value)
{
m_pShininess[0] = value;
}
//********************************************
// Copy
//********************************************
void CMaterial::Copy(CMaterial *pMaterial)
{
SetSpecular(pMaterial->GetSpecular()[0],pMaterial->GetSpecular()[1],pMaterial->GetSpecular()[2],pMaterial->GetSpecular()[3]);
SetAmbient(pMaterial->GetAmbient()[0],pMaterial->GetAmbient()[1],pMaterial->GetAmbient()[2],pMaterial->GetAmbient()[3]);
SetDiffuse(pMaterial->GetDiffuse()[0],pMaterial->GetDiffuse()[1],pMaterial->GetDiffuse()[2],pMaterial->GetDiffuse()[3]);
SetEmission(pMaterial->GetEmission()[0],pMaterial->GetEmission()[1],pMaterial->GetEmission()[2],pMaterial->GetEmission()[3]);
SetShininess(pMaterial->GetShininess()[0]);
}
// ** EOF **