MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
Material.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 #pragma once
6 
7 #ifndef _MGMaterial_HH_
8 #define _MGMaterial_HH_
9 
10 #include "mgGL/GLAttrib.h"
11 #include "mgGL/RenderAttr.h"
12 
13 class MGOfstream;
14 class MGIfstream;
15 
21 
24 class MG_DLL_DECLR MGMaterial{
25 public:
26 
28 MG_DLL_DECLR friend MGOfstream& operator<< (MGOfstream& buf, const MGMaterial& mt);
29 MG_DLL_DECLR friend MGIfstream& operator>> (MGIfstream& buf, MGMaterial& mt);
30 
32 MGMaterial();
34  const float ambient[3],
35  const float diffuse[3],
36  const float specular[3],
37  const float emission[3],
38  float shininess,
39  float transparency
40 );
41 
43 
45 void exec(MGRenderAttr::RENDERSIDE rs)const;
46 
48 
50 void setAmbientColor(const float ambientColor[3]){
51  for(int i=0; i<3; i++) m_ambientColor[i]=ambientColor[i];
52 }
53 void getAmbientColor(float ambientColor[3])const{
54  for(int i=0; i<3; i++) ambientColor[i]=m_ambientColor[i];
55 }
56 void setAmbientColor(float v0, float v1, float v2){
57  m_ambientColor[0]=v0;
58  m_ambientColor[1]=v1;
59  m_ambientColor[2]=v2;
60 }
61 
63 void setDiffuseColor(const float diffuseColor[3]){
64  for(int i=0; i<3; i++) m_diffuseColor[i]=diffuseColor[i];
65 }
66 void getDiffuseColor(float diffuseColor[3])const{
67  for(int i=0; i<3; i++) diffuseColor[i]=m_diffuseColor[i];
68 }
69 void setDiffuseColor(float v0, float v1, float v2){
70  m_diffuseColor[0]=v0;
71  m_diffuseColor[1]=v1;
72  m_diffuseColor[2]=v2;
73 }
74 
76 void setSpecularColor(const float specularColor[3]){
77  for(int i=0; i<3; i++) m_specularColor[i]=specularColor[i];
78 }
79 void getSpecularColor(float specularColor[3])const{
80  for(int i=0; i<3; i++) specularColor[i]=m_specularColor[i];
81 }
82 void setSpecularColor(float v0, float v1, float v2){
83  m_specularColor[0]=v0;
84  m_specularColor[1]=v1;
85  m_specularColor[2]=v2;
86 }
87 
89 void setEmissiveColor(const float emissiveColor[3]){
90  for(int i=0; i<3; i++) m_emissiveColor[i]=emissiveColor[i];
91 }
92 void getEmissiveColor(float emissiveColor[3])const{
93  for(int i=0; i<3; i++) emissiveColor[i]=m_emissiveColor[i];
94 }
95 void setEmissiveColor(float v0, float v1, float v2){
96  m_emissiveColor[0]=v0;
97  m_emissiveColor[1]=v1;
98  m_emissiveColor[2]=v2;
99 }
100 
102 void setShininess(float shininess){m_shininess=shininess;};
103 float getShininess()const{return m_shininess;};
104 
106 void setTransparency(float transparency);
107 float getTransparency()const{return m_ambientColor[3];};
108 
110 long identify_type() const{return MGMATERIAL_TID;};
111 
113 std::ostream& out(std::ostream& ostrm) const;
114 
115 private:
116 
117  float m_ambientColor[4];
118  float m_diffuseColor[4];
119  float m_specularColor[4];
120  float m_emissiveColor[4];
121  float m_shininess;
122 
123 };
124  // end of GLAttrib group
126 #endif // _MGMaterial_HH_
void getDiffuseColor(float diffuseColor[3]) const
Definition: Material.h:66
RENDERSIDE
Definition: RenderAttr.h:32
void setShininess(float shininess)
Definition: Material.h:102
MGIfstream is a class to read the serialized data generated by MGOfstream.
Definition: Ifstream.h:30
float getShininess() const
Definition: Material.h:103
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
void getAmbientColor(float ambientColor[3]) const
Definition: Material.h:53
void getEmissiveColor(float emissiveColor[3]) const
Definition: Material.h:92
void setDiffuseColor(float v0, float v1, float v2)
Definition: Material.h:69
float getTransparency() const
Definition: Material.h:107
void setAmbientColor(const float ambientColor[3])
Definition: Material.h:50
void setEmissiveColor(float v0, float v1, float v2)
Definition: Material.h:95
void setAmbientColor(float v0, float v1, float v2)
Definition: Material.h:56
MGOfstream is a class to serialize all of the subclasses of MGGel.
Definition: Ofstream.h:31
void setSpecularColor(const float specularColor[3])
Definition: Material.h:76
long identify_type() const
Return This object's typeID.
Definition: Material.h:110
MGMaterial defines OpenGL's Material attributes.
Definition: Material.h:24
void getSpecularColor(float specularColor[3]) const
Definition: Material.h:79
void setDiffuseColor(const float diffuseColor[3])
Definition: Material.h:63
void setSpecularColor(float v0, float v1, float v2)
Definition: Material.h:82
void setEmissiveColor(const float emissiveColor[3])
Definition: Material.h:89