PathAndTextVariantsRenderer

Abstract base class for renderers with multiple path variants and text labels

Subclasses just need to define PATH_VARIANTS dictionary with: - "variant_name": { "path": "SVG path data" or ["path1", "path2", ...], "text": "LABEL TEXT", "text_position": (text_x, text_y), "viewbox": original_size, "center": (cx, cy) }

Constructor

PathAndTextVariantsRenderer(variant: str = None) -> None

Initialize multi-path text renderer

Parameters

variant
Path variant name. If None, uses first available variant

Methods

get_available_variants

get_available_variants()

Get list of available variants for this renderer

get_current_variant

get_current_variant()

Get the currently selected variant

render

render(
    state: State,
    drawing: Optional[Drawing] = None
) -> DrawingElement

set_variant

set_variant(variant: str) -> None

Set the current variant

Parameters

variant
Path variant name to set
Raises
ValueError
If variant is not available