/******************************************************************/ /* 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 _DIFFUSEREFLECTANCESHADER_H_ #define _DIFFUSEREFLECTANCESHADER_H_ #include "diffuseBrdf.h" #include "reflectanceParameter.h" #include "reflectanceShader_base.h" class diffuseReflectanceShader : public reflectanceShader_base { public: ///////////////// // Constructor // ///////////////// diffuseReflectanceShader(const colorReflectanceParameter& albedo=colorReflectanceParameter(color(1.0f, 1.0f, 1.0f))); diffuseReflectanceShader(const diffuseReflectanceShader& ) = delete; /////////////// // Operators // /////////////// diffuseReflectanceShader& operator=(const diffuseReflectanceShader&) = delete; protected: /////////////////////// // Protected Methods // /////////////////////// virtual std::unique_ptr make_brdf(const vec2d& textureCoord) const override; virtual void _print(std::ostream& s) const override; private: ////////////////// // Data Members // ////////////////// colorReflectanceParameter _albedo; }; #endif /* _DIFFUSEREFLECTANCESHADER_H_ */