KiCad PCB EDA Suite
TOOL_EVT_UTILS Namespace Reference

Namespace TOOL_EVT_UTILS. More...

Functions

bool IsRotateToolEvt (const TOOL_EVENT &aEvt)
 Function isRotateToolEvt() More...
 
int GetEventRotationAngle (const PCB_BASE_EDIT_FRAME &aFrame, const TOOL_EVENT &aEvt)
 Function getEventRotationAngle() More...
 

Detailed Description

Namespace TOOL_EVT_UTILS.

Utility functions for dealing with various tool events. These are free functions, so they interface with any classes exclusively via the public interfaces, so they don't need to be subsumed into the "helped" classes.

Function Documentation

◆ GetEventRotationAngle()

int TOOL_EVT_UTILS::GetEventRotationAngle ( const PCB_BASE_EDIT_FRAME aFrame,
const TOOL_EVENT aEvt 
)

Function getEventRotationAngle()

Helper function to get a rotation angle based on a frame's configured angle and the direction indicated by a rotation action event

Parameters
aFramethe PCB edit frame to use to get the base rotation step value from
aEvtthe tool event - should be a rotation action event and should have a rotation multiplier parameter
Returns
the rotation angle in clockwise internal units

Definition at line 36 of file tool_event_utils.cpp.

38 {
39  wxASSERT_MSG( IsRotateToolEvt( aEvt ), "Expected rotation event" );
40 
41  const int rotAngle = aFrame.GetRotationAngle();
42  const int angleMultiplier = aEvt.Parameter<intptr_t>();
43 
44  return rotAngle * angleMultiplier;
45 }
bool IsRotateToolEvt(const TOOL_EVENT &aEvt)
Function isRotateToolEvt()
T Parameter() const
Function Parameter() Returns a non-standard parameter assigned to the event.
Definition: tool_event.h:435
int GetRotationAngle() const
Function GetRotationAngle() Returns the angle used for rotate operations.

References PCB_BASE_EDIT_FRAME::GetRotationAngle(), IsRotateToolEvt(), and TOOL_EVENT::Parameter().

Referenced by PCB_TOOL_BASE::doInteractiveItemPlacement(), DRAWING_TOOL::PlaceImportedGraphics(), and EDIT_TOOL::Rotate().

◆ IsRotateToolEvt()

bool TOOL_EVT_UTILS::IsRotateToolEvt ( const TOOL_EVENT aEvt)

Function isRotateToolEvt()

Parameters
aEvtevent to check
Returns
true if the event is a rotation action tool event

Definition at line 29 of file tool_event_utils.cpp.

30 {
31  return aEvt.IsAction( &PCB_ACTIONS::rotateCw )
32  || aEvt.IsAction( &PCB_ACTIONS::rotateCcw );
33 }
bool IsAction(const TOOL_ACTION *aAction) const
Function IsAction() Tests if the event contains an action issued upon activation of the given TOOL_AC...
Definition: tool_event.cpp:67
static TOOL_ACTION rotateCw
Rotation of selected objects.
Definition: pcb_actions.h:112
static TOOL_ACTION rotateCcw
Definition: pcb_actions.h:113

References TOOL_EVENT::IsAction(), PCB_ACTIONS::rotateCcw, and PCB_ACTIONS::rotateCw.

Referenced by PCB_TOOL_BASE::doInteractiveItemPlacement(), GetEventRotationAngle(), and DRAWING_TOOL::PlaceImportedGraphics().