9474153736 
								
							 
						 
						
							
							
								
								Move Zero() and Identity() definitions to the right place  
							
							 
							
							
							
						 
						
							2014-08-08 22:13:51 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2cadffd7d4 
								
							 
						 
						
							
							
								
								Fix Vector4 constructors and clean up compiler errors  
							
							 
							
							
							
						 
						
							2014-08-08 21:47:44 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3bf72bd78d 
								
							 
						 
						
							
							
								
								Build basics!  
							
							 
							
							
							
						 
						
							2014-08-08 21:12:44 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								da127ccde3 
								
							 
						 
						
							
							
								
								Vector4 subclass instead of typedef  
							
							 
							
							
							
						 
						
							2014-08-08 21:12:37 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2b9fec5d82 
								
							 
						 
						
							
							
								
								Const operator==  
							
							 
							
							
							
						 
						
							2014-08-08 21:12:18 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bfd3b8cbce 
								
							 
						 
						
							
							
								
								uint –> UInt  
							
							 
							
							
							
						 
						
							2014-08-08 21:12:06 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3b713856db 
								
							 
						 
						
							
							
								
								Vector, a single-column Matrix  
							
							 
							
							
							
						 
						
							2014-08-08 20:44:43 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c5b9d73a96 
								
							 
						 
						
							
							
								
								Add constructors and operator== to Matrix<>  
							
							 
							
							
							
						 
						
							2014-08-08 20:44:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a9c8d84ac2 
								
							 
						 
						
							
							
								
								Top-level include for basics  
							
							 
							
							
							
						 
						
							2014-08-08 17:38:13 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								064ee2e4f1 
								
							 
						 
						
							
							
								
								Include <vector> in basics types.hh  
							
							 
							
							
							
						 
						
							2014-08-08 17:38:05 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								32b52ace93 
								
							 
						 
						
							
							
								
								Templated matrix class  
							
							 
							
							
							
						 
						
							2014-08-08 17:35:34 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a955106d18 
								
							 
						 
						
							
							
								
								Implement a Matrix4 class  
							
							 
							
							... 
							
							
							
							A 4x4 matrix that implements matrix multiplication and multiplication by
scalars. Some unit tests too, to test that this stuff works. 
							
						 
						
							2014-08-07 22:12:53 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c380a3c3cd 
								
							 
						 
						
							
							
								
								Ignore .DS_Store files  
							
							 
							
							
							
						 
						
							2014-08-04 07:09:42 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								14db2752ae 
								
							 
						 
						
							
							
								
								Log where the camera is looking  
							
							 
							
							
							
						 
						
							2014-08-03 20:13:00 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								589b1f23ec 
								
							 
						 
						
							
							
								
								Camera GetTypeString and WriteType declarations  
							
							 
							
							
							
						 
						
							2014-08-03 20:12:40 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								781c8cbe9f 
								
							 
						 
						
							
							
								
								Log camera before logging scene objects  
							
							 
							
							
							
						 
						
							2014-08-03 20:12:10 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								08bd04d8da 
								
							 
						 
						
							
							
								
								Fancier way of logging the camera's parameters  
							
							 
							
							
							
						 
						
							2014-08-03 20:12:00 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								5ac721d601 
								
							 
						 
						
							
							
								
								Lots of comments about what LookAt is doing  
							
							 
							
							
							
						 
						
							2014-08-03 20:11:22 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								c2a4372467 
								
							 
						 
						
							
							
								
								Add Camera::IsLeftHanded()  
							
							 
							
							... 
							
							
							
							A method that returns true if the camera's coordinate system is left-handed. 
							
						 
						
							2014-08-03 20:10:52 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a7020545c1 
								
							 
						 
						
							
							
								
								New header comment for camera.cc  
							
							 
							
							
							
						 
						
							2014-08-03 19:10:43 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f99608085e 
								
							 
						 
						
							
							
								
								Log the camera before rendering  
							
							 
							
							... 
							
							
							
							Implement an operator<< for Cameras. Log the scene's camera. 
							
						 
						
							2014-08-03 19:10:31 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								bcf93bb4ce 
								
							 
						 
						
							
							
								
								LookAt comments  
							
							 
							
							
							
						 
						
							2014-08-03 18:51:49 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0df6244b8b 
								
							 
						 
						
							
							
								
								Bit of code clean up in LookAt  
							
							 
							
							
							
						 
						
							2014-08-03 18:51:41 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								7297bc5c17 
								
							 
						 
						
							
							
								
								Add Camera::LookAt  
							
							 
							
							... 
							
							
							
							This is identical to the POV-Ray look_at keyword for cameras. In fact, I stole the code almost directly from them… It's super handy for panning and tilting the camera towards a particular point, and saves me having to do dubiously accurate direction vector calculations by hand.
