"""scroll-solitaire: generated by ringcli — DO NOT hand-edit geometry.
To change this ring, change SPEC (or STYLE in ringcli/templates.py) and rerun:
  .cad-venv/bin/python -m ringcli.cli build --spec-json '{"name": "scroll-solitaire", "cut": "round", "carat": 1.2, "size": 6.5, "standard": "US", "metal": "18k_yellow_gold", "shank": {"type": "band"}, "head": {"type": "prong"}, "details": [{"type": "wire", "points": [[2.25, 0.3, 9.02], [3.78, 0.55, 8.5], [5.2, 0.3, 7.71], [6.34, -0.1, 6.8]], "profile_mm": 0.9}, {"type": "wire", "points": [[-2.25, 0.3, 9.02], [-3.78, 0.55, 8.5], [-5.2, 0.3, 7.71], [-6.34, -0.1, 6.8]], "profile_mm": 0.9}, {"type": "bead", "at": [2.95, -0.45, 9.08], "d_mm": 0.9}, {"type": "bead", "at": [4.19, -0.5, 8.58], "d_mm": 0.9}, {"type": "bead", "at": [-2.95, -0.45, 9.08], "d_mm": 0.9}, {"type": "bead", "at": [-4.19, -0.5, 8.58], "d_mm": 0.9}]}'
"""
import sys
from pathlib import Path

for _anc in Path(__file__).resolve().parents:
    if (_anc / "ringcli").is_dir():
        sys.path.insert(0, str(_anc))
        break
from ringcli.templates import build_ring  # noqa: E402

SPEC = {'name': 'scroll-solitaire', 'cut': 'round', 'carat': 1.2, 'size': 6.5, 'standard': 'US', 'metal': '18k_yellow_gold', 'shank': {'type': 'band'}, 'head': {'type': 'prong'}, 'details': [{'type': 'wire', 'points': [[2.25, 0.3, 9.02], [3.78, 0.55, 8.5], [5.2, 0.3, 7.71], [6.34, -0.1, 6.8]], 'profile_mm': 0.9}, {'type': 'wire', 'points': [[-2.25, 0.3, 9.02], [-3.78, 0.55, 8.5], [-5.2, 0.3, 7.71], [-6.34, -0.1, 6.8]], 'profile_mm': 0.9}, {'type': 'bead', 'at': [2.95, -0.45, 9.08], 'd_mm': 0.9}, {'type': 'bead', 'at': [4.19, -0.5, 8.58], 'd_mm': 0.9}, {'type': 'bead', 'at': [-2.95, -0.45, 9.08], 'd_mm': 0.9}, {'type': 'bead', 'at': [-4.19, -0.5, 8.58], 'd_mm': 0.9}]}


def gen_step():
    return build_ring(SPEC)


def gen_parts():
    """Raw colored parts list for the renderer (Compound drops colors)."""
    return build_ring(SPEC, parts_only=True)


def gen_metal():
    """The single fused metal Solid — the printable/castable body."""
    return build_ring(SPEC, fused=True)


def gen_supports():
    """Green casting sprue + feeder stems (render/print aid, never cast)."""
    from ringcli.templates import supports_for
    return supports_for(SPEC)
