KiCad PCB EDA Suite
Loading...
Searching...
No Matches
MULTICHANNEL_TOOL Class Reference

#include <multichannel_tool.h>

Inheritance diagram for MULTICHANNEL_TOOL:
PCB_TOOL_BASE PCB_PICKER_TOOL::RECEIVER TOOL_INTERACTIVE TOOL_BASE

Classes

struct  TOPOLOGY_JOB
 

Public Types

enum  RESET_REASON {
  RUN , MODEL_RELOAD , SUPERMODEL_RELOAD , GAL_SWITCH ,
  REDRAW , SHUTDOWN
}
 Determine the reason of reset for a tool. More...
 

Public Member Functions

 MULTICHANNEL_TOOL ()
 
 ~MULTICHANNEL_TOOL ()
 
int RepeatLayout (const TOOL_EVENT &aEvent, ZONE *aRefZone)
 
int RepeatLayout (const TOOL_EVENT &aEvent, RULE_AREA &aRefArea, RULE_AREA &aTargetArea, REPEAT_LAYOUT_OPTIONS &aOptions, BOARD_COMMIT *aExternalCommit=nullptr, wxString *aErrorOut=nullptr)
 
int AutogenerateRuleAreas (const TOOL_EVENT &aEvent)
 
void UpdatePickedPoint (const std::optional< VECTOR2I > &aPoint) override
 
void UpdatePickedItem (const EDA_ITEM *aItem) override
 
void ShowMismatchDetails (wxWindow *aParent, const wxString &aSummary, const std::vector< wxString > &aReasons) const
 
RULE_AREAS_DATA * GetData ()
 
void GeneratePotentialRuleAreas ()
 
void FindExistingRuleAreas ()
 
int CheckRACompatibility (ZONE *aRefZone)
 
bool UpdateLinkedLayouts (ZONE *aSource)
 Copy aSource onto the other areas of its link set, as one undo step.
 
void UnlinkAreas (const std::set< ZONE * > &aZones)
 Remove aZones from their link sets, and any area left alone in one, as one undo step.
 
void StartRepeatFromSelection (const std::vector< EDA_ITEM * > &aItems)
 Use plain selected items as the reference and discover the channels that repeat them.
 
void DiscoverRepeatCandidates (bool aLoose)
 
std::set< FOOTPRINT * > ExpandToMatchingTopology (const std::set< FOOTPRINT * > &aSeed, bool aLargest)
 Grow aSeed with the parts next to it, keeping only sets that still have an exact twin elsewhere on the board.
 
void RefreshRepeat ()
 Re-derive the channels after a tick or the anchor changed, then redraw the preview.
 
void UpdateRepeatPreview ()
 
void HighlightRepeatAreas (const RULE_AREA *aArea)
 Mark the reference parts, and the parts of aArea if given, on the board while the dialog is open.
 
int ApplyRepeat ()
 Apply what the Repeat Layout dialog shows.
 
void SetIsFootprintEditor (bool aEnabled)
 Toggle edit footprint mode.
 
bool IsFootprintEditor () const
 
void SetIsBoardEditor (bool aEnabled)
 
bool IsBoardEditor () const
 
virtual bool Is45Limited () const
 Should the tool use its 45° mode option?
 
virtual bool Is90Limited () const
 Should the tool limit drawing to horizontal and vertical only?
 
LEADER_MODE GetAngleSnapMode () const
 Get the current angle snapping mode.
 
bool GetAutoConstraints () const
 Should drawing tools author constraints automatically?
 
void Activate ()
 Run the tool.
 
TOOL_MENU & GetToolMenu ()
 
void SetContextMenu (ACTION_MENU *aMenu, CONTEXT_MENU_TRIGGER aTrigger=CMENU_BUTTON)
 Assign a context menu and tells when it should be activated.
 
void RunMainStack (std::function< void()> aFunc)
 Call a function using the main stack.
 
template<class T>
void Go (int(T::*aStateFunc)(const TOOL_EVENT &), const TOOL_EVENT_LIST &aConditions=TOOL_EVENT(TC_ANY, TA_ANY))
 Define which state (aStateFunc) to go when a certain event arrives (aConditions).
 
TOOL_EVENT * Wait (const TOOL_EVENT_LIST &aEventList=TOOL_EVENT(TC_ANY, TA_ANY))
 Suspend execution of the tool until an event specified in aEventList arrives.
 
TOOL_TYPE GetType () const
 Return the type of the tool.
 
TOOL_ID GetId () const
 Return the unique identifier of the tool.
 
const std::string & GetName () const
 Return the name of the tool.
 
TOOL_MANAGER * GetManager () const
 Return the instance of TOOL_MANAGER that takes care of the tool.
 
bool IsToolActive () const
 

Static Public Member Functions

static ZONE * ChannelZone (const PCB_GROUP *aGroup)
 The rule area zone that makes aGroup a repeated channel, or null for any other group.
 
static wxString JoinReferences (const std::set< FOOTPRINT * > &aFootprints)
 
static std::vector< NETINFO_ITEM * > IsolateDesignBlockAutoNets (BOARD *aBoard, const std::set< FOOTPRINT * > &aFootprints, const std::unordered_set< EDA_ITEM * > &aItems)
 Remap auto-generated nets (Net-(...), unconnected-...) of a design block that was appended for layout matching onto fresh private nets, so they cannot fuse by name with same-named nets that belong to different parts on the board (issue 24767).
 

Protected Types

enum  INTERACTIVE_PLACEMENT_OPTIONS { IPO_ROTATE = 0x01 , IPO_FLIP = 0x02 , IPO_SINGLE_CLICK = 0x04 , IPO_REPEAT = 0x08 }
 Options for placing items interactively. More...
 

Protected Member Functions

void doInteractiveItemPlacement (const TOOL_EVENT &aTool, INTERACTIVE_PLACER_BASE *aPlacer, const wxString &aCommitMessage, int aOptions=IPO_ROTATE|IPO_FLIP|IPO_REPEAT)
 Helper function for performing a common interactive idiom: wait for a left click, place an item there (perhaps with a dialog or other user interaction), then have it move with the mouse and respond to rotate/flip, etc.
 
KIGFX::PCB_VIEW * view () const
 
KIGFX::VIEW_CONTROLS * controls () const
 
template<class T = PCB_BASE_EDIT_FRAME>
T * frame () const
 
BOARD * board () const
 
FOOTPRINT * footprint () const
 
PCBNEW_SETTINGS::DISPLAY_OPTIONS & displayOptions () const
 
PCB_DRAW_PANEL_GAL * canvas () const
 
const PCB_SELECTION & selection () const
 
PCB_SELECTION & selection ()
 
void attachManager (TOOL_MANAGER *aManager)
 Set the TOOL_MANAGER the tool will belong to.
 
KIGFX::VIEW * getView () const
 Return the instance of KIGFX::VIEW object used in the application.
 
KIGFX::VIEW_CONTROLS * getViewControls () const
 Return the instance of VIEW_CONTROLS object used in the application.
 
template<typename T>
T * getEditFrame () const
 Return the application window object, casted to requested user type.
 
template<typename T>
T * getModel () const
 Return the model object if it matches the requested type.
 

Protected Attributes

bool m_isFootprintEditor
 
bool m_isBoardEditor
 
std::unique_ptr< TOOL_MENU > m_menu
 The functions below are not yet implemented - their interface may change.
 
TOOL_TYPE m_type
 
TOOL_ID m_toolId
 Unique id, assigned by a TOOL_MANAGER instance.
 
