bland 0.2.0

Pure-Rust library for paper-ready, monochrome, hatch-patterned technical plots in the visual tradition of 1960s-80s engineering reports.
Documentation
//! Hand-curated outlines of the major lunar maria.
//!
//! Coordinates are selenographic `(lon, lat)` in degrees with east
//! positive — matching the modern IAU standard.

use super::Feature;

const IMBRIUM: &[(f64, f64)] = &[
    (-30.0, 28.0), (-27.0, 32.0), (-22.0, 37.0), (-15.0, 41.0),
    (-6.0, 41.5), (0.0, 39.0), (5.0, 36.0), (6.5, 32.0),
    (3.0, 26.5), (-4.0, 23.5), (-12.0, 21.5), (-20.0, 22.5),
    (-27.0, 25.0), (-30.0, 28.0),
];

const SERENITATIS: &[(f64, f64)] = &[
    (7.0, 17.0), (10.0, 21.0), (15.0, 26.0), (20.0, 31.5),
    (26.0, 33.0), (30.0, 30.5), (30.0, 26.0), (28.0, 20.5),
    (24.0, 17.0), (18.0, 15.0), (12.0, 15.5), (7.0, 17.0),
];

const TRANQUILLITATIS: &[(f64, f64)] = &[
    (22.0, 13.0), (21.0, 17.0), (23.0, 19.5), (27.0, 20.5),
    (32.0, 18.5), (36.0, 14.5), (39.0, 10.0), (40.0, 4.5),
    (37.5, 0.0), (32.0, -1.5), (26.0, -0.5), (22.0, 2.5),
    (21.0, 8.0), (22.0, 13.0),
];

const CRISIUM: &[(f64, f64)] = &[
    (50.5, 17.5), (52.5, 22.0), (56.5, 24.5), (62.5, 23.0),
    (66.0, 18.5), (66.5, 13.0), (63.0, 9.5), (57.0, 9.0),
    (52.0, 11.0), (50.0, 14.0), (50.5, 17.5),
];

const FECUNDITATIS: &[(f64, f64)] = &[
    (42.0, 1.0), (44.0, -3.0), (46.5, -7.5), (50.0, -11.5),
    (56.0, -12.5), (58.0, -8.5), (58.0, -3.5), (54.5, 0.0),
    (48.0, 2.0), (42.0, 1.0),
];

const NECTARIS: &[(f64, f64)] = &[
    (31.0, -9.0), (33.5, -12.0), (37.5, -14.0), (40.0, -17.0),
    (39.5, -21.0), (35.0, -22.5), (30.0, -20.5), (28.5, -15.5),
    (30.0, -11.0), (31.0, -9.0),
];

const NUBIUM: &[(f64, f64)] = &[
    (-22.0, -14.0), (-18.0, -17.5), (-12.0, -19.0), (-6.5, -20.0),
    (-4.0, -23.5), (-8.0, -26.0), (-14.0, -26.5), (-20.0, -25.0),
    (-24.5, -21.5), (-24.0, -17.0), (-22.0, -14.0),
];

const HUMORUM: &[(f64, f64)] = &[
    (-34.0, -19.0), (-32.0, -22.5), (-34.0, -27.0), (-39.5, -29.0),
    (-44.0, -26.5), (-44.5, -22.0), (-41.0, -18.5), (-36.5, -17.5),
    (-34.0, -19.0),
];

const FRIGORIS: &[(f64, f64)] = &[
    (-55.0, 54.0), (-40.0, 58.0), (-20.0, 61.0), (0.0, 60.0),
    (18.0, 57.5), (35.0, 56.5), (40.0, 54.0), (32.0, 51.5),
    (15.0, 52.5), (0.0, 54.0), (-25.0, 52.0), (-45.0, 50.0),
    (-55.0, 54.0),
];

const PROCELLARUM: &[(f64, f64)] = &[
    (-85.0, 45.0), (-70.0, 48.5), (-55.0, 42.0), (-45.0, 37.0),
    (-40.0, 28.0), (-38.0, 17.0), (-42.0, 4.0), (-48.0, -5.0),
    (-55.0, -15.0), (-64.0, -22.0), (-75.0, -22.0), (-80.0, -12.0),
    (-82.0, 0.0), (-83.0, 14.0), (-83.0, 30.0), (-85.0, 45.0),
];

const COGNITUM: &[(f64, f64)] = &[
    (-25.0, -7.0), (-22.0, -9.0), (-19.5, -11.5), (-20.5, -14.0),
    (-24.5, -13.5), (-27.0, -10.5), (-25.0, -7.0),
];

const VAPORUM: &[(f64, f64)] = &[
    (0.5, 16.5), (4.5, 15.5), (7.5, 12.5), (5.5, 9.0),
    (1.0, 9.5), (-1.5, 12.5), (0.5, 16.5),
];

const SMYTHII: &[(f64, f64)] = &[
    (82.5, 4.0), (86.0, 5.5), (90.0, 2.0), (91.5, -3.0),
    (88.0, -6.5), (83.0, -4.5), (81.5, 0.0), (82.5, 4.0),
];

pub const MARIA: &[Feature] = &[
    Feature { name: "Mare Imbrium", closed: true, points: IMBRIUM },
    Feature { name: "Mare Serenitatis", closed: true, points: SERENITATIS },
    Feature { name: "Mare Tranquillitatis", closed: true, points: TRANQUILLITATIS },
    Feature { name: "Mare Crisium", closed: true, points: CRISIUM },
    Feature { name: "Mare Fecunditatis", closed: true, points: FECUNDITATIS },
    Feature { name: "Mare Nectaris", closed: true, points: NECTARIS },
    Feature { name: "Mare Nubium", closed: true, points: NUBIUM },
    Feature { name: "Mare Humorum", closed: true, points: HUMORUM },
    Feature { name: "Mare Frigoris", closed: true, points: FRIGORIS },
    Feature { name: "Oceanus Procellarum", closed: true, points: PROCELLARUM },
    Feature { name: "Mare Cognitum", closed: true, points: COGNITUM },
    Feature { name: "Mare Vaporum", closed: true, points: VAPORUM },
    Feature { name: "Mare Smythii", closed: true, points: SMYTHII },
];