791fdaa14a
Use the Vector4 version of Matrix4::Translation for object origins
2014-08-16 20:35:49 -07:00
c45d698424
Get a column vector of a matrix
2014-08-16 00:43:43 -07:00
bbbac6ff92
Fix up Object object space conversions
...
- Ray directions shouldn't be translated
- Implement vector translation to global space
2014-08-15 22:33:22 -07:00
8af03c3f3d
Implement Object::Place
...
Places the object by manipulating its translation matrix.
2014-08-15 22:32:44 -07:00
56fff1178e
ToObjectSpace copies the Ray anyway, so pass by value
2014-08-10 16:58:05 -07:00
49d097a803
Get rid of Matrix<N,M>, just use Matrix4
2014-08-10 10:51:12 -07:00
bf91fff5a2
More compiler fixups
2014-08-09 21:23:11 -07:00
70576c382a
Do all the clean up needed for Object
2014-08-09 10:42:49 -07:00
d0d667d6d2
Object::Intersect
...
A new intersect method that converts to object space before doing the intersection. Now all objects are at their own origin!
2014-08-09 09:59:00 -07:00
584d0326a9
Get rid of object's origin
2014-08-09 08:59:11 -07:00
ab9ac5e963
Clean up constructors for Object and Sphere
...
Use default arguments instead of multiple constructors. I forgot about those! Use Vector4s all around.
2014-08-09 08:57:41 -07:00
4828cb313f
Add Write methods to scene objects
...
Write methods are polymorphic, overridden by subclasses. There is a single operator<< for Objects that calls the right Write() method for the object. Neat.
2014-08-03 17:25:00 -07:00
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
0a14661da8
Set material to NULL in Shape
2014-07-19 15:41:17 -07:00
68d0083ba8
Object::get_material returns a pointer instead of a reference
2014-07-19 14:09:47 -07:00
c405302613
Add operator<< overload for Object
2013-09-22 10:16:15 -07:00
e55828890b
Add virtual destructor for Shape class
2013-09-13 14:14:45 -07:00
2c23fb819e
Add Materials to the shapes in the scene
2013-09-11 09:05:27 -07:00
e5601e7f43
Define constructors for Object and Shape; move a bunch of Sphere code to object_sphere
2013-09-10 15:45:13 -07:00
2d66ba0945
Move Sphere::does_intersect to object_sphere; fill out object_sphere in C++
2013-09-10 09:33:59 -07:00
a02e31952e
Update object.cc for C++
2013-09-10 09:18:05 -07:00