std::string m_toolName
 Names are expected to obey the format application.ToolName (eg.
 
TOOL_MANAGER * m_toolMgr
 

Private Member Functions

bool Init () override
 Init() is called once upon a registration of the tool.
 
void Reset (RESET_REASON aReason) override
 Bring the tool to a known, initial state.
 
void setTransitions () override
 This method is meant to be overridden in order to specify handlers for events.
 
int repeatLayout (const TOOL_EVENT &aEvent)
 
int updateLinkedLayouts (const TOOL_EVENT &aEvent)
 
int unlinkLayout (const TOOL_EVENT &aEvent)
 
int expandToMatchingTopology (const TOOL_EVENT &aEvent)
 
int expandToLargestTopology (const TOOL_EVENT &aEvent)
 
int expandSelection (bool aLargest)
 
bool routerBusy () const
 
void linkAreas (BOARD_COMMIT &aCommit, ZONE *aRefZone, const std::vector< RULE_AREA * > &aTargets)
 Link aTargets and aRefZone into one set with their own copies of the options.
 
void detachArea (BOARD_COMMIT &aCommit, ZONE *aZone)
 
void dropLoneLinks (BOARD_COMMIT &aCommit, const std::set< KIID > &aSets)
 
std::vector< RULE_AREA_COMPAT_DATA > findMatches (const std::set< FOOTPRINT * > &aSelected, bool aLoose)
 The channels elsewhere on the board that repeat the topology of aSelected.
 
bool updateSelectionCore ()
 
int applySelectionRepeat ()
 
void clearRepeatPreview ()
 
std::set< BOARD_CONNECTED_ITEM * > findRepeatRouting (RULE_AREA *aArea, const std::set< int > &aNets, const REPEAT_LAYOUT_OPTIONS &aOpts)
 The routing of aArea on aNets, the only nets a repeat ever carries.
 
void hideMovedRatsnest ()
 
void setPreviewHidden (bool aHide)
 
void closeRepeatDialog ()
 
void onRepeatDialogClosed (wxCloseEvent &aEvent)
 
int applyRepeat (BOARD_COMMIT &aCommit)
 
bool findComponentsInRuleArea (RULE_AREA *aRuleArea, std::set< FOOTPRINT * > &aComponents)
 
bool findOtherItemsInRuleArea (RULE_AREA *aRuleArea, std::set< BOARD_ITEM * > &aItems)
 
int findRoutingInRuleArea (RULE_AREA *aRuleArea, std::set< BOARD_CONNECTED_ITEM * > &aOutput) const
 
void copyRuleAreaContents (RULE_AREA *aRefArea, RULE_AREA *aTargetArea, BOARD_COMMIT *aCommit, REPEAT_LAYOUT_OPTIONS aOpts, RULE_AREA_COMPAT_DATA &aCompatData)
 
const SHAPE_LINE_CHAIN buildRAOutline (std::set< FOOTPRINT * > &aFootprints, int aMargin)
 
const SHAPE_LINE_CHAIN buildRAOutline (const std::set< BOARD_ITEM * > &aItems, int aMargin)
 
std::set< FOOTPRINT * > queryComponentsInSheet (wxString aSheetName) const
 
std::set< FOOTPRINT * > queryComponentsInComponentClass (const wxString &aComponentClassName) const
 
std::set< FOOTPRINT * > queryComponentsInGroup (const wxString &aGroupName) const
 
std::set< BOARD_ITEM * > queryBoardItemsInGroup (const wxString &aGroupName) const
 
PCB_GROUP * findPlacementGroup (const wxString &aGroupName) const
 
bool resolveConnectionTopology (RULE_AREA *aRefArea, RULE_AREA *aTargetArea, RULE_AREA_COMPAT_DATA &aMatches, const TMATCH::ISOMORPHISM_PARAMS &aParams={}, const std::unordered_set< int > &aExtraGlobalNets={})
 
bool resolveTopologies (const wxString &aTitle, const std::vector< TOPOLOGY_JOB > &aJobs)
 Resolve the topology of each job in turn on a worker thread.
 
void fixupNet (BOARD_CONNECTED_ITEM *aRef, BOARD_CONNECTED_ITEM *aTarget, bool aHasMatches, const std::map< int, int > &aNetMap)
 Attempts to make sure copied items are assigned the right net.
 
bool pruneExistingGroups (COMMIT &aCommit, const std::unordered_set< BOARD_ITEM * > &aItemsToCheck)
 
void resetTransitions ()
 Clear the current transition map and restores the default one created by setTransitions().
 
void goInternal (TOOL_STATE_FUNC &aState, const TOOL_EVENT_LIST &aConditions)
 
EDA_ITEM * getModelInternal () const
 
TOOLS_HOLDER * getToolHolderInternal () const
 

Private Attributes

std::unique_ptr< REPORTER > m_reporter
 
RULE_AREAS_DATA m_areas
 
DIALOG_MULTICHANNEL_REPEAT_LAYOUT * m_dialog = nullptr
 
std::vector< KIID > m_previewHidden
 
std::shared_ptr< KIGFX::VIEW_OVERLAY > m_highlight
 
const RULE_AREA * m_focusArea = nullptr
 
std::map< FOOTPRINT *, BOX2I > m_previewBoxes
 
std::vector< SEG > m_previewRatsnest
 

Detailed Description

Definition at line 109 of file multichannel_tool.h.

Member Enumeration Documentation

◆ INTERACTIVE_PLACEMENT_OPTIONS

Options for placing items interactively.

Enumerator
IPO_ROTATE 

Handle the rotate action in the loop by calling the item's rotate method.

IPO_FLIP 

Handle flip action in the loop by calling the item's flip method.

IPO_SINGLE_CLICK 

Create an item immediately on placement starting, otherwise show the pencil cursor until the item is created.

IPO_REPEAT 

Allow repeat placement of the item.

Definition at line 135 of file pcb_tool_base.h.

◆ RESET_REASON

enum TOOL_BASE::RESET_REASON
inherited

Determine the reason of reset for a tool.

Enumerator
RUN 

Tool is invoked after being inactive.

MODEL_RELOAD 

Model changes (the sheet for a schematic)

SUPERMODEL_RELOAD 

For schematics, the entire schematic changed, not just the sheet.

GAL_SWITCH 

Rendering engine changes.

REDRAW 

Full drawing refresh.

SHUTDOWN 

Tool is being shut down.

Definition at line 73 of file tool_base.h.

Constructor & Destructor Documentation

◆ MULTICHANNEL_TOOL()

MULTICHANNEL_TOOL::MULTICHANNEL_TOOL ( )

Definition at line 205 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::PCB_TOOL_BASE().

◆ ~MULTICHANNEL_TOOL()

MULTICHANNEL_TOOL::~MULTICHANNEL_TOOL ( )

Definition at line 210 of file multichannel_tool.cpp.

Member Function Documentation

◆ Activate()

void TOOL_INTERACTIVE::Activate ( )
inherited

Run the tool.

After activation, the tool starts receiving events until it is finished.

Definition at line 61 of file tool_interactive.cpp.

References TOOL_BASE::m_toolId, and TOOL_BASE::m_toolMgr.

Referenced by CONSTRAINT_EDIT_TOOL::AddPointConstraint(), AUTOPLACE_TOOL::autoplace(), EDIT_TOOL::copyToClipboard(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawBezier(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawEllipseArc(), DRAWING_TOOL::DrawLine(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::DrawRectangle(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), PAD_TOOL::EditPad(), PAD_TOOL::EnumeratePads(), PCB_CONTROL::GridPlaceOrigin(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), PCB_CONTROL::InteractiveDelete(), PL_EDIT_TOOL::InteractiveDelete(), SCH_TOOL_BASE< T >::InteractiveDelete(), POSITION_RELATIVE_TOOL::InteractiveOffset(), BOARD_INSPECTION_TOOL::LocalRatsnestTool(), PCB_PICKER_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_POINT_EDITOR::Main(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), PCB_GROUP_TOOL::PickNewMember(), SCH_GROUP_TOOL::PickNewMember(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), EDIT_TOOL::Remove(), ROUTER_TOOL::RouteSelected(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), DRAWING_TOOL::runSimpleShapeDraw(), PCB_PICKER_TOOL::SelectItemInteractively(), PCB_PICKER_TOOL::SelectPointInteractively(), DRAWING_TOOL::SetAnchor(), DRC_TOOL::ShowDesignRuleEditorDialog(), DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew(), DRC_TOOL::ShowDRCDialog(), and DRC_RULE_EDITOR_TOOL::ShowDRCRuleEditorDialog().

◆ ApplyRepeat()

int MULTICHANNEL_TOOL::ApplyRepeat ( )

Apply what the Repeat Layout dialog shows.

Definition at line 1992 of file multichannel_tool.cpp.

References applySelectionRepeat(), clearRepeatPreview(), m_areas, and RepeatLayout().

◆ applyRepeat()

◆ applySelectionRepeat()

◆ attachManager()

void TOOL_BASE::attachManager ( TOOL_MANAGER * aManager)
protectedinherited

Set the TOOL_MANAGER the tool will belong to.

Called by TOOL_MANAGER::RegisterTool()

Definition at line 58 of file tool_base.cpp.

References m_toolMgr, and TOOL_MANAGER.

Referenced by TOOL_MANAGER::RegisterTool().

◆ AutogenerateRuleAreas()

◆ board()

BOARD * PCB_TOOL_BASE::board ( ) const
inlineprotectedinherited

Definition at line 187 of file pcb_tool_base.h.

References TOOL_BASE::getModel().

Referenced by CONSTRAINT_EDIT_TOOL::AddPointConstraint(), CONSTRAINT_EDIT_TOOL::allMembersLocked(), PCB_CONTROL::AppendBoard(), PCB_CONTROL::ApplyDesignBlockLayout(), MULTICHANNEL_TOOL::applyRepeat(), MULTICHANNEL_TOOL::applySelectionRepeat(), BOARD_EDITOR_CONTROL::AssignNetclass(), MULTICHANNEL_TOOL::AutogenerateRuleAreas(), AUTOPLACE_TOOL::autoplace(), AUTOPLACE_TOOL::autoplaceOffboard(), BOARD_INSPECTION_TOOL::calculateSelectionRatsnest(), EDIT_TOOL::ChangeTrackWidth(), ZONE_FILLER_TOOL::CheckAllZones(), BOARD_INSPECTION_TOOL::ClearHighlight(), MULTICHANNEL_TOOL::clearRepeatPreview(), VIA_STITCH_TOOL::ClearStitchViaExclusions(), PCB_CONTROL::CollectAndEmbed3DModels(), CONSTRAINT_EDIT_TOOL::constraintParent(), MULTICHANNEL_TOOL::copyRuleAreaContents(), EDIT_TOOL::copyToClipboard(), FOOTPRINT_EDITOR_CONTROL::CreateFootprintFromWizard(), MICROWAVE_TOOL::createInductorBetween(), CONVERT_TOOL::CreatePolys(), ROUTER_TOOL::CustomTrackWidthDialog(), CONSTRAINT_EDIT_TOOL::DiagnoseAfterMove(), MULTICHANNEL_TOOL::DiscoverRepeatCandidates(), doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), DRAWING_TOOL::drawShape(), MULTICHANNEL_TOOL::dropLoneLinks(), EDIT_TOOL::Duplicate(), CONSTRAINT_EDIT_TOOL::ensureDiagnosis(), PAD_TOOL::EnumeratePads(), VIA_STITCH_TOOL::ExcludeStitchVia(), MULTICHANNEL_TOOL::ExpandToMatchingTopology(), PAD_TOOL::explodePad(), BOARD_EDITOR_CONTROL::ExportCmpFile(), BOARD_EDITOR_CONTROL::ExportHyperlynx(), BOARD_EDITOR_CONTROL::ExportNetlist(), BOARD_EDITOR_CONTROL::ExportSTEP(), BOARD_EDITOR_CONTROL::ExportVRML(), ZONE_FILLER_TOOL::FillAllZones(), EDIT_TOOL::FilletTracks(), MULTICHANNEL_TOOL::findComponentsInRuleArea(), MULTICHANNEL_TOOL::FindExistingRuleAreas(), MULTICHANNEL_TOOL::findMatches(), MULTICHANNEL_TOOL::findOtherItemsInRuleArea(), MULTICHANNEL_TOOL::findPlacementGroup(), MULTICHANNEL_TOOL::findRepeatRouting(), MULTICHANNEL_TOOL::findRoutingInRuleArea(), ROUTER_TOOL::finishInteractive(), footprint(), BOARD_EDITOR_CONTROL::GenBOMFileFromBoard(), GENERATOR_TOOL::GenEditAction(), MULTICHANNEL_TOOL::GeneratePotentialRuleAreas(), GENERATOR_TOOL::GENERATOR_TOOL(), BOARD_EDITOR_CONTROL::GenFootprintsReport(), ROUTER_TOOL::handleLayerSwitch(), MULTICHANNEL_TOOL::hideMovedRatsnest(), CONSTRAINT_EDIT_TOOL::HighlightConstraintMembers(), BOARD_INSPECTION_TOOL::HighlightNet(), BOARD_INSPECTION_TOOL::highlightNet(), BOARD_INSPECTION_TOOL::HighlightNetChain(), CONSTRAINT_EDIT_TOOL::hitTestBadge(), CONSTRAINT_EDIT_TOOL::hoverCandidates(), CONSTRAINT_EDIT_TOOL::Init(), EDIT_TOOL::Init(), ROUTER_TOOL::Init(), ROUTER_TOOL::InlineDrag(), PCB_CONTROL::InteractiveDelete(), CONSTRAINT_EDIT_TOOL::isDuplicateConstraint(), PCB_CONTROL::LayerNext(), PCB_CONTROL::LayerPrev(), GENERATOR_TOOL::MakeViaStackFromSelection(), CONSTRAINT_EDIT_TOOL::ManageConstraints(), EDIT_TOOL::Move(), EDIT_TOOL::MoveExact(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), CONSTRAINT_EDIT_TOOL::onHoverMotion(), PCB_POINT_EDITOR::OnSelectionChange(), PAD_TOOL::OnUndoRedo(), ROUTER_TOOL::onViaStackCommand(), PAD_TOOL::PadTable(), PCB_CONTROL::Paste(), PCB_CONTROL::pickDocumentationLayer(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), PCB_CONTROL::placeBoardItems(), PCB_CONTROL::placeBoardItems(), PCB_CONTROL::PlaceDrillMap(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PCB_CONTROL::placeGeneratedTable(), DRAWING_TOOL::PlaceMicroviaStack(), PAD_TOOL::PlacePad(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), MULTICHANNEL_TOOL::pruneExistingGroups(), PCB_CONTROL::pruneItemLayers(), MULTICHANNEL_TOOL::queryBoardItemsInGroup(), MULTICHANNEL_TOOL::queryComponentsInComponentClass(), MULTICHANNEL_TOOL::queryComponentsInGroup(), MULTICHANNEL_TOOL::queryComponentsInSheet(), EDIT_TOOL::rebuildConnectivity(), ZONE_FILLER_TOOL::rebuildConnectivity(), PAD_TOOL::RecombinePad(), ZONE_FILLER_TOOL::refillAroundGenerators(), GENERATOR_TOOL::RegenerateAllOfType(), ZONE_FILLER_TOOL::regenerateDirtyGenerators(), GENERATOR_TOOL::RegenerateItem(), GENERATOR_TOOL::RegenerateSelected(), PCB_CONTROL::RehatchShapes(), CONSTRAINT_EDIT_TOOL::removeConstraint(), CONSTRAINT_EDIT_TOOL::RemoveConstraints(), GENERATOR_TOOL::RemoveDeselectedEmptyPatterns(), CONSTRAINT_EDIT_TOOL::repaintShadowItems(), BOARD_EDITOR_CONTROL::RepairBoard(), FOOTPRINT_EDITOR_CONTROL::RepairFootprint(), CONSTRAINT_EDIT_TOOL::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), PAD_TOOL::Reset(), PCB_CONTROL::Reset(), PNS::TOOL_BASE::Reset(), CONSTRAINT_EDIT_TOOL::resolveConstraint(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), MULTICHANNEL_TOOL::setPreviewHidden(), BOARD_INSPECTION_TOOL::showBoardComparison(), CONSTRAINT_EDIT_TOOL::ShowConstraints(), CONSTRAINT_EDIT_TOOL::solveAddedConstraint(), CONSTRAINT_EDIT_TOOL::SolveAfterEdit(), CONSTRAINT_EDIT_TOOL::SolveAfterMove(), EDIT_TOOL::SwapGateNets(), EDIT_TOOL::SwapPadNets(), EDIT_TOOL::ToggleFootprintAttribute(), PCB_CONTROL::TrackDisplayMode(), PCB_CONTROL::unfilledZoneCheck(), CONSTRAINT_EDIT_TOOL::updateConstraintMsgPanel(), PCB_POINT_EDITOR::updateItem(), MULTICHANNEL_TOOL::UpdateLinkedLayouts(), ROUTER_TOOL::UpdateMessagePanel(), MULTICHANNEL_TOOL::UpdateRepeatPreview(), ROUTER_TOOL::updateSizesAfterRouterEvent(), PCB_CONTROL::ViaDisplayMode(), PCB_CONTROL::ZoneDisplayMode(), BOARD_EDITOR_CONTROL::ZoneDuplicate(), ZONE_FILLER_TOOL::ZoneFill(), ZONE_FILLER_TOOL::ZoneFillDirty(), BOARD_EDITOR_CONTROL::ZoneMerge(), BOARD_EDITOR_CONTROL::ZonePriorityLower(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToBottom(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToTop(), BOARD_EDITOR_CONTROL::ZonePriorityRaise(), GLOBAL_EDIT_TOOL::ZonesManager(), and ZONE_FILLER_TOOL::ZoneUnfillAll().

◆ buildRAOutline() [1/2]

const SHAPE_LINE_CHAIN MULTICHANNEL_TOOL::buildRAOutline ( const std::set< BOARD_ITEM * > & aItems,
int aMargin )
private

◆ buildRAOutline() [2/2]

const SHAPE_LINE_CHAIN MULTICHANNEL_TOOL::buildRAOutline ( std::set< FOOTPRINT * > & aFootprints,
int aMargin )
private

◆ canvas()

◆ ChannelZone()

ZONE * MULTICHANNEL_TOOL::ChannelZone ( const PCB_GROUP * aGroup)
static

The rule area zone that makes aGroup a repeated channel, or null for any other group.

Definition at line 335 of file multichannel_tool.cpp.

References ZONE::GetIsRuleArea(), EDA_GROUP::GetItems(), ZONE::GetPlacementAreaEnabled(), and PCB_ZONE_T.

Referenced by MULTICHANNEL_CONTEXT_MENU::MULTICHANNEL_CONTEXT_MENU(), and EDIT_TOOL::Properties().

◆ CheckRACompatibility()

◆ clearRepeatPreview()

◆ closeRepeatDialog()

void MULTICHANNEL_TOOL::closeRepeatDialog ( )
private

Definition at line 2293 of file multichannel_tool.cpp.

References m_dialog.

Referenced by AutogenerateRuleAreas(), repeatLayout(), Reset(), and UpdateLinkedLayouts().

◆ controls()

◆ copyRuleAreaContents()

void MULTICHANNEL_TOOL::copyRuleAreaContents ( RULE_AREA * aRefArea,
RULE_AREA * aTargetArea,
BOARD_COMMIT * aCommit,
REPEAT_LAYOUT_OPTIONS aOpts,
RULE_AREA_COMPAT_DATA & aCompatData )
private

Definition at line 3121 of file multichannel_tool.cpp.

References COMMIT::Add(), SHAPE_POLY_SET::AddOutline(), ZONE::AddPolygon(), EDA_GROUP::AsEdaItem(), PCB_TOOL_BASE::board(), SHAPE_POLY_SET::CacheTriangulation(), EDA_ITEM::ClearFlags(), collectGroupBoardItems(), LSET::Contains(), LSET::ContainsAll(), EDA_GROUP::ContainsItem(), copied, SHAPE_POLY_SET::COutline(), PCB_GENERATOR::DeepClone(), DESIGN_BLOCK, findOtherItemsInRuleArea(), findRepeatRouting(), findRoutingInRuleArea(), fixupNet(), EDA_TEXT::GetAttributes(), BOARD::GetConnectivity(), EDA_GROUP::GetItems(), BOARD_ITEM::GetLayer(), ZONE::GetLayerSet(), EDA_ITEM::GetParentGroup(), PCB_TEXT::GetPosition(), COMMIT::GetStatus(), EDA_TEXT::GetText(), PCB_TEXT::GetTextAngle(), GROUP_PLACEMENT, ZONE::HatchBorder(), isChannelNet(), BOARD_ITEM::IsKnockout(), EDA_TEXT::IsVisible(), linkedChannelGroup(), RULE_AREA_COMPAT_DATA::m_affectedItems, REPEAT_LAYOUT_OPTIONS::m_anchor, RULE_AREA::m_components, REPEAT_LAYOUT_OPTIONS::m_connectedRoutingOnly, REPEAT_LAYOUT_OPTIONS::m_copyOtherItems, REPEAT_LAYOUT_OPTIONS::m_copyPlacement, REPEAT_LAYOUT_OPTIONS::m_copyRouting, RULE_AREA::m_designBlockItems, RULE_AREA::m_fromSelection, RULE_AREA::m_group, RULE_AREA_COMPAT_DATA::m_groupableItems, REPEAT_LAYOUT_OPTIONS::m_groupItems, REPEAT_LAYOUT_OPTIONS::m_includeLockedItems, RULE_AREA_COMPAT_DATA::m_matchingComponents, RULE_AREA::m_sourceType, RULE_AREA::m_zone, COMMIT::Modify(), PCB_GENERATOR::Move(), PCB_GROUP::Move(), PCB_TEXT::Move(), ZONE::Outline(), pad, FOOTPRINT::Pads(), PCB_FOOTPRINT_T, PCB_GENERATOR_T, PCB_PAD_T, PCB_TEXT_T, PCB_ZONE_T, RECURSE, COMMIT::Remove(), ZONE::RemoveAllContours(), repeatedOutline(), BOARD_ITEM::ResetUuid(), BOARD_ITEM::ResetUuidDirect(), PCB_GENERATOR::Rotate(), PCB_GROUP::Rotate(), PCB_TEXT::Rotate(), PCB_GROUP::RunOnChildren(), RULE_AREA::ScansContents(), EDA_TEXT::SetAttributes(), BOARD_ITEM::SetIsKnockout(), BOARD_ITEM::SetLayer(), BOARD_ITEM::SetLayerSet(), EDA_ITEM::SetParentGroup(), PCB_TEXT::SetPosition(), PCB_TEXT::SetTextAngle(), EDA_TEXT::SetVisible(), traceMultichannelTool, EDA_ITEM::Type(), and ZONE::UnHatchBorder().

Referenced by applyRepeat(), and RepeatLayout().

◆ detachArea()

void MULTICHANNEL_TOOL::detachArea ( BOARD_COMMIT & aCommit,
ZONE * aZone )
private

◆ DiscoverRepeatCandidates()

◆ displayOptions()

◆ doInteractiveItemPlacement()

void PCB_TOOL_BASE::doInteractiveItemPlacement ( const TOOL_EVENT & aTool,
INTERACTIVE_PLACER_BASE * aPlacer,
const wxString & aCommitMessage,
int aOptions = IPO_ROTATE | IPO_FLIP | IPO_REPEAT )
protectedinherited

Helper function for performing a common interactive idiom: wait for a left click, place an item there (perhaps with a dialog or other user interaction), then have it move with the mouse and respond to rotate/flip, etc.

More complex interactive processes are not supported here, you should implement a customised event loop for those.

Parameters
aTool
aPlacer
aCommitMessagethe message used on a successful commit
aOptions

Definition at line 39 of file pcb_tool_base.cpp.

References TOOL_INTERACTIVE::Activate(), KIGFX::PCB_VIEW::Add(), KIGFX::VIEW_GROUP::Add(), SELECTION::Add(), PCB_ACTIONS::angleSnapModeChanged, ARROW, board(), BUT_LEFT, BUT_RIGHT, KIGFX::VIEW_CONTROLS::CaptureCursor(), SELECTION::Clear(), EDA_ITEM::ClearFlags(), controls(), INTERACTIVE_PLACER_BASE::CreateItem(), ACTIONS::cursorClick, ACTIONS::cursorDblClick, DIRECT, PCB_ACTIONS::flip, KIGFX::VIEW_CONTROLS::ForceCursorPosition(), frame(), FRAME_FOOTPRINT_EDITOR, FRAME_PCB_EDITOR, GetAppSettings(), TOOL_EVT_UTILS::GetEventRotationAngle(), EDA_ITEM::GetFlags(), TOOL_BASE::GetManager(), KIGFX::VIEW_CONTROLS::GetMousePosition(), TOOL_BASE::getView(), grid, IPO_FLIP, IPO_REPEAT, IPO_ROTATE, IPO_SINGLE_CLICK, TOOL_EVT_UTILS::IsRotateToolEvt(), PCB_VIEWERS_SETTINGS_BASE::VIEWERS_DISPLAY_OPTIONS::m_AngleSnapMode, INTERACTIVE_PLACER_BASE::m_board, INTERACTIVE_PLACER_BASE::m_frame, TOOL_INTERACTIVE::m_menu, INTERACTIVE_PLACER_BASE::m_modifiers, TOOL_BASE::m_toolMgr, PCB_VIEWERS_SETTINGS_BASE::m_ViewersDisplay, NO_RECURSE, PENCIL, PLACE, INTERACTIVE_PLACER_BASE::PlaceItem(), PCB_ACTIONS::properties, BOARD_COMMIT::Push(), ACTIONS::refreshPreview, KIGFX::PCB_VIEW::Remove(), TOOL_MANAGER::RunAction(), EVENTS::SelectedItemsModified, selection(), ACTIONS::selectionClear, KIGFX::VIEW_CONTROLS::SetAutoPan(), EDA_ITEM::SetFlags(), KIGFX::VIEW_CONTROLS::ShowCursor(), INTERACTIVE_PLACER_BASE::SnapItem(), TC_COMMAND, PCB_ACTIONS::trackViaSizeChanged, KIGFX::PCB_VIEW::Update(), view(), and TOOL_INTERACTIVE::Wait().

Referenced by MICROWAVE_TOOL::addMicrowaveFootprint(), DRAWING_TOOL::DrawVia(), PAD_TOOL::PlacePad(), and DRAWING_TOOL::PlacePoint().

◆ dropLoneLinks()

void MULTICHANNEL_TOOL::dropLoneLinks ( BOARD_COMMIT & aCommit,
const std::set< KIID > & aSets )
private

Definition at line 2687 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::board(), and detachArea().

Referenced by linkAreas(), and UnlinkAreas().

◆ expandSelection()

◆ expandToLargestTopology()

int MULTICHANNEL_TOOL::expandToLargestTopology ( const TOOL_EVENT & aEvent)
private

Definition at line 1695 of file multichannel_tool.cpp.

References expandSelection().

Referenced by setTransitions().

◆ ExpandToMatchingTopology()

std::set< FOOTPRINT * > MULTICHANNEL_TOOL::ExpandToMatchingTopology ( const std::set< FOOTPRINT * > & aSeed,
bool aLargest )

Grow aSeed with the parts next to it, keeping only sets that still have an exact twin elsewhere on the board.

One step adds a layer of neighbours. The largest form repeats that until nothing more fits, after first trying the whole sheet instance.

Definition at line 1586 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::board(), buildNetOwners(), findMatches(), RULE_AREA_COMPAT_DATA::m_searchLimit, path, and result.

Referenced by expandSelection().

◆ expandToMatchingTopology()

int MULTICHANNEL_TOOL::expandToMatchingTopology ( const TOOL_EVENT & aEvent)
private

Definition at line 1689 of file multichannel_tool.cpp.

References expandSelection().

Referenced by setTransitions().

◆ findComponentsInRuleArea()

◆ FindExistingRuleAreas()

◆ findMatches()

std::vector< RULE_AREA_COMPAT_DATA > MULTICHANNEL_TOOL::findMatches ( const std::set< FOOTPRINT * > & aSelected,
bool aLoose )
private

◆ findOtherItemsInRuleArea()

◆ findPlacementGroup()

PCB_GROUP * MULTICHANNEL_TOOL::findPlacementGroup ( const wxString & aGroupName) const
private

Definition at line 735 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::board(), and group.

Referenced by FindExistingRuleAreas().

◆ findRepeatRouting()

std::set< BOARD_CONNECTED_ITEM * > MULTICHANNEL_TOOL::findRepeatRouting ( RULE_AREA * aArea,
const std::set< int > & aNets,
const REPEAT_LAYOUT_OPTIONS & aOpts )
private

The routing of aArea on aNets, the only nets a repeat ever carries.

Unless the options restrict it to the area, each run of routing continues to the first segment outside of it.

Definition at line 2144 of file multichannel_tool.cpp.

References EDA_GROUP::AsEdaItem(), PCB_TOOL_BASE::board(), CN_ITEM::ConnectedItems(), findRoutingInRuleArea(), BOARD::GetConnectivity(), linkedChannelGroup(), REPEAT_LAYOUT_OPTIONS::m_connectedRoutingOnly, next(), PCB_ARC_T, PCB_GENERATOR_T, PCB_PAD_T, PCB_TRACE_T, PCB_VIA_T, and EDA_ITEM::Type().

Referenced by applySelectionRepeat(), and copyRuleAreaContents().

◆ findRoutingInRuleArea()

◆ fixupNet()

void MULTICHANNEL_TOOL::fixupNet ( BOARD_CONNECTED_ITEM * aRef,
BOARD_CONNECTED_ITEM * aTarget,
bool aHasMatches,
const std::map< int, int > & aNetMap )
private

Attempts to make sure copied items are assigned the right net.

Definition at line 3811 of file multichannel_tool.cpp.

References BOARD_CONNECTED_ITEM::GetNetCode(), and BOARD_CONNECTED_ITEM::SetNetCode().

Referenced by copyRuleAreaContents().

◆ footprint()

◆ frame()

template<class T = PCB_BASE_EDIT_FRAME>
T * PCB_TOOL_BASE::frame ( ) const
inlineprotectedinherited

Definition at line 182 of file pcb_tool_base.h.

References TOOL_BASE::getEditFrame(), and T.

Referenced by CONSTRAINT_EDIT_TOOL::AddConstraint(), PCB_POINT_EDITOR::addCorner(), CONSTRAINT_EDIT_TOOL::AddPointConstraint(), CONSTRAINT_EDIT_TOOL::applyDiagnostics(), MULTICHANNEL_TOOL::applySelectionRepeat(), MATCH_PROPERTIES_TOOL::applyToTargets(), MULTICHANNEL_TOOL::AutogenerateRuleAreas(), AUTOPLACE_TOOL::autoplace(), EDIT_TOOL::BooleanPolygons(), canvas(), PCB_POINT_EDITOR::chamferCorner(), EDIT_TOOL::ChangeTrackLayer(), ZONE_FILLER_TOOL::CheckAllZones(), PNS::TOOL_BASE::checkSnap(), VIA_STITCH_TOOL::ClearStitchViaExclusions(), CONSTRAINT_EDIT_TOOL::commitConstraint(), EDIT_TOOL::copyToClipboard(), FOOTPRINT_EDITOR_CONTROL::CreateFootprintFromWizard(), CONVERT_TOOL::CreateLines(), CONVERT_TOOL::CreatePolys(), ROUTER_TOOL::CustomTrackWidthDialog(), FOOTPRINT_EDITOR_CONTROL::DeleteFootprint(), EDIT_TOOL::DeleteItems(), CONSTRAINT_EDIT_TOOL::DiagnoseAfterMove(), displayOptions(), BOARD_EDITOR_CONTROL::doCrossProbePcbToSch(), doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), ROUTER_TOOL::DpDimensionsDialog(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawVia(), DRAWING_TOOL::DrawZone(), CONSTRAINT_EDIT_TOOL::editConstraint(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PAD_TOOL::EditPad(), PCB_EDIT_TABLE_TOOL::EditTable(), MATCH_PROPERTIES_TOOL::enabledKeys(), PAD_TOOL::enterPadEditMode(), PAD_TOOL::EnumeratePads(), VIA_STITCH_TOOL::ExcludeStitchVia(), PAD_TOOL::ExitPadEditMode(), MULTICHANNEL_TOOL::expandSelection(), BOARD_EDITOR_CONTROL::ExportSpecctraDSN(), PCB_EDIT_TABLE_TOOL::ExportTableToCSV(), ZONE_FILLER_TOOL::FillAllZones(), EDIT_TOOL::FilletTracks(), CONSTRAINT_EDIT_TOOL::finishConstraintCommit(), ROUTER_TOOL::finishInteractive(), DRC_TOOL::FixDRCErrorMenuText(), EDIT_TOOL::Flip(), EDIT_TOOL::GetAndPlace(), GetAngleSnapMode(), GetAutoConstraints(), GLOBAL_EDIT_TOOL::GlobalDeletions(), ROUTER_TOOL::handleLayerSwitch(), EDIT_TOOL::HealShapes(), BOARD_INSPECTION_TOOL::HighlightItem(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), BOARD_EDITOR_CONTROL::ImportSpecctraSession(), EDIT_TOOL::Init(), PCB_PICKER_TOOL::Init(), ROUTER_TOOL::Init(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), POSITION_RELATIVE_TOOL::InteractiveOffset(), EDIT_TOOL::invokeInlineRouter(), PCB_PICKER_TOOL::Main(), ROUTER_TOOL::MainLoop(), GENERATOR_TOOL::MakeViaStackFromSelection(), CONSTRAINT_EDIT_TOOL::ManageConstraints(), MATCH_PROPERTIES_TOOL::Match(), EDIT_TOOL::Mirror(), EDIT_TOOL::ModifyLines(), EDIT_TOOL::MoveExact(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::onViaCommand(), ROUTER_TOOL::onViaStackCommand(), ROUTER_TOOL::OptimizeSelected(), CONVERT_TOOL::OutsetItems(), PAD_TOOL::PadTable(), PAD_TOOL::pastePadProperties(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), PNS::TOOL_BASE::pickSingleItem(), PAD_TOOL::PlacePad(), DRAWING_TOOL::PlacePoint(), DRAWING_TOOL::PlaceText(), ROUTER_TOOL::prepareInteractive(), EDIT_TOOL::Properties(), PAD_TOOL::pushPadSettings(), GENERATOR_TOOL::RegenerateAllOfType(), GENERATOR_TOOL::RegenerateItem(), GENERATOR_TOOL::RegenerateSelected(), POSITION_RELATIVE_TOOL::RelativeItemSelectionMove(), PCB_POINT_EDITOR::removeCorner(), GENERATOR_TOOL::RemoveDeselectedEmptyPatterns(), CONSTRAINT_EDIT_TOOL::renderConstraintViews(), MULTICHANNEL_TOOL::RepeatLayout(), MULTICHANNEL_TOOL::RepeatLayout(), MULTICHANNEL_TOOL::repeatLayout(), CONSTRAINT_EDIT_TOOL::Reset(), DIFF_PHASE_SKEW_TOOL::Reset(), PAD_TOOL::Reset(), PNS::TOOL_BASE::Reset(), MULTICHANNEL_TOOL::resolveTopologies(), EDIT_TOOL::Rotate(), ROUTER_TOOL::RouteSelected(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), ROUTER_TOOL::saveRouterDebugLog(), CONVERT_TOOL::SegmentToArc(), ROUTER_TOOL::SelectCopperLayerPair(), PCB_PICKER_TOOL::SelectItemInteractively(), PCB_PICKER_TOOL::SelectPointInteractively(), PCB_POINT_EDITOR::setEditedPoint(), CONSTRAINT_EDIT_TOOL::setSelectedConstraint(), ROUTER_TOOL::SettingsDialog(), CONSTRAINT_EDIT_TOOL::ShowConstraints(), FOOTPRINT_EDITOR_CONTROL::ShowDatasheet(), PCB_CONTROL::ShowDrillGroups(), BOARD_EDITOR_CONTROL::ShowEeschema(), GENERATOR_TOOL::ShowGeneratorsManager(), MULTICHANNEL_TOOL::ShowMismatchDetails(), MATCH_PROPERTIES_TOOL::showSettingsDialog(), EDIT_TOOL::SimplifyPolygons(), GLOBAL_EDIT_TOOL::swapBoardItem(), EDIT_TOOL::SwapGateNets(), GLOBAL_EDIT_TOOL::SwapLayers(), EDIT_TOOL::SwapPadNets(), ROUTER_TOOL::switchLayerOnViaPlacement(), CONSTRAINT_EDIT_TOOL::ToggleAutoConstraints(), EDIT_TOOL::ToggleFootprintAttribute(), MULTICHANNEL_TOOL::unlinkLayout(), CONSTRAINT_EDIT_TOOL::updateConstraintMsgPanel(), PCB_POINT_EDITOR::updateItem(), MULTICHANNEL_TOOL::UpdateLinkedLayouts(), MULTICHANNEL_TOOL::updateLinkedLayouts(), ROUTER_TOOL::UpdateMessagePanel(), DIFF_PHASE_SKEW_TOOL::updateMessagePanel(), EDIT_TOOL::updateModificationPoint(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), ZONE_FILLER_TOOL::ZoneFill(), ZONE_FILLER_TOOL::ZoneFillAll(), and ZONE_FILLER_TOOL::ZoneFillDirty().

◆ GeneratePotentialRuleAreas()

◆ GetAngleSnapMode()

◆ GetAutoConstraints()

bool PCB_TOOL_BASE::GetAutoConstraints ( ) const
inherited

◆ GetData()

◆ getEditFrame()

template<typename T>
T * TOOL_BASE::getEditFrame ( ) const
inlineprotectedinherited

Return the application window object, casted to requested user type.

Definition at line 182 of file tool_base.h.

References getToolHolderInternal(), and T.

Referenced by PCB_POINT_EDITOR::addCorner(), BOARD_EDITOR_CONTROL::BoardSetup(), PCB_POINT_EDITOR::chamferCorner(), PCB_POINT_EDITOR::changeArcEditMode(), ZONE_FILLER_TOOL::CheckAllZones(), FOOTPRINT_EDITOR_CONTROL::CleanupGraphics(), GLOBAL_EDIT_TOOL::CleanupGraphics(), GLOBAL_EDIT_TOOL::CleanupTracksAndVias(), EDIT_TOOL::copyToClipboard(), ARRAY_TOOL::CreateArray(), MICROWAVE_TOOL::createBaseFootprint(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createInductorBetween(), CONVERT_TOOL::CreateLines(), MICROWAVE_TOOL::createMicrowaveInductor(), MICROWAVE_TOOL::createPolygonShape(), CONVERT_TOOL::CreatePolys(), FOOTPRINT_EDITOR_CONTROL::DeleteFootprint(), EDIT_TOOL::DeleteItems(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), COMMON_TOOLS::doZoomFit(), MICROWAVE_TOOL::drawMicrowaveInductor(), EDIT_TOOL::Duplicate(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PCB_SELECTION_TOOL::editFrame(), GLOBAL_EDIT_TOOL::EditTeardrops(), FOOTPRINT_EDITOR_CONTROL::EditTextAndGraphics(), GLOBAL_EDIT_TOOL::EditTextAndGraphics(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), EDIT_TOOL::EditVertices(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), BOARD_EDITOR_CONTROL::ExportSpecctraDSN(), ZONE_FILLER_TOOL::FillAllZones(), FOOTPRINT_WIZARD_TOOLS::frame(), PCB_SELECTION_TOOL::frame(), PCB_TEST_SELECTION_TOOL::frame(), PCB_TOOL_BASE::frame(), PCB_VIEWER_TOOLS::frame(), SCH_TOOL_BASE< T >::frame(), BOARD_EDITOR_CONTROL::GenerateDrillFiles(), BOARD_EDITOR_CONTROL::GeneratePosFile(), GLOBAL_EDIT_TOOL::GlobalDeletions(), PCB_CONTROL::GridPlaceOrigin(), BOARD_EDITOR_CONTROL::ImportNetlist(), BOARD_EDITOR_CONTROL::ImportSpecctraSession(), ALIGN_DISTRIBUTE_TOOL::Init(), BOARD_EDITOR_CONTROL::Init(), CONVERT_TOOL::Init(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Init(), DRAWING_TOOL::Init(), GERBVIEW_SELECTION_TOOL::Init(), GROUP_TOOL::Init(), PAD_TOOL::Init(), PCB_DESIGN_BLOCK_CONTROL::Init(), PCB_PICKER_TOOL::Init(), PCB_SELECTION_TOOL::Init(), PCB_TOOL_BASE::Init(), PICKER_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_EDITOR_CONTROL::Init(), PL_POINT_EDITOR::Init(), PL_SELECTION_TOOL::Init(), ROUTER_TOOL::Init(), SCH_DESIGN_BLOCK_CONTROL::Init(), SCH_SELECTION_TOOL::Init(), SCH_TOOL_BASE< T >::Init(), ZOOM_TOOL::Init(), ROUTER_TOOL::InlineDrag(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), ROUTER_TOOL::MainLoop(), GLOBAL_EDIT_TOOL::Migrate3DModels(), PCB_POINT_EDITOR::movePoint(), BOARD_EDITOR_CONTROL::OnAngleSnapModeChanged(), FOOTPRINT_EDITOR_CONTROL::OnAngleSnapModeChanged(), ARRAY_TOOL::onDialogClosed(), SELECTION_TOOL::onDisambiguationExpire(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONVERT_TOOL::OutsetItems(), ROUTER_TOOL::performRouting(), EDIT_TOOL::pickReferencePoint(), POSITION_RELATIVE_TOOL::PositionRelative(), ROUTER_TOOL::prepareInteractive(), EDIT_TOOL::Properties(), FOOTPRINT_EDITOR_CONTROL::Properties(), EDIT_TOOL::Remove(), PCB_POINT_EDITOR::removeCorner(), GLOBAL_EDIT_TOOL::RemoveUnusedPads(), BOARD_EDITOR_CONTROL::Reset(), BOARD_INSPECTION_TOOL::Reset(), BOARD_REANNOTATE_TOOL::Reset(), COMMON_CONTROL::Reset(), COMMON_TOOLS::Reset(), CVPCB_ASSOCIATION_TOOL::Reset(), CVPCB_CONTROL::Reset(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Reset(), DESIGN_BLOCK_CONTROL::Reset(), DRAWING_TOOL::Reset(), DRC_RULE_EDITOR_TOOL::Reset(), DRC_TOOL::Reset(), EDIT_TOOL::Reset(), FOOTPRINT_EDITOR_CONTROL::Reset(), GERBVIEW_CONTROL::Reset(), GERBVIEW_INSPECTION_TOOL::Reset(), GERBVIEW_SELECTION_TOOL::Reset(), GROUP_TOOL::Reset(), KICAD_MANAGER_CONTROL::Reset(), LIBRARY_EDITOR_CONTROL::Reset(), PCB_CONTROL::Reset(), PCB_POINT_EDITOR::Reset(), PCB_SELECTION_TOOL::Reset(), PL_DRAWING_TOOLS::Reset(), PL_EDIT_TOOL::Reset(), PL_EDITOR_CONTROL::Reset(), PL_POINT_EDITOR::Reset(), PL_SELECTION_TOOL::Reset(), SCH_SELECTION_TOOL::Reset(), SIMULATOR_CONTROL::Reset(), ZOOM_TOOL::Reset(), FOOTPRINT_EDITOR_CONTROL::Revert(), EDIT_TOOL::Rotate(), ROUTER_TOOL::RouteSelected(), ROUTER_TOOL::saveRouterDebugLog(), CONVERT_TOOL::SegmentToArc(), GERBVIEW_SELECTION_TOOL::selectable(), SCH_SELECTION_TOOL::SelectMultiple(), BOARD_EDITOR_CONTROL::ToggleConstraintsPanel(), BOARD_EDITOR_CONTROL::ToggleGitCommitPane(), BOARD_EDITOR_CONTROL::ToggleLayersManager(), BOARD_EDITOR_CONTROL::ToggleLibraryTree(), BOARD_EDITOR_CONTROL::ToggleNetInspector(), BOARD_EDITOR_CONTROL::ToggleProperties(), BOARD_EDITOR_CONTROL::ToggleSearch(), PROPERTIES_TOOL::UpdateProperties(), ZONE_FILLER_TOOL::ZoneFillDirty(), and GLOBAL_EDIT_TOOL::ZonesManager().

◆ GetId()

TOOL_ID TOOL_BASE::GetId ( ) const
inlineinherited

Return the unique identifier of the tool.

The identifier is set by an instance of TOOL_MANAGER.

Returns
Identifier of the tool.

Definition at line 119 of file tool_base.h.

References m_toolId.

Referenced by TOOL_MANAGER::finishTool(), TOOL_MANAGER::InitTools(), TOOL_MANAGER::isActive(), TOOL_MANAGER::RegisterTool(), ACTION_MANAGER::RunHotKey(), TOOL_MANAGER::runTool(), and TOOL_MANAGER::saveViewControls().

◆ GetManager()

◆ getModel()

◆ getModelInternal()

EDA_ITEM * TOOL_BASE::getModelInternal ( ) const
privateinherited

Definition at line 52 of file tool_base.cpp.

References m_toolMgr.

Referenced by getModel().

◆ GetName()

const std::string & TOOL_BASE::GetName ( ) const
inlineinherited

Return the name of the tool.

Tool names are expected to obey the format: application.ToolName (eg. pcbnew.InteractiveSelection).

Returns
The name of the tool.

Definition at line 132 of file tool_base.h.

References m_toolName.

Referenced by PCB_CONTROL::AppendBoard(), TOOL_MANAGER::dispatchInternal(), COMMON_TOOLS::GridProperties(), TOOL_MANAGER::InitTools(), TOOL_MANAGER::invokeTool(), TOOL_MANAGER::RegisterTool(), TOOL_MANAGER::ResetTools(), TOOL_MANAGER::runTool(), SCH_TOOL_BASE< SCH_BASE_FRAME >::SetContextMenu(), and TOOL_MANAGER::ShutdownTool().

◆ getToolHolderInternal()

TOOLS_HOLDER * TOOL_BASE::getToolHolderInternal ( ) const
privateinherited

Definition at line 46 of file tool_base.cpp.

References m_toolMgr.

Referenced by getEditFrame().

◆ GetToolMenu()

◆ GetType()

TOOL_TYPE TOOL_BASE::GetType ( ) const
inlineinherited

Return the type of the tool.

Returns
The type of the tool.

Definition at line 107 of file tool_base.h.

References m_type.

Referenced by TOOL_MANAGER::InvokeTool(), TOOL_MANAGER::InvokeTool(), TOOL_MANAGER::ResetTools(), TOOL_MANAGER::runTool(), TOOL_MANAGER::ShutdownTool(), and TOOL_MANAGER::ShutdownTool().

◆ getView()

KIGFX::VIEW * TOOL_BASE::getView ( ) const
protectedinherited

Return the instance of KIGFX::VIEW object used in the application.

It allows tools to draw.

Returns
The instance of KIGFX::VIEW.

Definition at line 34 of file tool_base.cpp.

References m_toolMgr.

Referenced by ALIGN_DISTRIBUTE_TOOL::AlignLeft(), ALIGN_DISTRIBUTE_TOOL::AlignRight(), GERBVIEW_CONTROL::ClearAllLayers(), MULTICHANNEL_TOOL::clearRepeatPreview(), PL_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::CollectHits(), PCB_SELECTION_TOOL::CollectMultiple(), COMMON_TOOLS::CursorControl(), EDIT_TOOL::DeleteItems(), COMMON_TOOLS::doCenter(), PL_EDIT_TOOL::DoDelete(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), COMMON_TOOLS::doZoomInOut(), COMMON_TOOLS::doZoomToPreset(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), SCH_SELECTION_TOOL::EnterGroup(), PAD_TOOL::EnumeratePads(), SCH_SELECTION_TOOL::ExitGroup(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), SCH_SELECTION_TOOL::GetNode(), ROUTER_TOOL::getStartLayer(), PCB_CONTROL::GridPlaceOrigin(), PCB_CONTROL::GridResetOrigin(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), ROUTER_TOOL::handleCommonEvents(), PCB_SELECTION_TOOL::highlight(), PL_SELECTION_TOOL::highlight(), SCH_SELECTION_TOOL::highlight(), GERBVIEW_CONTROL::HighlightControl(), BOARD_INSPECTION_TOOL::highlightNet(), PNS::TOOL_BASE::highlightNets(), MULTICHANNEL_TOOL::HighlightRepeatAreas(), CONSTRAINT_EDIT_TOOL::hitTestBadge(), PCB_SELECTION_TOOL::hitTestDistance(), EDIT_TOOL::Init(), ROUTER_TOOL::InlineDrag(), PCB_CONTROL::InteractiveDelete(), PL_EDIT_TOOL::InteractiveDelete(), POSITION_RELATIVE_TOOL::InteractiveOffset(), PCB_PICKER_TOOL::Main(), PL_POINT_EDITOR::Main(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), EDIT_TOOL::MoveExact(), PL_EDIT_TOOL::moveItem(), COMMON_TOOLS::OnGridChanged(), CONSTRAINT_EDIT_TOOL::onHoverMotion(), PCB_POINT_EDITOR::OnSelectionChange(), COMMON_TOOLS::PanControl(), CONSTRAINT_EDIT_TOOL::pcbRenderSettings(), ROUTER_TOOL::performRouting(), PNS::TOOL_BASE::pickSingleItem(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), ROUTER_TOOL::prepareInteractive(), EDIT_TOOL::Properties(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), GERBVIEW_CONTROL::ReloadAllLayers(), CONSTRAINT_EDIT_TOOL::repaintShadowItems(), MULTICHANNEL_TOOL::repeatLayout(), BOARD_EDITOR_CONTROL::Reset(), CONSTRAINT_EDIT_TOOL::Reset(), DIFF_PHASE_SKEW_TOOL::Reset(), DRAWING_TOOL::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), GERBVIEW_SELECTION_TOOL::Reset(), PCB_CONTROL::Reset(), PCB_POINT_EDITOR::Reset(), PCB_SELECTION_TOOL::Reset(), PL_POINT_EDITOR::Reset(), PNS::TOOL_BASE::Reset(), SCH_SELECTION_TOOL::Reset(), GERBVIEW_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectConnection(), PCB_SELECTION_TOOL::selectionContains(), PL_SELECTION_TOOL::selectionContains(), SCH_SELECTION_TOOL::selectionContains(), SCH_SELECTION_TOOL::selectLasso(), SCH_SELECTION_TOOL::SelectMultiple(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), PL_SELECTION_TOOL::SelectPoint(), PCB_TEST_SELECTION_TOOL::selectPoint(), SCH_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::SelectPolyArea(), ZOOM_TOOL::selectRegion(), GERBVIEW_SELECTION_TOOL::selectVisually(), DRAWING_TOOL::SetAnchor(), MULTICHANNEL_TOOL::setPreviewHidden(), CONSTRAINT_EDIT_TOOL::ShowConstraints(), DRAWING_TOOL::snapEventPosition(), SCH_SELECTION_TOOL::SyncSelection(), PCB_SELECTION_TOOL::unhighlight(), PCB_TEST_SELECTION_TOOL::unhighlight(), PL_SELECTION_TOOL::unhighlight(), SCH_SELECTION_TOOL::unhighlight(), GERBVIEW_SELECTION_TOOL::unselect(), PCB_SELECTION_TOOL::UnselectAll(), SCH_SELECTION_TOOL::UnselectAll(), GERBVIEW_SELECTION_TOOL::unselectVisually(), PCB_POINT_EDITOR::updateEditedPoint(), PL_POINT_EDITOR::updateEditedPoint(), PCB_POINT_EDITOR::updateItem(), PL_POINT_EDITOR::updateItem(), PCB_POINT_EDITOR::updatePoints(), PL_POINT_EDITOR::updatePoints(), MULTICHANNEL_TOOL::UpdateRepeatPreview(), PCB_SELECTION_TOOL::updateSelection(), SCH_SELECTION_TOOL::updateSelection(), PNS::TOOL_BASE::updateStartItem(), PCB_SELECTION_TOOL::view(), PCB_TEST_SELECTION_TOOL::view(), PCB_TOOL_BASE::view(), PCB_VIEWER_TOOLS::view(), PCB_SELECTION_TOOL::ZoomFitCrossProbeBBox(), SCH_SELECTION_TOOL::ZoomFitCrossProbeBBox(), PCB_SELECTION_TOOL::zoomFitSelection(), GERBVIEW_SELECTION_TOOL::~GERBVIEW_SELECTION_TOOL(), PCB_SELECTION_TOOL::~PCB_SELECTION_TOOL(), and SCH_SELECTION_TOOL::~SCH_SELECTION_TOOL().

◆ getViewControls()

KIGFX::VIEW_CONTROLS * TOOL_BASE::getViewControls ( ) const
protectedinherited

Return the instance of VIEW_CONTROLS object used in the application.

It allows tools to read & modify user input and its settings (eg. show cursor, enable snapping to grid, etc.).

Returns
The instance of VIEW_CONTROLS.

Definition at line 40 of file tool_base.cpp.

References m_toolMgr.

Referenced by PCB_POINT_EDITOR::addCorner(), SCH_SELECTION_TOOL::autostartEvent(), PCB_POINT_EDITOR::chamferCorner(), PCB_SELECTION_TOOL::controls(), PCB_TEST_SELECTION_TOOL::controls(), PCB_TOOL_BASE::controls(), EDIT_TOOL::copyToClipboard(), COMMON_TOOLS::CursorControl(), EDIT_TOOL::DeleteItems(), EDIT_TOOL::doMoveSelection(), COMMON_TOOLS::doZoomToPreset(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawLine(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::DrawRectangle(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), BOARD_INSPECTION_TOOL::HighlightNet(), BOARD_INSPECTION_TOOL::HighlightNetChain(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), SCH_TOOL_BASE< T >::Increment(), EDIT_TOOL::Init(), POSITION_RELATIVE_TOOL::InteractiveOffset(), PCB_PICKER_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_POINT_EDITOR::Main(), SCH_SELECTION_TOOL::Main(), ROUTER_TOOL::MainLoop(), PCB_POINT_EDITOR::makePoints(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), COMMON_TOOLS::OnGridChanged(), CONSTRAINT_EDIT_TOOL::onHoverMotion(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), PCB_CONTROL::placeBoardItems(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceTuningPattern(), EDIT_TOOL::Properties(), PL_SELECTION_TOOL::RequestSelection(), SCH_SELECTION_TOOL::RequestSelection(), DIFF_PHASE_SKEW_TOOL::Reset(), DRAWING_TOOL::Reset(), PCB_POINT_EDITOR::Reset(), COMMON_TOOLS::ResetLocalCoords(), ROUTER_TOOL::RouteSelected(), MATCH_PROPERTIES_TOOL::runInteractive(), DRAWING_TOOL::runSimpleShapeDraw(), PCB_SELECTION_TOOL::selectCursor(), SCH_SELECTION_TOOL::selectLasso(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::SelectNode(), PCB_SELECTION_TOOL::SelectPolyArea(), ZOOM_TOOL::selectRegion(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), ALIGN_DISTRIBUTE_TOOL::selectTarget(), PCB_PICKER_TOOL::setControls(), PICKER_TOOL::setControls(), PCB_POINT_EDITOR::setEditedPoint(), PL_POINT_EDITOR::setEditedPoint(), DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew(), PCB_POINT_EDITOR::updateEditedPoint(), PL_POINT_EDITOR::updateEditedPoint(), PL_EDIT_TOOL::updateModificationPoint(), and COMMON_TOOLS::ZoomCenter().

◆ Go()

template<class T>
void TOOL_INTERACTIVE::Go ( int(T::* aStateFunc )(const TOOL_EVENT &),
const TOOL_EVENT_LIST & aConditions = TOOL_EVENT( TC_ANY, TA_ANY ) )
inherited

Define which state (aStateFunc) to go when a certain event arrives (aConditions).

No conditions means any event.

Definition at line 143 of file tool_interactive.h.

References goInternal(), and T.

Referenced by ALIGN_DISTRIBUTE_TOOL::setTransitions(), ARRAY_TOOL::setTransitions(), AUTOPLACE_TOOL::setTransitions(), BOARD_EDITOR_CONTROL::setTransitions(), BOARD_INSPECTION_TOOL::setTransitions(), BOARD_REANNOTATE_TOOL::setTransitions(), COMMON_CONTROL::setTransitions(), COMMON_TOOLS::setTransitions(), CONSTRAINT_EDIT_TOOL::setTransitions(), CONVERT_TOOL::setTransitions(), CVPCB_ASSOCIATION_TOOL::setTransitions(), CVPCB_CONTROL::setTransitions(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::setTransitions(), DESIGN_BLOCK_CONTROL::setTransitions(), DIFF_PHASE_SKEW_TOOL::setTransitions(), DRAWING_TOOL::setTransitions(), DRC_RULE_EDITOR_TOOL::setTransitions(), DRC_TOOL::setTransitions(), EDA_3D_CONTROLLER::setTransitions(), EDIT_TOOL::setTransitions(), EMBED_TOOL::setTransitions(), FOOTPRINT_CHOOSER_SELECTION_TOOL::setTransitions(), FOOTPRINT_EDITOR_CONTROL::setTransitions(), FOOTPRINT_WIZARD_TOOLS::setTransitions(), GENERATOR_TOOL::setTransitions(), GERBVIEW_CONTROL::setTransitions(), GERBVIEW_INSPECTION_TOOL::setTransitions(), GERBVIEW_SELECTION_TOOL::setTransitions(), GLOBAL_EDIT_TOOL::setTransitions(), GRAPHIC_EDIT_TOOL::setTransitions(), GROUP_TOOL::setTransitions(), KICAD_MANAGER_CONTROL::setTransitions(), LIBRARY_EDITOR_CONTROL::setTransitions(), MATCH_PROPERTIES_TOOL::setTransitions(), MICROWAVE_TOOL::setTransitions(), MULTICHANNEL_TOOL::setTransitions(), PAD_TOOL::setTransitions(), PCB_CONTROL::setTransitions(), PCB_DESIGN_BLOCK_CONTROL::setTransitions(), PCB_EDIT_TABLE_TOOL::setTransitions(), PCB_PICKER_TOOL::setTransitions(), PCB_POINT_EDITOR::setTransitions(), PCB_SELECTION_TOOL::setTransitions(), PCB_TEST_SELECTION_TOOL::setTransitions(), PCB_VIEWER_TOOLS::setTransitions(), PICKER_TOOL::setTransitions(), PL_DRAWING_TOOLS::setTransitions(), PL_EDIT_TOOL::setTransitions(), PL_EDITOR_CONTROL::setTransitions(), PL_POINT_EDITOR::setTransitions(), PL_SELECTION_TOOL::setTransitions(), POSITION_RELATIVE_TOOL::setTransitions(), PROPERTIES_TOOL::setTransitions(), ROUTER_TOOL::setTransitions(), SCH_DESIGN_BLOCK_CONTROL::setTransitions(), SCH_SELECTION_TOOL::setTransitions(), SIMULATOR_CONTROL::setTransitions(), VIA_STITCH_TOOL::setTransitions(), ZONE_FILLER_TOOL::setTransitions(), and ZOOM_TOOL::setTransitions().

◆ goInternal()

void TOOL_INTERACTIVE::goInternal ( TOOL_STATE_FUNC & aState,
const TOOL_EVENT_LIST & aConditions )
privateinherited

Definition at line 80 of file tool_interactive.cpp.

Referenced by Go().

◆ hideMovedRatsnest()

◆ HighlightRepeatAreas()

void MULTICHANNEL_TOOL::HighlightRepeatAreas ( const RULE_AREA * aArea)

◆ Init()

bool MULTICHANNEL_TOOL::Init ( )
overrideprivatevirtual

Init() is called once upon a registration of the tool.

Returns
True if the initialization went fine, false - otherwise.

Reimplemented from PCB_TOOL_BASE.

Definition at line 398 of file multichannel_tool.cpp.

References CONDITIONAL_MENU::AddMenu(), TOOL_MENU::GetMenu(), TOOL_INTERACTIVE::GetToolMenu(), SELECTION_CONDITIONS::HasTypes(), TOOL_BASE::m_toolMgr, and TOOL_MENU::RegisterSubMenu().

◆ Is45Limited()

bool PCB_TOOL_BASE::Is45Limited ( ) const
virtualinherited

Should the tool use its 45° mode option?

Returns
True if set to use 45°

Definition at line 369 of file pcb_tool_base.cpp.

References DIRECT, and GetAngleSnapMode().

Referenced by PCB_POINT_EDITOR::OnSelectionChange().

◆ Is90Limited()

bool PCB_TOOL_BASE::Is90Limited ( ) const
virtualinherited

Should the tool limit drawing to horizontal and vertical only?

Definition at line 374 of file pcb_tool_base.cpp.

References DEG90, and GetAngleSnapMode().

Referenced by PCB_POINT_EDITOR::OnSelectionChange(), and PCB_POINT_EDITOR::setAltConstraint().

◆ IsBoardEditor()

bool PCB_TOOL_BASE::IsBoardEditor ( ) const
inlineinherited

Definition at line 108 of file pcb_tool_base.h.

References m_isBoardEditor.

Referenced by makeMirrorRotateMenu().

◆ IsFootprintEditor()

◆ IsolateDesignBlockAutoNets()

std::vector< NETINFO_ITEM * > MULTICHANNEL_TOOL::IsolateDesignBlockAutoNets ( BOARD * aBoard,
const std::set< FOOTPRINT * > & aFootprints,
const std::unordered_set< EDA_ITEM * > & aItems )
static

Remap auto-generated nets (Net-(...), unconnected-...) of a design block that was appended for layout matching onto fresh private nets, so they cannot fuse by name with same-named nets that belong to different parts on the board (issue 24767).

Returns the created nets so the caller can remove them after the temporary block is reverted.

Definition at line 3829 of file multichannel_tool.cpp.

References BOARD::Add(), BOARD::FindNet(), NETINFO_ITEM::GetNetname(), name, and pad.

Referenced by PCB_CONTROL::ApplyDesignBlockLayout(), and BOOST_FIXTURE_TEST_CASE().

◆ IsToolActive()

◆ JoinReferences()

wxString MULTICHANNEL_TOOL::JoinReferences ( const std::set< FOOTPRINT * > & aFootprints)
static

◆ linkAreas()

void MULTICHANNEL_TOOL::linkAreas ( BOARD_COMMIT & aCommit,
ZONE * aRefZone,
const std::vector< RULE_AREA * > & aTargets )
private

Link aTargets and aRefZone into one set with their own copies of the options.

Definition at line 2646 of file multichannel_tool.cpp.

References anchor, anchorPair(), dropLoneLinks(), BOARD_ITEM::GetBoard(), ZONE::GetLinkSet(), REPEAT_LAYOUT_OPTIONS::m_anchor, m_areas, COMMIT::Modify(), niluuid, ZONE::SetLinkSet(), and ZONE::SetRepeatOptions().

Referenced by applySelectionRepeat(), and RepeatLayout().

◆ onRepeatDialogClosed()

void MULTICHANNEL_TOOL::onRepeatDialogClosed ( wxCloseEvent & aEvent)
private

◆ pruneExistingGroups()

bool MULTICHANNEL_TOOL::pruneExistingGroups ( COMMIT & aCommit,
const std::unordered_set< BOARD_ITEM * > & aItemsToCheck )
private

◆ queryBoardItemsInGroup()

std::set< BOARD_ITEM * > MULTICHANNEL_TOOL::queryBoardItemsInGroup ( const wxString & aGroupName) const
private

Definition at line 754 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::board(), and group.

Referenced by AutogenerateRuleAreas().

◆ queryComponentsInComponentClass()

std::set< FOOTPRINT * > MULTICHANNEL_TOOL::queryComponentsInComponentClass ( const wxString & aComponentClassName) const
private

Definition at line 707 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::board().

Referenced by GeneratePotentialRuleAreas().

◆ queryComponentsInGroup()

std::set< FOOTPRINT * > MULTICHANNEL_TOOL::queryComponentsInGroup ( const wxString & aGroupName) const
private

◆ queryComponentsInSheet()

std::set< FOOTPRINT * > MULTICHANNEL_TOOL::queryComponentsInSheet ( wxString aSheetName) const
private

Definition at line 682 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::board().

Referenced by applySelectionRepeat(), and GeneratePotentialRuleAreas().

◆ RefreshRepeat()

void MULTICHANNEL_TOOL::RefreshRepeat ( )

Re-derive the channels after a tick or the anchor changed, then redraw the preview.

Definition at line 1983 of file multichannel_tool.cpp.

References m_areas, UpdateRepeatPreview(), and updateSelectionCore().

◆ RepeatLayout() [1/2]

◆ RepeatLayout() [2/2]

◆ repeatLayout()

◆ Reset()

void MULTICHANNEL_TOOL::Reset ( RESET_REASON aReason)
overrideprivatevirtual

Bring the tool to a known, initial state.

If the tool claimed anything from the model or the view, it must release it when its reset.

Parameters
aReasoncontains information about the reason of tool reset.

Reimplemented from PCB_TOOL_BASE.

Definition at line 216 of file multichannel_tool.cpp.

References closeRepeatDialog(), TOOL_BASE::MODEL_RELOAD, PCB_TOOL_BASE::Reset(), TOOL_BASE::SHUTDOWN, and TOOL_BASE::SUPERMODEL_RELOAD.

◆ resetTransitions()

void TOOL_INTERACTIVE::resetTransitions ( )
privateinherited

Clear the current transition map and restores the default one created by setTransitions().

Definition at line 73 of file tool_interactive.cpp.

◆ resolveConnectionTopology()

◆ resolveTopologies()

bool MULTICHANNEL_TOOL::resolveTopologies ( const wxString & aTitle,
const std::vector< TOPOLOGY_JOB > & aJobs )
private

Resolve the topology of each job in turn on a worker thread.

In the GUI a progress dialog titled aTitle shows how far the matching got, and the board and the Repeat dialog are disabled until it closes. Jobs not finished when the user cancels are marked as not OK.

Returns
false if the user cancelled.

Definition at line 2351 of file multichannel_tool.cpp.

References _, PCB_TOOL_BASE::frame(), TMATCH::ISOMORPHISM_PARAMS::m_cancelled, m_dialog, TMATCH::ISOMORPHISM_PARAMS::m_matchedComponents, TMATCH::ISOMORPHISM_PARAMS::m_totalComponents, Pgm(), PR_CAN_ABORT, reporter, and resolveConnectionTopology().

Referenced by CheckRACompatibility(), UpdateLinkedLayouts(), and updateSelectionCore().

◆ routerBusy()

bool MULTICHANNEL_TOOL::routerBusy ( ) const
private

Definition at line 2705 of file multichannel_tool.cpp.

References TOOL_BASE::m_toolMgr, and ROUTER_TOOL::RoutingInProgress().

Referenced by updateLinkedLayouts().

◆ RunMainStack()

void TOOL_INTERACTIVE::RunMainStack ( std::function< void()> aFunc)
inherited

◆ selection() [1/2]

PCB_SELECTION & PCB_TOOL_BASE::selection ( )
protectedinherited

Definition at line 361 of file pcb_tool_base.cpp.

References PCB_SELECTION_TOOL::GetSelection(), and TOOL_BASE::m_toolMgr.

◆ selection() [2/2]

const PCB_SELECTION & PCB_TOOL_BASE::selection ( ) const
protectedinherited

Definition at line 353 of file pcb_tool_base.cpp.

References PCB_SELECTION_TOOL::GetSelection(), and TOOL_BASE::m_toolMgr.

Referenced by CONSTRAINT_EDIT_TOOL::AddConstraint(), PCB_CONTROL::AppendBoard(), PCB_CONTROL::ApplyDesignBlockLayout(), BOARD_EDITOR_CONTROL::AssignNetclass(), AUTOPLACE_TOOL::autoplaceSelected(), EDIT_TOOL::BooleanPolygons(), BOARD_INSPECTION_TOOL::calculateSelectionRatsnest(), ROUTER_TOOL::CanInlineDrag(), EDIT_TOOL::ChangeTrackLayer(), EDIT_TOOL::ChangeTrackWidth(), DRAWING_TOOL::ConvertImageToOutlines(), PAD_TOOL::copyPadSettings(), EDIT_TOOL::copyToClipboard(), EDIT_TOOL::copyToClipboardAsText(), ARRAY_TOOL::CreateArray(), CONVERT_TOOL::CreateLines(), CONVERT_TOOL::CreatePolys(), DRC_TOOL::CrossProbe(), BOARD_INSPECTION_TOOL::DiffFootprint(), BOARD_EDITOR_CONTROL::doCrossProbePcbToSch(), BOARD_INSPECTION_TOOL::doHideRatsnestNet(), doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), EDIT_TOOL::Drag(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), EDIT_TOOL::Duplicate(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PAD_TOOL::EditPad(), PCB_EDIT_TABLE_TOOL::EditTable(), EDIT_TOOL::EditVertices(), PAD_TOOL::EnumeratePads(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), MULTICHANNEL_TOOL::expandSelection(), PCB_EDIT_TABLE_TOOL::ExportTableToCSV(), EDIT_TOOL::FilletTracks(), EDIT_TOOL::Flip(), DRAWING_TOOL::getSourceZoneForAction(), EDIT_TOOL::HealShapes(), BOARD_INSPECTION_TOOL::highlightNet(), EDIT_TOOL::Increment(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), POSITION_RELATIVE_TOOL::InteractiveOffset(), EDIT_TOOL::JustifyText(), PCB_CONTROL::LayerPresetFeedback(), BOARD_INSPECTION_TOOL::LocalRatsnestTool(), ROUTER_TOOL::MainLoop(), MATCH_PROPERTIES_TOOL::Match(), EDIT_TOOL::Mirror(), EDIT_TOOL::ModifyLines(), BOARD_EDITOR_CONTROL::modifyLockSelected(), EDIT_TOOL::MoveExact(), ARRAY_TOOL::onDialogClosed(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONVERT_TOOL::OutsetItems(), EDIT_TOOL::PackAndMoveFootprints(), PCB_CONTROL::Paste(), PAD_TOOL::pastePadProperties(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), PCB_CONTROL::placeBoardItems(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PCB_CONTROL::PlaceLinkedDesignBlock(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), POSITION_RELATIVE_TOOL::PositionRelative(), EDIT_TOOL::Properties(), PAD_TOOL::pushPadSettings(), BOARD_REANNOTATE_TOOL::ReannotateDuplicatesInSelection(), CONSTRAINT_EDIT_TOOL::RemoveConstraints(), GLOBAL_EDIT_TOOL::RemoveUnusedPads(), MULTICHANNEL_TOOL::repeatLayout(), EDIT_TOOL::Rotate(), ROUTER_TOOL::RouteSelected(), PCB_CONTROL::SaveToLinkedDesignBlock(), CONVERT_TOOL::SegmentToArc(), DRAWING_TOOL::SetAnchor(), BOARD_INSPECTION_TOOL::ShowFootprintLinks(), EDIT_TOOL::SimplifyPolygons(), EDIT_TOOL::Swap(), EDIT_TOOL::SwapGateNets(), EDIT_TOOL::SwapPadNets(), EDIT_TOOL::ToggleFootprintAttribute(), BOARD_EDITOR_CONTROL::TrackWidthDec(), BOARD_EDITOR_CONTROL::TrackWidthInc(), MULTICHANNEL_TOOL::unlinkLayout(), MULTICHANNEL_TOOL::updateLinkedLayouts(), BOARD_INSPECTION_TOOL::UpdateLocalRatsnest(), PCB_CONTROL::UpdateMessagePanel(), BOARD_EDITOR_CONTROL::ViaSizeDec(), BOARD_EDITOR_CONTROL::ViaSizeInc(), BOARD_EDITOR_CONTROL::ZoneDuplicate(), BOARD_EDITOR_CONTROL::ZoneMerge(), BOARD_EDITOR_CONTROL::ZonePriorityLower(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToBottom(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToTop(), and BOARD_EDITOR_CONTROL::ZonePriorityRaise().

◆ SetContextMenu()

void TOOL_INTERACTIVE::SetContextMenu ( ACTION_MENU * aMenu,
CONTEXT_MENU_TRIGGER aTrigger = CMENU_BUTTON )
inherited

Assign a context menu and tells when it should be activated.

Parameters
aMenuis the menu to be assigned.
aTriggerdetermines conditions upon which the context menu is activated.

Definition at line 91 of file tool_interactive.cpp.

References CMENU_OFF, TOOL_BASE::m_toolMgr, and ACTION_MENU::SetTool().

Referenced by SELECTION_TOOL::doSelectionMenu(), DRAWING_TOOL::DrawVia(), and PCB_SELECTION_TOOL::Main().

◆ SetIsBoardEditor()

void PCB_TOOL_BASE::SetIsBoardEditor ( bool aEnabled)
inlineinherited

Definition at line 107 of file pcb_tool_base.h.

References m_isBoardEditor.

◆ SetIsFootprintEditor()

void PCB_TOOL_BASE::SetIsFootprintEditor ( bool aEnabled)
inlineinherited

Toggle edit footprint mode.

When enabled, one may select parts of footprints individually (graphics, pads, etc.), so they can be modified.

Parameters
aEnableddecides if the mode should be enabled.

Definition at line 104 of file pcb_tool_base.h.

References m_isFootprintEditor.

◆ setPreviewHidden()

void MULTICHANNEL_TOOL::setPreviewHidden ( bool aHide)
private

◆ setTransitions()

void MULTICHANNEL_TOOL::setTransitions ( )
overrideprivatevirtual

◆ ShowMismatchDetails()

void MULTICHANNEL_TOOL::ShowMismatchDetails ( wxWindow * aParent,
const wxString & aSummary,
const std::vector< wxString > & aReasons ) const

Definition at line 390 of file multichannel_tool.cpp.

References PCB_TOOL_BASE::frame(), and ShowTopologyMismatchReasons().

◆ StartRepeatFromSelection()

void MULTICHANNEL_TOOL::StartRepeatFromSelection ( const std::vector< EDA_ITEM * > & aItems)

Use plain selected items as the reference and discover the channels that repeat them.

Definition at line 1328 of file multichannel_tool.cpp.

References collectGroupBoardItems(), DiscoverRepeatCandidates(), BOARD_ITEM::GetParentFootprint(), m_areas, PCB_FOOTPRINT_T, PCB_GROUP_T, and EDA_ITEM::Type().

Referenced by repeatLayout().

◆ UnlinkAreas()

void MULTICHANNEL_TOOL::UnlinkAreas ( const std::set< ZONE * > & aZones)

Remove aZones from their link sets, and any area left alone in one, as one undo step.

Definition at line 2753 of file multichannel_tool.cpp.

References _, detachArea(), dropLoneLinks(), TOOL_BASE::GetManager(), niluuid, and BOARD_COMMIT::Push().

Referenced by BOOST_FIXTURE_TEST_CASE(), and unlinkLayout().

◆ unlinkLayout()

int MULTICHANNEL_TOOL::unlinkLayout ( const TOOL_EVENT & aEvent)
private

◆ UpdateLinkedLayouts()

◆ updateLinkedLayouts()

int MULTICHANNEL_TOOL::updateLinkedLayouts ( const TOOL_EVENT & aEvent)
private

◆ UpdatePickedItem()

void MULTICHANNEL_TOOL::UpdatePickedItem ( const EDA_ITEM * aItem)
overridevirtual

Implements PCB_PICKER_TOOL::RECEIVER.

Definition at line 983 of file multichannel_tool.cpp.

References TOOL_BASE::m_toolMgr, and PCB_ACTIONS::repeatLayout.

◆ UpdatePickedPoint()

void MULTICHANNEL_TOOL::UpdatePickedPoint ( const std::optional< VECTOR2I > & aPoint)
inlineoverridevirtual

Implements PCB_PICKER_TOOL::RECEIVER.

Definition at line 121 of file multichannel_tool.h.

◆ UpdateRepeatPreview()

◆ updateSelectionCore()

◆ view()

◆ Wait()

TOOL_EVENT * TOOL_INTERACTIVE::Wait ( const TOOL_EVENT_LIST & aEventList = TOOL_EVENT( TC_ANY, TA_ANY ))
inherited

Suspend execution of the tool until an event specified in aEventList arrives.

No parameters means waiting for any event.

Definition at line 67 of file tool_interactive.cpp.

References TOOL_BASE::m_toolMgr.

Referenced by CONSTRAINT_EDIT_TOOL::AddPointConstraint(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawVia(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), ROUTER_TOOL::InlineDrag(), POSITION_RELATIVE_TOOL::InteractiveOffset(), CVPCB_CONTROL::Main(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), EDA_3D_CONTROLLER::Main(), GERBVIEW_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), PCB_TEST_SELECTION_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_POINT_EDITOR::Main(), PL_SELECTION_TOOL::Main(), SCH_SELECTION_TOOL::Main(), ZOOM_TOOL::Main(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), BOARD_INSPECTION_TOOL::pickItemForInspection(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), PCB_GROUP_TOOL::PickNewMember(), SCH_GROUP_TOOL::PickNewMember(), EDIT_TOOL::pickReferencePoint(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), SCH_SELECTION_TOOL::selectLasso(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::SelectPolyArea(), ZOOM_TOOL::selectRegion(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), DRAWING_TOOL::SetAnchor(), and DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew().

Member Data Documentation

◆ m_areas

◆ m_dialog

DIALOG_MULTICHANNEL_REPEAT_LAYOUT* MULTICHANNEL_TOOL::m_dialog = nullptr
private

◆ m_focusArea

const RULE_AREA* MULTICHANNEL_TOOL::m_focusArea = nullptr
private

◆ m_highlight

std::shared_ptr<KIGFX::VIEW_OVERLAY> MULTICHANNEL_TOOL::m_highlight
private

Definition at line 265 of file multichannel_tool.h.

Referenced by clearRepeatPreview(), and HighlightRepeatAreas().

◆ m_isBoardEditor

bool PCB_TOOL_BASE::m_isBoardEditor
protectedinherited

◆ m_isFootprintEditor

◆ m_menu

std::unique_ptr<TOOL_MENU> TOOL_INTERACTIVE::m_menu
protectedinherited

The functions below are not yet implemented - their interface may change.

Definition at line 121 of file tool_interactive.h.

Referenced by PCB_TOOL_BASE::doInteractiveItemPlacement(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), GetToolMenu(), BOARD_EDITOR_CONTROL::Init(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Init(), DRAWING_TOOL::Init(), EDA_3D_CONTROLLER::Init(), FOOTPRINT_EDITOR_CONTROL::Init(), GERBVIEW_SELECTION_TOOL::Init(), PAD_TOOL::Init(), PCB_DESIGN_BLOCK_CONTROL::Init(), PCB_PICKER_TOOL::Init(), PCB_SELECTION_TOOL::Init(), PCB_TOOL_BASE::Init(), PCB_VIEWER_TOOLS::Init(), PICKER_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_SELECTION_TOOL::Init(), ROUTER_TOOL::Init(), SCH_DESIGN_BLOCK_CONTROL::Init(), SCH_SELECTION_TOOL::Init(), ZOOM_TOOL::Init(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), EDA_3D_CONTROLLER::Main(), GERBVIEW_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_SELECTION_TOOL::Main(), SCH_SELECTION_TOOL::Main(), ZOOM_TOOL::Main(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), DRAWING_TOOL::SetAnchor(), TOOL_INTERACTIVE(), and TOOL_INTERACTIVE().

◆ m_previewBoxes

std::map<FOOTPRINT*, BOX2I> MULTICHANNEL_TOOL::m_previewBoxes
private

◆ m_previewHidden

std::vector<KIID> MULTICHANNEL_TOOL::m_previewHidden
private

Definition at line 264 of file multichannel_tool.h.

Referenced by clearRepeatPreview(), setPreviewHidden(), and UpdateRepeatPreview().

◆ m_previewRatsnest

std::vector<SEG> MULTICHANNEL_TOOL::m_previewRatsnest
private

◆ m_reporter

std::unique_ptr<REPORTER> MULTICHANNEL_TOOL::m_reporter
private

Definition at line 261 of file multichannel_tool.h.

◆ m_toolId

TOOL_ID TOOL_BASE::m_toolId
protectedinherited

Unique id, assigned by a TOOL_MANAGER instance.

Definition at line 215 of file tool_base.h.

Referenced by TOOL_INTERACTIVE::Activate(), GetId(), IsToolActive(), and TOOL_BASE().

◆ m_toolMgr

TOOL_MANAGER* TOOL_BASE::m_toolMgr
protectedinherited

Definition at line 220 of file tool_base.h.

Referenced by TOOL_INTERACTIVE::Activate(), SELECTION_TOOL::AddItemsToSel(), SELECTION_TOOL::AddItemToSel(), CONSTRAINT_EDIT_TOOL::AddPointConstraint(), GROUP_TOOL::AddToGroup(), PCB_CONTROL::AppendBoard(), PCB_CONTROL::ApplyDesignBlockLayout(), MULTICHANNEL_TOOL::applySelectionRepeat(), BOARD_EDITOR_CONTROL::AssignNetclass(), CVPCB_ASSOCIATION_TOOL::Associate(), attachManager(), SCH_SELECTION_TOOL::autostartEvent(), EDIT_TOOL::BooleanPolygons(), BOARD_INSPECTION_TOOL::calculateSelectionRatsnest(), ROUTER_TOOL::CanInlineDrag(), BOARD_EDITOR_CONTROL::ChangeLineMode(), FOOTPRINT_EDITOR_CONTROL::ChangeLineMode(), EDIT_TOOL::ChangeTrackLayer(), EDIT_TOOL::ChangeTrackWidth(), GERBVIEW_CONTROL::ClearAllLayers(), BOARD_INSPECTION_TOOL::ClearHighlight(), PCB_SELECTION_TOOL::ClearSelection(), PL_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::ClearSelection(), GERBVIEW_SELECTION_TOOL::clearSelection(), PCB_EDIT_TABLE_TOOL::clearSelection(), VIA_STITCH_TOOL::ClearStitchViaExclusions(), ROUTER_TOOL::commitPendingViaStack(), DRAWING_TOOL::ConvertImageToOutlines(), PAD_TOOL::copyPadSettings(), EDIT_TOOL::copyToClipboard(), ARRAY_TOOL::CreateArray(), PCB_GROUP_TOOL::createCommit(), SCH_GROUP_TOOL::createCommit(), MICROWAVE_TOOL::createInductorBetween(), DRC_TOOL::CrossProbe(), COMMON_TOOLS::Cursor45Crosshairs(), COMMON_TOOLS::CursorControl(), COMMON_TOOLS::CursorFullCrosshairs(), COMMON_TOOLS::CursorSmallCrosshairs(), PCB_CONTROL::CycleLayerPresets(), EDIT_TOOL::DeleteItems(), BOARD_INSPECTION_TOOL::DiffFootprint(), BOARD_EDITOR_CONTROL::doCrossProbePcbToSch(), BOARD_INSPECTION_TOOL::doHideRatsnestNet(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSyncSelection(), COMMON_TOOLS::doZoomInOut(), COMMON_TOOLS::doZoomToPreset(), EDIT_TOOL::Drag(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawBezier(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawEllipseArc(), DRAWING_TOOL::drawManagedShape(), DRAWING_TOOL::DrawRectangle(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), EDIT_TOOL::Duplicate(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PAD_TOOL::EditPad(), PCB_EDIT_TABLE_TOOL::EditTable(), PCB_SELECTION_TOOL::EnterGroup(), SCH_SELECTION_TOOL::EnterGroup(), PAD_TOOL::EnumeratePads(), VIA_STITCH_TOOL::ExcludeStitchVia(), KICAD_MANAGER_CONTROL::Execute(), PCB_SELECTION_TOOL::ExitGroup(), SCH_SELECTION_TOOL::ExitGroup(), PCB_SELECTION_TOOL::expandConnection(), MULTICHANNEL_TOOL::expandSelection(), EDA_3D_CONTROLLER::ExportImage(), PCB_EDIT_TABLE_TOOL::ExportTableToCSV(), PCB_SELECTION_TOOL::extendTableCellSelectionTo(), ZONE_FILLER_TOOL::FillAllZones(), PCB_SELECTION_TOOL::filterSelection(), PCB_SELECTION_TOOL::FindItem(), DRC_TOOL::FixDRCError(), EDIT_TOOL::Flip(), EDIT_TOOL::GetAndPlace(), GetManager(), getModelInternal(), DRAWING_TOOL::getSourceZoneForAction(), PCB_EDIT_TABLE_TOOL::getTableCellSelection(), getToolHolderInternal(), PCB_EDIT_TABLE_TOOL::getToolMgr(), getView(), getViewControls(), PCB_SELECTION_TOOL::grabUnconnected(), COMMON_TOOLS::GridFast1(), COMMON_TOOLS::GridFast2(), COMMON_TOOLS::GridFastCycle(), COMMON_TOOLS::GridNext(), COMMON_TOOLS::GridOrigin(), PCB_CONTROL::GridPlaceOrigin(), COMMON_TOOLS::GridPreset(), COMMON_TOOLS::GridPrev(), PCB_GROUP_TOOL::Group(), SCH_GROUP_TOOL::Group(), EDIT_TOOL::HealShapes(), PCB_CONTROL::HighContrastModeCycle(), CONSTRAINT_EDIT_TOOL::HighlightConstraintMembers(), GERBVIEW_CONTROL::HighlightControl(), BOARD_INSPECTION_TOOL::HighlightItem(), BOARD_INSPECTION_TOOL::HighlightNet(), BOARD_INSPECTION_TOOL::highlightNet(), BOARD_INSPECTION_TOOL::HighlightNetChain(), PL_EDIT_TOOL::ImportDrawingSheetContent(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), EDIT_TOOL::Increment(), SCH_TOOL_BASE< T >::Increment(), ALIGN_DISTRIBUTE_TOOL::Init(), BOARD_EDITOR_CONTROL::Init(), BOARD_INSPECTION_TOOL::Init(), BOARD_REANNOTATE_TOOL::Init(), CONSTRAINT_EDIT_TOOL::Init(), CONVERT_TOOL::Init(), DRAWING_TOOL::Init(), EDIT_TOOL::Init(), FOOTPRINT_CHOOSER_SELECTION_TOOL::Init(), FOOTPRINT_EDITOR_CONTROL::Init(), GENERATOR_TOOL::Init(), GLOBAL_EDIT_TOOL::Init(), GRAPHIC_EDIT_TOOL::Init(), GROUP_TOOL::Init(), MATCH_PROPERTIES_TOOL::Init(), MULTICHANNEL_TOOL::Init(), PAD_TOOL::Init(), PCB_EDIT_TABLE_TOOL::Init(), PCB_POINT_EDITOR::Init(), PCB_SELECTION_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_POINT_EDITOR::Init(), POSITION_RELATIVE_TOOL::Init(), ROUTER_TOOL::Init(), SCH_TOOL_BASE< T >::Init(), VIA_STITCH_TOOL::Init(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), BOARD_INSPECTION_TOOL::InspectDRCError(), PCB_CONTROL::InteractiveDelete(), PL_EDIT_TOOL::InteractiveDelete(), SCH_TOOL_BASE< T >::InteractiveDelete(), POSITION_RELATIVE_TOOL::InteractiveOffset(), EDIT_TOOL::invokeInlineRouter(), EDIT_TOOL::isRouterActive(), IsToolActive(), EDIT_TOOL::JustifyText(), BOARD_INSPECTION_TOOL::LocalRatsnestTool(), CVPCB_CONTROL::Main(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), EDA_3D_CONTROLLER::Main(), GERBVIEW_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_SELECTION_TOOL::Main(), SCH_SELECTION_TOOL::Main(), ROUTER_TOOL::MainLoop(), GENERATOR_TOOL::MakeViaStackFromSelection(), PCB_VIEWER_TOOLS::MeasureTool(), EDIT_TOOL::Mirror(), BOARD_EDITOR_CONTROL::modifyLockSelected(), EDIT_TOOL::Move(), EDIT_TOOL::MoveExact(), PCB_VIEWER_TOOLS::NextLineMode(), ARRAY_TOOL::onDialogClosed(), SELECTION_TOOL::onDisambiguationExpire(), COMMON_TOOLS::OnGridChanged(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONVERT_TOOL::OutsetItems(), PCB_CONTROL::Paste(), PL_EDIT_TOOL::Paste(), PAD_TOOL::pastePadProperties(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), BOARD_INSPECTION_TOOL::pickItemForInspection(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), PCB_GROUP_TOOL::PickNewMember(), SCH_GROUP_TOOL::PickNewMember(), EDIT_TOOL::pickReferencePoint(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), PCB_CONTROL::placeBoardItems(), PCB_CONTROL::PlaceDrillMap(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), PCB_CONTROL::PlaceLinkedDesignBlock(), DRAWING_TOOL::PlaceMicroviaStack(), PAD_TOOL::PlacePad(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), GERBVIEW_CONTROL::Print(), PCB_CONTROL::Print(), EDIT_TOOL::Properties(), PAD_TOOL::pushPadSettings(), EDIT_TOOL::rebuildConnectivity(), ZONE_FILLER_TOOL::rebuildConnectivity(), SCH_SELECTION_TOOL::RebuildSelection(), PAD_TOOL::RecombinePad(), ZONE_FILLER_TOOL::regenerateDirtyGenerators(), GENERATOR_TOOL::RegenerateSelected(), POSITION_RELATIVE_TOOL::RelativeItemSelectionMove(), EDA_3D_CONTROLLER::ReloadBoard(), EDIT_TOOL::Remove(), PCB_POINT_EDITOR::removeCorner(), GENERATOR_TOOL::RemoveDeselectedEmptyPatterns(), GROUP_TOOL::RemoveFromGroup(), SELECTION_TOOL::RemoveItemFromSel(), SELECTION_TOOL::RemoveItemsFromSel(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), MULTICHANNEL_TOOL::repeatLayout(), PCB_SELECTION_TOOL::RequestSelection(), SCH_SELECTION_TOOL::RequestSelection(), COMMON_TOOLS::Reset(), DIFF_PHASE_SKEW_TOOL::Reset(), EDA_3D_CONTROLLER::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), PNS::TOOL_BASE::Reset(), COMMON_TOOLS::ResetLocalCoords(), EDIT_TOOL::reSolveConstraintsAfterEdit(), ROUTER_TOOL::restoreSelection(), EDIT_TOOL::Rotate(), MULTICHANNEL_TOOL::routerBusy(), ROUTER_TOOL::RouteSelected(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), DRAWING_TOOL::runSimpleShapeDraw(), DRC_TOOL::RunTests(), PCB_CONTROL::SaveToLinkedDesignBlock(), SCH_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::SelectAll(), PL_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectChartRow(), PCB_SELECTION_TOOL::SelectColumns(), SCH_SELECTION_TOOL::SelectColumns(), SCH_SELECTION_TOOL::SelectConnection(), PCB_TOOL_BASE::selection(), PCB_TOOL_BASE::selection(), COMMON_TOOLS::SelectionTool(), GERBVIEW_SELECTION_TOOL::SelectItem(), PCB_PICKER_TOOL::SelectItemInteractively(), GERBVIEW_SELECTION_TOOL::SelectItems(), SCH_SELECTION_TOOL::selectLasso(), PCB_SELECTION_TOOL::SelectMultiple(), SCH_SELECTION_TOOL::SelectMultiple(), PL_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectNet(), PCB_SELECTION_TOOL::selectNetChain(), SCH_SELECTION_TOOL::SelectNext(), PL_SELECTION_TOOL::SelectPoint(), SCH_SELECTION_TOOL::SelectPoint(), GERBVIEW_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::selectPoint(), PCB_TEST_SELECTION_TOOL::selectPoint(), SCH_SELECTION_TOOL::selectPoint(), PCB_PICKER_TOOL::SelectPointInteractively(), PCB_SELECTION_TOOL::SelectPolyArea(), SCH_SELECTION_TOOL::SelectPrevious(), PCB_SELECTION_TOOL::SelectRows(), SCH_SELECTION_TOOL::SelectRows(), PCB_SELECTION_TOOL::selectSameSheet(), PCB_SELECTION_TOOL::selectSheetContents(), PCB_SELECTION_TOOL::SelectTable(), SCH_SELECTION_TOOL::SelectTable(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), DRAWING_TOOL::SetAnchor(), TOOL_INTERACTIVE::SetContextMenu(), EDA_3D_CONTROLLER::SetMaterial(), PCB_SELECTION_TOOL::SetSelectPoly(), SCH_SELECTION_TOOL::SetSelectPoly(), PCB_SELECTION_TOOL::SetSelectRect(), SCH_SELECTION_TOOL::SetSelectRect(), DRC_TOOL::ShowDesignRuleEditorDialog(), DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew(), DRC_TOOL::ShowDRCDialog(), DRC_RULE_EDITOR_TOOL::ShowDRCRuleEditorDialog(), BOARD_INSPECTION_TOOL::ShowFootprintLinks(), EDIT_TOOL::SimplifyPolygons(), DRAWING_TOOL::snapEventPosition(), PCB_CONTROL::SnapMode(), EDIT_TOOL::Swap(), EDIT_TOOL::SwapGateNets(), EDIT_TOOL::SwapPadNets(), SCH_SELECTION_TOOL::SyncSelection(), COMMON_TOOLS::ToggleCursor(), EDIT_TOOL::ToggleFootprintAttribute(), EDA_3D_CONTROLLER::ToggleLayersManager(), EDA_3D_CONTROLLER::ToggleRaytracing(), PCB_SELECTION_TOOL::toggleTableCellSelection(), EDA_3D_CONTROLLER::ToggleVisibility(), TOOL_BASE(), BOARD_EDITOR_CONTROL::TrackWidthDec(), BOARD_EDITOR_CONTROL::TrackWidthInc(), GROUP_TOOL::Ungroup(), PCB_SELECTION_TOOL::unrouteSegment(), PCB_SELECTION_TOOL::unrouteSelected(), PCB_SELECTION_TOOL::UnselectAll(), SCH_SELECTION_TOOL::UnselectAll(), GERBVIEW_SELECTION_TOOL::UnselectItem(), GERBVIEW_SELECTION_TOOL::UnselectItems(), PNS::TOOL_BASE::updateEndItem(), PCB_POINT_EDITOR::updateItem(), BOARD_INSPECTION_TOOL::UpdateLocalRatsnest(), GERBVIEW_CONTROL::UpdateMessagePanel(), PCB_CONTROL::UpdateMessagePanel(), PL_EDITOR_CONTROL::UpdateMessagePanel(), EDIT_TOOL::updateModificationPoint(), MULTICHANNEL_TOOL::UpdatePickedItem(), PNS::TOOL_BASE::updateStartItem(), BOARD_EDITOR_CONTROL::ViaSizeDec(), BOARD_EDITOR_CONTROL::ViaSizeInc(), TOOL_INTERACTIVE::Wait(), BOARD_EDITOR_CONTROL::ZoneDuplicate(), ZONE_FILLER_TOOL::ZoneFill(), BOARD_EDITOR_CONTROL::ZoneMerge(), BOARD_EDITOR_CONTROL::ZonePriorityLower(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToBottom(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToTop(), BOARD_EDITOR_CONTROL::ZonePriorityRaise(), and ZONE_FILLER_TOOL::ZoneUnfill().

◆ m_toolName

std::string TOOL_BASE::m_toolName
protectedinherited

Names are expected to obey the format application.ToolName (eg.

pcbnew.InteractiveSelection).

Definition at line 219 of file tool_base.h.

Referenced by GetName(), and TOOL_BASE().

◆ m_type

TOOL_TYPE TOOL_BASE::m_type
protectedinherited

Definition at line 214 of file tool_base.h.

Referenced by GetType(), and TOOL_BASE().


The documentation for this class was generated from the following files: