mirror of
https://github.com/typst/typst
synced 2025-06-08 13:16:24 +08:00
more
This commit is contained in:
parent
4186ef2c77
commit
0c4cffb475
@ -32,10 +32,8 @@ use typst_syntax::Span;
|
|||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub(crate) struct State {
|
pub(crate) struct State {
|
||||||
pub(crate) transform: Transform,
|
pub(crate) transform: Transform,
|
||||||
/// The full transform chain
|
|
||||||
transform_chain: Transform,
|
|
||||||
/// The transform of first hard frame in the hierarchy.
|
/// The transform of first hard frame in the hierarchy.
|
||||||
container_transform_chain: Transform,
|
container_transform: Transform,
|
||||||
/// The size of the first hard frame in the hierarchy.
|
/// The size of the first hard frame in the hierarchy.
|
||||||
container_size: Size,
|
container_size: Size,
|
||||||
}
|
}
|
||||||
@ -44,32 +42,28 @@ impl State {
|
|||||||
/// Creates a new, clean state for a given `size`.
|
/// Creates a new, clean state for a given `size`.
|
||||||
fn new(
|
fn new(
|
||||||
size: Size,
|
size: Size,
|
||||||
transform_chain: Transform,
|
|
||||||
container_transform_chain: Transform,
|
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Self {
|
Self {
|
||||||
transform_chain,
|
|
||||||
transform: Transform::identity(),
|
transform: Transform::identity(),
|
||||||
container_transform_chain,
|
container_transform: Transform::identity(),
|
||||||
container_size: size,
|
container_size: size,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn register_container(&mut self, size: Size) {
|
pub(crate) fn register_container(&mut self, size: Size) {
|
||||||
self.container_transform_chain = self.transform_chain;
|
self.container_transform = self.transform;
|
||||||
self.container_size = size;
|
self.container_size = size;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn pre_concat(&mut self, transform: Transform) {
|
pub(crate) fn pre_concat(&mut self, transform: Transform) {
|
||||||
self.transform = self.transform.pre_concat(transform);
|
self.transform = self.transform.pre_concat(transform);
|
||||||
self.transform_chain = self.transform_chain.pre_concat(transform);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates the [`Transforms`] structure for the current item.
|
/// Creates the [`Transforms`] structure for the current item.
|
||||||
pub(crate) fn transforms(&self, size: Size) -> Transforms {
|
pub(crate) fn transforms(&self, size: Size) -> Transforms {
|
||||||
Transforms {
|
Transforms {
|
||||||
transform_chain_: self.transform_chain,
|
transform_chain_: self.transform,
|
||||||
container_transform_chain: self.container_transform_chain,
|
container_transform_chain: self.container_transform,
|
||||||
container_size: self.container_size,
|
container_size: self.container_size,
|
||||||
size,
|
size,
|
||||||
}
|
}
|
||||||
@ -84,7 +78,7 @@ pub(crate) struct FrameContext {
|
|||||||
impl FrameContext {
|
impl FrameContext {
|
||||||
pub(crate) fn new(size: Size) -> Self {
|
pub(crate) fn new(size: Size) -> Self {
|
||||||
Self {
|
Self {
|
||||||
states: vec![State::new(size, Transform::identity(), Transform::identity())],
|
states: vec![State::new(size)],
|
||||||
annotations: vec![],
|
annotations: vec![],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user