Commit graph

442 commits

Author SHA1 Message Date
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
48e35dfc81 Update material.{cc,hh} 2014-08-09 20:31:18 -07:00
42bef33775 Get rid of Color implementation in old basics.cc 2014-08-09 20:24:45 -07:00
b001ad2cf2 light.hh include in scene.hh 2014-08-09 20:24:18 -07:00
f6680f993f Clean up includes and old code in charles.cc 2014-08-09 20:24:11 -07:00
161a635ab5 reader.hh
Fix up includes, put it in charles namespace
2014-08-09 20:24:00 -07:00
080ee0d580 Remove Color and Vector3 from old basics 2014-08-09 20:23:23 -07:00
3c3e707922 Light has a shared_ptr type, and an overridable Contribution() 2014-08-09 20:23:08 -07:00
acdfb0fb60 Add PointLight in lightPoint.cc 2014-08-09 20:22:35 -07:00
e1ded8a9ad Clean up for Lights (and AmbientLights) 2014-08-09 20:04:42 -07:00
d085a192e8 Clean up basics::Color 2014-08-09 19:39:41 -07:00
4b396cabe8 Move Color over to basics 2014-08-09 19:30:47 -07:00
47ae52ed05 Woo Scene updates... 2014-08-09 12:26:12 -07:00
c49457a817 Implement Normalized, LinearCombination, and operator<< on Vector4s 2014-08-09 11:55:10 -07:00
9645a09a6c So much clean up for cameras 2014-08-09 11:26:17 -07:00
d10d219eb3 Comment out old Ray 2014-08-09 11:04:26 -07:00
19dfb66301 Cleanup for Spheres 2014-08-09 11:04:17 -07:00
590f10a756 Updates for Plane 2014-08-09 10:58:30 -07:00
392871a1ee Updates for Box 2014-08-09 10:54:00 -07:00
70576c382a Do all the clean up needed for Object 2014-08-09 10:42:49 -07:00
2c2bf09140 Compiler errors in Box::DoIntersect, hidden until now... 2014-08-09 10:11:44 -07:00
217c4709aa Vector4's constructor takes default arguments 2014-08-09 10:08:44 -07:00
baf40143b2 DoIntersect is an abstract method 2014-08-09 10:08:29 -07:00
3846a1aa3a Move Box intersection code to DoIntersect 2014-08-09 10:08:21 -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
519eb347d1 Vector4 constructor from Matrix<4,1> 2014-08-09 09:57:35 -07:00
43cb182aa7 Have to use operator() for Matrix<>::operator*
Matrix<N,P> is a different class from Matrix<N,M> so Matrix<N,M> can't access protected member data on Matrix<N,P>. There must be a better way that having to do the multiplies requires for operator().
2014-08-09 09:57:09 -07:00
9aa557293a A Ray class in basics! 2014-08-09 09:33:22 -07:00
b41cdb7186 Vector4 +, -, negation, and *
+, -, and negation were easy. Multiplication is wacky because the Matrix class does it. So, to do binary * (not *=) I needed to dynamic_cast the resulting Matrix<4,1> to a Vector4&&.
2014-08-09 09:32:48 -07:00
a3d51f7cf3 TranslationMatrix() is not static 2014-08-09 09:02:04 -07:00
9b6b6a20b7 Const versions of Vector4's X(), Y(), and Z() 2014-08-09 09:01:52 -07:00