13 lines
507 B
Python
13 lines
507 B
Python
"""Utilities for finding primal edges corresponding to dual edges."""
|
|
from typing import Any, cast
|
|
|
|
def get_edge_for_dual_edge(dual_edge: Any) -> tuple[int, int, None]:
|
|
"""Return the primal edge shared by both faces of the given dual edge."""
|
|
edges: list[set[Any]] = []
|
|
for e in (dual_edge[0] + dual_edge[1]):
|
|
edge = set(e)
|
|
if edge in edges:
|
|
return cast(tuple[int, int, None], e)
|
|
edges.append(edge)
|
|
raise ValueError(f"Error finding edge for {dual_edge}")
|