Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

vpmaterial.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 // ChangeLog is at the implementation file.
00006 
00007 #ifndef __VPMATERIAL_H
00008 #define __VPMATERIAL_H
00009 
00010 #include "vptexture.h"
00011 #include "vpcolor.h"
00012 
00017 
00018 // FixMe: Texture still needs to be implemented.
00019 
00020 class VPMaterial
00021 {
00022     public:
00023     // Public Methods
00024         VPMaterial();
00025         VPMaterial(const VPMaterial& m);
00027         VPMaterial(const VPColor& c);
00028         VPMaterial(const VPTexture& t);
00030         VPMaterial(const VPColor& c, float spc, float amb, float ems, float shi);
00031         VPMaterial& operator=(const VPMaterial& m);
00033         void SetDiffuseColor(const VPColor& c) { color = c; }
00035         const VPColor& GetDiffuseColor() const { return color; }
00037         void SetSpecularColor(const VPColor& c) { specular = c; }
00039         void SetAmbientColor(const VPColor& c) { ambient = c; }
00041         void SetEmissiveColor(const VPColor& c) { emissive = c; }
00042 
00044 
00047         void SetShininess(float newValue) { shininess = newValue; }
00048 
00051         bool DrawOGL() const;
00052     // Public Static Methods
00053         static const VPMaterial& LIGHT_PLASTIC_GRAY();
00054         static const VPMaterial& DARK_PLASTIC_GRAY();
00055         static const VPMaterial& PLASTIC_RED();
00056         static const VPMaterial& PLASTIC_GREEN();
00057         static const VPMaterial& PLASTIC_BLUE();
00058 private:
00060         VPColor color;
00062         VPColor emissive;
00064         VPColor ambient;
00066         VPColor specular;
00067         VPTexture texture;
00069         float shininess;
00070 };
00071 
00072 #endif

Generated on Tue Sep 6 10:00:04 2005 for VPAT by  doxygen 1.4.4