KiCad PCB EDA Suite
Loading...
Searching...
No Matches
SCH_CONNECTIVITY Namespace Reference

Value keys and the key session of the schematic connectivity engine. More...

Classes

class  AUXILIARY
 Source-keyed publication independent of electrical component identity. More...
 
struct  BUNDLE_BINDING
 Bound result of one bus component. More...
 
struct  BUNDLE_CLAIM
 One bus claim of a bundle partition, with its leaf names interned. More...
 
struct  BUNDLE_INPUT
 Main-thread input of BindBundle() for one bundle partition. More...
 
struct  BUS_ALIGNMENT
 Member correspondence between two bus schemas. More...
 
struct  BUS_BUS_CONFLICT
 Two bus claims on one island that share no member, or a bus vector joined to a bus group. More...
 
struct  BUS_ENTRY_CONFLICT
 A bus wire entry whose net is not a member of the bus it touches. More...
 
struct  BUS_MEMBERS
 Query-time snapshot; reacquire after Update. More...
 
struct  BUS_NET_CONFLICT
 An island that mixes net and bus items. More...
 
class  BUS_PARSE_CACHE
 Parse results for each bus text, with invalidation by alias dependency. More...
 
struct  BUS_SCHEMA
 The parsed form of one bus text. More...
 
class  CACHE_TABLE
 Versioned value table. More...
 
class  CACHE_VERSIONS
 One sequence for all cache tables for the lifetime of an engine session. More...
 
struct  CHANGE_SET
 Difference between two publications. More...
 
struct  CHILD_SHEET_FACT
 
struct  CLAIM
 The claim of one item for the name of its island. More...
 
struct  CLAIM_LESS
 Strict weak order on claims by value. More...
 
class  COMPONENT_CACHE
 Cache current component evaluations by exact node/version identity, within one stratum and key session. More...
 
struct  COMPONENT_CONTENT
 
struct  DRIVER_CONFLICT
 Two different strong names on one island. More...
 
struct  DUPLICATE_SHEET_ERROR
 Two child sheets of one sheet instance whose names differ only in case. More...
 
class  ENGINE
 Owns one key/version session and its current stage evaluations; main-thread use only. More...
 
struct  ERC_ATOMS
 
struct  ERC_PIN
 One active symbol pin on one sheet instance, with the reference of its symbol. More...
 
struct  ERC_PIN_NET
 All active pins that the publication places on one named net. More...
 
class  FACADE
 Model-owned source resolver. More...
 
struct  FACADE_STATE
 
struct  FIELD_NAME_ERROR
 A symbol or sheet field name with leading or trailing white space. More...
 
struct  FIELD_NAME_FACT
 
struct  FLOATING_WIRE
 Up to four wires and bus entries of one island that has no driver. More...
 
struct  FOOTPRINT_FACT
 
struct  FOOTPRINT_SOURCE
 The resolved footprint and the library footprint filters of one symbol on one sheet instance. More...
 
struct  FOUR_WAY_JUNCTION
 Four or more contacts at one position. More...
 
struct  FRAME_INSTANCE
 One entry of the captured hierarchy. More...
 
struct  GROUND_PIN_ERROR
 A power pin with a ground name that is not on a ground net, on a symbol with another pin on a ground net. More...
 
struct  HIERARCHY_ERROR
 A hierarchical label or sheet pin with no partner, or a dangling sheet pin. More...
 
class  INPUT_STORE
 Main-thread extraction cache. More...
 
class  INPUT_TEXT_SCOPE
 Excludes derived graph text and shares dynamic source values through nested resolvers. More...
 
struct  INSTANCE_CLAIMS
 
struct  INSTANCE_FACTS
 The text and unit data that one sheet instance resolves for the items of its screen. More...
 
struct  INSTANCE_RULE_AREA_FACT
 
struct  INSTANCE_SCOPE
 The hierarchy position of one sheet instance. More...
 
struct  ISLAND
 The smallest set of items on one screen that the drawing connects. More...
 
struct  ISLAND_AUX
 
struct  ISLAND_RECORD
 
struct  ITEM_FACT
 A value copy of one connectable item, or of one group of pins that share a number and a position. More...
 
struct  ITEM_GEOMETRY
 
struct  ITEM_KEY
 One item or pin in one sheet instance. More...
 
struct  ITEM_RESULT
 Published connection of one item on one sheet instance. More...
 
struct  ITEM_TEXT_FACT
 
class  ITEM_VIEW
 
struct  KEY_LESS
 Orders keys by value through SESSION_KEYS::Less(). More...
 
struct  LABEL_CONNECTION_ERROR
 A label that connects to nothing, or to only one pin. More...
 
struct  LABEL_WIRE_CONFLICT
 A label that sits on the interior of two or more wires. More...
 
struct  LIBRARY_FIELD_FACT
 
struct  LIBRARY_SHAPE_FACT
 
struct  LIBRARY_SYMBOL_FACT
 
struct  MULTI_UNIT_CONFLICT
 A pin number of one multi-unit symbol that different units connect to different nets. More...
 
struct  MULTI_UNIT_FACT
 
struct  MULTI_UNIT_GROUP
 All placed units that share one reference, with the unit table of the library symbol. More...
 
struct  MULTI_UNIT_INSTANCE
 One placed unit of an annotated multi-unit symbol. More...
 
struct  MULTI_UNIT_REFERENCE
 
struct  NAME_KEY
 The graph node of one name in one scope. More...
 
struct  NAME_LESS
 Orders name handles by UTF-8 value. More...
 
struct  NAMED_ITEM
 A label or a power pin with its resolved net name. More...
 
class  NAVIGATION_QUERY
 One UI operation's hierarchy index. More...
 
