27#ifndef __CONNECTIVITY_DATA_H 
   28#define __CONNECTIVITY_DATA_H 
   94                       const std::vector<BOARD_ITEM*>& aLocalItems, 
bool                               aSkipRatsnestUpdate = 
false );
 
  106    void Build( std::shared_ptr<CONNECTIVITY_DATA>& aGlobalConnectivity,
 
  107                const std::vector<BOARD_ITEM*>& aLocalItems );
 
  172                                 bool aConnectivityAlreadyRebuilt = 
false );
 
  188                             const std::initializer_list<KICAD_T>& aTypes = {} ) 
const;
 
  201                                  std::vector<PCB_VIA*>* vias );
 
  213    const std::vector<BOARD_CONNECTED_ITEM*>
 
  215                               const std::vector<KICAD_T>& aTypes, 
const int& aMaxError = 0 ) 
const;
 
  240                               VECTOR2I aInternalOffset = { 0, 0 } );
 
  250#define IGNORE_NETS 0x0001 
  251#define EXCLUDE_ZONES 0x0002 
  253                                                                int aFlags = 0 ) 
const;
 
  261    const std::vector<BOARD_CONNECTED_ITEM*>
 
  262    GetNetItems( 
int aNetCode, 
const std::vector<KICAD_T>& aTypes ) 
const;
 
  289                                                        bool aSkipInternalConnections = 
false );
 
 
A base class derived from BOARD_ITEM for items that can be connected and have a net,...
 
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
 
Information pertinent to a Pcbnew printed circuit board.
 
