int PNS_MEANDER_SKEW_PLACER::itemsetLength( const PNS_ITEMSET& aSet ) const
{
    int total = 0;
    BOOST_FOREACH( const PNS_ITEM* item, aSet.CItems() )
    {
        if( const PNS_LINE* l = dyn_cast<const PNS_LINE*>( item ) )
        {
            total += l->CLine().Length();
        }
    }

    return total;
}
示例#2
0
void PNS_ROUTER::movePlacing( const VECTOR2I& aP, PNS_ITEM* aEndItem )
{
    m_iface->EraseView();

    m_placer->Move( aP, aEndItem );
    PNS_ITEMSET current = m_placer->Traces();

    for( const PNS_ITEM* item : current.CItems() )
    {
        if( !item->OfKind( PNS_ITEM::LINE ) )
            continue;

        const PNS_LINE* l = static_cast<const PNS_LINE*>( item );
        m_iface->DisplayItem( l );

        if( l->EndsWithVia() )
            m_iface->DisplayItem( &l->Via() );
    }

    //PNS_ITEMSET tmp( &current );

    updateView( m_placer->CurrentNode( true ), current );
}
示例#3
0
void PNS_ROUTER::DisplayItems( const PNS_ITEMSET& aItems )
{
    for( const PNS_ITEM* item : aItems.CItems() )
        m_iface->DisplayItem( item );
}