42 if( operation.m_IsSlot )
43 layer.
m_Slots.push_back( std::move( operation ) );
45 layer.
m_Holes.push_back( std::move( operation ) );
48 m_layers.push_back( std::move( layer ) );
61 for(
const auto* operations : { &layer.m_Holes, &layer.m_Slots } )
89 bool aIgnorePlating )
const
96 auto item = layer->second.find( aItem );
98 if( item == layer->second.end() )
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Information pertinent to a Pcbnew printed circuit board.
std::map< INDEX_KEY, std::unordered_map< const BOARD_ITEM *, const DRILL_OPERATION * > > m_index
static INDEX_KEY indexKey(const DRILL_SPAN &aSpan)
std::vector< FAB_DRILL_LAYER > m_layers
FAB_DRILL_MODEL(const BOARD &aBoard)
const DRILL_OPERATION * Find(const DRILL_SPAN &aSpan, const BOARD_ITEM *aItem, bool aIgnorePlating=false) const
std::tuple< DRILL_LAYER_PAIR, bool, PCB_LAYER_ID > INDEX_KEY
Backdrills keep their start layer so a reverse backdrill on the same item stays separate.
std::vector< DRILL_SPAN > EnumerateDrillSpans(const BOARD &aBoard, bool aPadBackdrills)
Every drill span present on the board, through-holes first.
std::vector< DRILL_OPERATION > EnumerateDrillOperations(const BOARD &aBoard, const DRILL_QUERY &aQuery)
The one place that decides what the board's holes are.
One machining action, which is also one NC hit and one tool assignment.
DRILL_POST_MACHINING m_BackPostMachining
BOARD_ITEM * m_SourceItem
non-owning, valid only for this enumeration
DRILL_POST_MACHINING m_FrontPostMachining
HOLE_ATTRIBUTE m_Attribute
Selects which operations EnumerateDrillOperations() returns.
bool m_MergePTHNPTH
Emit plated and non-plated together, as the merged drill file does.
bool m_PadMachining
Include pad backdrills and post-machining, kept off for NC drill output.
DRILL_LAYER_PAIR Pair() const
PCB_LAYER_ID DrillStartLayer() const
std::vector< DRILL_OPERATION > m_Slots
std::vector< DRILL_OPERATION > m_Holes