I still need to figure out what exactly this math is doing. 
							
						 
						
							2014-08-03 18:34:00 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e64b9403ac 
								
							 
						 
						
							
							
								
								Log some extra spaces when logging scene objects  
							
							 
							
							
							
						 
						
							2014-08-03 17:38:22 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b1c818ac20 
								
							 
						 
						
							
							
								
								Modernize object_sphere  
							
							 
							
							... 
							
							
							
							Rename files objectSphere. Clean up dependencies. 
							
						 
						
							2014-08-03 17:35:12 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								a0fbecf483 
								
							 
						 
						
							
							
								
								Log all objects before starting the render  
							
							 
							
							
							
						 
						
							2014-08-03 17:25:25 -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  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b56bbf4ced 
								
							 
						 
						
							
							
								
								Root logger is called "ROOT" not "root"  
							
							 
							
							
							
						 
						
							2014-08-03 17:02:25 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ecc6c1efcd 
								
							 
						 
						
							
							
								
								TODO about raising an error for non-intersecting normals  
							
							 
							
							
							
						 
						
							2014-08-03 16:37:03 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								92e67215b9 
								
							 
						 
						
							
							
								
								Get rid of commented out Box intersection code  
							
							 
							
							
							
						 
						
							2014-08-03 16:36:12 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								556e13ae74 
								
							 
						 
						
							
							
								
								I was a little to hasty with this clean up  
							
							 
							
							... 
							
							
							
							I actually need this check to get the closest shape for intersection. 
							
						 
						
							2014-08-03 13:05:22 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								4cbe9df324 
								
							 
						 
						
							
							
								
								Legacy code clean up for t values  
							
							 
							
							... 
							
							
							
							Intersection methods push values into the t vector in ascending order, so no need to check them in TraceRay. 
							
						 
						
							2014-08-03 12:46:14 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								2ade996783 
								
							 
						 
						
							
							
								
								p.z comparison was comparing against mFar.y  
							
							 
							
							
							
						 
						
							2014-08-03 12:45:34 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6f4d91af01 
								
							 
						 
						
							
							
								
								Ray parameterization takes a Double  
							
							 
							
							
							
						 
						
							2014-08-03 12:44:53 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b1d18a124f 
								
							 
						 
						
							
							
								
								Move the oneBox camera to see the angles  
							
							 
							
							
							
						 
						
							2014-08-03 12:24:15 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								d79c95be71 
								
							 
						 
						
							
							
								
								Playing with the implementation of slab intersection  
							
							 
							
							... 
							
							
							
							This stuff is commented out anyway because it all moved to IntersectSlab... 
							
						 
						
							2014-08-03 12:23:59 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								3ce6987d78 
								
							 
						 
						
							
							
								
								Add the declaration of Box::IntersectSlab  
							
							 
							
							
							
						 
						
							2014-08-03 12:23:19 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8831dec40c 
								
							 
						 
						
							
							
								
								Use NearlyEqual in Box::compute_normal  
							
							 
							
							
							
						 
						
							2014-08-03 12:23:05 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								ecb15470ac 
								
							 
						 
						
							
							
								
								Some tweaks to floating point utility methods  
							
							 
							
							... 
							
							
							
							- Implement NearlyEqual
- NearZero and TooFar take const Double&
- NearZero and NearlyEqual are templated to take Double& and Double&& (and anything else that can be subtracted and/or passed into std::fabs. 
							
						 
						
							2014-08-03 12:22:30 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8d5dfe5154 
								
							 
						 
						
							
							
								
								Move slab intersection to Box::IntersectSlab  
							
							 
							
							... 
							
							
							
							Makes it easier to debug because I don't have to change things in three places.
This change also includes the fix! The swap was the problem. I didn't have the optimization right. I'll have to go back and figure it out. 
							
						 
						
							2014-08-03 12:20:48 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8275c9baee 
								
							 
						 
						
							
							
								
								Update header for basics.h  
							
							 
							
							
							
						 
						
							2014-08-03 12:18:53 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								dc1849a786 
								
							 
						 
						
							
							
								
								Test reverse subtraction (v2 - v1)  
							
							 
							
							
							
						 
						
							2014-08-03 10:51:38 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								467edaf02b 
								
							 
						 
						
							
							
								
								planeSphere scene: move some stuff around  
							
							 
							
							... 
							
							
							
							To get a better view of where things are supposed to be. 
							
						 
						
							2014-08-03 08:18:13 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								6dcb9dd37f 
								
							 
						 
						
							
							
								
								The problem was this one subtraction. Seriously.  
							
							 
							
							
							
						 
						
							2014-08-02 23:46:02 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								e638764340 
								
							 
						 
						
							
							
								
								Put the light where I actually want it to be  
							
							 
							
							
							
						 
						
							2014-08-02 23:45:49 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								f03945c0f7 
								
							 
						 
						
							
							
								
								Always return the normal, even if the point isn't in the plane  
							
							 
							
							... 
							
							
							
							Getting so much closer! 
							
						 
						
							2014-08-02 15:40:24 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								5390600cdd 
								
							 
						 
						
							
							
								
								TODO: what does this (apparently) random conditional do?  
							
							 
							
							
							
						 
						
							2014-08-02 15:32:27 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8ea832c090 
								
							 
						 
						
							
							
								
								Disable specular calculations for now.  
							
							 
							
							... 
							
							
							
							Just to simplify things while I'm figuring out the lighting model... 
							
						 
						
							2014-08-02 15:23:22 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								79c951030d 
								
							 
						 
						
							
							
								
								Move Stats to its own module  
							
							 
							
							... 
							
							
							
							Move Stats to its own module and pass it around to the intersection methods to keep track of how many tests and successful intersections there are. 
							
						 
						
							2014-08-02 15:21:14 -07:00