📄 material.cc
字号:
//Material.cc#include "Material.h"Material::Material(){ int i; for(i=0; i<5; i++) { Changed[i]=false; }}void Material::SetValuev(Enum Pname, float Value[]){ float *temp=NULL; int i; switch(Pname) { case AMBIENT: temp=Ambient; Changed[0]=true; break; case DIFFUSE: temp=Diffuse; Changed[1]=true; break; case SPECULAR: temp=Specular; Changed[2]=true; break; case EMISSION: temp=Emission; Changed[3]=true; break; default: break; } for(i=0; i<4; i++) temp[i]=Value[i];}void Material::SetValue(Enum Pname, float v1, float v2, float v3, float v4){ float temp[]={v1, v2, v3, v4}; SetValuev(Pname, temp);}voidMaterial::SetValue(Enum Pname, float Value){ if(Pname==SHININESS) { Changed[4]=true; Shininess=Value; }}voidMaterial::Render(){ if(Changed[0]) glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, Ambient); if(Changed[1]) glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Diffuse); if(Changed[2]) glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, Specular); if(Changed[3]) glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, Emission); if(Changed[4]) glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, Shininess);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -