22#ifndef __PNS_ITEMSET_H 
   23#define __PNS_ITEMSET_H 
   39    ITEM_SET( 
ITEM* aInitialItem = 
nullptr, 
bool aBecomeOwner = 
false )
 
   42            m_items.emplace_back( aInitialItem );
 
   44        if( aBecomeOwner && aInitialItem )
 
   45            aInitialItem->SetOwner( 
this );
 
 
   66    int Count( 
int aKindMask = -1 )
 const 
   71            return static_cast<int>( 
m_items.size() );
 
   75            if( item->Kind() & aKindMask )
 
 
  114        return static_cast<int>( 
m_items.size() );
 
 
  127    std::vector<ITEM*>::const_iterator 
cbegin()
 const { 
return m_items.cbegin(); }
 
  128    std::vector<ITEM*>::const_iterator 
cend()
 const   { 
return m_items.cend(); }
 
  130    void Add( 
ITEM* aItem, 
bool aBecomeOwner = 
false )
 
 
  158        std::vector<ITEM*>::iterator f = std::find( 
m_items.begin(), 
m_items.end(), aItem );
 
 
  171            if( item->OfKind( kind ) )
 
  174                    return static_cast<T*
>( item );
 
 
 
void Prepend(ITEM *aItem, bool aBecomeOwner=false)
 
ITEM_SET & operator=(const ITEM_SET &aOther)
 
int Count(int aKindMask=-1) const
 
ITEM_SET & FilterNet(NET_HANDLE aNet, bool aInvert=false)
 
std::vector< ITEM * > m_items
 
void Add(const LINE &aLine)
 
ITEM_SET & ExcludeItem(const ITEM *aItem)
 
std::vector< ITEM * >::const_iterator cbegin() const
 
ITEM_SET & FilterMarker(int aMarker, bool aInvert=false)
 
bool Contains(ITEM *aItem) const
 
ITEM_SET(const ITEM_SET &aOther)
 
ITEM_SET & FilterKinds(int aKindMask, bool aInvert=false)
 
ITEM_SET & ExcludeNet(NET_HANDLE aNet)
 
ITEM_SET & FilterLayers(int aStart, int aEnd=-1, bool aInvert=false)
 
std::vector< ITEM * > & Items()
 
ITEM_SET & ExcludeLayers(int aStart, int aEnd=-1)
 
ITEM_SET(ITEM *aInitialItem=nullptr, bool aBecomeOwner=false)
 
std::vector< ITEM * >::const_iterator cend() const
 
ITEM_SET & ExcludeKinds(int aKindMask)
 
std::vector< ITEM * >::iterator end()
 
ITEM * FindVertex(const VECTOR2I &aV) const
 
void Prepend(const LINE &aLine)
 
std::vector< ITEM * >::iterator begin()
 
ITEM * operator[](size_t aIndex) const
 
T * FindByKind(ITEM::PnsKind kind, int index=0)
 
void Add(ITEM *aItem, bool aBecomeOwner=false)
 
const std::vector< ITEM * > & CItems() const
 
Base class for PNS router board items.
 
PnsKind
< Supported item types
 
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
 
void SetOwner(const ITEM_OWNER *aOwner)
Set the node that owns this item.
 
Push and Shove diff pair dimensions (gap) settings dialog.
 
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.
 
VECTOR2< int32_t > VECTOR2I