Add PointLight in lightPoint.cc

This commit is contained in:
Eryn Wells 2014-08-09 20:22:35 -07:00
parent e1ded8a9ad
commit acdfb0fb60
3 changed files with 70 additions and 0 deletions

View file

@ -21,6 +21,7 @@ files = [
'basics.cc',
'camera.cc',
'light.cc',
'lightPoint.cc',
'log.cc',
'material.cc',
'object.cc',

35
src/lightPoint.cc Normal file
View file

@ -0,0 +1,35 @@
/* lightPoint.cc
* vim: set tw=80:
* Eryn Wells <eryn@erynwells.me>
*/
#include "lightPoint.hh"
using charles::basics::Vector4;
namespace charles {
PointLight::PointLight(const Vector4& origin,
const Color& color)
: Light(color),
mOrigin(origin)
{ }
Vector4
PointLight::GetOrigin()
{
return mOrigin;
}
void
PointLight::SetOrigin(const Vector4& origin)
{
mOrigin = origin;
}
} /* namespace charles */

34
src/lightPoint.hh Normal file
View file

@ -0,0 +1,34 @@
/* lightPoint.hh
* vim: set tw=80:
* Eryn Wells <eryn@erynwells.me>
*/
#ifndef __LIGHTPOINT_HH__
#define __LIGHTPOINT_HH__
#include "light.hh"
namespace charles {
/**
* The simplest light source. Emits light in all directions uniformly, without
* falloff.
*/
class PointLight
: public Light
{
public:
PointLight(const basics::Vector4 &origin,
const basics::Color& color);
basics::Vector4& GetOrigin();
void SetOrigin(const basics::Vector4& origin);
private:
basics::Vector4 mOrigin;
};
} /* namespace charles */
#endif /* __LIGHTPOINT_HH__ */