struct  NET_GROUP
 
class  NET_VIEW
 
struct  NETCHAIN_INPUT
 Immediate-use netchain input; shared-screen items are qualified by their instance. More...
 
class  NETCHAIN_MANAGER
 Persistent chain configuration and the derived chains for one schematic. More...
 
struct  NETCLASS_DELTA
 Difference between the previous and the current net name to netclass map. More...
 
struct  NETCLASS_REFERENCE
 
struct  NO_CONNECT_FLAG_ERROR
 A no-connect flag on a net with more than one pin, or on a net with no pin and no label. More...
 
struct  NO_CONNECT_PIN_CONFLICT
 Pins of type no-connect that touch other items at one position. More...
 
struct  NODE_INPUT
 
struct  OFF_GRID_ENDPOINT
 A wire end, a bus entry end or a symbol pin that is not on the connection grid. More...
 
struct  PARTITION
 Exact identity of one connected component. More...
 
class  PARTITIONER
 Fresh connectivity for one stratum. More...
 
struct  PIN_FACT
 
struct  PIN_GEOMETRY
 
struct  PIN_MAP_CANDIDATE_FACT
 
struct  PIN_MAP_FACT
 
struct  PIN_NAME_FACT
 
struct  PIN_NAME_REFERENCE
 
struct  PORT_FACT
 One connection point of an item. More...
 
class  PUBLICATION
 Main-thread publication. More...
 
class  PUBLICATION_HOLD
 Keep the last publication readable while a batch stages edits before its single commit. More...
 
struct  PUBLISHED_COMPONENT
 One published net or bus with its identity. More...
 
struct  RECORD_GEOMETRY
 Physical inputs to the island record fold. More...
 
struct  RECORD_KEY
 One island in one sheet instance. More...
 
struct  RECORD_NODE
 The graph node of one island record. More...
 
class  RECORD_STORE
 Main-thread island record preparation and cache writes. More...
 
class  RENDER_SCOPE
 Marks the canvas reads of this thread, which are item drawing and view bounds. More...
 
struct  RULE_AREA_FACT
 
struct  RULE_AREA_RESULT
 
struct  SCREEN_FACTS
 The value copy of one screen. More...
 
struct  SCREEN_GEOMETRY
 
struct  SCREEN_ISLANDS
 The islands of one screen and unit signature, sorted by anchor. More...
 
class  SESSION_KEYS
 Session IDs are dense handles, never a canonical ordering. More...
 
struct  SHEET_POSITION_LESS
 
struct  SIGNAL_RESULT
 Derived state of one net before publication. More...
 
struct  SIMULATION_MODEL_FACT
 
struct  SLOT_INPUT
 One bus member as a node of the signal stratum. More...
 
struct  SLOT_KEY
 One member position of a bus. More...
 
class  SLOT_STORE
 Reconciles current bundles with persistent, exact-value slot versions. More...
 
struct  SOURCE_CLAIMS
 
struct  SOURCE_LOCATION
 One item on one sheet instance, for a diagnostic that needs only a location. More...
 
class  SUBSCRIPTION
 Main-thread registration owner. More...
 
struct  SUMMARY
 Fold state of one net. More...
 
class  TASK_GROUP
 
struct  TEXT_ASSERTION
 
struct  TEXT_CHECK_FACT
 
struct  UNIT_FACT
 
struct  UNMAPPED_PIN_CANDIDATE
 A pin with a footprint that is not dangling, or that ignores dangling state. More...
 
struct  VARIANT_SYMBOL_FACT
 
struct  WIRE_ENDPOINT
 One dangling end of a wire or a bus wire entry. More...
 

Typedefs

using BUS_ALIASES = std::map<wxString, std::vector<wxString>>
 Bus alias table, from alias name to member texts.
 
using UNCONNECTED_PIN = SOURCE_LOCATION
 
using LABEL_LOCATION = SOURCE_LOCATION
 
using LIBRARY_SYMBOL_FACTS = std::vector<LIBRARY_SYMBOL_FACT>
 
using INST_ID = uint32_t
 Session handle of a sheet instance KIID_PATH.
 
using NAME_ID = uint32_t
 Session handle of a name, ordered by UTF-8 value through NAME_LESS.
 
using NODE_ID = uint32_t
 Session handle of a NODE_KEY graph node.
 
using SCREEN_ID = uint64_t
 Process-local SCH_SCREEN::ConnectivityId(), never a file UUID.
 
using NODE_KEY = std::variant<RECORD_NODE, NAME_KEY, SLOT_KEY>
 Any node of the union-find graph.
 
using NET_ITEMS_BY_SHEET = std::map<SCH_SHEET_PATH, std::vector<SCH_ITEM*>, SHEET_PATH_CMP>
 
using PREVIEW_NET_CODES = std::unordered_map<const SCH_ITEM*, std::optional<int>>
 
using TEXT_ENVIRONMENT = TEXT_EVAL::ENVIRONMENT
 

Enumerations

enum class  PRIORITY : uint8_t {
  NONE , PIN , SHEET_PIN , HIER_LABEL ,
  LOCAL_LABEL , LOCAL_POWER_PIN , BUS_MEMBER , GLOBAL_POWER_PIN ,
  GLOBAL
}
 Driver priority of a claim, from low to high. More...
 
enum class  PORT_KIND {
  ANCHOR , WIRE , BUS , ENTRY ,
  ENTRY_BUS
}
 
enum class  KIND : uint8_t { SIGNAL , BUNDLE }
 The electrical type of a record or component. More...
 
enum class  SCOPE : uint8_t { SHEET , GLOBAL , PORT }
 The namespace in which a NAME_KEY joins records. More...
 

Functions

