00001 //## begin module%373B17C102DE.cm preserve=no 00002 // %X% %Q% %Z% %W% 00003 //## end module%373B17C102DE.cm 00004 00005 //## begin module%373B17C102DE.cp preserve=no 00006 //## end module%373B17C102DE.cp 00007 00008 //## Module: GL_Material%373B17C102DE; Pseudo Package specification 00009 //## Source file: C:\project\mpk\code\OpenGL\GL_Material.h 00010 00011 #ifndef GL_Material_h 00012 #define GL_Material_h 1 00013 00014 //## begin module%373B17C102DE.additionalIncludes preserve=no 00015 //## end module%373B17C102DE.additionalIncludes 00016 00017 //## begin module%373B17C102DE.includes preserve=yes 00018 //## end module%373B17C102DE.includes 00019 00020 // OpenGLInterface 00021 #include "OpenGL\OpenGLInterface.h" 00022 //## begin module%373B17C102DE.additionalDeclarations preserve=yes 00023 //## end module%373B17C102DE.additionalDeclarations 00024 00025 00026 //## begin GL_Material%373B17C102DE.preface preserve=yes 00027 //## end GL_Material%373B17C102DE.preface 00028 00029 //## Class: GL_Material%373B17C102DE 00030 // this will ease the assignment of opengl materials 00031 //## Category: OpenGL%3728CC7F0370 00032 //## Persistence: Transient 00033 //## Cardinality/Multiplicity: n 00034 00035 class GL_Material : public OpenGLInterface //## Inherits: <unnamed>%373B180A02D9 00036 { 00037 //## begin GL_Material%373B17C102DE.initialDeclarations preserve=yes 00038 //## end GL_Material%373B17C102DE.initialDeclarations 00039 00040 public: 00041 //## Constructors (specified) 00042 //## Operation: GL_Material%926619736 00043 GL_Material (); 00044 00045 //## Operation: GL_Material%926619742 00046 GL_Material (GL_Material& right); 00047 00048 //## Destructor (generated) 00049 virtual ~GL_Material(); 00050 00051 00052 //## Other Operations (specified) 00053 //## Operation: SetAmbient%926619734 00054 void SetAmbient (double r, double g, double b, double a = 1); 00055 00056 //## Operation: SetDiffuse%926619737 00057 void SetDiffuse (double r, double g, double b, double a = 1); 00058 00059 //## Operation: SetSpecular%926619738 00060 void SetSpecular (double r, double g, double b, double a = 1); 00061 00062 //## Operation: SetShininess%926619739 00063 void SetShininess (double shininess); 00064 00065 //## Operation: SetTransparancy%926619740 00066 void SetTransparancy (double alpha); 00067 00068 //## Operation: SetupGlobalMaterials%926619741 00069 // this function sets up all the global materials 00070 static void SetupGlobalMaterials (); 00071 00072 //## Operation: operator=%926619743 00073 GL_Material& operator = (const GL_Material& right); 00074 00075 // Data Members for Associations 00076 00077 //## Association: OpenGL::<unnamed>%373B23B8021A 00078 //## Role: GL_Material::matRedPlastic%373B23B9012B 00079 //## begin GL_Material::matRedPlastic%373B23B9012B.role preserve=no public: static GL_Material { -> 1VFHAN} 00080 static GL_Material matRedPlastic; 00081 //## end GL_Material::matRedPlastic%373B23B9012B.role 00082 00083 //## Association: OpenGL::<unnamed>%373B25870248 00084 //## Role: GL_Material::matGreenPlastic%373B25880069 00085 //## begin GL_Material::matGreenPlastic%373B25880069.role preserve=no public: static GL_Material { -> 1VFHAN} 00086 static GL_Material matGreenPlastic; 00087 //## end GL_Material::matGreenPlastic%373B25880069.role 00088 00089 // Additional Public Declarations 00090 //## begin GL_Material%373B17C102DE.public preserve=yes 00091 static GL_Material matGrayPlastic; 00092 virtual void GLDraw () const; 00093 //## end GL_Material%373B17C102DE.public 00094 00095 protected: 00096 00097 //## Other Operations (specified) 00098 //## Operation: DrawExplicit%950474928 00099 virtual bool DrawExplicit () const; 00100 00101 // Additional Protected Declarations 00102 //## begin GL_Material%373B17C102DE.protected preserve=yes 00103 //## end GL_Material%373B17C102DE.protected 00104 00105 private: 00106 // Data Members for Class Attributes 00107 00108 //## Attribute: ambient%373B188C0109 00109 //## begin GL_Material::ambient%373B188C0109.attr preserve=no private: float [4] {UA} 00110 float ambient[4]; 00111 //## end GL_Material::ambient%373B188C0109.attr 00112 00113 //## Attribute: diffuse%373B19160360 00114 //## begin GL_Material::diffuse%373B19160360.attr preserve=no private: float [4] {UA} 00115 float diffuse[4]; 00116 //## end GL_Material::diffuse%373B19160360.attr 00117 00118 //## Attribute: specular%373B191702AE 00119 //## begin GL_Material::specular%373B191702AE.attr preserve=no private: float [4] {UA} 00120 float specular[4]; 00121 //## end GL_Material::specular%373B191702AE.attr 00122 00123 //## Attribute: emission%373B191800D8 00124 //## begin GL_Material::emission%373B191800D8.attr preserve=no private: float [4] {UA} 00125 float emission[4]; 00126 //## end GL_Material::emission%373B191800D8.attr 00127 00128 //## Attribute: shininess%373B192F01EA 00129 //## begin GL_Material::shininess%373B192F01EA.attr preserve=no private: double {UA} 00130 double shininess; 00131 //## end GL_Material::shininess%373B192F01EA.attr 00132 00133 // Additional Private Declarations 00134 //## begin GL_Material%373B17C102DE.private preserve=yes 00135 //## end GL_Material%373B17C102DE.private 00136 00137 private: //## implementation 00138 // Additional Implementation Declarations 00139 //## begin GL_Material%373B17C102DE.implementation preserve=yes 00140 //## end GL_Material%373B17C102DE.implementation 00141 00142 }; 00143 00144 //## begin GL_Material%373B17C102DE.postscript preserve=yes 00145 //## end GL_Material%373B17C102DE.postscript 00146 00147 // Class GL_Material 00148 00149 //## begin module%373B17C102DE.epilog preserve=yes 00150 //## end module%373B17C102DE.epilog 00151 00152 00153 #endif