1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use crate::{BoundingBox, GlyphData};

/// Information about the actual bounding box for each glyph.[^note]
///
/// The glyph bounding box is defined as the smallest rectangle that encloses
/// every part of the glyph’s path, and is described as a pair of coordinates
/// for the bottom-left (or southwest) and top-right (or northeast) corners of
/// the rectangle, expressed staff spaces to any required degree of precision,
/// relative to the glyph origin.
///
/// See the [SMuFL documentation](https://w3c.github.io/smufl/latest/specification/glyphbboxes.html).
///
/// [^note]: This data is provided primarily for MakeMusic Finale, which
/// requires bounding box data for certain graphical and spacing calculations
/// performed by the software. This information is stored in a per-font data
/// file called a Font Annotation (FAN) file, and can be edited directly within
/// Finale in the Font Annotation dialog. Font designers who choose to provide
/// this information for SMuFL-compliant fonts can save end users the steps of
/// creating Font Annotation files in Finale, as future versions of Finale may
/// be able to consume this metadata directly and automatically produce the
/// required Font Annotation file.
pub type GlyphBoundingBoxes = GlyphData<BoundingBox>;