50 virtual bool Run()
override;
52 virtual const wxString
GetName()
const override {
return wxT(
"connectivity" ); };
58 if( !
reportPhase(
_(
"Checking pad, via and zone connections..." ) ) )
62 std::shared_ptr<CONNECTIVITY_DATA> connectivity = board->
GetConnectivity();
64 int progressDelta = 250;
76 if( exceedV && exceedT )
78 else if( track->Type() ==
PCB_VIA_T && exceedV )
90 if( connectivity->TestTrackEndpointDangling( track,
true, &pos ) )
93 drcItem->SetItems( track );
107 for(
const auto& [ layer, layerIslands ] : zoneIslands )
109 for(
int polyIdx : layerIslands.m_IsolatedOutlines )
114 std::shared_ptr<SHAPE_POLY_SET> poly = zone->GetFilledPolysList( layer );
117 drcItem->SetItems( zone );
118 reportViolation( drcItem, poly->Outline( polyIdx ).CPoint( 0 ), layer );
126 if( !
reportPhase(
_(
"Checking net connections..." ) ) )
130 count = connectivity->GetUnconnectedCount(
false );
132 connectivity->RunOnUnconnectedEdges(
Information pertinent to a Pcbnew printed circuit board.
std::map< ZONE *, std::map< PCB_LAYER_ID, ISOLATED_ISLANDS > > m_ZoneIsolatedIslandsMap
const TRACKS & Tracks() const
std::shared_ptr< CONNECTIVITY_DATA > GetConnectivity() const
Return a list of missing connections between components/tracks.
CN_EDGE represents a point-to-point connection, whether realized or unrealized (ie: tracks etc.
std::shared_ptr< const CN_ANCHOR > GetSourceNode() const
std::shared_ptr< const CN_ANCHOR > GetTargetNode() const
bool IsErrorLimitExceeded(int error_code)
static std::shared_ptr< DRC_ITEM > Create(int aErrorCode)
Constructs a DRC_ITEM for the given error code.
virtual bool Run() override
Run this provider against the given PCB with configured options (if any).
virtual ~DRC_TEST_PROVIDER_CONNECTIVITY()=default
virtual const wxString GetName() const override
DRC_TEST_PROVIDER_CONNECTIVITY()
Represent a DRC "provider" which runs some DRC functions over a BOARD and spits out DRC_ITEM and posi...
virtual bool reportPhase(const wxString &aStageName)
virtual void reportViolation(std::shared_ptr< DRC_ITEM > &item, const VECTOR2I &aMarkerPos, int aMarkerLayer, DRC_CUSTOM_MARKER_HANDLER *aCustomHandler=nullptr)
virtual bool reportProgress(size_t aCount, size_t aSize, size_t aDelta=1)
static DRC_REGISTER_TEST_PROVIDER< DRC_TEST_PROVIDER_ANNULAR_WIDTH > dummy
@ PCB_VIA_T
class PCB_VIA, a via (like a track segment on a copper layer)
@ PCB_TRACE_T
class PCB_TRACK, a track segment (segment on a copper layer)