BUNDLE_INPUT PrepareBundle (const PARTITION &aPartition, const RECORD_STORE::RECORD_CACHE &aRecords, SESSION_KEYS &aKeys)
 Collect the bus claims of a bundle partition and intern their leaf names on the main thread.
 
BUNDLE_BINDING BindBundle (const BUNDLE_INPUT &aInput, const SESSION_KEYS &aKeys)
 Align the prepared claims to the canonical claim and make the member slots.
 
std::vector< NODE_INPUT > SignalNodes (const RECORD_STORE::RECORD_CACHE &aRecords, const SLOT_STORE::SLOT_CACHE &aSlots, SESSION_KEYS &aKeys)
 Main-thread interning of current signal records and slots for the signal fold.
 
BUS_ALIGNMENT Align (const BUS_SCHEMA &aLeft, const BUS_SCHEMA &aRight)
 Match the leaves of aLeft to the leaves of aRight.
 
INSTANCE_CLAIMS PrepareInstanceClaims (const SCREEN_FACTS &aFacts, const INSTANCE_FACTS &aText, const INSTANCE_SCOPE &aScope, SESSION_KEYS &aKeys, BUS_PARSE_CACHE &aParses)
 Main-thread interning and parse preparation, followed by a pure per-island fold.
 
ISLAND_RECORD BuildIslandRecord (const RECORD_GEOMETRY &aIsland, const INSTANCE_CLAIMS &aInputs, const SESSION_KEYS &aKeys)
 
std::vector< NODE_INPUT > RecordNodes (const RECORD_STORE::RECORD_CACHE &aRecords, KIND aKind, SESSION_KEYS &aKeys)
 Main-thread node interning for one record stratum.
 
std::string Dump (SCHEMATIC &aSchematic)
 Canonical, pointer-free connectivity rows for migration and rebuild comparisons.
 
std::string Dump (SCHEMATIC &aSchematic, const FACADE &aFacade)
 Same row format from a current facade publication, with isolated netclass resolution.
 
LIBRARY_FIELD_FACT ExtractLibraryFieldFact (const SCH_FIELD &aField)
 
std::vector< SIMULATION_MODEL_FACT > ExtractSimulationModelFacts (const SCH_SHEET_PATH &aPath, const wxString &aVariantName)
 
std::optional< VARIANT_SYMBOL_FACT > ExtractVariantSymbolFact (const SCH_SYMBOL &aSymbol, const SCH_SHEET_PATH &aPath)
 
LIBRARY_SYMBOL_FACT ExtractLibrarySymbolFact (const LIB_SYMBOL &aSymbol)
 
SCREEN_FACTS ExtractScreenFacts (const SCH_SCREEN &aScreen, std::shared_ptr< const LIBRARY_SYMBOL_FACTS > aLibrarySymbols={}, const SCREEN_FACTS *aUnchangedNonLines=nullptr)
 Main-thread snapshots; no derived connectivity or model pointers survive extraction.
 
std::vector< TEXT_ASSERTION > ExtractTextAssertions (const wxString &aText)
 
std::vector< TEXT_CHECK_FACT > ExtractDrawingSheetTextChecks (const SCH_SCREEN &aScreen, const SCH_SHEET_PATH &aPath)
 
std::vector< TEXT_CHECK_FACT > ExtractTextChecks (const SCH_SCREEN &aScreen, const SCH_SHEET_PATH &aPath)
 
std::optional< PIN_MAP_FACT > ExtractPinMapFacts (const SCH_SYMBOL &aSymbol)
 
std::vector< UNIT_FACT > ExtractUnitFacts (const LIB_SYMBOL &aSymbol)
 
INSTANCE_FACTS ExtractInstanceFacts (const SCREEN_FACTS &aFacts, const SCH_SCREEN &aScreen, const SCH_SHEET_PATH &aPath)
 
std::vector< FRAME_INSTANCE > CaptureHierarchy (const SCH_SHEET_LIST &aPaths, SESSION_KEYS &aKeys)
 Interns every sheet instance and returns the frame in KIID_PATH order, so each parent precedes its children.
 
SCREEN_GEOMETRY GeometryOf (const SCREEN_FACTS &aFacts)
 
SCREEN_ISLANDS BuildScreenIslands (const SCREEN_GEOMETRY &aGeometry, const std::vector< std::pair< KIID, int > > &aUnits)
 Kindless geometry for one unit signature.
 
wxString RenderPinNetName (const PIN_NAME_FACT &aPin, const PIN_NAME_REFERENCE &aReference, bool aForceNoConnect=false)
 Render a non-power pin name from unescaped values; an absent reference uses the symbol UUID.
 
std::optional< wxString > AppendConnectionInfo (const SCH_ITEM &aItem, std::vector< MSG_PANEL_ITEM > &aList, const SCH_SHEET_PATH *aPath=nullptr)
 Append connection details; return its name for a signal, or no value for a bus/missing row.
 
PREVIEW_NET_CODES CapturePreviewNetCodes (const FACADE &aFacade, const SCH_SHEET_PATH &aPath)
 Owned local net assignments for advisory drag feedback; unavailable rows remain unknown.
 
wxString ApplyNameSuffix (const wxString &aName, const BUS_SCHEMA *aSchema, uint32_t aSuffix)
 Add "_N" to aName.
 
SIGNAL_RESULT DeriveSignal (const PARTITION &aPartition, const RECORD_STORE::RECORD_CACHE &aRecords, const SLOT_STORE::SLOT_CACHE &aSlots, const SESSION_KEYS &aKeys)
 Fold current signal inputs and retain canonical membership for publication and succession.
 
SUMMARY MakeSummary (const RECORD_KEY &aKey, const ISLAND_RECORD &aRecord)
 Consumes a canonical BuildIslandRecord() result.
 
