58 COMPONENT(
const wxString& aRef,
FOOTPRINT* aParentFp, std::optional<VECTOR2I> aRaOffset = std::optional<VECTOR2I>() );
169 std::vector<TOPOLOGY_MISMATCH_REASON>& aFailureDetails );
179 return a->GetPinCount() > b->GetPinCount();
187 std::vector<TOPOLOGY_MISMATCH_REASON>& aFailureDetails );
friend class CONNECTION_GRAPH
const std::map< COMPONENT *, COMPONENT * > & GetMatchingComponentPairs() const
std::vector< COMPONENT * > m_matches
std::map< COMPONENT *, COMPONENT * > m_locked
BACKTRACK_STAGE(const BACKTRACK_STAGE &other)
friend class CONNECTION_GRAPH
bool IsSameKind(const COMPONENT &b) const
const VECTOR2I GetRAOffset() const
COMPONENT(const wxString &aRef, FOOTPRINT *aParentFp, std::optional< VECTOR2I > aRaOffset=std::optional< VECTOR2I >())
FOOTPRINT * m_parentFootprint
std::optional< VECTOR2I > m_raOffset
bool MatchesWith(COMPONENT *b, TOPOLOGY_MISMATCH_REASON &aDetail)
std::vector< PIN * > & Pins()
std::vector< PIN * > m_pins
FOOTPRINT * GetParent() const
std::vector< COMPONENT * > & Components()
std::vector< COMPONENT * > m_components
void AddFootprint(FOOTPRINT *aFp, const VECTOR2I &aOffset)
static std::unique_ptr< CONNECTION_GRAPH > BuildFromFootprintSet(const std::set< FOOTPRINT * > &aFps)
bool FindIsomorphism(CONNECTION_GRAPH *target, COMPONENT_MATCHES &result, std::vector< TOPOLOGY_MISMATCH_REASON > &aFailureDetails)
std::vector< COMPONENT * > findMatchingComponents(CONNECTION_GRAPH *aRefGraph, COMPONENT *ref, const BACKTRACK_STAGE &partialMatches, std::vector< TOPOLOGY_MISMATCH_REASON > &aFailureDetails)
std::vector< PIN * > m_conns
friend class CONNECTION_GRAPH
void SetParent(COMPONENT *parent)
bool IsTopologicallySimilar(const PIN &b) const
const wxString & GetReference() const
bool IsIsomorphic(const PIN &b, TOPOLOGY_MISMATCH_REASON &aDetail) const
void AddConnection(PIN *pin)
COMPONENT * GetParent() const
const wxString Format() const
std::map< FOOTPRINT *, FOOTPRINT * > COMPONENT_MATCHES
wxString result
Test unit parsing edge cases and error handling.
VECTOR2< int32_t > VECTOR2I