From db072ad4dc181eca5a1458656b130beb43f475bf Mon Sep 17 00:00:00 2001 From: 53hornet <53hornet@gmail.com> Date: Sat, 2 Feb 2019 23:33:15 -0500 Subject: Init. --- hw6/src/directionalLightsource.cpp | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 hw6/src/directionalLightsource.cpp (limited to 'hw6/src/directionalLightsource.cpp') diff --git a/hw6/src/directionalLightsource.cpp b/hw6/src/directionalLightsource.cpp new file mode 100644 index 0000000..7703eb1 --- /dev/null +++ b/hw6/src/directionalLightsource.cpp @@ -0,0 +1,47 @@ +/******************************************************************/ +/* 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. */ +/******************************************************************/ + +#include "constants.h" +#include "directionalLightsource.h" + +////////////////// +// Constructors // +////////////////// +directionalLightsource::directionalLightsource(const vec3d& direction, const color& power) +{ + _direction = normalize(direction); + _power = power; +} + + +///////////// +// Methods // +///////////// +lightSample directionalLightsource::intensityAt(const vec3d& point) const +{ + return lightSample(_direction, _power, +LARGE); +} + + +lightSample directionalLightsource::emittanceAt(const vec3d& point, float r1, float r2) const +{ + // Set emittance to _power * distance^2 to compensate for squared distance fall off. + // Distance is set to large (to ensure everything can occlude). + // Foreshortening == 1 + // PDF == 1 (no selection). + return lightSample(_direction, _power * LARGE * LARGE, LARGE, 1.0f, 1.0f); +} + +///////////////////// +// Private Methods // +///////////////////// +void directionalLightsource::_print(std::ostream& s) const +{ + s << "Directional Lightsource: direction=" << _direction << ", power=" << _power; +} -- cgit v1.2.3