b605931678
A tread's annular frontier can split into several disjoint cycles; each is now recognised as a separate full medial tire graph instead of disqualifying the whole tread. - recognise() returns a list of (g, bij), one per annular cycle component; add annular_cycle_components() and _recognise_one(), and iterate components in iter_pieces(). - Key tires/results by (depth, component) throughout both experiment drivers: _label_treads chains each tire to a parent-depth down tooth sharing its apex; _cap_cut/_assemble_cut_graph/to_json/summary and the dual-cut collectors/draws follow suit. Source vertex selection for the dual-cut experiment now deep-embeds a random face and roots at the outer-cap vertex. The source-dual figure labels the source-graph vertices, highlights the entry medial vertex, and uses a cap-rooted concentric layout. For seed 7 / face (14,15,19) this recognises treads 3 and 4 as two tires each (3.0,3.1,4.0,4.1), so every dual face is now cut. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
297 KiB
4680x810px
297 KiB
4680x810px