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; }
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( ¤t ); updateView( m_placer->CurrentNode( true ), current ); }
void PNS_ROUTER::DisplayItems( const PNS_ITEMSET& aItems ) { for( const PNS_ITEM* item : aItems.CItems() ) m_iface->DisplayItem( item ); }