template<typename FUNCTION>
void ParallelFor (size_t aCount, FUNCTION &&aFunction, thread_pool &aPool=GetKiCadThreadPool())
 Independent ordinal writes only; preparation and cache commits stay on the caller thread.
 

Variables

constexpr uint32_t INVALID_ID = std::numeric_limits<uint32_t>::max()
 Marks an unset handle.
 

Detailed Description

Value keys and the key session of the schematic connectivity engine.

See also
Glossary and keys

Typedef Documentation

◆ BUS_ALIASES

using SCH_CONNECTIVITY::BUS_ALIASES = std::map<wxString, std::vector<wxString>>

Bus alias table, from alias name to member texts.

Normalize names and resolve duplicate definitions in file order before constructing this table.

Definition at line 40 of file conn_bus.h.

◆ INST_ID

using SCH_CONNECTIVITY::INST_ID = uint32_t

Session handle of a sheet instance KIID_PATH.

Definition at line 41 of file conn_keys.h.

◆ LABEL_LOCATION

◆ LIBRARY_SYMBOL_FACTS

Definition at line 243 of file conn_facts.h.

◆ NAME_ID

using SCH_CONNECTIVITY::NAME_ID = uint32_t

Session handle of a name, ordered by UTF-8 value through NAME_LESS.

Definition at line 42 of file conn_keys.h.

◆ NET_ITEMS_BY_SHEET

Definition at line 35 of file conn_navigation.h.

◆ NODE_ID

using SCH_CONNECTIVITY::NODE_ID = uint32_t

Session handle of a NODE_KEY graph node.

Definition at line 43 of file conn_keys.h.

◆ NODE_KEY

Any node of the union-find graph.

Values sort first by variant index, so record nodes come first.

Definition at line 136 of file conn_keys.h.

◆ PREVIEW_NET_CODES

using SCH_CONNECTIVITY::PREVIEW_NET_CODES = std::unordered_map<const SCH_ITEM*, std::optional<int>>

Definition at line 32 of file conn_preview.h.

◆ SCREEN_ID

using SCH_CONNECTIVITY::SCREEN_ID = uint64_t

Process-local SCH_SCREEN::ConnectivityId(), never a file UUID.

Definition at line 44 of file conn_keys.h.

◆ TEXT_ENVIRONMENT

◆ UNCONNECTED_PIN

Enumeration Type Documentation

◆ KIND

enum class SCH_CONNECTIVITY::KIND : uint8_t
strong

The electrical type of a record or component.

See also
Glossary and keys
Enumerator
SIGNAL 

A net.

BUNDLE 

A bus.

Definition at line 54 of file conn_keys.h.

◆ PORT_KIND

enum class SCH_CONNECTIVITY::PORT_KIND
strong
Enumerator
ANCHOR 
WIRE 
BUS 
ENTRY 
ENTRY_BUS 

Definition at line 53 of file conn_facts.h.

◆ PRIORITY

enum class SCH_CONNECTIVITY::PRIORITY : uint8_t
strong

Driver priority of a claim, from low to high.

A higher value always names the net.

Enumerator
NONE 

The item makes no claim.

PIN 

Symbol pin that is not a power input. The name is "Net-(...)".

SHEET_PIN 

Sheet pin. The name belongs to the child instance.

HIER_LABEL 

Hierarchical label. The first strong priority.

LOCAL_LABEL 

Local label.

LOCAL_POWER_PIN 

Power input pin of a local power symbol.

BUS_MEMBER 

Synthetic claim of a bus member slot, set by BindBundle().

GLOBAL_POWER_PIN 

Power input pin of a global power symbol, or a hidden power input pin.

GLOBAL 

Global label.

Definition at line 36 of file conn_claims.h.

◆ SCOPE

enum class SCH_CONNECTIVITY::SCOPE : uint8_t
strong

The namespace in which a NAME_KEY joins records.

Enumerator
SHEET 

Joins names in one instance only.

GLOBAL 

Joins names in all instances.

PORT 

Joins a sheet pin to the hierarchical labels of its child instance, for one kind.

Definition at line 63 of file conn_keys.h.

Function Documentation

◆ Align()

SCH_CONNECTIVITY::BUS_ALIGNMENT SCH_CONNECTIVITY::Align ( const BUS_SCHEMA & aLeft,
const BUS_SCHEMA & aRight )

Match the leaves of aLeft to the leaves of aRight.

Two groups match by group path and local name, and equal duplicates match in declaration order. All other shape pairs match by ordinal. Right leaves without a partner are not reported.

Definition at line 282 of file conn_bus.cpp.

References candidates(), SCH_CONNECTIVITY::BUS_SCHEMA::GROUP, SCH_CONNECTIVITY::BUS_SCHEMA::leaves, left, result, right, and SCH_CONNECTIVITY::BUS_SCHEMA::shape.

Referenced by BindBundle(), and SCH_CONNECTIVITY::FACADE_STATE::Members().

◆ AppendConnectionInfo()

◆ ApplyNameSuffix()

wxString SCH_CONNECTIVITY::ApplyNameSuffix ( const wxString & aName,
const BUS_SCHEMA * aSchema,
uint32_t aSuffix )

Add "_N" to aName.

A group bus with a prefix gets the suffix after the prefix, all other names at the end. A zero suffix returns aName. If aSchema is provided, aName must be the exact text it was parsed from.

Definition at line 32 of file conn_publish.cpp.

References SCH_CONNECTIVITY::BUS_SCHEMA::GROUP, SCH_CONNECTIVITY::BUS_SCHEMA::prefix, SCH_CONNECTIVITY::BUS_SCHEMA::prefixEnd, result, and SCH_CONNECTIVITY::BUS_SCHEMA::shape.

