feat(editor): add --gen-mesh-lantern hand-lantern primitive

81st procedural mesh primitive. Hand-held oil lantern via
4 stacked Y-axis cylinders:

  • base — short narrow disc (the foot the lantern sits on)
  • globe — wider taller cylinder (the glass enclosure
    holding the wick)
  • neck — narrow constriction above the globe (where the
    cap meets the body)
  • cap — wider short top (the metal hood that lets vent
    smoke escape)

Distinct from --gen-mesh-candle (just wax + saucer) and
--gen-mesh-urn (4-tier pottery shape) — lantern's
wide-narrow-wide tier sequence reads as a glass-enclosed
wick under a metal hood.

Useful for night-watch stations, ranger camps, dwarven
mine tunnels, mausoleum interiors, vigil scenes,
witch-hut shelves. Watertight under weld (verified 336
manifold edges, 0 boundary, 0 non-manifold).
This commit is contained in:
Kelsi 2026-05-09 13:38:06 -07:00
parent a65d61b492
commit c0ea12d2cb
3 changed files with 62 additions and 0 deletions

View file

@ -312,6 +312,8 @@ void printUsage(const char* argv0) {
std::printf(" Urn: 4-tier vertical pottery vessel (foot + body + neck + lip) — temple / mausoleum / kitchen storage\n");
std::printf(" --gen-mesh-candle <wom-base> [waxR] [waxH] [saucerR] [saucerH] [sides]\n");
std::printf(" Candle: thin wax pillar on optional saucer base (set saucerR=0 to skip) — chapels / vigil scenes\n");
std::printf(" --gen-mesh-lantern <wom-base> [baseR] [baseH] [globeR] [globeH] [neckR] [neckH] [capR] [capH] [sides]\n");
std::printf(" Lantern: 4-tier base + glass-globe + neck + cap stack (hand lantern / oil lamp silhouette)\n");
std::printf(" --gen-camp-pack <outDir>\n");
std::printf(" Convenience: emit tent + firepit + bedroll + canopy + woodpile + haystack into outDir as 6 .wom files\n");
std::printf(" --gen-blacksmith-pack <outDir>\n");