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  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								b60e27824b 
								
							 
						 
						
							
							
								
								Forgot declaration of shadowRay <- shadow_ray  
							
							 
							
							
							
						 
						
							2014-08-02 14:33:50 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								5ddfe068a6 
								
							 
						 
						
							
							
								
								No specular reflections (for now)  
							
							 
							
							
							
						 
						
							2014-08-02 14:33:32 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								8de737decd 
								
							 
						 
						
							
							
								
								Little bit of code clean up in TraceRay  
							
							 
							
							
							
						 
						
							2014-08-02 14:30:40 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								1a5a46c468 
								
							 
						 
						
							
							
								
								Use NearZero in plane intersection calculations  
							
							 
							
							... 
							
							
							
							Also clean up the "point on surface" logic and remove the normal flipping (doesn't make sense without a ray origin anyway). 
							
						 
						
							2014-08-02 14:12:01 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								82c7e75e11 
								
							 
						 
						
							
							
								
								Normalize primary ray direction vectors  
							
							 
							
							
							
						 
						
							2014-08-02 14:10:28 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								57f3154986 
								
							 
						 
						
							
							
								
								Add a NearZero for temporary values  
							
							 
							
							
							
						 
						
							2014-08-02 14:10:04 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0d4b700546 
								
							 
						 
						
							
							
								
								Add EPSILON, MAX_DISTANCE, and NearZero and TooFar  
							
							 
							
							
							
						 
						
							2014-08-02 12:19:46 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								0d6a238b44 
								
							 
						 
						
							
							
								
								Clean up some implementation header comments  
							
							 
							
							
							
						 
						
							2014-08-02 10:40:41 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								662867f529 
								
							 
						 
						
							
							
								
								Return the appropriate normal  
							
							 
							
							... 
							
							
							
							I'm not actually sure this is necessary... 
							
						 
						
							2014-08-02 10:39:56 -07:00  
						
						
							 
							
							
							
								 
							 
							
						 
					 
				
					
						
							
						 
						
							
							
							
							
								
							
							
								20b88f6dac 
								
							 
						 
						
							
							
								
								Clarify some notation in plane intersection  
							
							 
							
							
							
						 
						
							2014-08-02 10:39:29 -07:00