Referenced by BOOST_AUTO_TEST_CASE(), and SCH_CONNECTIVITY::PUBLICATION::PrepareRows().

◆ BindBundle()

◆ BuildIslandRecord()

◆ BuildScreenIslands()

SCREEN_ISLANDS SCH_CONNECTIVITY::BuildScreenIslands ( const SCREEN_GEOMETRY & aGeometry,
const std::vector< std::pair< KIID, int > > & aUnits )

Kindless geometry for one unit signature.

Vertices retain fact keys; items retain active original keys, including every member of grouped pins. Bus-line evidence includes bus-to-bus entries. Unit zero selects every unit. Dangling bits follow port order (start = 1, end = 2); pin members each have their own single-port state. Adjacency and NC pairs are undirected and ordered; bus links are (entry, bus item).

Definition at line 192 of file conn_islands.cpp.

References SEG::A, KIRTREE::PACKED_RTREE< DATATYPE, ELEMTYPE, NUMDIMS, FANOUT >::Builder::Add(), SCH_CONNECTIVITY::ISLAND::adjacency, ANCHOR, SCH_CONNECTIVITY::ISLAND::anchor, SCH_CONNECTIVITY::SCREEN_GEOMETRY::attachedDirectives, SEG::B, KIRTREE::PACKED_RTREE< DATATYPE, ELEMTYPE, NUMDIMS, FANOUT >::Builder::Build(), BUS, SCH_CONNECTIVITY::ISLAND::busEntryLinks, SCH_CONNECTIVITY::ISLAND::dangling, end, ENTRY_BUS, KI_UNION_FIND::FindCompress(), SCH_CONNECTIVITY::ISLAND::hasBusLine, SCH_CONNECTIVITY::ISLAND::hasWire, SCH_CONNECTIVITY::ITEM_GEOMETRY::id, index, SCH_CONNECTIVITY::ISLAND::items, SCH_CONNECTIVITY::SCREEN_GEOMETRY::items, SCH_CONNECTIVITY::ITEM_GEOMETRY::jumperedWith, NC, SCH_CONNECTIVITY::ISLAND::ncContacts, SCH_CONNECTIVITY::ITEM_GEOMETRY::owner, pin, SCH_CONNECTIVITY::ITEM_GEOMETRY::pins, SCH_CONNECTIVITY::ITEM_GEOMETRY::ports, PT_NC, PT_NIC, result, SCH_BUS_BUS_ENTRY_T, SCH_BUS_WIRE_ENTRY_T, SCH_JUNCTION_T, SCH_NO_CONNECT_T, SCH_PIN_T, SCH_CONNECTIVITY::ITEM_GEOMETRY::segment, SCH_CONNECTIVITY::ITEM_GEOMETRY::type, KI_UNION_FIND::Unite(), SCH_CONNECTIVITY::ISLAND::vertices, WIRE, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by SCH_CONNECTIVITY::INPUT_STORE::Islands().

◆ CaptureHierarchy()

std::vector< FRAME_INSTANCE > SCH_CONNECTIVITY::CaptureHierarchy ( const SCH_SHEET_LIST & aPaths,
SESSION_KEYS & aKeys )

Interns every sheet instance and returns the frame in KIID_PATH order, so each parent precedes its children.

Definition at line 30 of file conn_frame.cpp.

References SCH_CONNECTIVITY::INSTANCE_SCOPE::depth, index, SCH_CONNECTIVITY::INSTANCE_SCOPE::instance, SCH_CONNECTIVITY::SESSION_KEYS::InternInstance(), path, SCH_CONNECTIVITY::INSTANCE_SCOPE::path, and result.

Referenced by SCH_CONNECTIVITY::INPUT_STORE::Capture().

◆ CapturePreviewNetCodes()

PREVIEW_NET_CODES SCH_CONNECTIVITY::CapturePreviewNetCodes ( const FACADE & aFacade,
const SCH_SHEET_PATH & aPath )

Owned local net assignments for advisory drag feedback; unavailable rows remain unknown.

Call before the drag stages its first edit, because staging hides the screen's published rows.

Definition at line 28 of file conn_preview.cpp.

References SCH_CONNECTIVITY::FACADE::Connection(), SCH_SCREEN::Items(), SCH_SHEET_PATH::LastScreen(), NO_RECURSE, path, SCH_SHEET_PATH::PathRef(), result, and EE_RTREE::size().

Referenced by SCH_DRAG_NET_COLLISION_MONITOR::Initialize().

◆ DeriveSignal()

SIGNAL_RESULT SCH_CONNECTIVITY::DeriveSignal ( const PARTITION & aPartition,
const RECORD_STORE::RECORD_CACHE & aRecords,
const SLOT_STORE::SLOT_CACHE & aSlots,
const SESSION_KEYS & aKeys )

◆ Dump() [1/2]

std::string SCH_CONNECTIVITY::Dump ( SCHEMATIC & aSchematic)

Canonical, pointer-free connectivity rows for migration and rebuild comparisons.

Session-local net and subgraph codes are deliberately omitted. The legacy <NO NET> placeholder, including its sheet prefix, is normalized only for driverless connections.

Definition at line 200 of file conn_dump.cpp.

References SCH_ITEM::ConnectedItems(), PROJECT::GetProjectFile(), SCHEMATIC::Hierarchy(), SCHEMATIC::IsValid(), JSON, PROJECT_FILE::NetSettings(), path, pin, SCHEMATIC::Project(), SCH_SHEET_T, and SCH_SYMBOL_T.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE_F(), and BOOST_DATA_TEST_CASE_F().

◆ Dump() [2/2]

