9b076f1533
Implement more robust * and / for Matrix
2014-08-08 23:05:24 -07:00
be15d553f1
Move EPSILON and MAX_DISTANCE to basics/basics.hh
2014-08-08 23:04:52 -07:00
abd38169b1
Comment out all the old Matrix4 stuff
2014-08-08 22:14:36 -07:00
b59b6d85c0
Add Matrix4, implement TranslationMatrix()
2014-08-08 22:14:20 -07:00
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