plottery_lib 0.13.0

Core geometry library of Plottery, a creative coding framework for generative vector graphics and pen plotting.
Documentation
/// Font-wide vertical metrics in cm at an em size; `descender` is negative (y-up), baseline is 0.
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct FontMetrics {
    pub ascender: f32,
    pub descender: f32,
    pub line_gap: f32,
    pub cap_height: Option<f32>,
    pub x_height: Option<f32>,
}

impl FontMetrics {
    pub(crate) fn scale(&self, factor: f32) -> Self {
        Self {
            ascender: self.ascender * factor,
            descender: self.descender * factor,
            line_gap: self.line_gap * factor,
            cap_height: self.cap_height.map(|v| v * factor),
            x_height: self.x_height.map(|v| v * factor),
        }
    }
}