◆ ExtractDrawingSheetTextChecks()

◆ ExtractInstanceFacts()

INSTANCE_FACTS SCH_CONNECTIVITY::ExtractInstanceFacts ( const SCREEN_FACTS & aFacts,
const SCH_SCREEN & aScreen,
const SCH_SHEET_PATH & aPath )

Definition at line 1053 of file conn_facts.cpp.

References SCH_CONNECTIVITY::INSTANCE_RULE_AREA_FACT::attachedDirectives, SCH_CONNECTIVITY::RULE_AREA_FACT::attachedDirectives, SCH_CONNECTIVITY::PIN_FACT::canDrive, SHAPE_POLY_SET::Collide(), SCH_CONNECTIVITY::INSTANCE_RULE_AREA_FACT::containedItems, SCH_CONNECTIVITY::RULE_AREA_FACT::containedItems, CTX_NETNAME, SCH_SYMBOL::DoNetList(), EscapeString(), ExtractVariantSymbolFact(), SCH_CONNECTIVITY::SCREEN_FACTS::footprints, FOR_NETNAME, SCH_SHEET::GetBodyBoundingBox(), SCH_ITEM::GetBodyStyle(), SCH_SCREEN::GetConnectivityItem(), SCHEMATIC::GetCurrentVariant(), LIB_SYMBOL::GetDummy(), SCH_SYMBOL::GetEffectiveLibSymbol(), SCH_SYMBOL::GetExcludedFromBoard(), SCH_LABEL_BASE::GetFields(), SCH_SHEET::GetFields(), SCH_SYMBOL::GetFields(), SCH_PIN::GetNumber(), EDA_ITEM::GetPosition(), SCH_SYMBOL::GetPosition(), SCH_PIN::GetShownName(), SCH_PIN::GetShownNumber(), SCH_LABEL_BASE::GetShownText(), SCH_PIN::GetSmallestStackedPadNumber(), SYMBOL::GetTransform(), SCH_SYMBOL::GetUnitSelection(), SCH_SYMBOL::GetValue(), SCH_SHEET_PATH::GetVirtualPageNumber(), SCH_CONNECTIVITY::PIN_FACT::globalPower, SCH_CONNECTIVITY::PIN_FACT::globalPowerParent, SCH_CONNECTIVITY::FOOTPRINT_FACT::id, SCH_CONNECTIVITY::INSTANCE_RULE_AREA_FACT::id, SCH_CONNECTIVITY::PIN_FACT::id, SCH_CONNECTIVITY::RULE_AREA_FACT::id, SCHEMATIC::IsValid(), SCH_SCREEN::Items(), SCH_CONNECTIVITY::SCREEN_FACTS::items, SCH_SHEET_PATH::LastScreen(), library, SCH_CONNECTIVITY::PIN_FACT::localPower, SCH_CONNECTIVITY::PIN_FACT::localPowerParent, SCH_SYMBOL_INSTANCE::m_Reference, EDA_ITEM::m_Uuid, BOX2< Vec >::Merge(), SCH_CONNECTIVITY::SCREEN_FACTS::multiUnits, name, SCH_CONNECTIVITY::INSTANCE_RULE_AREA_FACT::netclasses, SCH_CONNECTIVITY::SCREEN_FACTS::netclassOwners, NO_RECURSE, BOX2< Vec >::Normalize(), BOX2< Vec >::Offset(), EE_RTREE::OfType(), LIB_ID::Parse(), SCH_SHEET_PATH::Path(), path, SCH_SHEET_PATH::PathRef(), pin, SCH_CONNECTIVITY::SCREEN_FACTS::pinMaps, SCH_CONNECTIVITY::RULE_AREA_FACT::polygon, PT_NC, PT_NIC, SCH_CONNECTIVITY::PIN_NAME_REFERENCE::reference, RenderPinNetName(), RESOLVED, result, SCH_CONNECTIVITY::SCREEN_FACTS::ruleAreas, SCH_ITEM::RunOnChildren(), SCH_DIRECTIVE_LABEL_T, SCH_FIELD_T, SCH_PIN_T, SCH_SHEET_PIN_T, SCH_SHEET_T, SCH_SYMBOL_T, SCH_SCREEN::Schematic(), SHEET_NAME, source, text, TRANSFORM::TransformCoordinate(), EDA_ITEM::Type(), SCH_CONNECTIVITY::PIN_FACT::type, and SCH_CONNECTIVITY::PIN_FACT::unit.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and SCH_CONNECTIVITY::INPUT_STORE::Instance().

◆ ExtractLibraryFieldFact()

◆ ExtractLibrarySymbolFact()

◆ ExtractPinMapFacts()

std::optional< PIN_MAP_FACT > SCH_CONNECTIVITY::ExtractPinMapFacts ( const SCH_SYMBOL & aSymbol)

◆ ExtractScreenFacts()

SCREEN_FACTS SCH_CONNECTIVITY::ExtractScreenFacts ( const SCH_SCREEN & aScreen,
std::shared_ptr< const LIBRARY_SYMBOL_FACTS > aLibrarySymbols = {},
const SCREEN_FACTS * aUnchangedNonLines = nullptr )

Main-thread snapshots; no derived connectivity or model pointers survive extraction.

aUnchangedNonLines requires a verified unchanged non-line source revision.

Definition at line 459 of file conn_facts.cpp.

