summaryrefslogtreecommitdiff
path: root/src/geom/length.rs
AgeCommit message (Collapse)Author
2023-07-02Move everything into `crates/` directoryLaurenz
2023-06-06Improve value casting infrastructureLaurenz
2023-05-20FootnotesLaurenz
2023-03-07Fully untyped modelLaurenz
2022-12-20DocumentationLaurenz
2022-11-04Style changesLaurenz
2022-10-28Refactor `geom` moduleLaurenz
2022-06-14Many fixesLaurenz
2022-04-17Repeat functionLaurenz
2022-04-07Make `Relative` genericLaurenz
2022-02-17Make values hashableLaurenz
2022-02-17Better debug implementations for numeric typesLaurenz
2022-01-24Export into rendered imagesLaurenz
2021-11-22Remove decorumLaurenz
2021-11-16Image fit modesLaurenz
2021-10-31Fix panic in pad nodeLaurenz
2021-08-31Make user-facing "debug" representation use Debug instead of DisplayLaurenz
2021-08-30Add abs() functionLaurenz
2021-08-23Kerned PDF outputLaurenz
2021-08-21Prune derivesLaurenz
2021-08-16Convert single-field structs to tuple structsLaurenz
2021-06-27Apply suggestions from code reviewMartin
Co-authored-by: Laurenz <laurmaedje@gmail.com>
2021-06-27Testing for incrementalMartin Haug
Also, constraint bugfixes.
2021-06-15Refactor grid row layoutLaurenz
2021-06-12Allow grid cells to span multiple regions. (#30)Martin
2021-05-27Switch to N64 type aliasLaurenz
2021-05-26Add hash impls for all nodesMartin Haug
This prepares the incremental PR. Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-17Tidy up layouting codeLaurenz
2021-04-21Make frames serializable ๐Ÿ“šLaurenz
This also makes serialization support non-optional since it's too much feature-management for too little benefit.
2021-04-03New paragraph layout ๐Ÿš€Laurenz
The previous paragraph layout algorithm had a couple of flaws: - It always produced line break opportunities between runs although on the textual level there might have been none. - It didn't handle trailing spacing correctly in some cases. - It wouldn't have been easily adaptable to Knuth-Plass style optimal line breaking because it was fundamentally structured first-fit run-by-run. The new paragraph layout algorithm fixes these flaws. It proceeds roughly in the following stages: 1. Collect all text in the paragraph. 2. Compute BiDi embedding levels. 3. Shape all runs, layout all children and store the resulting items in a reusable (possibly even cacheable) `ParLayout`. 3. Iterate over all line breaks in the concatenated text. 4. Construct lightweight `LineLayout` objects for full lines instead of runs. These mostly borrow from the `ParLayout` and only reshape the first and last run if necessary. The design allows to use Harfbuzz's UNSAFE_TO_BREAK mechanism to make reshaping more efficient. The size of a `LineLayout` can be measured without building the line's frame. 5. Build only the selected line's frames and stack them.
2021-03-20Square, circle and ellipse ๐Ÿ”ตLaurenz
2021-03-19Better debug representations ๐Ÿ’ปLaurenz
2021-03-02Remove dependencies on itoa and ryu โฌ‡๏ธLaurenz
2021-02-12Cleaning ๐ŸงนLaurenz
2021-01-22Many more expressions ๐Ÿฅ—Laurenz
Boolean, equality, comparison and assignment expression parsing and evaluation.
2021-01-16Port remaining parser tests ๐ŸššLaurenz
2021-01-15Move value tests + smarter number formatting ๐Ÿ”ขLaurenz
2021-01-13Unbounded pages ๐ŸŒŒLaurenz
2021-01-13Some minor improvements โ™ปLaurenz
2021-01-09Add angle data type ๐Ÿ“Laurenz
2021-01-04Better value representations, type function ๐ŸŒLaurenz
2021-01-02Dynamic values, Types, Arrays, and Dictionaries ๐Ÿš€Laurenz
- Identifiers are now evaluated as variables instead of being plain values - Constants like `left` or `bold` are stored as dynamic values containing the respective rust types - We now distinguish between arrays and dictionaries to make things more intuitive (at the cost of a bit more complex parsing) - Spans were removed from collections (arrays, dictionaries), function arguments still have spans for the top-level values to enable good diagnostics
2020-11-20Basic image support ๐Ÿ–ผLaurenz
- [image] function - Image rendering in tests - Supports JPEG and PNG - No PDF export so far
2020-10-10Switch back to custom geometry types, unified with layout primitives ๐ŸžLaurenz