charles/src/object.cc
Eryn Wells 2036521f42 Update code style for Object
- Remove Shape, because it seems to be mostly extra. All renderable objects now
derive from Object, rather than Shape
- Light (which inherited from Object before) now defines its own origin, but
this is coming in a later commit...
- Use charles namespace

- Use a std::vector<double> instead of float** to pass back intersection points.
This is kind of a biggie because it made the render process 50% slower :( I'll
have to work out why and maybe fix it...
2014-07-20 16:48:09 -07:00

73 lines
916 B
C++

/* object.c
*
* Definition of generic scene objects.
*
* Eryn Wells <eryn@erynwells.me>
*/
#include <cassert>
#include <cmath>
#include <cstdlib>
#include "basics.h"
#include "material.h"
#include "object.h"
namespace charles {
#pragma mark - Objects
/*
* Object::Object --
*
* Default constructor. Create a new Object with an origin at (0, 0, 0).
*/
Object::Object()
: Object(Vector3::Zero)
{ }
/*
* Object::Object --
*
* Constructor. Create a new Object with an origin at o.
*/
Object::Object(Vector3 origin)
: mOrigin(origin),
mMaterial()
{ }
Vector3
Object::GetOrigin()
const
{
return mOrigin;
}
Object::~Object()
{ }
void
Object::SetOrigin(const Vector3& origin)
{
mOrigin = origin;
}
Material&
Object::GetMaterial()
{
return mMaterial;
}
void
Object::SetMaterial(const Material& material)
{
mMaterial = material;
}
} /* namespace charles */