References ANCHOR, SCH_CONNECTIVITY::RULE_AREA_FACT::attachedDirectives, EE_RTREE::begin(), BUS, SCH_CONNECTIVITY::PIN_FACT::canDrive, SCH_CONNECTIVITY::RULE_AREA_FACT::containedItems, EE_RTREE::EE_TYPE::empty(), EE_RTREE::end(), ENTRY, ENTRY_BUS, ExtractLibrarySymbolFact(), ExtractPinMapFacts(), ExtractUnitFacts(), SCH_ITEM::GetLayer(), SCH_CONNECTIVITY::PIN_FACT::globalPower, SCH_CONNECTIVITY::PIN_FACT::globalPowerParent, group, SCH_CONNECTIVITY::ITEM_FACT::id, SCH_CONNECTIVITY::PIN_FACT::id, SCH_CONNECTIVITY::RULE_AREA_FACT::id, index, SCH_CONNECTIVITY::PIN_FACT::invisible, SCH_SCREEN::Items(), SCH_CONNECTIVITY::ITEM_FACT::jumperedWith, LAYER_BUS, library, SCH_CONNECTIVITY::PIN_FACT::libraryName, SCH_CONNECTIVITY::ITEM_FACT::lineWidth, SCH_CONNECTIVITY::PIN_FACT::localPower, SCH_CONNECTIVITY::PIN_FACT::localPowerParent, SCH_CONNECTIVITY::ITEM_FACT::multiUnit, name, SCH_CONNECTIVITY::PIN_FACT::name, NO_RECURSE, SCH_CONNECTIVITY::PIN_FACT::number, EE_RTREE::OfType(), SCH_CONNECTIVITY::ITEM_FACT::owner, SCH_CONNECTIVITY::PIN_FACT::padNumber, pin, SCH_CONNECTIVITY::ITEM_FACT::pins, SCH_CONNECTIVITY::RULE_AREA_FACT::polygon, SCH_CONNECTIVITY::ITEM_FACT::ports, SCH_CONNECTIVITY::PIN_FACT::position, SCH_CONNECTIVITY::PORT_FACT::position, PT_NC, SCH_CONNECTIVITY::ITEM_FACT::rawText, result, SCH_CONNECTIVITY::SCREEN_FACTS::ruleAreas, SCH_BUS_BUS_ENTRY_T, SCH_BUS_WIRE_ENTRY_T, SCH_DIRECTIVE_LABEL_T, SCH_FIELD_T, SCH_LINE_T, SCH_PIN_T, SCH_RULE_AREA_T, SCH_SHEET_T, SCH_SYMBOL_T, SCH_CONNECTIVITY::ITEM_FACT::segment, SCH_CONNECTIVITY::PIN_FACT::shownName, SCH_CONNECTIVITY::PIN_FACT::shownNumber, EE_RTREE::size(), EDA_ITEM::Type(), SCH_CONNECTIVITY::ITEM_FACT::type, SCH_CONNECTIVITY::PIN_FACT::type, SCH_CONNECTIVITY::PIN_FACT::unit, VALUE, WIRE, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and SCH_CONNECTIVITY::INPUT_STORE::Screen().

◆ ExtractSimulationModelFacts()

◆ ExtractTextAssertions()

std::vector< TEXT_ASSERTION > SCH_CONNECTIVITY::ExtractTextAssertions ( const wxString & aText)

Definition at line 805 of file conn_facts.cpp.

References result.

Referenced by ExtractDrawingSheetTextChecks(), ExtractTextChecks(), and ERC_TESTER::TestTextVars().

◆ ExtractTextChecks()

◆ ExtractUnitFacts()

◆ ExtractVariantSymbolFact()

std::optional< VARIANT_SYMBOL_FACT > SCH_CONNECTIVITY::ExtractVariantSymbolFact ( const SCH_SYMBOL & aSymbol,
const SCH_SHEET_PATH & aPath )

◆ GeometryOf()

◆ MakeSummary()

SUMMARY SCH_CONNECTIVITY::MakeSummary ( const RECORD_KEY & aKey,
const ISLAND_RECORD & aRecord )

◆ ParallelFor()

template<typename FUNCTION>
void SCH_CONNECTIVITY::ParallelFor ( size_t aCount,
FUNCTION && aFunction,
thread_pool & aPool = GetKiCadThreadPool() )

Independent ordinal writes only; preparation and cache commits stay on the caller thread.

Workers must not intern SESSION_KEYS or take CACHE_VERSIONS, because neither is synchronized.

Definition at line 72 of file conn_tasks.h.

References SCH_CONNECTIVITY::TASK_GROUP::Get(), and SCH_CONNECTIVITY::TASK_GROUP::Submit().

Referenced by SCH_CONNECTIVITY::PARTITIONER::Build(), SCH_CONNECTIVITY::INPUT_STORE::Capture(), SCH_CONNECTIVITY::ENGINE::Update(), and SCH_CONNECTIVITY::RECORD_STORE::Update().

◆ PrepareBundle()

BUNDLE_INPUT SCH_CONNECTIVITY::PrepareBundle ( const PARTITION & aPartition,
const RECORD_STORE::RECORD_CACHE & aRecords,
SESSION_KEYS & aKeys )

Collect the bus claims of a bundle partition and intern their leaf names on the main thread.

The canonical claim is placed first for the pure binding step.

Exceptions
std::invalid_argumentif the partition does not match the current records.
std::length_errorif a schema has more leaves than a slot ordinal can hold.

Definition at line 31 of file conn_bindings.cpp.

References SCH_CONNECTIVITY::PARTITION::anchor, BUNDLE, SCH_CONNECTIVITY::BUNDLE_CLAIM::claim, SCH_CONNECTIVITY::ISLAND_RECORD::claims, SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Find(), group, SCH_CONNECTIVITY::PARTITION::identity, SCH_CONNECTIVITY::SESSION_KEYS::InternName(), SCH_CONNECTIVITY::ISLAND_RECORD::items, SCH_CONNECTIVITY::SESSION_KEYS::Name(), SCH_CONNECTIVITY::ISLAND_RECORD::netclasses, SCH_CONNECTIVITY::SESSION_KEYS::Node(), path, result, SCH_CONNECTIVITY::CLAIM::schema, and source.

