Skip to content

Commit

Permalink
Fix Text::installation() bounding box positioning under transformat…
Browse files Browse the repository at this point in the history
…ion.
  • Loading branch information
kpreid committed Dec 3, 2023
1 parent a9326fb commit dd283d9
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions all-is-cubes/src/block/text.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,28 +95,33 @@ impl Text {
/// Each individual block is given to `block_fn` to allow alterations.
///
/// The transaction has no preconditions.
///
/// Panics if `transform` causes coordinate overflow.
pub fn installation(
&self,
transform: Gridgid,
block_fn: impl Fn(Block) -> Block,
) -> SpaceTransaction {
let dst_to_src_transform = transform.inverse();
let block_rotation = transform.rotation;
SpaceTransaction::filling(self.bounding_blocks(), |cube| {
space::CubeTransaction::replacing(
None,
Some(block_fn(
Block::from_primitive(block::Primitive::Text {
text: self.clone(),
offset: dst_to_src_transform
.transform_cube(cube)
.lower_bounds()
.to_vector(),
})
.rotate(block_rotation),
)),
)
})
SpaceTransaction::filling(
self.bounding_blocks().transform(transform).unwrap(),
|cube| {
space::CubeTransaction::replacing(
None,
Some(block_fn(
Block::from_primitive(block::Primitive::Text {
text: self.clone(),
offset: dst_to_src_transform
.transform_cube(cube)
.lower_bounds()
.to_vector(),
})
.rotate(block_rotation),
)),
)
},
)
}

pub(crate) fn evaluate(
Expand Down

0 comments on commit dd283d9

Please sign in to comment.