/******************************************************************/ /* This file is part of the homework assignments for CSCI-427/527 */ /* at The College of William & Mary and authored by Pieter Peers. */ /* No part of this file, whether altered or in original form, can */ /* be distributed or used outside the context of CSCI-427/527 */ /* without consent of either the College of William & Mary or */ /* Pieter Peers. */ /******************************************************************/ #ifndef _PHONGREFLECTANCESHADER_H_ #define _PHONGREFLECTANCESHADER_H_ #include "phongBrdf.h" #include "reflectanceParameter.h" #include "reflectanceShader_base.h" class phongReflectanceShader : public reflectanceShader_base { public: ///////////////// // Constructor // ///////////////// phongReflectanceShader(const colorReflectanceParameter& albedo=colorReflectanceParameter(color(1.0f, 1.0f, 1.0f)), const scalarReflectanceParameter& sharpness=20.0f); phongReflectanceShader(const phongReflectanceShader& ) = delete; /////////////// // Operators // /////////////// phongReflectanceShader& operator=(const phongReflectanceShader&) = delete; protected: /////////////////////// // Protected Methods // /////////////////////// virtual void _print(std::ostream& s) const override; virtual std::unique_ptr make_brdf(const vec2d& textureCoord) const override; private: ////////////////// // Data Members // ////////////////// colorReflectanceParameter _albedo; scalarReflectanceParameter _sharpness; }; #endif /* _PHONGREFLECTANCESHADER_H_ */