# {py:mod}`simvx.core.ui.grid_slots` ```{py:module} simvx.core.ui.grid_slots ``` ```{autodoc2-docstring} simvx.core.ui.grid_slots :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`GridSlots ` - ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`__all__ ` - ```{autodoc2-docstring} simvx.core.ui.grid_slots.__all__ :summary: ``` ```` ### API ````{py:data} __all__ :canonical: simvx.core.ui.grid_slots.__all__ :value: > ['GridSlots'] ```{autodoc2-docstring} simvx.core.ui.grid_slots.__all__ ``` ```` `````{py:class} GridSlots :canonical: simvx.core.ui.grid_slots.GridSlots ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots ``` ````{py:attribute} rows :canonical: simvx.core.ui.grid_slots.GridSlots.rows :type: int :value: > None ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.rows ``` ```` ````{py:attribute} cols :canonical: simvx.core.ui.grid_slots.GridSlots.cols :type: int :value: > None ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.cols ``` ```` ````{py:attribute} size :canonical: simvx.core.ui.grid_slots.GridSlots.size :type: tuple[float, float] :value: > (48.0, 48.0) ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.size ``` ```` ````{py:attribute} gap :canonical: simvx.core.ui.grid_slots.GridSlots.gap :type: float :value: > 4.0 ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.gap ``` ```` ````{py:attribute} origin :canonical: simvx.core.ui.grid_slots.GridSlots.origin :type: tuple[float, float] :value: > (0.0, 0.0) ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.origin ``` ```` ````{py:attribute} row_major :canonical: simvx.core.ui.grid_slots.GridSlots.row_major :type: bool :value: > True ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.row_major ``` ```` ````{py:method} __post_init__() :canonical: simvx.core.ui.grid_slots.GridSlots.__post_init__ ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.__post_init__ ``` ```` ````{py:property} count :canonical: simvx.core.ui.grid_slots.GridSlots.count :type: int ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.count ``` ```` ````{py:property} cell_w :canonical: simvx.core.ui.grid_slots.GridSlots.cell_w :type: float ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.cell_w ``` ```` ````{py:property} cell_h :canonical: simvx.core.ui.grid_slots.GridSlots.cell_h :type: float ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.cell_h ``` ```` ````{py:property} total_size :canonical: simvx.core.ui.grid_slots.GridSlots.total_size :type: simvx.core.math.types.Vec2 ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.total_size ``` ```` ````{py:method} idx_to_rc(idx: int) -> tuple[int, int] :canonical: simvx.core.ui.grid_slots.GridSlots.idx_to_rc ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.idx_to_rc ``` ```` ````{py:method} idx_to_xy(idx: int) -> simvx.core.math.types.Vec2 :canonical: simvx.core.ui.grid_slots.GridSlots.idx_to_xy ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.idx_to_xy ``` ```` ````{py:method} rc_to_idx(row: int, col: int) -> int :canonical: simvx.core.ui.grid_slots.GridSlots.rc_to_idx ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.rc_to_idx ``` ```` ````{py:method} xy_to_idx(x: float, y: float) -> int | None :canonical: simvx.core.ui.grid_slots.GridSlots.xy_to_idx ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.xy_to_idx ``` ```` ````{py:method} __iter__() -> typing.Iterator[simvx.core.math.types.Vec2] :canonical: simvx.core.ui.grid_slots.GridSlots.__iter__ ```{autodoc2-docstring} simvx.core.ui.grid_slots.GridSlots.__iter__ ``` ```` `````