Commit graph

413 commits

Author SHA1 Message Date
2c4f6a4d29 Some more helpful utility parsers
- Rename VectorParser -> ScalarSequenceParser
- Add Vector3Parser and ColorParser, subclasses of the above, which handle
  Vector3s and Colors
2014-07-19 17:17:33 -07:00
daf5c7d8a6 Clean up camera module 2014-07-19 16:30:26 -07:00
41327c92fd Remove a bunch of debugging printfs and add verbosity levels 2014-07-19 16:04:47 -07:00
17df0d4adf Add "Three Spheres" scene 2014-07-19 15:53:47 -07:00
1eff46006a Comment out adding objects from main() – they come from YAML now!! :D 2014-07-19 15:46:38 -07:00
575ed822b4 Set shouldExpectKey after finishing radius; clean up asserts in ObjectParser 2014-07-19 15:46:06 -07:00
0ed3b524f4 Print all events; properly handle document and mapping-start events from top-level run loop 2014-07-19 15:45:04 -07:00
523eaef902 ScalarMappingParser::mShouldExpectKey should be true to start/end the top-level mapping 2014-07-19 15:44:29 -07:00
49e3395a4c Add objects parsing to SceneParser 2014-07-19 15:43:44 -07:00
43a1e790cb Initialize Parser::mDone 2014-07-19 15:42:53 -07:00
0b9b5a784d Add radius section for ObjectParser 2014-07-19 15:42:31 -07:00
5f02407b06 Initialize a new Sphere in ObjectParser and add it to the scene 2014-07-19 15:41:45 -07:00
0a14661da8 Set material to NULL in Shape 2014-07-19 15:41:17 -07:00
573f53b67c ObjectParser using ScalarMappingParser 2014-07-19 14:45:37 -07:00
2f91e12296 Catch end-of-mapping event in ScalarMappingParser 2014-07-19 14:22:30 -07:00
68d0083ba8 Object::get_material returns a pointer instead of a reference 2014-07-19 14:09:47 -07:00
b62949416b Rename object_parser.{cc,hh} -> objectParser.{cc,hh} 2014-07-19 13:42:36 -07:00
03c037730e Move scene_parser.{cc,hh} to sceneParser.{cc,hh} 2014-07-19 11:43:09 -07:00
98fe95e1a5 Declare valueString before passing to ParseScalar
This is to account for the length of the scalar string value, which is passed as
an element of event.data.scalar.
2014-07-19 11:40:02 -07:00
693e4fa80d Make SceneParser a subclass of ScalarMappingParser 2014-07-19 11:39:22 -07:00
325e9459fd Create scalar value string before passing to ParseScalar in ObjectParser 2014-07-19 11:34:19 -07:00
625e3a6f47 Add ScalarMappingParser 2014-07-19 11:28:03 -07:00
7153ec759b Sublime project and workspace settings 2014-07-19 11:27:32 -07:00
09b0065611 Use a stringstream instead of sscanf for ParseScalar 2014-07-19 10:59:22 -07:00
d65fc16219 Ignore unused parameters in PNG error functions 2014-07-19 10:15:00 -07:00
6214413e3e NDEBUG *removes* asserts -- whoops 2014-07-19 10:11:51 -07:00
5517aadb0a Remove prints from SConscript 2014-07-18 21:27:17 -07:00
56b79c9cfb Parse test sconscripts before src -- i should probably push this commit up to base 2014-07-17 20:18:20 -07:00
e7b9ee8257 Reformat some comments 2014-07-17 20:17:17 -07:00
c429be330d Reset SceneParser::mSection after parsing dimensions vector 2014-07-17 20:15:44 -07:00
87c544cec7 '%lf' for doubles, not '%ld' 2014-07-17 20:15:20 -07:00
6ff108f360 Implement ObjectParser 2014-07-17 20:14:52 -07:00
2a6f72f511 Use new coordinates to place spheres with the perspective camera
It works!
2014-07-16 23:33:37 -07:00
25b246d3ed Use the PerspectiveCamera to generate primary rays. 2014-07-16 23:32:44 -07:00
899064ce42 Add a perspective camera
Finally! :D Verified (mostly) and carefully thought through by looking at the
Pov-Ray code and doing the linear algebra by hand. Fun times.
2014-07-16 23:31:39 -07:00
360bc52080 I don't really know if this is correct; I have not verified it 2014-07-16 23:30:25 -07:00
0e1106aa41 Update the call signature of compute_primary_ray
It takes the current X and Y coordinates and the height and width of the image.
2014-07-16 23:29:54 -07:00
05327fbe7a Missed a few things when I…
- Removed the (viewing) angle member
- Added Up and Right vectors
2014-07-16 23:29:01 -07:00
72e93eccb3 Reformat description of OrthographicCamera::compute_primary_ray 2014-07-16 23:26:41 -07:00
8eb98270af Add Up and Right vectors to the camera 2014-07-16 23:25:54 -07:00
8336753bcf Remove pixel dimensions from camera
The scene computes those and gives them to the camera for each ray
2014-07-16 23:24:32 -07:00
ca5cabb6ef Add LinearCombination for Vectors 2014-07-16 23:23:26 -07:00
2834fa45c6 Replace dimensions code in SceneParser with a few lines of VectorParser magic
Neat!
2014-07-15 23:33:02 -07:00
bdd0afddf5 Define format strings for int and double ParseScalar() methods 2014-07-15 23:32:20 -07:00
b8d0b274b1 Implement templated VectorParser 2014-07-15 23:31:48 -07:00
d12f8c9fa6 Define ParseScalar<T> and ParseScalarTraits
For parsing single YAML scalar values into C++ datatypes (mostly ints and doubles).
2014-07-15 23:28:59 -07:00
557d9a047f Define the Notify() method on UtilityParser 2014-07-15 23:27:24 -07:00
d20e4154fe Big YAML parser cleanup 2014-07-15 17:27:27 -07:00
687de91a81 Quick 'n dirty setters for height and width 2014-07-13 20:12:10 -07:00
f59ec98035 HOLY CRAP I CAN READ DIMENSIONS FROM YAML FILES 2014-07-13 20:11:50 -07:00