KiCad PCB EDA Suite
Loading...
Searching...
No Matches
connectivity_algo.cpp File Reference
#include <algorithm>
#include <chrono>
#include <limits>
#include <mutex>
#include <ranges>
#include <connectivity/connectivity_algo.h>
#include <core/union_find.h>
#include <progress_reporter.h>
#include <geometry/geometry_utils.h>
#include <board.h>
#include <board_commit.h>
#include <thread_pool.h>
#include <footprint.h>
#include <pad.h>
#include <pcb_shape.h>
#include <pcb_track.h>
#include <wx/log.h>

Go to the source code of this file.

Functions

static FLASHING flashingFor (const BOARD_CONNECTED_ITEM *aItem, PCB_LAYER_ID aLayer)
 
bool ItemsTouchOnLayer (const BOARD_CONNECTED_ITEM *aItemA, const BOARD_CONNECTED_ITEM *aItemB, PCB_LAYER_ID aLayer)
 Test whether two items have copper in contact on aLayer.
 

Function Documentation

◆ flashingFor()

static FLASHING flashingFor ( const BOARD_CONNECTED_ITEM * aItem,
PCB_LAYER_ID aLayer )
static

Definition at line 999 of file connectivity_algo.cpp.

References ALWAYS_FLASHED, NEVER_FLASHED, PCB_PAD_T, PCB_VIA_T, and EDA_ITEM::Type().

Referenced by ItemsTouchOnLayer().

◆ ItemsTouchOnLayer()

bool ItemsTouchOnLayer ( const BOARD_CONNECTED_ITEM * aItemA,
const BOARD_CONNECTED_ITEM * aItemB,
PCB_LAYER_ID aLayer )

Test whether two items have copper in contact on aLayer.

An item that only keeps copper where something connects is tested without it. A ring cannot be the reason for its own existence.

Definition at line 1012 of file connectivity_algo.cpp.

References flashingFor(), and BOARD_ITEM::GetEffectiveShape().

Referenced by CONNECTIVITY_DATA::IsConnectedOnLayer(), and CN_VISITOR::operator()().