|
TraceMaker
C++ API of the engine
|
Where a track is over a void of its reference plane (issue #24, docs/05-routing.md §44, D117). More...
#include <cstddef>#include <cstdint>#include <vector>#include "geom/clip.hpp"#include "geom/point.hpp"#include "model/board.hpp"Go to the source code of this file.
Classes | |
| struct | tmk::route::ReferenceMap |
Namespaces | |
| namespace | tmk |
| namespace | tmk::route |
Functions | |
| ReferenceMap | tmk::route::build_reference_map (const model::Board &b, const geom::Box &lat, Coord pitch, int nx, int ny, double min_coverage=0.3) |
| lat is the lattice box (cell (x, y) is at lat.x0 + x * pitch, lat.y0 + y * pitch), nx x ny its size. | |
| std::vector< std::uint8_t > | tmk::route::rasterise (const geom::Rings ®ion, const geom::Box &lat, Coord pitch, int nx, int ny) |
| Rasterises a region (rings under the non-zero rule, holes included): 1 where the cell centre is inside. | |
Where a track is over a void of its reference plane (issue #24, docs/05-routing.md §44, D117).
A fast signal wants solid copper under it on the adjacent layer: where the plane has a split, a slot, a cut-out or an antipad field the return current has to go round (docs/05 §42 measures the detour after the route). Here the same question is asked before the route, for every cell of the router's lattice: on each copper layer that has a plane next to it (an adjacent layer whose zone fills cover a good part of the board), is the cell's centre over the plane's copper? The router charges critical nets for the cells where it is not.
The map is a cost, not a rule: the exact check of every commit is unchanged. Vias a route adds make antipads the fills in the file do not have yet; the audit after the route (analysis/return_path.hpp, on a refilled board) sees those.
Definition in file ref_map.hpp.