cottax.consumers.visualization.xdsm_paint module

The XDSM’s paint: each part of a laid-out struct as SVG elements, in the order drawn.

RING_NEST = 0.25

How far a run ring steps in from the cell boundary per level of depth, as a fraction of the half-gap, capped at 0.75. (A solve ring has a lane of its own, ring_gap.)

paint_couplings(lay: Layout, edge_w: float)[source]

Each coupling’s line: along its row out of the source’s box, then down its column into the consumer’s. No arrowheads.

Return type:

list[str]

paint_io(lay: Layout, io_w: float)[source]

The bare arrows in and out, drawn when there is no boundary box.

Return type:

list[str]

paint_boundary(lay: Layout)[source]

The two boundary boxes.

Return type:

list[str]

paint_rings(struct: dict, lay: Layout, sty: Style, cut: float)[source]

Each block’s ring around its square of the diagonal.

Return type:

list[str]

paint_diagonal(struct: dict, lay: Layout, sty: Style, cut: float, hex_w: float, line_scale: float)[source]

Each step on the diagonal: a box, or a problem’s hexagon with its slots.

Return type:

list[str]

paint_data_boxes(struct: dict, lay: Layout, collapse_names: bool)[source]

Each coupling box and its names.

Return type:

list[str]

paint_key(keys: list[dict], lay: Layout, sty: Style, cut: float, hex_w: float)[source]

The key under the matrix, each sample in the class and colour of what it stands for.

Return type:

list[str]