Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include "cinder/gl/gl.h"
00026 #include "cinder/Color.h"
00027
00028 namespace cinder { namespace gl {
00029
00030 class Material {
00031 public:
00032 Material();
00033 Material( const ColorA &aAmbient, const ColorA &aDiffuse = ColorA( 0, 0, 0, 1 ), const ColorA &aSpecular = ColorA( 0, 0, 0, 1 ),
00034 float aShininess = 1.0f, const ColorA &aEmission = ColorA( 0, 0, 0, 1 ), GLenum aFace = GL_FRONT );
00035
00036 void apply() const;
00037 void setAmbient( const ColorA &aAmbient ) { mAmbient = aAmbient; }
00038 void setDiffuse( const ColorA &aDiffuse ) { mDiffuse = aDiffuse; }
00039 void setSpecular( const ColorA &aSpecular ) { mSpecular = aSpecular; }
00040 void setShininess( float aShininess ) { mShininess = aShininess; }
00041 void setEmission( const ColorA &aEmission ) { mEmission = aEmission; }
00042 void setFace( GLenum aFace ) { mFace = aFace; }
00043
00044 ColorA getAmbient() const { return mAmbient; }
00045 ColorA getDiffuse() const { return mDiffuse; }
00046 ColorA getSpecular() const { return mSpecular; }
00047 float getShininess() const { return mShininess; }
00048 ColorA getEmission() const { return mEmission; }
00049 GLenum getFace() const { return mFace; }
00050
00051 protected:
00052 ColorA mAmbient;
00053 ColorA mDiffuse;
00054 ColorA mSpecular;
00055 float mShininess;
00056 ColorA mEmission;
00057 GLenum mFace;
00058 };
00059
00060 } }