feat(editor): add --gen-texture-gear-cog mechanical wheel

85th procedural texture: gear-cog wheel pattern tiled per
cell. Three concentric radii define the gear:
  • hub   (rNorm < 0.20) — center axle hole, kept as bg
  • inner (rNorm < 0.65) — gap floor between teeth
  • outer (rNorm < 0.92) — tooth tip

Teeth alternate around the gear via a per-tooth phase
calculation: theta is mapped into a tooth period of
2*pi/teeth, with the first half of each period rendering
as a tooth (effective radius = outer) and the second half
rendering as a gap (effective radius = inner).

Useful for: engineering crafting backdrops, mechanical
door textures, gnomish / goblin themed gear icons,
factory / forge tile sets, clockwork-themed dungeons,
steampunk faction insignia, machinery damage states.

Distinct from --gen-texture-rings (concentric circles only,
no teeth). The first procedural texture in the catalogue
that exercises a per-tooth periodic offset rather than a
fixed angular fold.
This commit is contained in:
Kelsi 2026-05-09 17:09:32 -07:00
parent eefaa5653b
commit dc3e566e45
3 changed files with 79 additions and 0 deletions

View file

@ -203,6 +203,8 @@ void printUsage(const char* argv0) {
std::printf(" Damask: 4-petal floral motif tiled per cell (palace wallpaper / noble-faction tapestry)\n");
std::printf(" --gen-texture-snowflake <out.png> <bgHex> <fgHex> [cell] [W H]\n");
std::printf(" Snowflake: 6-fold symmetric ice crystal stamped per cell (winter zones / frost spell effects)\n");
std::printf(" --gen-texture-gear-cog <out.png> <bgHex> <fgHex> [cell] [teeth] [W H]\n");
std::printf(" Gear cog: mechanical wheel with N alternating teeth + center axle hole (engineering / clockwork themes)\n");
std::printf(" --add-texture-to-zone <zoneDir> <png-path> [renameTo]\n");
std::printf(" Copy an existing PNG into <zoneDir> (optionally renaming it on the way in)\n");
std::printf(" --gen-mesh <wom-base> <cube|plane|sphere|cylinder|torus|cone|ramp> [size]\n");