From b2e6a297893348a871fba8997017a9fc98d5674b Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 18 Nov 2021 00:58:32 +0100 Subject: [PATCH] Refactoring --- src/eval/template.rs | 4 +- src/frame.rs | 7 +++ src/geom/spec.rs | 5 --- src/layout/mod.rs | 17 ++++++- src/library/align.rs | 6 +-- src/library/flow.rs | 2 +- src/library/grid.rs | 28 ++++++------ src/library/pad.rs | 94 ++++++++++++++++++++++++--------------- src/library/shape.rs | 7 +-- src/library/stack.rs | 2 +- src/library/transform.rs | 8 +--- tests/ref/coma.png | Bin 55410 -> 55412 bytes 12 files changed, 104 insertions(+), 76 deletions(-) diff --git a/src/eval/template.rs b/src/eval/template.rs index 6c1223cb1..7801dc799 100644 --- a/src/eval/template.rs +++ b/src/eval/template.rs @@ -9,7 +9,7 @@ use crate::diag::StrResult; use crate::geom::{Align, Dir, GenAxis, Length, Linear, Sides, Size}; use crate::layout::{Layout, PackedNode}; use crate::library::{ - Decoration, DocumentNode, FlowChild, FlowNode, PadNode, PageNode, ParChild, ParNode, + Decoration, DocumentNode, FlowChild, FlowNode, PageNode, ParChild, ParNode, PlacedNode, Spacing, }; use crate::style::Style; @@ -400,7 +400,7 @@ impl PageBuilder { let Self { size, padding, hard } = self; (!child.children.is_empty() || (keep && hard)).then(|| PageNode { size, - child: PadNode { padding, child: child.pack() }.pack(), + child: child.pack().padded(padding), }) } } diff --git a/src/frame.rs b/src/frame.rs index 94234ae9c..9feb69595 100644 --- a/src/frame.rs +++ b/src/frame.rs @@ -64,6 +64,13 @@ impl Frame { } } + /// Move all elements in the frame by an offset. + pub fn translate(&mut self, offset: Point) { + for (point, _) in &mut self.elements { + *point += offset; + } + } + /// An iterator over all non-frame elements in this and nested frames. pub fn elements(&self) -> Elements { Elements { stack: vec![(0, Point::zero(), self)] } diff --git a/src/geom/spec.rs b/src/geom/spec.rs index 3b49b54a1..82bedf9e3 100644 --- a/src/geom/spec.rs +++ b/src/geom/spec.rs @@ -23,11 +23,6 @@ impl Spec { Self { x: v.clone(), y: v } } - /// Borrows the individual fields. - pub fn as_ref(&self) -> Spec<&T> { - Spec { x: &self.x, y: &self.y } - } - /// Maps the individual fields with `f`. pub fn map(self, mut f: F) -> Spec where diff --git a/src/layout/mod.rs b/src/layout/mod.rs index 3ac327228..8f46c049a 100644 --- a/src/layout/mod.rs +++ b/src/layout/mod.rs @@ -17,9 +17,9 @@ use std::rc::Rc; use crate::font::FontStore; use crate::frame::Frame; -use crate::geom::{Align, Linear, Spec}; +use crate::geom::{Align, Linear, Sides, Spec}; use crate::image::ImageStore; -use crate::library::{AlignNode, DocumentNode, MoveNode, SizedNode}; +use crate::library::{AlignNode, DocumentNode, MoveNode, PadNode, SizedNode}; use crate::Context; /// Layout a document node into a collection of frames. @@ -129,6 +129,19 @@ impl PackedNode { self } } + + /// Pad this node at the sides. + pub fn padded(self, padding: Sides) -> Self { + if !padding.left.is_zero() + || !padding.top.is_zero() + || !padding.right.is_zero() + || !padding.bottom.is_zero() + { + PadNode { child: self, padding }.pack() + } else { + self + } + } } impl Layout for PackedNode { diff --git a/src/library/align.rs b/src/library/align.rs index 19c52f987..5aeef5430 100644 --- a/src/library/align.rs +++ b/src/library/align.rs @@ -49,7 +49,6 @@ impl Layout for AlignNode { pod.expand.y &= self.aligns.y.is_none(); let mut frames = self.child.layout(ctx, &pod); - for (Constrained { item: frame, cts }, (current, _)) in frames.iter_mut().zip(regions.iter()) { @@ -67,10 +66,7 @@ impl Layout for AlignNode { let frame = Rc::make_mut(frame); frame.size = canvas; frame.baseline += offset.y; - - for (point, _) in &mut frame.elements { - *point += offset; - } + frame.translate(offset); cts.expand = regions.expand; cts.exact = current.to_spec().map(Some); diff --git a/src/library/flow.rs b/src/library/flow.rs index 185e60bb0..5271eca93 100644 --- a/src/library/flow.rs +++ b/src/library/flow.rs @@ -61,7 +61,7 @@ impl Layout for FlowNode { pub enum FlowChild { /// Vertical spacing between other children. Spacing(Spacing), - /// A node and how to align it in the flow. + /// An arbitrary node. Node(PackedNode), } diff --git a/src/library/grid.rs b/src/library/grid.rs index 347132e1a..6bd723888 100644 --- a/src/library/grid.rs +++ b/src/library/grid.rs @@ -288,17 +288,17 @@ impl<'a> GridLayouter<'a> { for y in 0 .. self.rows.len() { if let Some(node) = self.cell(x, y) { let size = Size::new(available, self.regions.base.h); - let mut regions = + let mut pod = Regions::one(size, self.regions.base, Spec::splat(false)); // For linear rows, we can already resolve the correct // base, for auto it's already correct and for fr we could // only guess anyway. if let TrackSizing::Linear(v) = self.rows[y] { - regions.base.h = v.resolve(self.regions.base.h); + pod.base.h = v.resolve(self.regions.base.h); } - let frame = node.layout(ctx, ®ions).remove(0).item; + let frame = node.layout(ctx, &pod).remove(0).item; resolved.set_max(frame.size.w); } } @@ -376,17 +376,17 @@ impl<'a> GridLayouter<'a> { // Determine the size for each region of the row. for (x, &rcol) in self.rcols.iter().enumerate() { if let Some(node) = self.cell(x, y) { - let mut regions = self.regions.clone(); - regions.mutate(|size| size.w = rcol); + let mut pod = self.regions.clone(); + pod.mutate(|size| size.w = rcol); // Set the horizontal base back to the parent region's base for // auto columns. if self.cols[x] == TrackSizing::Auto { - regions.base.w = self.regions.base.w; + pod.base.w = self.regions.base.w; } let mut sizes = - node.layout(ctx, ®ions).into_iter().map(|frame| frame.item.size.h); + node.layout(ctx, &pod).into_iter().map(|frame| frame.item.size.h); for (target, size) in resolved.iter_mut().zip(&mut sizes) { target.set_max(size); @@ -475,8 +475,8 @@ impl<'a> GridLayouter<'a> { base.h = size.h; } - let regions = Regions::one(size, base, Spec::splat(true)); - let frame = node.layout(ctx, ®ions).remove(0); + let pod = Regions::one(size, base, Spec::splat(true)); + let frame = node.layout(ctx, &pod).remove(0); output.push_frame(pos, frame.item); } @@ -501,8 +501,8 @@ impl<'a> GridLayouter<'a> { // Prepare regions. let size = Size::new(self.used.w, resolved[0]); - let mut regions = Regions::one(size, self.regions.base, Spec::splat(true)); - regions.backlog = resolved[1 ..] + let mut pod = Regions::one(size, self.regions.base, Spec::splat(true)); + pod.backlog = resolved[1 ..] .iter() .map(|&h| Size::new(self.used.w, h)) .collect::>() @@ -512,16 +512,16 @@ impl<'a> GridLayouter<'a> { let mut pos = Point::zero(); for (x, &rcol) in self.rcols.iter().enumerate() { if let Some(node) = self.cell(x, y) { - regions.mutate(|size| size.w = rcol); + pod.mutate(|size| size.w = rcol); // Set the horizontal base back to the parent region's base for // auto columns. if self.cols[x] == TrackSizing::Auto { - regions.base.w = self.regions.base.w; + pod.base.w = self.regions.base.w; } // Push the layouted frames into the individual output frames. - let frames = node.layout(ctx, ®ions); + let frames = node.layout(ctx, &pod); for (output, frame) in outputs.iter_mut().zip(frames) { output.push_frame(pos, frame.item); } diff --git a/src/library/pad.rs b/src/library/pad.rs index a1c8c6f90..829272cca 100644 --- a/src/library/pad.rs +++ b/src/library/pad.rs @@ -8,7 +8,6 @@ pub fn pad(_: &mut EvalContext, args: &mut Args) -> TypResult { let right = args.named("right")?; let bottom = args.named("bottom")?; let body: Template = args.expect("body")?; - let padding = Sides::new( left.or(all).unwrap_or_default(), top.or(all).unwrap_or_default(), @@ -17,17 +16,17 @@ pub fn pad(_: &mut EvalContext, args: &mut Args) -> TypResult { ); Ok(Value::Template(Template::from_inline(move |style| { - PadNode { padding, child: body.pack(style) } + body.pack(style).padded(padding) }))) } /// A node that adds padding to its child. #[derive(Debug, Hash)] pub struct PadNode { - /// The amount of padding. - pub padding: Sides, /// The child node whose sides to pad. pub child: PackedNode, + /// The amount of padding. + pub padding: Sides, } impl Layout for PadNode { @@ -37,43 +36,23 @@ impl Layout for PadNode { regions: &Regions, ) -> Vec>> { // Layout child into padded regions. - let mut frames = self.child.layout( - ctx, - ®ions.map(|size| size - self.padding.resolve(size).size()), - ); + let pod = regions.map(|size| shrink(size, self.padding)); + let mut frames = self.child.layout(ctx, &pod); for (Constrained { item: frame, cts }, (current, base)) in frames.iter_mut().zip(regions.iter()) { - fn solve_axis(length: Length, padding: Linear) -> Length { - (length + padding.abs).safe_div(1.0 - padding.rel.get()) - } - - // Solve for the size `padded` that satisfies (approximately): - // `padded - padding.resolve(padded).size() == size` - let padded = Size::new( - solve_axis(frame.size.w, self.padding.left + self.padding.right), - solve_axis(frame.size.h, self.padding.top + self.padding.bottom), - ); - + // Apply the padding inversely such that the grown size padded + // yields the frame's size. + let padded = grow(frame.size, self.padding); let padding = self.padding.resolve(padded); - let origin = Point::new(padding.left, padding.top); + let offset = Point::new(padding.left, padding.top); - // Create a new larger frame and place the child's frame inside it. - let empty = Frame::new(padded, frame.baseline + origin.y); - let prev = std::mem::replace(frame, Rc::new(empty)); - let new = Rc::make_mut(frame); - new.push_frame(origin, prev); - - // Inflate min and max contraints by the padding. - for spec in [&mut cts.min, &mut cts.max] { - if let Some(x) = spec.x.as_mut() { - *x += padding.size().w; - } - if let Some(y) = spec.y.as_mut() { - *y += padding.size().h; - } - } + // Grow the frame and translate everything in the frame inwards. + let frame = Rc::make_mut(frame); + frame.size = padded; + frame.baseline += offset.y; + frame.translate(offset); // Set exact and base constraints if the child had them. cts.exact.x.and_set(Some(current.w)); @@ -89,8 +68,53 @@ impl Layout for PadNode { if self.padding.top.is_relative() || self.padding.bottom.is_relative() { cts.base.y = Some(base.h); } + + // Inflate min and max contraints by the padding. + for spec in [&mut cts.min, &mut cts.max] { + if let Some(x) = spec.x.as_mut() { + *x += padding.size().w; + } + if let Some(y) = spec.y.as_mut() { + *y += padding.size().h; + } + } } frames } } + +/// Shrink a size by padding relative to the size itself. +fn shrink(size: Size, padding: Sides) -> Size { + size - padding.resolve(size).size() +} + +/// Grow a size by padding relative to the grown size. +/// This is the inverse operation to `shrink()`. +/// +/// For the horizontal axis the derivation looks as follows. +/// (Vertical axis is analogous.) +/// +/// Let w be the grown target width, +/// s be given width, +/// l be the left padding, +/// r be the right padding, +/// p = l + r. +/// +/// We want that: w - l.resolve(w) - r.resolve(w) = s +/// +/// Thus: w - l.resolve(w) - r.resolve(w) = s +/// <=> w - p.resolve(w) = s +/// <=> w - p.rel * w - p.abs = s +/// <=> (1 - p.rel) * w = s + p.abs +/// <=> w = (s + p.abs) / (1 - p.rel) +fn grow(size: Size, padding: Sides) -> Size { + fn solve_axis(length: Length, padding: Linear) -> Length { + (length + padding.abs).safe_div(1.0 - padding.rel.get()) + } + + Size::new( + solve_axis(size.w, padding.left + padding.right), + solve_axis(size.h, padding.top + padding.bottom), + ) +} diff --git a/src/library/shape.rs b/src/library/shape.rs index 5d9b41526..7c543958b 100644 --- a/src/library/shape.rs +++ b/src/library/shape.rs @@ -1,7 +1,6 @@ use std::f64::consts::SQRT_2; use super::prelude::*; -use super::PadNode; use crate::util::RcExt; /// `rect`: A rectangle with optional content. @@ -113,10 +112,8 @@ impl Layout for ShapeNode { if matches!(self.kind, ShapeKind::Circle | ShapeKind::Ellipse) { // Padding with this ratio ensures that a rectangular child fits // perfectly into a circle / an ellipse. - storage = PadNode { - padding: Sides::splat(Relative::new(0.5 - SQRT_2 / 4.0).into()), - child: child.clone(), - }; + let ratio = Relative::new(0.5 - SQRT_2 / 4.0); + storage = child.clone().padded(Sides::splat(ratio.into())); node = &storage; } diff --git a/src/library/stack.rs b/src/library/stack.rs index cc02592f4..3d91bec71 100644 --- a/src/library/stack.rs +++ b/src/library/stack.rs @@ -75,7 +75,7 @@ impl Layout for StackNode { pub enum StackChild { /// Spacing between other nodes. Spacing(Spacing), - /// Any block node and how to align it in the stack. + /// An arbitrary node. Node(PackedNode), } diff --git a/src/library/transform.rs b/src/library/transform.rs index ef9caf2e8..107523584 100644 --- a/src/library/transform.rs +++ b/src/library/transform.rs @@ -30,14 +30,10 @@ impl Layout for MoveNode { for (Constrained { item: frame, .. }, (_, base)) in frames.iter_mut().zip(regions.iter()) { - let offset = Point::new( + Rc::make_mut(frame).translate(Point::new( self.offset.x.map(|x| x.resolve(base.w)).unwrap_or_default(), self.offset.y.map(|y| y.resolve(base.h)).unwrap_or_default(), - ); - - for (point, _) in &mut Rc::make_mut(frame).elements { - *point += offset; - } + )); } frames diff --git a/tests/ref/coma.png b/tests/ref/coma.png index 04356991b78d8290926c97b7640676990b217b33..d4c6c3deff9dfc4ecabea7b1c62ff6f64baa4547 100644 GIT binary patch delta 29427 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 F{{R?VCx8F|