//---------------------------------------------------------------------------- // William Baxter III's Ray Tracer // // Project for Comp 238, Raster Graphics // University of North Carolina at Chapel Hill // // $Id:$ //---------------------------------------------------------------------------- #ifndef WB3DIRLIGHT_H #define WB3DIRLIGHT_H #include #include "ray3f.hpp" #include "wb3Light.hpp" //---------------------------------------------------------------------------- class wb3Scene; class wb3Artifact; class wb3DirectionalLight : public wb3Light { public: wb3DirectionalLight(const Vec3f& dirn = Vec3f::ZERO); wb3DirectionalLight(const Vec3f& color, const Vec3f& dirn); ~wb3DirectionalLight() {}; const Vec3f& GetDirection() const; void SetDirection(const Vec3f& dirn); virtual void Contribute(const wb3Scene *scene, const wb3Artifact *hit, const Ray3f& r, const Vec3f &isect, const Vec3f &N, Vec3f& color) const; protected: Vec3f m_dir; }; //---------------------------------------------------------------------------- inline const Vec3f& wb3DirectionalLight::GetDirection() const { return m_dir; } //---------------------------------------------------------------------------- inline void wb3DirectionalLight::SetDirection(const Vec3f& dir) { m_dir = dir; } //---------------------------------------------------------------------------- #endif