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

Interactive authoring of geometric constraints (issue #2329). More...

#include <constraint_edit_tool.h>

Inheritance diagram for CONSTRAINT_EDIT_TOOL:
PCB_TOOL_BASE TOOL_INTERACTIVE TOOL_BASE

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

 CONSTRAINT_EDIT_TOOL ()
 
 ~CONSTRAINT_EDIT_TOOL () override=default
 
void Reset (RESET_REASON aReason) override
 Bring the tool to a known, initial state.
 
bool Init () override
 Init() is called once upon a registration of the tool.
 
int AddConstraint (const TOOL_EVENT &aEvent)
 
int AddPointConstraint (const TOOL_EVENT &aEvent)
 
int RemoveConstraints (const TOOL_EVENT &aEvent)
 
int ShowConstraints (const TOOL_EVENT &aEvent)
 
int ManageConstraints (const TOOL_EVENT &aEvent)
 
bool SelectConstraintAt (const VECTOR2I &aPos)
 Select the constraint whose on-canvas badge is at aPos (enlarge it, highlight the panel row); returns true if a badge was hit.
 
bool EditConstraintAt (const VECTOR2I &aPos)
 Open the value dialog for the constraint badged at aPos; returns true if one was hit.
 
bool ClearConstraintSelection ()
 Clear any badge-selected constraint. Returns true if a constraint was selected and is now cleared.
 
bool TryDeleteSelectedConstraint ()
 Delete the currently badge-selected constraint; returns true if one was selected and removed.
 
bool TryEditSelectedConstraint ()
 Edit the currently badge-selected constraint's value; returns true if one was selected.
 
void SolveAfterMove (const std::vector< PCB_SHAPE * > &aShapes)
 Re-solve the clusters of aShapes after a whole-shape edit, folded into that edit's undo.
 
void SolveAfterEdit (const std::vector< PCB_SHAPE * > &aShapes)
 Re-solve after a panel or dialog edit holding aShapes fixed so typed values survive Only their constrained neighbors move folded into the same undo.
 
void DiagnoseAfterMove (const std::vector< PCB_SHAPE * > &aShapes)
 Re-diagnose and refresh the overlay and info bar after the caller re-solves aShapes into its own commit for example a live move drag solving each tick.
 
void RemoveConstraintById (const KIID &aId)
 Intent entry points for the constraints panel, so it never mutates the board or the selection itself – the tool stays the single owner of constraint edit/remove/highlight + refresh.
 
void EditConstraintById (const KIID &aId)
 
void HighlightConstraintMembers (const KIID &aId, int aMemberIndex)
 
int refreshOverlay (const TOOL_EVENT &aEvent)
 Refresh the diagnostics overlay if it is currently shown.
 
int onSelectionChanged (const TOOL_EVENT &aEvent)
 Clear stale badge/isolation state when the board selection changes.
 
int onHoverMotion (const TOOL_EVENT &aEvent)
 In HOVER mode, reveal the constraints of the shape under the cursor (nothing when none).
 
void SetIsFootprintEditor (bool aEnabled)
 Function SetIsFootprintEditor()
 
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.
 
void Activate ()
 Run the tool.
 
TOOL_MENUGetToolMenu ()
 
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_EVENTWait (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_MANAGERGetManager () const
 Return the instance of TOOL_MANAGER that takes care of the tool.
 
bool IsToolActive () const
 

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_VIEWview () const
 
KIGFX::VIEW_CONTROLScontrols () const
 
template<class T = PCB_BASE_EDIT_FRAME>
Tframe () const
 
BOARDboard () const
 
FOOTPRINTfootprint () const
 
PCBNEW_SETTINGS::DISPLAY_OPTIONSdisplayOptions () const
 
PCB_DRAW_PANEL_GALcanvas () const
 
const PCB_SELECTIONselection () const
 
PCB_SELECTIONselection ()
 
void attachManager (TOOL_MANAGER *aManager)
 Set the TOOL_MANAGER the tool will belong to.
 
KIGFX::VIEWgetView () const
 Returns the instance of #VIEW object used in the application.
 
KIGFX::VIEW_CONTROLSgetViewControls () const
 Return the instance of VIEW_CONTROLS object used in the application.
 
template<typename T>
TgetEditFrame () const
 Return the application window object, casted to requested user type.
 
template<typename T>
TgetModel () const
 Return the model object if it matches the requested type.
 

Protected Attributes

bool m_isFootprintEditor
 
bool m_isBoardEditor
 
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_MANAGERm_toolMgr
 

Private Member Functions

void setTransitions () override
 This method is meant to be overridden in order to specify handlers for events.
 
BOARD_ITEMconstraintParent () const
 The owner a new constraint should be parented to (the footprint in the footprint editor).
 
void finishConstraintCommit (BOARD_COMMIT &aCommit, const std::vector< PCB_CONSTRAINT * > &aAdded)
 Push aCommit, snap the geometry for the added constraints, and refresh the overlays.
 
bool commitConstraint (std::unique_ptr< PCB_CONSTRAINT > aConstraint)
 Confirm any value, reject a duplicate, and commit aConstraint. Returns true if it was added.
 
int pickShapeConstraint (PCB_CONSTRAINT_TYPE aType, const TOOL_EVENT &aEvent)
 Author a whole-shape constraint by clicking its items on the canvas (the no-selection path).
 
int pickLinearConstraint (PCB_CONSTRAINT_TYPE aType, const TOOL_EVENT &aEvent)
 Author a horizontal or vertical constraint from a whole segment or two point anchors Clicking a point first starts the two point path so a corner can be levelled.
 
void solveAddedConstraint (PCB_CONSTRAINT *aConstraint)
 Solve a just-added constraint so the geometry snaps to satisfy it, in its own commit.
 
PCB_CONSTRAINThitTestBadge (const VECTOR2I &aPos) const
 The constraint whose badge is within the hit radius of aPos, or nullptr.
 
void setSelectedConstraint (PCB_CONSTRAINT *aConstraint)
 Mark aConstraint selected on the overlay and in the panel (nullptr clears).
 
KIGFX::PCB_RENDER_SETTINGSpcbRenderSettings () const
 The active PCB render settings, or nullptr when no painter is attached (headless).
 
void updateConstrainedItems (const BOARD_CONSTRAINT_DIAGNOSTICS &aDiag)
 Stash the constrained-item set (the shadow-layer gate) into the render settings and repaint the overlay target.
 
void updateHighlightedConstraintMembers (PCB_CONSTRAINT *aConstraint)
 Stash the selected constraint's members (the highlighted-shadow set) into the render settings and repaint the overlay target.
 
void repaintShadowItems (const std::unordered_set< KIID > &aOld, const std::unordered_set< KIID > &aNew)
 Re-cache the items whose shadow-set membership changed between aOld and aNew, so the cached constraint-shadow layer reflects the new set (a plain target-dirty would not rebuild it).
 
void updateConstraintMsgPanel (PCB_CONSTRAINT *aConstraint)
 Show the selected constraint's type, items and state in the bottom message panel.
 
void refreshDiagnostics ()
 Mark the diagnosis and candidate caches stale (the model changed) and re-render the views.
 
void renderConstraintViews ()
 Re-render the shown views from the cached diagnosis without invalidating it – for a bare visibility change (a hover) that did not touch the model.
 
const BOARD_CONSTRAINT_DIAGNOSTICSensureDiagnosis ()
 The cached board diagnosis, solved only when the model changed since the last call, so a hover acquisition reuses the last solve instead of re-solving on every mouse move.
 
const std::vector< PCB_SHAPE * > & hoverCandidates ()
 The shapes referenced by any constraint, the hover-hit candidate set (cached per model).
 
void applyDiagnostics (const BOARD_CONSTRAINT_DIAGNOSTICS &aDiag)
 Push an already-computed diagnosis into every shown view, so a caller that already solved does not solve again.
 
void removeConstraint (PCB_CONSTRAINT *aConstraint)
 Remove a constraint in its own commit and refresh the diagnostics.
 
PCB_CONSTRAINTresolveConstraint (const KIID &aId) const
 Resolve a constraint by KIID against the live board, or nullptr.
 
void editConstraint (PCB_CONSTRAINT *aConstraint)
 Open the value dialog for a constraint and, on accept, commit + re-solve + refresh.
 
bool allMembersLocked (const PCB_CONSTRAINT *aConstraint) const
 True if every item aConstraint references resolves and is locked (nothing the solver may move), so the relation was recorded but cannot adjust geometry.
 
bool isDuplicateConstraint (const PCB_CONSTRAINT *aConstraint) const
 True if the board already holds a constraint equal to aConstraint (same type and members), so authoring it would only add a redundant copy.
 
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_ITEMgetModelInternal () const
 
TOOLS_HOLDERgetToolHolderInternal () const
 

Private Attributes

PCB_SELECTION_TOOLm_selectionTool
 
CONDITIONAL_MENUm_menu
 
std::unique_ptr< CONSTRAINT_OVERLAYm_overlay
 
BOARD_CONSTRAINT_DIAGNOSTICS m_cachedDiag
 Reused until the model changes.
 
BOARD_CONSTRAINT_DIAGNOSER m_diagnoser
 Incremental board diagnoser for the hot edit path, so editing one shape re-solves only its own cluster instead of every cluster on the board.
 
bool m_diagDirty = true
 
std::optional< std::vector< PCB_SHAPE * > > m_hoverCandidates
 Constrained shapes, per model.
 
std::map< PCB_CONSTRAINT_TYPE, double > m_lastConstraintValue
 Last value and driving choice per constraint type this session so same type runs keep one size Keyed by type so length and angle values never mix cleared on tool Reset.
 
std::map< PCB_CONSTRAINT_TYPE, bool > m_lastConstraintDriving
 

Detailed Description

Interactive authoring of geometric constraints (issue #2329).

Operates on the current selection: addConstraint creates a constraint of the type passed as the action parameter from the selected whole shapes; removeConstraints deletes every constraint that references a selected item. The selection-to-constraint logic lives in BuildConstraintFromItems so it can be unit-tested without the tool framework.

Definition at line 51 of file constraint_edit_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 128 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

◆ CONSTRAINT_EDIT_TOOL()

CONSTRAINT_EDIT_TOOL::CONSTRAINT_EDIT_TOOL ( )

Definition at line 123 of file constraint_edit_tool.cpp.

References m_menu, m_selectionTool, and PCB_TOOL_BASE::PCB_TOOL_BASE().

◆ ~CONSTRAINT_EDIT_TOOL()

CONSTRAINT_EDIT_TOOL::~CONSTRAINT_EDIT_TOOL ( )
overridedefault

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(), 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::PlaceReferenceImage(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), EDIT_TOOL::Remove(), ROUTER_TOOL::RouteSelected(), 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().

◆ AddConstraint()

◆ AddPointConstraint()

◆ allMembersLocked()

bool CONSTRAINT_EDIT_TOOL::allMembersLocked ( const PCB_CONSTRAINT * aConstraint) const
private

True if every item aConstraint references resolves and is locked (nothing the solver may move), so the relation was recorded but cannot adjust geometry.

Definition at line 683 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::board(), and PCB_CONSTRAINT::GetMembers().

Referenced by finishConstraintCommit().

◆ applyDiagnostics()

void CONSTRAINT_EDIT_TOOL::applyDiagnostics ( const BOARD_CONSTRAINT_DIAGNOSTICS & aDiag)
private

Push an already-computed diagnosis into every shown view, so a caller that already solved does not solve again.

Definition at line 551 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::frame(), m_overlay, and updateConstrainedItems().

Referenced by DiagnoseAfterMove(), and renderConstraintViews().

◆ 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().

◆ board()

BOARD * PCB_TOOL_BASE::board ( ) const
inlineprotectedinherited

Definition at line 178 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(), 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(), PCB_CONTROL::CollectAndEmbed3DModels(), CONSTRAINT_EDIT_TOOL::constraintParent(), MULTICHANNEL_TOOL::copyRuleAreaContents(), EDIT_TOOL::copyToClipboard(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), MICROWAVE_TOOL::createInductorBetween(), CONVERT_TOOL::CreatePolys(), ROUTER_TOOL::CustomTrackWidthDialog(), CONSTRAINT_EDIT_TOOL::DiagnoseAfterMove(), doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), DRAWING_TOOL::drawShape(), EDIT_TOOL::Duplicate(), CONSTRAINT_EDIT_TOOL::ensureDiagnosis(), PAD_TOOL::EnumeratePads(), PAD_TOOL::explodePad(), BOARD_EDITOR_CONTROL::ExportCmpFile(), BOARD_EDITOR_CONTROL::ExportHyperlynx(), BOARD_EDITOR_CONTROL::ExportIDF(), 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::findOtherItemsInRuleArea(), MULTICHANNEL_TOOL::findRoutingInRuleArea(), MULTICHANNEL_TOOL::fixupNet(), footprint(), BOARD_EDITOR_CONTROL::GenBOMFileFromBoard(), GENERATOR_TOOL::GenEditAction(), MULTICHANNEL_TOOL::GeneratePotentialRuleAreas(), GENERATOR_TOOL::GENERATOR_TOOL(), BOARD_EDITOR_CONTROL::GenFootprintsReport(), ROUTER_TOOL::handleLayerSwitch(), 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(), CONSTRAINT_EDIT_TOOL::ManageConstraints(), EDIT_TOOL::Move(), EDIT_TOOL::MoveExact(), FOOTPRINT_EDITOR_CONTROL::NewFootprint(), CONSTRAINT_EDIT_TOOL::onHoverMotion(), PAD_TOOL::OnUndoRedo(), PAD_TOOL::PadTable(), PCB_CONTROL::Paste(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), PCB_CONTROL::placeBoardItems(), PCB_CONTROL::placeBoardItems(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PAD_TOOL::PlacePad(), 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(), GENERATOR_TOOL::RegenerateAllOfType(), GENERATOR_TOOL::RegenerateItem(), GENERATOR_TOOL::RegenerateSelected(), PCB_CONTROL::RehatchShapes(), CONSTRAINT_EDIT_TOOL::removeConstraint(), CONSTRAINT_EDIT_TOOL::RemoveConstraints(), CONSTRAINT_EDIT_TOOL::repaintShadowItems(), BOARD_EDITOR_CONTROL::RepairBoard(), FOOTPRINT_EDITOR_CONTROL::RepairFootprint(), MULTICHANNEL_TOOL::RepeatLayout(), CONSTRAINT_EDIT_TOOL::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), PAD_TOOL::Reset(), PCB_CONTROL::Reset(), PNS::TOOL_BASE::Reset(), CONSTRAINT_EDIT_TOOL::resolveConstraint(), 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(), ROUTER_TOOL::UpdateMessagePanel(), 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().

◆ canvas()

◆ ClearConstraintSelection()

bool CONSTRAINT_EDIT_TOOL::ClearConstraintSelection ( )

Clear any badge-selected constraint. Returns true if a constraint was selected and is now cleared.

Definition at line 309 of file constraint_edit_tool.cpp.

References m_overlay, niluuid, and setSelectedConstraint().

Referenced by PCB_SELECTION_TOOL::Main().

◆ commitConstraint()

bool CONSTRAINT_EDIT_TOOL::commitConstraint ( std::unique_ptr< PCB_CONSTRAINT > aConstraint)
private

◆ constraintParent()

BOARD_ITEM * CONSTRAINT_EDIT_TOOL::constraintParent ( ) const
private

The owner a new constraint should be parented to (the footprint in the footprint editor).

Definition at line 317 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::board(), BOARD::GetFirstFootprint(), and PCB_TOOL_BASE::IsFootprintEditor().

Referenced by AddConstraint(), AddPointConstraint(), pickLinearConstraint(), and pickShapeConstraint().

◆ controls()

◆ DiagnoseAfterMove()

void CONSTRAINT_EDIT_TOOL::DiagnoseAfterMove ( const std::vector< PCB_SHAPE * > & aShapes)

Re-diagnose and refresh the overlay and info bar after the caller re-solves aShapes into its own commit for example a live move drag solving each tick.

Definition at line 870 of file constraint_edit_tool.cpp.

References _, applyDiagnostics(), PCB_TOOL_BASE::board(), BoardHasConstraints(), PCB_TOOL_BASE::frame(), m_cachedDiag, m_diagDirty, m_diagnoser, EDA_ITEM::m_Uuid, OVER_CONSTRAINED, and BOARD_CONSTRAINT_DIAGNOSTICS::shapeStates.

Referenced by SolveAfterEdit(), and SolveAfterMove().

◆ 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
aItemCreatorthe callable that will attempt to create the item
aCommitMessagethe message used on a successful commit

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(), 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().

◆ editConstraint()

void CONSTRAINT_EDIT_TOOL::editConstraint ( PCB_CONSTRAINT * aConstraint)
private

◆ EditConstraintAt()

bool CONSTRAINT_EDIT_TOOL::EditConstraintAt ( const VECTOR2I & aPos)

Open the value dialog for the constraint badged at aPos; returns true if one was hit.

Definition at line 296 of file constraint_edit_tool.cpp.

References editConstraint(), hitTestBadge(), and setSelectedConstraint().

Referenced by PCB_SELECTION_TOOL::Main().

◆ EditConstraintById()

void CONSTRAINT_EDIT_TOOL::EditConstraintById ( const KIID & aId)

◆ ensureDiagnosis()

const BOARD_CONSTRAINT_DIAGNOSTICS & CONSTRAINT_EDIT_TOOL::ensureDiagnosis ( )
private

The cached board diagnosis, solved only when the model changed since the last call, so a hover acquisition reuses the last solve instead of re-solving on every mouse move.

Definition at line 374 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::board(), m_cachedDiag, m_diagDirty, and m_diagnoser.

Referenced by finishConstraintCommit(), onHoverMotion(), renderConstraintViews(), and updateConstraintMsgPanel().

◆ finishConstraintCommit()

void CONSTRAINT_EDIT_TOOL::finishConstraintCommit ( BOARD_COMMIT & aCommit,
const std::vector< PCB_CONSTRAINT * > & aAdded )
private

◆ footprint()

◆ frame()

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

Definition at line 173 of file pcb_tool_base.h.

References TOOL_BASE::getEditFrame(), and T.

Referenced by PCB_POINT_EDITOR::addCorner(), CONSTRAINT_EDIT_TOOL::AddPointConstraint(), CONSTRAINT_EDIT_TOOL::applyDiagnostics(), MULTICHANNEL_TOOL::AutogenerateRuleAreas(), AUTOPLACE_TOOL::autoplace(), EDIT_TOOL::BooleanPolygons(), canvas(), PCB_POINT_EDITOR::chamferCorner(), EDIT_TOOL::ChangeTrackLayer(), ZONE_FILLER_TOOL::CheckAllZones(), MULTICHANNEL_TOOL::CheckRACompatibility(), PNS::TOOL_BASE::checkSnap(), CONSTRAINT_EDIT_TOOL::commitConstraint(), PAD_TOOL::copyPadSettings(), EDIT_TOOL::copyToClipboard(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), 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(), PAD_TOOL::enterPadEditMode(), PAD_TOOL::EnumeratePads(), PAD_TOOL::ExitPadEditMode(), 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(), 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(), PCB_PICKER_TOOL::Main(), ROUTER_TOOL::MainLoop(), CONSTRAINT_EDIT_TOOL::ManageConstraints(), EDIT_TOOL::Mirror(), EDIT_TOOL::ModifyLines(), EDIT_TOOL::MoveExact(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::onViaCommand(), CONVERT_TOOL::OutsetItems(), PAD_TOOL::PadTable(), PAD_TOOL::pastePadProperties(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), PNS::TOOL_BASE::pickSingleItem(), BOARD_EDITOR_CONTROL::PlaceFootprint(), 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(), CONSTRAINT_EDIT_TOOL::renderConstraintViews(), MULTICHANNEL_TOOL::RepeatLayout(), MULTICHANNEL_TOOL::RepeatLayout(), MULTICHANNEL_TOOL::repeatLayout(), CONSTRAINT_EDIT_TOOL::Reset(), DIFF_PHASE_SKEW_TOOL::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), PAD_TOOL::Reset(), PNS::TOOL_BASE::Reset(), EDIT_TOOL::Rotate(), ROUTER_TOOL::RouteSelected(), 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(), BOARD_EDITOR_CONTROL::ShowEeschema(), GENERATOR_TOOL::ShowGeneratorsManager(), MULTICHANNEL_TOOL::ShowMismatchDetails(), EDIT_TOOL::SimplifyPolygons(), GLOBAL_EDIT_TOOL::swapBoardItem(), EDIT_TOOL::SwapGateNets(), GLOBAL_EDIT_TOOL::SwapLayers(), EDIT_TOOL::SwapPadNets(), ROUTER_TOOL::switchLayerOnViaPlacement(), EDIT_TOOL::ToggleFootprintAttribute(), CONSTRAINT_EDIT_TOOL::updateConstraintMsgPanel(), PCB_POINT_EDITOR::updateItem(), 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().

◆ GetAngleSnapMode()

◆ 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::DefaultPadProperties(), 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(), 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(), BITMAP2CMP_CONTROL::Reset(), 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(), SCH_TOOL_BASE< T >::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(), BOARD_EDITOR_CONTROL::ToggleConstraintsPanel(), 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(), TOOL_MANAGER::saveViewControls(), and TOOL_MANAGER::ShutdownTool().

◆ 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

Returns the instance of #VIEW object used in the application.

It allows tools to draw.

Returns
The instance of 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(), PL_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::CollectHits(), 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::doZoomFit(), COMMON_TOOLS::doZoomInOut(), COMMON_TOOLS::doZoomToPreset(), 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(), 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(), PL_EDIT_TOOL::Paste(), CONSTRAINT_EDIT_TOOL::pcbRenderSettings(), ROUTER_TOOL::performRouting(), PNS::TOOL_BASE::pickSingleItem(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), ROUTER_TOOL::prepareInteractive(), EDIT_TOOL::Properties(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), CONSTRAINT_EDIT_TOOL::repaintShadowItems(), 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(), SCH_TOOL_BASE< T >::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(), PCB_SELECTION_TOOL::SelectMultiple(), SCH_SELECTION_TOOL::SelectMultiple(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), PL_SELECTION_TOOL::SelectPoint(), SCH_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::SelectPolyArea(), PCB_SELECTION_TOOL::SelectRectArea(), ZOOM_TOOL::selectRegion(), GERBVIEW_SELECTION_TOOL::selectVisually(), DRAWING_TOOL::SetAnchor(), CONSTRAINT_EDIT_TOOL::ShowConstraints(), 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(), 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(), 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(), 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(), PCB_SELECTION_TOOL::SelectRectArea(), 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_EVENTTC_ANYTA_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(), BITMAP2CMP_CONTROL::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(), GROUP_TOOL::setTransitions(), KICAD_MANAGER_CONTROL::setTransitions(), LIBRARY_EDITOR_CONTROL::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(), 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().

◆ HighlightConstraintMembers()

void CONSTRAINT_EDIT_TOOL::HighlightConstraintMembers ( const KIID & aId,
int aMemberIndex )

◆ hitTestBadge()

PCB_CONSTRAINT * CONSTRAINT_EDIT_TOOL::hitTestBadge ( const VECTOR2I & aPos) const
private

◆ hoverCandidates()

const std::vector< PCB_SHAPE * > & CONSTRAINT_EDIT_TOOL::hoverCandidates ( )
private

The shapes referenced by any constraint, the hover-hit candidate set (cached per model).

Definition at line 386 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::board(), PCB_TOOL_BASE::footprint(), and m_hoverCandidates.

Referenced by onHoverMotion().

◆ Init()

◆ 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 371 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 376 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 106 of file pcb_tool_base.h.

References m_isBoardEditor.

◆ isDuplicateConstraint()

bool CONSTRAINT_EDIT_TOOL::isDuplicateConstraint ( const PCB_CONSTRAINT * aConstraint) const
private

True if the board already holds a constraint equal to aConstraint (same type and members), so authoring it would only add a redundant copy.

Definition at line 697 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::board(), ConstraintsAreDuplicate(), and BOARD::GetFirstFootprint().

Referenced by AddPointConstraint(), and commitConstraint().

◆ IsFootprintEditor()

◆ IsToolActive()

◆ ManageConstraints()

int CONSTRAINT_EDIT_TOOL::ManageConstraints ( const TOOL_EVENT & aEvent)

◆ onHoverMotion()

◆ onSelectionChanged()

int CONSTRAINT_EDIT_TOOL::onSelectionChanged ( const TOOL_EVENT & aEvent)

Clear stale badge/isolation state when the board selection changes.

Definition at line 167 of file constraint_edit_tool.cpp.

References m_overlay, m_selectionTool, niluuid, and setSelectedConstraint().

Referenced by setTransitions().

◆ pcbRenderSettings()

KIGFX::PCB_RENDER_SETTINGS * CONSTRAINT_EDIT_TOOL::pcbRenderSettings ( ) const
private

The active PCB render settings, or nullptr when no painter is attached (headless).

Definition at line 471 of file constraint_edit_tool.cpp.

References KIGFX::VIEW::GetPainter(), KIGFX::PAINTER::GetSettings(), and TOOL_BASE::getView().

Referenced by updateConstrainedItems(), and updateHighlightedConstraintMembers().

◆ pickLinearConstraint()

◆ pickShapeConstraint()

◆ refreshDiagnostics()

void CONSTRAINT_EDIT_TOOL::refreshDiagnostics ( )
private

Mark the diagnosis and candidate caches stale (the model changed) and re-render the views.

Definition at line 326 of file constraint_edit_tool.cpp.

References m_diagDirty, m_hoverCandidates, and renderConstraintViews().

Referenced by editConstraint(), finishConstraintCommit(), refreshOverlay(), removeConstraint(), RemoveConstraints(), Reset(), and ShowConstraints().

◆ refreshOverlay()

int CONSTRAINT_EDIT_TOOL::refreshOverlay ( const TOOL_EVENT & aEvent)

Refresh the diagnostics overlay if it is currently shown.

Definition at line 951 of file constraint_edit_tool.cpp.

References m_diagDirty, TOOL_EVENT::PassEvent(), and refreshDiagnostics().

Referenced by setTransitions().

◆ removeConstraint()

void CONSTRAINT_EDIT_TOOL::removeConstraint ( PCB_CONSTRAINT * aConstraint)
private

Remove a constraint in its own commit and refresh the diagnostics.

Definition at line 567 of file constraint_edit_tool.cpp.

References _, PCB_TOOL_BASE::board(), PCB_CONSTRAINT::GetMembers(), BOARD_COMMIT::Push(), refreshDiagnostics(), COMMIT::Remove(), and SolveAfterMove().

Referenced by ManageConstraints(), RemoveConstraintById(), and TryDeleteSelectedConstraint().

◆ RemoveConstraintById()

void CONSTRAINT_EDIT_TOOL::RemoveConstraintById ( const KIID & aId)

Intent entry points for the constraints panel, so it never mutates the board or the selection itself – the tool stays the single owner of constraint edit/remove/highlight + refresh.

Definition at line 597 of file constraint_edit_tool.cpp.

References removeConstraint(), and resolveConstraint().

◆ RemoveConstraints()

int CONSTRAINT_EDIT_TOOL::RemoveConstraints ( const TOOL_EVENT & aEvent)

◆ renderConstraintViews()

void CONSTRAINT_EDIT_TOOL::renderConstraintViews ( )
private

Re-render the shown views from the cached diagnosis without invalidating it – for a bare visibility change (a hover) that did not touch the model.

Definition at line 336 of file constraint_edit_tool.cpp.

References ALWAYS, applyDiagnostics(), ensureDiagnosis(), PCB_TOOL_BASE::frame(), m_overlay, niluuid, updateConstrainedItems(), and updateHighlightedConstraintMembers().

Referenced by refreshDiagnostics().

◆ repaintShadowItems()

void CONSTRAINT_EDIT_TOOL::repaintShadowItems ( const std::unordered_set< KIID > & aOld,
const std::unordered_set< KIID > & aNew )
private

Re-cache the items whose shadow-set membership changed between aOld and aNew, so the cached constraint-shadow layer reflects the new set (a plain target-dirty would not rebuild it).

Definition at line 523 of file constraint_edit_tool.cpp.

References KIGFX::ALL, PCB_TOOL_BASE::board(), TOOL_BASE::getView(), repaint, and KIGFX::VIEW::Update().

Referenced by updateConstrainedItems(), and updateHighlightedConstraintMembers().

◆ Reset()

void CONSTRAINT_EDIT_TOOL::Reset ( RESET_REASON aReason)
overridevirtual

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 131 of file constraint_edit_tool.cpp.

References ALWAYS, PCB_TOOL_BASE::board(), PCB_TOOL_BASE::frame(), TOOL_BASE::getView(), HOVER, m_diagnoser, m_lastConstraintDriving, m_lastConstraintValue, m_overlay, TOOL_BASE::MODEL_RELOAD, refreshDiagnostics(), 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.

◆ resolveConstraint()

PCB_CONSTRAINT * CONSTRAINT_EDIT_TOOL::resolveConstraint ( const KIID & aId) const
private

Resolve a constraint by KIID against the live board, or nullptr.

Definition at line 588 of file constraint_edit_tool.cpp.

References PCB_TOOL_BASE::board(), niluuid, and BOARD::ResolveItem().

Referenced by EditConstraintById(), HighlightConstraintMembers(), RemoveConstraintById(), TryDeleteSelectedConstraint(), and TryEditSelectedConstraint().

◆ RunMainStack()

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

◆ SelectConstraintAt()

bool CONSTRAINT_EDIT_TOOL::SelectConstraintAt ( const VECTOR2I & aPos)

Select the constraint whose on-canvas badge is at aPos (enlarge it, highlight the panel row); returns true if a badge was hit.

Called by the selection tool so badge clicks work mode-lessly while the diagnostics overlay is shown.

Definition at line 282 of file constraint_edit_tool.cpp.

References hitTestBadge(), m_selectionTool, and setSelectedConstraint().

◆ selection() [1/2]

PCB_SELECTION & PCB_TOOL_BASE::selection ( )
protectedinherited

Definition at line 363 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 355 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(), 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(), 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(), EDIT_TOOL::Mirror(), EDIT_TOOL::ModifyLines(), BOARD_EDITOR_CONTROL::modifyLockSelected(), EDIT_TOOL::MoveExact(), ARRAY_TOOL::onDialogClosed(), PCB_POINT_EDITOR::OnSelectionChange(), 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::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(), 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(), and DRAWING_TOOL::DrawVia().

◆ SetIsBoardEditor()

void PCB_TOOL_BASE::SetIsBoardEditor ( bool aEnabled)
inlineinherited

Definition at line 105 of file pcb_tool_base.h.

References m_isBoardEditor.

◆ SetIsFootprintEditor()

void PCB_TOOL_BASE::SetIsFootprintEditor ( bool aEnabled)
inlineinherited

Function SetIsFootprintEditor()

Toggles 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 102 of file pcb_tool_base.h.

References m_isFootprintEditor.

◆ setSelectedConstraint()

void CONSTRAINT_EDIT_TOOL::setSelectedConstraint ( PCB_CONSTRAINT * aConstraint)
private

◆ setTransitions()

◆ ShowConstraints()

int CONSTRAINT_EDIT_TOOL::ShowConstraints ( const TOOL_EVENT & aEvent)

◆ solveAddedConstraint()

void CONSTRAINT_EDIT_TOOL::solveAddedConstraint ( PCB_CONSTRAINT * aConstraint)
private

Solve a just-added constraint so the geometry snaps to satisfy it, in its own commit.

Definition at line 811 of file constraint_edit_tool.cpp.

References _, APPEND_UNDO, ApplyConstraintImmediately(), PCB_TOOL_BASE::board(), COMMIT::Empty(), COMMIT::Modify(), and BOARD_COMMIT::Push().

Referenced by finishConstraintCommit().

◆ SolveAfterEdit()

void CONSTRAINT_EDIT_TOOL::SolveAfterEdit ( const std::vector< PCB_SHAPE * > & aShapes)

Re-solve after a panel or dialog edit holding aShapes fixed so typed values survive Only their constrained neighbors move folded into the same undo.

Definition at line 849 of file constraint_edit_tool.cpp.

References _, APPEND_UNDO, PCB_TOOL_BASE::board(), BoardHasConstraints(), DiagnoseAfterMove(), COMMIT::Empty(), COMMIT::Modify(), BOARD_COMMIT::Push(), and ReSolveShapeClustersHoldingEdited().

◆ SolveAfterMove()

void CONSTRAINT_EDIT_TOOL::SolveAfterMove ( const std::vector< PCB_SHAPE * > & aShapes)

Re-solve the clusters of aShapes after a whole-shape edit, folded into that edit's undo.

Definition at line 828 of file constraint_edit_tool.cpp.

References _, APPEND_UNDO, PCB_TOOL_BASE::board(), BoardHasConstraints(), DiagnoseAfterMove(), COMMIT::Empty(), COMMIT::Modify(), BOARD_COMMIT::Push(), and ReSolveShapeClusters().

Referenced by removeConstraint(), and EDIT_TOOL::reSolveConstraintsAfterEdit().

◆ TryDeleteSelectedConstraint()

bool CONSTRAINT_EDIT_TOOL::TryDeleteSelectedConstraint ( )

Delete the currently badge-selected constraint; returns true if one was selected and removed.

Called by EDIT_TOOL::Remove so the Delete key targets a selected relation.

Definition at line 769 of file constraint_edit_tool.cpp.

References m_overlay, niluuid, removeConstraint(), resolveConstraint(), and setSelectedConstraint().

Referenced by EDIT_TOOL::Remove().

◆ TryEditSelectedConstraint()

bool CONSTRAINT_EDIT_TOOL::TryEditSelectedConstraint ( )

Edit the currently badge-selected constraint's value; returns true if one was selected.

Called by EDIT_TOOL::Properties so the Edit key targets a selected relation.

Definition at line 789 of file constraint_edit_tool.cpp.

References editConstraint(), m_overlay, niluuid, resolveConstraint(), and setSelectedConstraint().

Referenced by EDIT_TOOL::Properties().

◆ updateConstrainedItems()

void CONSTRAINT_EDIT_TOOL::updateConstrainedItems ( const BOARD_CONSTRAINT_DIAGNOSTICS & aDiag)
private

Stash the constrained-item set (the shadow-layer gate) into the render settings and repaint the overlay target.

Pass an empty diagnosis to clear it.

Definition at line 480 of file constraint_edit_tool.cpp.

References KIGFX::PCB_RENDER_SETTINGS::GetConstrainedItems(), pcbRenderSettings(), repaintShadowItems(), KIGFX::PCB_RENDER_SETTINGS::SetConstrainedItems(), and BOARD_CONSTRAINT_DIAGNOSTICS::shapeStates.

Referenced by applyDiagnostics(), and renderConstraintViews().

◆ updateConstraintMsgPanel()

void CONSTRAINT_EDIT_TOOL::updateConstraintMsgPanel ( PCB_CONSTRAINT * aConstraint)
private

◆ updateHighlightedConstraintMembers()

void CONSTRAINT_EDIT_TOOL::updateHighlightedConstraintMembers ( PCB_CONSTRAINT * aConstraint)
private

Stash the selected constraint's members (the highlighted-shadow set) into the render settings and repaint the overlay target.

Pass nullptr to clear it.

Definition at line 500 of file constraint_edit_tool.cpp.

References KIGFX::PCB_RENDER_SETTINGS::GetHighlightedConstraintMembers(), PCB_CONSTRAINT::GetMembers(), pcbRenderSettings(), repaintShadowItems(), and KIGFX::PCB_RENDER_SETTINGS::SetHighlightedConstraintMembers().

Referenced by renderConstraintViews(), and setSelectedConstraint().

◆ view()

◆ Wait()

TOOL_EVENT * TOOL_INTERACTIVE::Wait ( const TOOL_EVENT_LIST & aEventList = TOOL_EVENTTC_ANYTA_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(), 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::PlaceReferenceImage(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), SCH_SELECTION_TOOL::selectLasso(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::SelectPolyArea(), PCB_SELECTION_TOOL::SelectRectArea(), ZOOM_TOOL::selectRegion(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), DRAWING_TOOL::SetAnchor(), and DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew().

Member Data Documentation

◆ m_cachedDiag

BOARD_CONSTRAINT_DIAGNOSTICS CONSTRAINT_EDIT_TOOL::m_cachedDiag
private

Reused until the model changes.

Definition at line 198 of file constraint_edit_tool.h.

Referenced by DiagnoseAfterMove(), and ensureDiagnosis().

◆ m_diagDirty

bool CONSTRAINT_EDIT_TOOL::m_diagDirty = true
private

◆ m_diagnoser

BOARD_CONSTRAINT_DIAGNOSER CONSTRAINT_EDIT_TOOL::m_diagnoser
private

Incremental board diagnoser for the hot edit path, so editing one shape re-solves only its own cluster instead of every cluster on the board.

Definition at line 202 of file constraint_edit_tool.h.

Referenced by DiagnoseAfterMove(), ensureDiagnosis(), and Reset().

◆ m_hoverCandidates

std::optional<std::vector<PCB_SHAPE*> > CONSTRAINT_EDIT_TOOL::m_hoverCandidates
private

Constrained shapes, per model.

Definition at line 204 of file constraint_edit_tool.h.

Referenced by hoverCandidates(), and refreshDiagnostics().

◆ m_isBoardEditor

bool PCB_TOOL_BASE::m_isBoardEditor
protectedinherited

◆ m_isFootprintEditor

◆ m_lastConstraintDriving

std::map<PCB_CONSTRAINT_TYPE, bool> CONSTRAINT_EDIT_TOOL::m_lastConstraintDriving
private

Definition at line 209 of file constraint_edit_tool.h.

Referenced by commitConstraint(), editConstraint(), and Reset().

◆ m_lastConstraintValue

std::map<PCB_CONSTRAINT_TYPE, double> CONSTRAINT_EDIT_TOOL::m_lastConstraintValue
private

Last value and driving choice per constraint type this session so same type runs keep one size Keyed by type so length and angle values never mix cleared on tool Reset.

Definition at line 208 of file constraint_edit_tool.h.

Referenced by commitConstraint(), editConstraint(), and Reset().

◆ m_menu

CONDITIONAL_MENU* CONSTRAINT_EDIT_TOOL::m_menu
private

Definition at line 196 of file constraint_edit_tool.h.

Referenced by CONSTRAINT_EDIT_TOOL(), and Init().

◆ m_overlay

◆ m_selectionTool

◆ 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(), 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(), 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(), 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(), KICAD_MANAGER_CONTROL::Execute(), PCB_SELECTION_TOOL::ExitGroup(), SCH_SELECTION_TOOL::ExitGroup(), PCB_SELECTION_TOOL::expandConnection(), 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(), BOARD_EDITOR_CONTROL::GenerateODBPPFiles(), 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(), GROUP_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(), 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(), 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(), CONVERT_TOOL::OutsetItems(), PCB_CONTROL::Paste(), PL_EDIT_TOOL::Paste(), PAD_TOOL::pastePadProperties(), 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(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), PCB_CONTROL::PlaceLinkedDesignBlock(), DRAWING_TOOL::PlaceReferenceImage(), 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(), GENERATOR_TOOL::RegenerateSelected(), POSITION_RELATIVE_TOOL::RelativeItemSelectionMove(), EDA_3D_CONTROLLER::ReloadBoard(), EDIT_TOOL::Remove(), PCB_POINT_EDITOR::removeCorner(), 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(), ROUTER_TOOL::RouteSelected(), DRAWING_TOOL::runSimpleShapeDraw(), DRC_TOOL::RunTests(), PCB_CONTROL::SaveToLinkedDesignBlock(), SCH_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectAll(), 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::SelectRectArea(), 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(), 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: