Pcbnew: List nets fix calculation speed
Similar to 6e5726613
, we need to find net node count quickly without
iterating over all items in the board.
This commit is contained in:
parent
7343e78347
commit
39ac5e0af8
|
@ -1019,14 +1019,16 @@ int BOARD::GetNumSegmZone() const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned BOARD::GetNodesCount()
|
unsigned BOARD::GetNodesCount( int aNet )
|
||||||
{
|
{
|
||||||
unsigned retval = 0;
|
unsigned retval = 0;
|
||||||
for( auto mod : Modules() )
|
for( auto mod : Modules() )
|
||||||
{
|
{
|
||||||
for( auto pad : mod->Pads() )
|
for( auto pad : mod->Pads() )
|
||||||
if( pad->GetNetCode() > 0 )
|
{
|
||||||
|
if( ( aNet == -1 && pad->GetNetCode() > 0 ) || aNet == pad->GetNetCode() )
|
||||||
retval++;
|
retval++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
|
|
@ -689,9 +689,10 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetNodesCount
|
* Function GetNodesCount
|
||||||
|
* @param aNet Only count nodes belonging to this net
|
||||||
* @return the number of pads members of nets (i.e. with netcode > 0)
|
* @return the number of pads members of nets (i.e. with netcode > 0)
|
||||||
*/
|
*/
|
||||||
unsigned GetNodesCount();
|
unsigned GetNodesCount( int aNet = -1 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetUnconnectedNetCount
|
* Function GetUnconnectedNetCount
|
||||||
|
|
|
@ -136,9 +136,9 @@ void DIALOG_SELECT_NET_FROM_LIST::buildNetsList()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned nPads = m_brd->GetConnectivity()->GetPadCount( netcode );
|
unsigned nodes = m_brd->GetNodesCount( netcode );
|
||||||
|
|
||||||
if( !m_cbShowZeroPad->IsChecked() && nPads == 0 )
|
if( !m_cbShowZeroPad->IsChecked() && nodes == 0 )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( m_netsListGrid->GetNumberRows() <= row_idx )
|
if( m_netsListGrid->GetNumberRows() <= row_idx )
|
||||||
|
@ -151,7 +151,7 @@ void DIALOG_SELECT_NET_FROM_LIST::buildNetsList()
|
||||||
|
|
||||||
if( netcode )
|
if( netcode )
|
||||||
{
|
{
|
||||||
txt.Printf( wxT( "%u" ), nPads );
|
txt.Printf( wxT( "%u" ), nodes );
|
||||||
m_netsListGrid->SetCellValue( row_idx, COL_NETINFO, txt );
|
m_netsListGrid->SetCellValue( row_idx, COL_NETINFO, txt );
|
||||||
}
|
}
|
||||||
else // For the net 0 (unconnected pads), the pad count is not known
|
else // For the net 0 (unconnected pads), the pad count is not known
|
||||||
|
|
Loading…
Reference in New Issue