KiCad PCB EDA Suite
Loading...
Searching...
No Matches
conn_summary.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
20#pragma once
21
22#include "conn_claims.h"
23
24namespace SCH_CONNECTIVITY
25{
29struct SUMMARY
30{
31 std::optional<CLAIM> best;
32 std::array<std::optional<ITEM_KEY>, 2> pinWitnesses;
33 std::optional<ITEM_KEY> noConnect;
34 std::vector<NAME_ID> netclasses;
35
36 bool operator==( const SUMMARY& ) const = default;
37
39 static SUMMARY Join( const SUMMARY& aLeft, const SUMMARY& aRight, const SESSION_KEYS& aKeys );
40};
41
45SUMMARY MakeSummary( const RECORD_KEY& aKey, const ISLAND_RECORD& aRecord );
46} // namespace SCH_CONNECTIVITY
Session IDs are dense handles, never a canonical ordering.
Definition conn_keys.h:146
Value keys and the key session of the schematic connectivity engine.
SUMMARY MakeSummary(const RECORD_KEY &aKey, const ISLAND_RECORD &aRecord)
Consumes a canonical BuildIslandRecord() result.
One island in one sheet instance.
Definition conn_keys.h:87
Fold state of one net.
std::optional< ITEM_KEY > noConnect
The smallest no-connect marker.
bool operator==(const SUMMARY &) const =default
std::array< std::optional< ITEM_KEY >, 2 > pinWitnesses
The two smallest witness pins.
std::optional< CLAIM > best
Greatest claim by CLAIM_LESS.
static SUMMARY Join(const SUMMARY &aLeft, const SUMMARY &aRight, const SESSION_KEYS &aKeys)
Inputs are canonical folds from one source snapshot.
std::vector< NAME_ID > netclasses
Sorted by name.