Referenced by SCH_CONNECTIVITY::ENGINE::Update().

◆ PrepareInstanceClaims()

INSTANCE_CLAIMS SCH_CONNECTIVITY::PrepareInstanceClaims ( const SCREEN_FACTS & aFacts,
const INSTANCE_FACTS & aText,
const INSTANCE_SCOPE & aScope,
SESSION_KEYS & aKeys,
BUS_PARSE_CACHE & aParses )

Main-thread interning and parse preparation, followed by a pure per-island fold.

PrepareInstanceClaims() assigns the priority, scope and names of each claim.

Definition at line 75 of file conn_claims.cpp.

References SCH_CONNECTIVITY::ITEM_TEXT_FACT::canDrive, SCH_CONNECTIVITY::INSTANCE_SCOPE::children, SCH_CONNECTIVITY::SOURCE_CLAIMS::claim, SCH_CONNECTIVITY::INSTANCE_RULE_AREA_FACT::containedItems, SCH_CONNECTIVITY::CLAIM::depth, SCH_CONNECTIVITY::INSTANCE_SCOPE::depth, SCH_CONNECTIVITY::CLAIM::fullName, GLOBAL, GLOBAL_POWER_PIN, SCH_CONNECTIVITY::CLAIM::globalPowerParent, SCH_CONNECTIVITY::CLAIM::hasPad, SCH_CONNECTIVITY::ITEM_FACT::id, SCH_CONNECTIVITY::ITEM_TEXT_FACT::id, SCH_CONNECTIVITY::INSTANCE_SCOPE::instance, SCH_CONNECTIVITY::SESSION_KEYS::InternName(), SCH_CONNECTIVITY::SOURCE_CLAIMS::invisiblePower, SCH_CONNECTIVITY::INSTANCE_FACTS::items, SCH_CONNECTIVITY::SCREEN_FACTS::items, LOCAL_POWER_PIN, SCH_CONNECTIVITY::CLAIM::localPowerParent, SCH_CONNECTIVITY::SESSION_KEYS::Name(), name, SCH_CONNECTIVITY::CLAIM::name, SCH_CONNECTIVITY::ITEM_TEXT_FACT::name, SCH_CONNECTIVITY::CLAIM::ncName, SCH_CONNECTIVITY::ITEM_TEXT_FACT::ncName, SCH_CONNECTIVITY::INSTANCE_RULE_AREA_FACT::netclasses, SCH_CONNECTIVITY::ITEM_TEXT_FACT::netclasses, SCH_CONNECTIVITY::SOURCE_CLAIMS::netclasses, NONE, SCH_CONNECTIVITY::CLAIM::outputShape, SCH_CONNECTIVITY::ITEM_FACT::outputShape, SCH_CONNECTIVITY::ITEM_FACT::owner, SCH_CONNECTIVITY::BUS_PARSE_CACHE::Parse(), SCH_CONNECTIVITY::CLAIM::path, SCH_CONNECTIVITY::INSTANCE_SCOPE::path, PIN, pin, SCH_CONNECTIVITY::SOURCE_CLAIMS::pinGroup, SCH_CONNECTIVITY::ITEM_FACT::pins, SCH_CONNECTIVITY::SOURCE_CLAIMS::pinWitness, SCH_CONNECTIVITY::CLAIM::portInstance, SCH_CONNECTIVITY::SOURCE_CLAIMS::portInstance, SCH_CONNECTIVITY::CLAIM::priority, PT_POWER_IN, result, SCH_CONNECTIVITY::INSTANCE_FACTS::ruleAreas, SCH_HIER_LABEL_T, SCH_PIN_T, SCH_SHEET_PIN_T, SCH_CONNECTIVITY::CLAIM::schema, SCH_CONNECTIVITY::CLAIM::source, text, SCH_CONNECTIVITY::ITEM_FACT::type, and SCH_CONNECTIVITY::SOURCE_CLAIMS::type.

Referenced by SCH_CONNECTIVITY::RECORD_STORE::Update().

◆ RecordNodes()

std::vector< NODE_INPUT > SCH_CONNECTIVITY::RecordNodes ( const RECORD_STORE::RECORD_CACHE & aRecords,
KIND aKind,
SESSION_KEYS & aKeys )

Main-thread node interning for one record stratum.

Name vertices receive version zero.

Names appear only as edge targets, so PARTITIONER::Build() assigns their zero version.

Definition at line 26 of file conn_components.cpp.

References SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Entries(), SCH_CONNECTIVITY::SESSION_KEYS::InternNode(), and result.

Referenced by SignalNodes(), and SCH_CONNECTIVITY::ENGINE::Update().

◆ RenderPinNetName()

◆ SignalNodes()

std::vector< NODE_INPUT > SCH_CONNECTIVITY::SignalNodes ( const RECORD_STORE::RECORD_CACHE & aRecords,
const SLOT_STORE::SLOT_CACHE & aSlots,
SESSION_KEYS & aKeys )

Main-thread interning of current signal records and slots for the signal fold.

A slot parent edge becomes a node edge only if a signal record claims the same name key. Two buses thus never join through a parent name that no net on that sheet uses.

Definition at line 282 of file conn_bindings.cpp.

References SCH_CONNECTIVITY::NODE_INPUT::edges, SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Entries(), SCH_CONNECTIVITY::SESSION_KEYS::InternNode(), RecordNodes(), result, and SIGNAL.

Referenced by SCH_CONNECTIVITY::ENGINE::Update().

Variable Documentation

◆ INVALID_ID