145 bool operator()(
const std::pair<KIID_PATH, VECTOR2I>& a,
const std::pair<KIID_PATH, VECTOR2I>& b )
const
148 if( a.first != b.first )
149 return a.first < b.first;
152 return std::tie( a.second.x, a.second.y ) < std::tie( b.second.x, b.second.y );
372 bool aRebuild =
false );
377 return m_inputs.ExternalSourcesChanged( aPaths, aContextUnchanged );
443 std::vector<ERC_PIN_NET>
PinNets()
const;
502 std::shared_ptr<const BUS_SCHEMA::NODE>
FindBusTree(
const wxString& aText )
const
508 void clearStages(
bool aRetainSourceValues =
false );
518 std::set<RECORD_KEY, KEY_LESS>
ercIslands()
const;
One sequence for all cache tables for the lifetime of an engine session.
Cache current component evaluations by exact node/version identity, within one stratum and key sessio...
std::vector< NO_CONNECT_PIN_CONFLICT > NoConnectPinConflicts() const
No-connect pins that touch other items, grouped by instance and position.
ENGINE(const ENGINE &)=delete
std::vector< MULTI_UNIT_GROUP > MultiUnitSymbols() const
Annotated multi-unit symbols grouped by reference, with instances in page order.
std::vector< ERC_PIN_NET > PinNets() const
Active pins for each named net, in net name order.
std::vector< NO_CONNECT_FLAG_ERROR > NoConnectFlagErrors() const
No-connect flags on reported islands that connect to many pins or to nothing.
bool ExternalSourcesChanged(const SCH_SHEET_LIST &aPaths, bool aContextUnchanged=false) const
std::vector< OFF_GRID_ENDPOINT > OffGridEndpoints(int aGrid) const
Off-grid endpoints on the first instance of each screen; one pin for each symbol.
std::vector< LABEL_LOCATION > SingleGlobalLabels() const
Global labels whose name occurs only once in the hierarchy.
std::vector< DUPLICATE_SHEET_ERROR > DuplicateSheetNames() const
Child sheet pairs whose names differ only in case, sorted by instance and pair.
const PUBLICATION & Published() const
std::shared_ptr< const BUS_SCHEMA::NODE > FindBusTree(const wxString &aText) const
std::vector< GROUND_PIN_ERROR > GroundPinErrors() const
Ground-named power pins off a ground net, sorted by instance and pin.
std::vector< PIN_MAP_FACT > PinMapSymbols(SCREEN_ID aScreen) const
Captured pin maps of one screen; empty for an unknown screen.
std::vector< BUS_BUS_CONFLICT > BusBusConflicts() const
Reported bus islands with mixed bus shapes, or with two claims that share no member.
std::vector< BUS_ENTRY_CONFLICT > BusEntryConflicts() const
Bus wire entries on reported islands whose net is not a member of the touched bus.
std::vector< UNCONNECTED_PIN > UnconnectedPins() const
Unconnected symbol pins on reported islands; each power symbol pin reports on its own.
COMPONENT_CACHE< SIGNAL_RESULT > m_signals
const COMPONENT_CACHE< SIGNAL_RESULT > & Signals() const
std::vector< DRIVER_CONFLICT > DriverConflicts() const
Islands with two different strong names; one result for each reported island.
std::vector< WIRE_ENDPOINT > DanglingWireEndpoints() const
Dangling ends of wires and bus wire entries on reported islands.
void clearStages(bool aRetainSourceValues=false)
std::vector< MULTI_UNIT_CONFLICT > MultiUnitPinConflicts() const
One conflict for each multi-unit reference and pin number with more than one net.
std::vector< VARIANT_SYMBOL_FACT > VariantSymbols(const KIID_PATH &aPath) const
Captured variant symbol overrides of one instance; empty for an unknown path.
const SESSION_KEYS & Keys() const
std::vector< NAMED_ITEM > NamedItems() const
Every label and power pin with its resolved name, on every instance.
PARTITIONER m_partitioner
std::set< RECORD_KEY, KEY_LESS > ercIslands() const
Islands that ERC reports.
std::vector< FOUR_WAY_JUNCTION > FourWayJunctions() const
Positions with four or more contacts, sorted by instance and position.
std::vector< BUS_NET_CONFLICT > BusNetConflicts() const
Reported islands whose ERC_ATOMS::kindConflict is set and that hold both a net and a bus item.
std::vector< FOOTPRINT_SOURCE > FootprintSources() const
Resolved footprint and filters of every symbol on every instance.
std::vector< LIBRARY_SYMBOL_FACT > LibrarySymbols(const KIID_PATH &aPath) const
Captured library links of the symbols on the screen of one instance; empty for an unknown path.
void Update(const SCH_SHEET_LIST &aPaths, uint64_t aTextEpoch, const BUS_ALIASES &aAliases, bool aRebuild=false)
Refresh inputs, bundle slots and signal summaries with the source text epoch and effective aliases.
std::vector< INST_ID > instancesInPageOrder() const
All captured instances, sorted by page order and then by instance path.
std::vector< NETCLASS_REFERENCE > NetclassReferences() const
Netclass field references of every instance, sorted by instance, item and name.
std::vector< LABEL_LOCATION > DanglingDirectives() const
Dangling directive labels on every instance.
std::vector< FLOATING_WIRE > FloatingWires() const
Wires and bus entries of each island whose net has no driver, on every instance.
std::vector< HIERARCHY_ERROR > HierarchyErrors() const
Hierarchical label and sheet pin mismatches, sorted by instance, item and kind.
std::vector< SOURCE_LOCATION > InvalidPinNotation() const
Pins whose shown number looks like stacked pin notation but does not parse.
std::vector< FIELD_NAME_ERROR > InvalidFieldNames() const
Field names with leading or trailing white space, sorted by instance, owner and field.
std::vector< SOURCE_LOCATION > WiredImplicitPowerPins() const
Hidden global power input pins that a wire also joins; one pin for each symbol.
std::vector< SOURCE_LOCATION > EmptyLabels() const
Labels whose raw text is empty or only white space, on every instance.
ENGINE & operator=(const ENGINE &)=delete
COMPONENT_CACHE< BUNDLE_BINDING > m_bundles
std::vector< LABEL_CONNECTION_ERROR > LabelConnectionErrors() const
Unconnected and single-pin labels on reported islands.
std::vector< UNMAPPED_PIN_CANDIDATE > UnmappedPinCandidates() const
Pins that need a pad check.
std::vector< LABEL_WIRE_CONFLICT > LabelWireConflicts() const
Labels that touch the interior of two or more wires; one result for each position.
std::vector< CLAIM > DriverCandidates(NODE_ID aComponent) const
Owned eligible claims of one published component, strongest first.
CACHE_VERSIONS m_versions
Fresh connectivity for one stratum.
Main-thread island record preparation and cache writes.
Session IDs are dense handles, never a canonical ordering.
Reconciles current bundles with persistent, exact-value slot versions.
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
Value keys and the key session of the schematic connectivity engine.
SOURCE_LOCATION UNCONNECTED_PIN
std::map< wxString, std::vector< wxString > > BUS_ALIASES
Bus alias table, from alias name to member texts.
uint64_t SCREEN_ID
Process-local SCH_SCREEN::ConnectivityId(), never a file UUID.
SOURCE_LOCATION LABEL_LOCATION
uint32_t NODE_ID
Session handle of a NODE_KEY graph node.
Two bus claims on one island that share no member, or a bus vector joined to a bus group.
A bus wire entry whose net is not a member of the bus it touches.
An island that mixes net and bus items.
Two different strong names on one island.
Two child sheets of one sheet instance whose names differ only in case.
All active pins that the publication places on one named net.
std::vector< ERC_PIN > pins
One active symbol pin on one sheet instance, with the reference of its symbol.
A symbol or sheet field name with leading or trailing white space.
Up to four wires and bus entries of one island that has no driver.
std::vector< KIID > items
Four or more contacts at one position.
std::vector< KIID > equivalentItems
Every pin and line at the position, sorted.
std::vector< KIID > items
One pin for each symbol, then the lines; ERC reports four.
A power pin with a ground name that is not on a ground net, on a symbol with another pin on a ground ...
A hierarchical label or sheet pin with no partner, or a dangling sheet pin.
std::vector< KIID > equivalentItems
For a missing partner, all same-named labels or sheet pins.
A label that connects to nothing, or to only one pin.
A label that sits on the interior of two or more wires.
std::vector< KIID > wires
A pin number of one multi-unit symbol that different units connect to different nets.
All placed units that share one reference, with the unit table of the library symbol.
std::vector< UNIT_FACT > units
std::vector< MULTI_UNIT_INSTANCE > instances
One placed unit of an annotated multi-unit symbol.
A label or a power pin with its resolved net name.
A no-connect flag on a net with more than one pin, or on a net with no pin and no label.
KIID pin
If connected, the smallest pin that is not a power flag. Else niluuid.
bool connected
True for more than one pin, false for an unused flag.
VECTOR2I position
The pin position if connected and a pin exists, else the flag.
Pins of type no-connect that touch other items at one position.
std::vector< KIID > pins
No-connect pins at the position, sorted.
std::vector< KIID > others
Items that touch those pins, sorted.
A wire end, a bus entry end or a symbol pin that is not on the connection grid.
std::vector< std::pair< KIID, VECTOR2I > > equivalentPins
All off-grid pins of the symbol.
bool operator()(const std::pair< KIID_PATH, VECTOR2I > &a, const std::pair< KIID_PATH, VECTOR2I > &b) const
One item on one sheet instance, for a diagnostic that needs only a location.
A pin with a footprint that is not dangling, or that ignores dangling state.
One dangling end of a wire or a bus wire entry.
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
VECTOR2< int32_t > VECTOR2I