KiCad PCB EDA Suite
|
A tool that acts on a pair of lines. More...
#include <item_modification_routine.h>
Public Member Functions | |
PAIRWISE_LINE_ROUTINE (BOARD_ITEM *aBoard, CHANGE_HANDLER &aHandler) | |
virtual void | ProcessLinePair (PCB_SHAPE &aLineA, PCB_SHAPE &aLineB)=0 |
Perform the action on the pair of lines given. | |
unsigned | GetSuccesses () const |
unsigned | GetFailures () const |
virtual wxString | GetCommitDescription () const =0 |
virtual std::optional< wxString > | GetStatusMessage () const =0 |
Get a status message to show when the routine is complete. | |
Protected Member Functions | |
BOARD_ITEM * | GetBoard () const |
The BOARD used when creating new shapes. | |
void | AddSuccess () |
Mark that one of the actions succeeded. | |
void | AddFailure () |
Mark that one of the actions failed. | |
bool | ModifyLineOrDeleteIfZeroLength (PCB_SHAPE &aItem, const std::optional< SEG > &aSeg) |
Helper function useful for multiple tools: modify a line or delete it if it has zero length. | |
CHANGE_HANDLER & | GetHandler () |
Access the handler for making changes to the board. | |
Private Attributes | |
BOARD_ITEM * | m_board |
CHANGE_HANDLER & | m_handler |
unsigned | m_numSuccesses |
unsigned | m_numFailures |
A tool that acts on a pair of lines.
For example, fillets, chamfers, extensions, etc
Definition at line 219 of file item_modification_routine.h.
|
inline |
Definition at line 222 of file item_modification_routine.h.
|
inlineprotectedinherited |
Mark that one of the actions failed.
Definition at line 192 of file item_modification_routine.h.
References ITEM_MODIFICATION_ROUTINE::m_numFailures.
Referenced by LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), and POLYGON_BOOLEAN_ROUTINE::ProcessShape().
|
inlineprotectedinherited |
Mark that one of the actions succeeded.
Definition at line 187 of file item_modification_routine.h.
References ITEM_MODIFICATION_ROUTINE::m_numSuccesses.
Referenced by OUTSET_ROUTINE::ProcessItem(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), and POLYGON_BOOLEAN_ROUTINE::ProcessShape().
|
inlineprotectedinherited |
The BOARD used when creating new shapes.
Definition at line 182 of file item_modification_routine.h.
References ITEM_MODIFICATION_ROUTINE::m_board.
Referenced by POLYGON_BOOLEAN_ROUTINE::Finalize(), OUTSET_ROUTINE::ProcessItem(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), and DOGBONE_CORNER_ROUTINE::ProcessLinePair().
|
pure virtualinherited |
|
inlineinherited |
Definition at line 167 of file item_modification_routine.h.
References ITEM_MODIFICATION_ROUTINE::m_numFailures.
Referenced by LINE_FILLET_ROUTINE::GetStatusMessage(), LINE_CHAMFER_ROUTINE::GetStatusMessage(), LINE_EXTENSION_ROUTINE::GetStatusMessage(), DOGBONE_CORNER_ROUTINE::GetStatusMessage(), POLYGON_MERGE_ROUTINE::GetStatusMessage(), POLYGON_SUBTRACT_ROUTINE::GetStatusMessage(), POLYGON_INTERSECT_ROUTINE::GetStatusMessage(), and OUTSET_ROUTINE::GetStatusMessage().
|
inlineprotectedinherited |
Access the handler for making changes to the board.
Definition at line 206 of file item_modification_routine.h.
References ITEM_MODIFICATION_ROUTINE::m_handler.
Referenced by POLYGON_BOOLEAN_ROUTINE::Finalize(), ITEM_MODIFICATION_ROUTINE::ModifyLineOrDeleteIfZeroLength(), OUTSET_ROUTINE::ProcessItem(), LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), LINE_EXTENSION_ROUTINE::ProcessLinePair(), DOGBONE_CORNER_ROUTINE::ProcessLinePair(), and POLYGON_BOOLEAN_ROUTINE::ProcessShape().
|
pure virtualinherited |
Get a status message to show when the routine is complete.
Usually this will be an error or nothing.
Implemented in LINE_FILLET_ROUTINE, LINE_CHAMFER_ROUTINE, LINE_EXTENSION_ROUTINE, DOGBONE_CORNER_ROUTINE, POLYGON_MERGE_ROUTINE, POLYGON_SUBTRACT_ROUTINE, POLYGON_INTERSECT_ROUTINE, and OUTSET_ROUTINE.
|
inlineinherited |
Definition at line 165 of file item_modification_routine.h.
References ITEM_MODIFICATION_ROUTINE::m_numSuccesses.
Referenced by LINE_FILLET_ROUTINE::GetStatusMessage(), LINE_CHAMFER_ROUTINE::GetStatusMessage(), LINE_EXTENSION_ROUTINE::GetStatusMessage(), DOGBONE_CORNER_ROUTINE::GetStatusMessage(), POLYGON_MERGE_ROUTINE::GetStatusMessage(), POLYGON_SUBTRACT_ROUTINE::GetStatusMessage(), POLYGON_INTERSECT_ROUTINE::GetStatusMessage(), and OUTSET_ROUTINE::GetStatusMessage().
|
protectedinherited |
Helper function useful for multiple tools: modify a line or delete it if it has zero length.
aItem | the line to modify |
aSeg | the new line geometry |
Definition at line 76 of file item_modification_routine.cpp.
References ITEM_MODIFICATION_ROUTINE::CHANGE_HANDLER::DeleteItem(), ITEM_MODIFICATION_ROUTINE::GetHandler(), EDA_SHAPE::GetShape(), ITEM_MODIFICATION_ROUTINE::CHANGE_HANDLER::MarkItemModified(), EDA_SHAPE::SetEnd(), and EDA_SHAPE::SetStart().
Referenced by LINE_FILLET_ROUTINE::ProcessLinePair(), LINE_CHAMFER_ROUTINE::ProcessLinePair(), and DOGBONE_CORNER_ROUTINE::ProcessLinePair().
|
pure virtual |
Perform the action on the pair of lines given.
The routine will be called repeatedly with all possible pairs of lines in the selection. The tools should handle the ones it's interested in. This means that the same line can appear multiple times with different partners.
The routine can skip lines that it's not interested in by returning without adding to the success or failure count.
aLineA | the first line |
aLineB | the second line |
Implemented in LINE_FILLET_ROUTINE, LINE_CHAMFER_ROUTINE, LINE_EXTENSION_ROUTINE, and DOGBONE_CORNER_ROUTINE.
|
privateinherited |
Definition at line 209 of file item_modification_routine.h.
Referenced by ITEM_MODIFICATION_ROUTINE::GetBoard().
|
privateinherited |
Definition at line 210 of file item_modification_routine.h.
Referenced by ITEM_MODIFICATION_ROUTINE::GetHandler().
|
privateinherited |
Definition at line 213 of file item_modification_routine.h.
Referenced by ITEM_MODIFICATION_ROUTINE::AddFailure(), and ITEM_MODIFICATION_ROUTINE::GetFailures().
|
privateinherited |
Definition at line 212 of file item_modification_routine.h.
Referenced by ITEM_MODIFICATION_ROUTINE::AddSuccess(), and ITEM_MODIFICATION_ROUTINE::GetSuccesses().