///|
/// `Transform` represents transform arguments.
pub(all) struct Transform {
position : Vec2
rotation : Double
scale : Vec2
skew : Double
origin : Vec2
} derive(Debug, Eq)
///|
pub impl Show for Transform with fn output(self, logger) {
let { position, rotation, scale, skew, origin } = self
logger.write_string(
(
$|{position: \{position}, rotation: \{rotation}, scale: \{scale}, skew: \{skew}, origin: \{origin}}
),
)
}
///|
test "Transform show interface" {
let t = Transform::new(position=vec2(10, 20), rotation=45, scale=vec2(2, 2))
inspect(
t,
content=(
#|{position: {x: 10, y: 20}, rotation: 45, scale: {x: 2, y: 2}, skew: 0, origin: {x: 0, y: 0}}
),
)
}
///|
/// Transform::new returns a new identity transform.
pub fn Transform::new(
position? : Vec2 = vec2(0, 0),
rotation? : Double = 0,
scale? : Vec2 = vec2(1, 1),
skew? : Double = 0,
origin? : Vec2 = vec2(0, 0),
) -> Transform {
{ position, rotation, scale, skew, origin }
}