#ifndef _material_h_ #define _material_h_ ////////////////////////////////////////////////////////////////////////////// // // Material // ////////////////////////////////////////////////////////////////////////////// class Material : public Value { protected: Material( ColorValue* pcolorDiffuse, ColorValue* pcolorSpecular, ColorValue* pcolorEmissive, Number* ppower ) : Value(pcolorDiffuse, pcolorSpecular, pcolorEmissive, ppower) { } public: DefineCastMember(Material); virtual Color GetDiffuse() const = 0; virtual Color GetEmissive() const = 0; virtual Color GetSpecular() const = 0; virtual void SetDiffuse(const Color& color) = 0; virtual void SetEmissive(const Color& color) = 0; virtual void SetSpecular(const Color& color) = 0; }; TRef CreateMaterial( const Color& colorDiffuse, const Color& colorSpecular = Color::Black(), const Color& colorEmissive = Color::Black(), float power = 1 ); TRef CreateMaterial( ColorValue* pcolorDiffuse, ColorValue* pcolorSpecular, ColorValue* pcolorEmissive, Number* ppower ); #endif