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