Commit Graph

30 Commits

Author SHA1 Message Date
c1f8d21814 Refactored data tree code to present a slightly nicer API. 2020-05-01 16:08:37 +09:00
6b188c4451 Parse errors now use Strings for error messages.
This allows the error messages to be more informative by including
dynamically determined information.

Also made a utility function for ensuring that nodes get closed.
2020-05-01 16:08:37 +09:00
4f564d1474 All parsing is now streaming! But lots left to do.
In particular, parsing error messages are now either terrible or
non-existent.  But it compiles and works for correct inputs!
2020-05-01 16:08:37 +09:00
e3e5c1412f WIP refactor to make psy parsing all streaming.
Does not build right now.
2020-05-01 16:08:37 +09:00
9c8dd4d882 Initial just-get-it-working port of scene paring code to streaming data tree.
It doesn't actually stream yet, just loads the whole parse into
memory, but done via the new streaming code.
2020-05-01 16:08:37 +09:00
022c913757 Split out memory arena into an external crate. 2019-12-27 10:43:03 +09:00
6e555456ba Updated Nom to 5.x
This makes the code a lot simpler and cleaner, among other things.
2019-11-23 10:13:29 +09:00
8e109efed5 Fixed compiler warnings. 2018-12-28 11:09:17 -08:00
53754b956c Blackbody colors are now parsed, and PsychoBlend has support as well. 2018-12-28 00:23:02 -08:00
5add4cfdb1 Implementing Color as a simple enum rather than as a trait.
There's really no reason for it to be a Trait, and this will simplify
a lot of things down the road.
2018-12-27 16:09:03 -08:00
28a07de456 Improve module path usage and remove extern crate declarations where possible. 2018-12-16 13:02:49 -08:00
8deb1e87bb First step transitioning to Rust 2018. 2018-12-16 12:02:20 -08:00
c73db2edbe Fix/silence a bunch of clippy warnings in the main crate. 2018-12-15 23:26:12 -08:00
589a67caa4 Run latest rustfmt on code. No functional changes. 2018-12-08 13:23:44 -08:00
498c1ea8d9 Running latest rustfmt. No functional change. 2018-10-30 22:31:25 -07:00
6d21a30840 Formatting with newer cargo fmt.
No meaningful code change, only formatting.
2018-06-24 21:18:10 -07:00
97d3304149 Run new rustfmt on codebase. 2018-03-04 13:00:55 -08:00
c0a26819c6 Bunch of code quality improvements based on running clippy.
None of them change behavior, just make the code cleaner.
2017-07-22 17:21:11 -07:00
f649bec585 Reformat code with rustfmt 0.9 2017-06-15 22:00:31 -07:00
b8321beaad Split colorspace transform functions out into their own crate.
They are now generated by a build.rs script from nothing but the
colorspace's primaries, which makes it super easy to add more
colorspaces.  So easy that I added three more: ACES AP0, ACES AP1
and Rec.2020.

This lays the foundation for supporting output to different
colorspaces.
2017-06-11 03:03:23 -07:00
922e33ec3f Reformat code with latest rustfmt and custom config. 2017-05-14 13:43:51 -07:00
6623443e2e Improved .psy file parsing error messages.
Biggest improvement: it gives you line numbers.  But also progress
on better descriptions.
2017-04-10 14:03:01 -07:00
c82c821b31 BVH and objects now use MemArena. 2017-04-09 23:33:36 -07:00
fc15fa9192 World type uses memory arena now. 2017-04-09 17:56:06 -07:00
3cbb816d4b Added DistantDiskLight (a.k.a. sun light) parsing and data structures.
Also created a proper World struct in the process, to store all
infinite-extent type stuff.

Note that I goofed and did a new rustfmt pass but forgot to
commit before making these changes, so there's a lot of
formatting changes in this too.  *sigh*
2017-02-12 20:29:08 -08:00
97b5ef77f8 Code cosmetics: organize and alphabetize crate/mod/use statements. 2016-08-20 18:10:55 -07:00
02a0740cac More proper use of light sources. 2016-07-01 00:00:38 -07:00
f927dd0d46 Silencing a bunch of compiler warnings. 2016-06-29 15:23:07 -07:00
52acee33af Implemented rectangular area lights.
Also added Cornell Box test scene.
2016-06-29 14:30:42 -07:00
c2d36e0d14 Beginnings of parsing sphere lights. 2016-06-23 20:46:57 -07:00