"""cartier-love-band-a17c: 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": "cartier-love-band-a17c", "size": 6.5, "metal": "18k_yellow_gold", "shank": {"type": "band", "width_mm": 3.4, "thickness_mm": 1.6, "cathedral": false}, "head": {"type": "none"}, "accents": [{"type": "pave", "arc_deg": [0, 180], "melee_mm": 0.5, "rows": 2}], "details": [{"type": "wire", "profile_mm": 1.5, "points": [[3.73, 0, 9.01], [3.97, 0, 9.59]]}, {"type": "wire", "profile_mm": 1.5, "points": [[9.01, 0, 3.73], [9.59, 0, 3.97]]}, {"type": "wire", "profile_mm": 1.5, "points": [[9.01, 0, -3.73], [9.59, 0, -3.97]]}, {"type": "wire", "profile_mm": 1.5, "points": [[3.73, 0, -9.01], [3.97, 0, -9.59]]}, {"type": "wire", "profile_mm": 1.5, "points": [[-3.73, 0, -9.01], [-3.97, 0, -9.59]]}, {"type": "wire", "profile_mm": 1.5, "points": [[-9.01, 0, -3.73], [-9.59, 0, -3.97]]}, {"type": "wire", "profile_mm": 1.5, "points": [[-9.01, 0, 3.73], [-9.59, 0, 3.97]]}, {"type": "wire", "profile_mm": 1.5, "points": [[-3.73, 0, 9.01], [-3.97, 0, 9.59]]}]}'
"""
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': 'cartier-love-band-a17c', 'size': 6.5, 'metal': '18k_yellow_gold', 'shank': {'type': 'band', 'width_mm': 3.4, 'thickness_mm': 1.6, 'cathedral': False}, 'head': {'type': 'none'}, 'accents': [{'type': 'pave', 'arc_deg': [0, 180], 'melee_mm': 0.5, 'rows': 2}], 'details': [{'type': 'wire', 'profile_mm': 1.5, 'points': [[3.73, 0, 9.01], [3.97, 0, 9.59]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[9.01, 0, 3.73], [9.59, 0, 3.97]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[9.01, 0, -3.73], [9.59, 0, -3.97]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[3.73, 0, -9.01], [3.97, 0, -9.59]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[-3.73, 0, -9.01], [-3.97, 0, -9.59]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[-9.01, 0, -3.73], [-9.59, 0, -3.97]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[-9.01, 0, 3.73], [-9.59, 0, 3.97]]}, {'type': 'wire', 'profile_mm': 1.5, 'points': [[-3.73, 0, 9.01], [-3.97, 0, 9.59]]}]}


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)
