Commit graph

473 commits

Author SHA1 Message Date
301f5ff9aa Use ToObjectSpace and FromObjectSpace for ray components 2014-08-20 10:05:17 -07:00
07e75c663d Convert normal from object to world space
Properly doing this is a bit more complicated because it has to be normalized and pointing in the right direction. Just applying the inverse of the transform matrix doesn't quite do it.
2014-08-20 10:04:38 -07:00
cb0933ab51 threeSpheres.yml should be 800x600 2014-08-18 09:04:40 -07:00
6706623d6f Manually initialize Vector4 instead of using bzero 2014-08-18 09:04:26 -07:00
df5e4fe049 Initialize Camera::mOrigin
Whoops...
2014-08-18 09:04:11 -07:00
7c12a8bc2b Return a Color by value from Light::Contribution() 2014-08-18 09:02:13 -07:00
917b74003a Declare overrides for Box methods 2014-08-16 20:45:06 -07:00
db2804ac17 Merge branch 'feature/transform-matrix' into develop 2014-08-16 20:36:35 -07:00
0a43eb81aa Explicitly declare overrides in Sphere 2014-08-16 20:36:02 -07:00
791fdaa14a Use the Vector4 version of Matrix4::Translation for object origins 2014-08-16 20:35:49 -07:00
d518d282d4 Notes in Matrix4 about using std::copy
Not entirely sure what it does, but it's standard C++… :shrugs:
2014-08-16 20:35:01 -07:00
10195c607c operator<< for pretty-printing an entire Matrix4 2014-08-16 16:57:58 -07:00
09c5e29f63 Add a vector translation multiplication test 2014-08-16 16:57:08 -07:00
22297da809 Add includes to testObject.cc
No unit tests for objects yet...
2014-08-16 16:56:53 -07:00
8460f2205e Remake test_object -> testObject.cc
This was a *really* old class...
2014-08-16 08:54:33 -07:00
3a846ec282 Add -n option for "should render" 2014-08-16 08:52:40 -07:00
7e3cc3c3ed Copy properties of log tracer
The log tracer needs to copy its parameters, otherwise weird things happen.
2014-08-16 08:33:12 -07:00
dc6efc5e65 Fix up Transposed -> Tranpose in unit tests 2014-08-16 00:44:07 -07:00
c45d698424 Get a column vector of a matrix 2014-08-16 00:43:43 -07:00
1daf1619ef A few more objects for the oneBox scene -- it's not really one box anymore 2014-08-15 22:33:52 -07:00
050d87bd6f Place an object by its origin (only applies to spheres) 2014-08-15 22:33:34 -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
09ea4c2bc3 Mostly default Doxyfile 2014-08-13 09:04:11 -07:00
97b37d3c53 Just little tweaks
Mostly style, also the name of the Transposed() function -> Transpose().
2014-08-11 07:58:47 -07:00
56fff1178e ToObjectSpace copies the Ray anyway, so pass by value 2014-08-10 16:58:05 -07:00
4d4dc91ff4 Add Matrix4 Inverse and Transpose
Transpose is easy, with a bool flag to determine whether to access elements in row-major or column-major format. Inverse is more difficult, so this change only does translation inverses.
2014-08-10 16:57:34 -07:00
5b25b402c7 Merge branch 'matrix4' into feature/transform-matrix 2014-08-10 11:39:56 -07:00
dd36ab6fe1 Fill in missing Matrix4 symbols 2014-08-10 11:39:25 -07:00
51fbba95e7 Rename some matrix tests 2014-08-10 11:39:05 -07:00
620d5a5bc6 Fill in missing Vector4 symbols
Add assignment and call operators, bool operators, etc
2014-08-10 11:38:55 -07:00
49d097a803 Get rid of Matrix<N,M>, just use Matrix4 2014-08-10 10:51:12 -07:00
30d0570010 Add TooFar to util.hh 2014-08-10 10:49:45 -07:00
990d2b4c11 Add basics/util.hh
A place for NearZero, etc
2014-08-10 10:48:54 -07:00
74bbc87610 Trying to get this copy/move thing right between matrices and vectors 2014-08-10 09:42:02 -07:00
96f782c4ac Add tests for matrix multiplication
By identity matrix
With vectors
2014-08-10 09:41:48 -07:00
a5f451a120 Basics unit tests found some bugs! 2014-08-09 22:00:54 -07:00
1f01de6393 Remove VectorParser and ColorParser destructors
They weren't being used.
2014-08-09 22:00:43 -07:00
505a77d0e2 LOG_TRACE YAML events 2014-08-09 22:00:23 -07:00
c90c545f40 Define color constants 2014-08-09 21:30:28 -07:00
bf91fff5a2 More compiler fixups 2014-08-09 21:23:11 -07:00
43c8bd95c6 Remove basics.cc from the build 2014-08-09 21:22:40 -07:00
a97e7a6d2e Lights get virtual destructor and correct types 2014-08-09 21:22:12 -07:00
bb789476b6 New basics gets the remainder of the stuff from old basics
EPSILON, MAX_DISTANCE, NearZeor, NearlyEqual, TooFar.
2014-08-09 21:21:57 -07:00
6c23fa9f32 Get rid of the old basics! 2014-08-09 21:21:27 -07:00
ef9b9d04c8 Put all the parsers in the charles namespace 2014-08-09 20:53:04 -07:00
b7a9f07d5e Lots of little niggling compiler errors 2014-08-09 20:46:26 -07:00
3a8c955796 Put the readers and writers in charles namespace 2014-08-09 20:46:14 -07:00
84cb27fa6f Allow passing intensity in PointLight constructor 2014-08-09 20:45:45 -07:00
c3da70cdd9 Clean up some dependencies between scene, material, and color 2014-08-09 20:34:23 -07:00