19 std::vector<std::vector<std::vector<geom::Point>>>
parts;
28 std::array<CourtyardRegion, 2>
sides;
39bool footprint_selected(
const std::string& selector,
const std::string& reference,
const std::string& lib_id);
46 const std::string& selector,
const std::string& function);
53 const std::vector<int>& entries,
const std::string& function);
Copper items with exact shapes, built from the board model, for DRC and routing obstacles.
bool area_matches(const CopperItem &item, const model::Zone &area, bool enclosed)
Requires a common copper layer.
std::vector< int > courtyard_entries(const CourtyardCache &courtyards, const std::string &selector)
The entries a footprint selector picks, in entry order, and the same test against them.
bool courtyard_matches(const CopperItem &item, const CourtyardCache &courtyards, const std::string &selector, const std::string &function)
Function is intersectsCourtyard/intersectsFrontCourtyard/intersectsBackCourtyard.
bool footprint_selected(const std::string &selector, const std::string &reference, const std::string &lib_id)
KiCad's footprint selector (testFootprintSelector): a reference wildcard, or, when the selector conta...
CourtyardCache build_courtyards(const model::Board &board)
Build once per board; invalid/unclosed contours leave the corresponding side empty and marked unreada...
std::vector< CourtyardEntry > entries
bool back
footprint flipped to the bottom side
std::array< CourtyardRegion, 2 > sides
physical F.CrtYd, B.CrtYd
bool unreadable
The side has courtyard graphics, but they are not closed, simple outlines (or use a Bezier curve): no...
std::vector< std::vector< std::vector< geom::Point > > > parts
The courtyard is the union of the parts.