Files
rpmroute/src/freeroute/board/__init__.py
T
rsp2k b200ecf6f8 Add ShapeSearchTree: exact spatial index over item shapes
A bounding-box spatial hash (broad phase) with exact IntBox-intersection
narrow phase, replacing the exact router's occupancy grid. Supports
insert/remove-owner and overlap/region queries, a clearance_conflict test
(strict 2-D overlap of the clearance-expanded box, so tiles exactly a
clearance apart are allowed), and has_violation for the whole-board DRC
check. Tiles are tagged routed vs static so pad-vs-pad spacing in the
source design is not counted as a routing violation.
2026-07-13 02:16:11 -06:00

43 lines
1.1 KiB
Python

"""Board data model for freeroute.
The data model a parsed DSN produces and the (future) router operates on:
layers, units, coordinate transform, nets, clearance matrix, the item hierarchy,
and the :class:`BasicBoard` container. :func:`build_board` constructs a board
from a :class:`~freeroute.dsn.model.DsnBoard`.
The routing operations (``RoutingBoard``) and the spatial ``ShapeSearchTree``
belong to the router phase.
"""
from __future__ import annotations
from .board import BasicBoard
from .build import build_board
from .clearance import ClearanceMatrix
from .items import ConductionArea, Item, ObstacleArea, Pin, Trace, Via
from .layer import Layer, LayerStructure
from .net import Net, Nets
from .search_tree import ShapeSearchTree, TreeShape
from .transform import CoordinateTransform
from .unit import Unit
__all__ = [
"Unit",
"Layer",
"LayerStructure",
"CoordinateTransform",
"Net",
"Nets",
"ClearanceMatrix",
"Item",
"Pin",
"ObstacleArea",
"ConductionArea",
"Via",
"Trace",
"BasicBoard",
"ShapeSearchTree",
"TreeShape",
"build_board",
]