CN_EDGE represents a point-to-point connection, whether realized or unrealized (ie: tracks etc.
 
void FillIsolatedIslandsMap(std::map< ZONE *, std::map< PCB_LAYER_ID, ISOLATED_ISLANDS > > &aMap, bool aConnectivityAlreadyRebuilt=false)
Fill the isolate islands list for each layer of each zone.
 
void RecalculateRatsnest(BOARD_COMMIT *aCommit=nullptr)
Function RecalculateRatsnest() Updates the ratsnest for the board.
 
void ClearLocalRatsnest()
Function ClearLocalRatsnest() Erases the temporary, selection-based ratsnest (i.e.
 
PROGRESS_REPORTER * m_progressReporter
 
const std::vector< RN_DYNAMIC_LINE > & GetLocalRatsnest() const
 
unsigned int GetPadCount(int aNet=-1) const
 
void MarkItemNetAsDirty(BOARD_ITEM *aItem)
 
std::weak_ptr< NET_SETTINGS > m_netSettings
Used to get netclass data when drawing ratsnests.
 
const std::vector< BOARD_CONNECTED_ITEM * > GetConnectedItems(const BOARD_CONNECTED_ITEM *aItem, int aFlags=0) const
 
void PropagateNets(BOARD_COMMIT *aCommit=nullptr)
Propagates the net codes from the source pads to the tracks/vias.
 
void RunOnUnconnectedEdges(std::function< bool(CN_EDGE &)> aFunc)
 
std::vector< RN_DYNAMIC_LINE > m_dynamicRatsnest
 
bool m_skipRatsnestUpdate
Used to suppress ratsnest calculations on dynamic ratsnests.
 
const std::vector< CN_EDGE > GetRatsnestForPad(const PAD *aPad)
 
RN_NET * GetRatsnestForNet(int aNet)
Function GetRatsnestForNet() Returns the ratsnest, expressed as a set of graph edges for a given net.
 
const std::vector< BOARD_CONNECTED_ITEM * > GetConnectedItemsAtAnchor(const BOARD_CONNECTED_ITEM *aItem, const VECTOR2I &aAnchor, const std::vector< KICAD_T > &aTypes, const int &aMaxError=0) const
Function GetConnectedItemsAtAnchor() Returns a list of items connected to a source item aItem at posi...
 
const wxString & GetNetNameForNetCode(int nc) const
 
void ClearRatsnest()
Function Clear() Erases the connectivity database.
 
bool Remove(BOARD_ITEM *aItem)
Function Remove() Removes an item from the connectivity data.
 
void GetConnectedPadsAndVias(const BOARD_CONNECTED_ITEM *aItem, std::vector< PAD * > *pads, std::vector< PCB_VIA * > *vias)
 
const NET_SETTINGS * GetNetSettings() const
 
void ComputeLocalRatsnest(const std::vector< BOARD_ITEM * > &aItems, const CONNECTIVITY_DATA *aDynamicData, VECTOR2I aInternalOffset={ 0, 0 })
Function ComputeLocalRatsnest() Calculates the temporary (usually selection-based) ratsnest for the s...
 
bool TestTrackEndpointDangling(PCB_TRACK *aTrack, bool aIgnoreTracksInPads, VECTOR2I *aPos=nullptr) const
 
unsigned int GetNodeCount(int aNet=-1) const
 
void SetProgressReporter(PROGRESS_REPORTER *aReporter)
 
void BlockRatsnestItems(const std::vector< BOARD_ITEM * > &aItems)
 
bool IsConnectedOnLayer(const BOARD_CONNECTED_ITEM *aItem, int aLayer, const std::initializer_list< KICAD_T > &aTypes={}) const
 
const std::vector< PCB_TRACK * > GetConnectedTracks(const BOARD_CONNECTED_ITEM *aItem) const
 
const std::vector< CN_EDGE > GetRatsnestForComponent(FOOTPRINT *aComponent, bool aSkipInternalConnections=false)
 
const std::vector< BOARD_CONNECTED_ITEM * > GetNetItems(int aNetCode, const std::vector< KICAD_T > &aTypes) const
Function GetNetItems() Returns the list of items that belong to a certain net.
 
bool Add(BOARD_ITEM *aItem)
Function Add() Adds an item to the connectivity data.
 
std::shared_ptr< CN_CONNECTIVITY_ALGO > m_connAlgo
 
bool Build(BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr)
Function Build() Builds the connectivity database for the board aBoard.
 
std::shared_ptr< FROM_TO_CACHE > m_fromToCache
 
const std::vector< PAD * > GetConnectedPads(const BOARD_CONNECTED_ITEM *aItem) const
 
unsigned int GetUnconnectedCount(bool aVisibileOnly) const
 
bool HasNetNameForNetCode(int nc) const
 
std::map< int, wxString > m_netcodeMap
Used to map netcode to net name.
 
void internalRecalculateRatsnest(BOARD_COMMIT *aCommit=nullptr)
Updates the ratsnest for the board without locking the connectivity mutex.
 
void RefreshNetcodeMap(BOARD *aBoard)
Refresh the map of netcodes to net names.
 
void HideLocalRatsnest()
Hides the temporary, selection-based ratsnest lines.
 
const std::vector< CN_EDGE > GetRatsnestForItems(const std::vector< BOARD_ITEM * > &aItems)
 
void addRatsnestCluster(const std::shared_ptr< CN_CLUSTER > &aCluster)
 
std::vector< RN_NET * > m_nets
 
std::shared_ptr< FROM_TO_CACHE > GetFromToCache()
 
bool Update(BOARD_ITEM *aItem)
Function Update() Updates the connectivity data for an item.
 
void Move(const VECTOR2I &aDelta)
Moves the connectivity list anchors.
 
int GetNetCount() const
Function GetNetCount() Returns the total number of nets in the connectivity database.
 
std::shared_ptr< CN_CONNECTIVITY_ALGO > GetConnectivityAlgo() const
 
A trivial spinlock implementation with no optimization.
 
NET_SETTINGS stores various net-related settings in a project context.
 
A progress reporter interface for use in multi-threaded environments.
 
Describe ratsnest for a single net.
 
Handle a list of polygons defining a copper zone.
 
PROPAGATE_MODE
Controls how nets are propagated through clusters.
 
@ SKIP_CONFLICTS
Clusters with conflicting drivers are not updated (default)
 
@ RESOLVE_CONFLICTS
Clusters with conflicting drivers are updated to the most popular net.
 
VECTOR2< int32_t > VECTOR2I