KiCad PCB EDA Suite
|
#include <grid_helper.h>
Classes | |
struct | ANCHOR |
Public Types | |
enum | ANCHOR_FLAGS { CORNER = 1 , OUTLINE = 2 , SNAPPABLE = 4 , ORIGIN = 8 , VERTICAL = 16 , HORIZONTAL = 32 , CONSTRUCTED = 64 , ALL = CORNER | OUTLINE | SNAPPABLE | ORIGIN | VERTICAL | HORIZONTAL | CONSTRUCTED } |
Public Member Functions | |
GRID_HELPER (TOOL_MANAGER *aToolMgr, int aConstructionLayer) | |
virtual | ~GRID_HELPER () |
VECTOR2I | GetGrid () const |
VECTOR2D | GetVisibleGrid () const |
VECTOR2I | GetOrigin () const |
void | SetAuxAxes (bool aEnable, const VECTOR2I &aOrigin=VECTOR2I(0, 0)) |
virtual VECTOR2I | Align (const VECTOR2I &aPoint, GRID_HELPER_GRIDS aGrid) const |
virtual VECTOR2I | AlignGrid (const VECTOR2I &aPoint, GRID_HELPER_GRIDS aGrid) const |
virtual VECTOR2I | Align (const VECTOR2I &aPoint) const |
virtual VECTOR2I | Align (const VECTOR2I &aPoint, const VECTOR2D &aGrid, const VECTOR2D &aOffset) const |
VECTOR2I | AlignGrid (const VECTOR2I &aPoint) const |
VECTOR2I | AlignGrid (const VECTOR2I &aPoint, const VECTOR2D &aGrid, const VECTOR2D &aOffset) const |
virtual GRID_HELPER_GRIDS | GetSelectionGrid (const SELECTION &aSelection) const |
Gets the coarsest grid that applies to a selecion of items. | |
virtual GRID_HELPER_GRIDS | GetItemGrid (const EDA_ITEM *aItem) const |
Gets the coarsest grid that applies to an item. | |
virtual VECTOR2D | GetGridSize (GRID_HELPER_GRIDS aGrid) const |
Return the size of the specified grid. | |
void | SetSkipPoint (const VECTOR2I &aPoint) |
void | ClearSkipPoint () |
We clear the skip point by setting it to an unreachable position, thereby preventing matching. | |
void | SetSnap (bool aSnap) |
bool | GetSnap () const |
void | SetUseGrid (bool aSnapToGrid) |
bool | GetUseGrid () const |
void | SetSnapLine (bool aSnap) |
void | SetMask (int aMask) |
void | SetMaskFlag (int aFlag) |
void | ClearMaskFlag (int aFlag) |
std::optional< VECTOR2I > | GetSnappedPoint () const |
Protected Member Functions | |
void | addAnchor (const VECTOR2I &aPos, int aFlags, EDA_ITEM *aItem, int aPointTypes=POINT_TYPE::PT_NONE) |
void | addAnchor (const VECTOR2I &aPos, int aFlags, std::vector< EDA_ITEM * > aItems, int aPointTypes) |
void | clearAnchors () |
bool | canUseGrid () const |
Check whether it is possible to use the grid – this depends both on local grid helper settings and global (tool manager) KiCad settings. | |
VECTOR2I | computeNearest (const VECTOR2I &aPoint, const VECTOR2I &aGrid, const VECTOR2I &aOffset) const |
void | showConstructionGeometry (bool aShow) |
SNAP_MANAGER & | getSnapManager () |
void | updateSnapPoint (const TYPED_POINT2I &aPoint) |
KIGFX::ANCHOR_DEBUG * | enableAndGetAnchorDebug () |
Enable the anchor debug if permitted and return it. | |
Protected Attributes | |
std::vector< ANCHOR > | m_anchors |
TOOL_MANAGER * | m_toolMgr |
std::optional< VECTOR2I > | m_auxAxis |
int | m_maskTypes |
bool | m_enableSnap |
bool | m_enableGrid |
bool | m_enableSnapLine |
std::optional< ANCHOR > | m_snapItem |
VECTOR2I | m_skipPoint |
KIGFX::SNAP_INDICATOR | m_viewSnapPoint |
KIGFX::ORIGIN_VIEWITEM | m_viewAxis |
Private Attributes | |
KIGFX::CONSTRUCTION_GEOM | m_constructionGeomPreview |
SNAP_MANAGER | m_snapManager |
std::unique_ptr< KIGFX::ANCHOR_DEBUG > | m_anchorDebug |
VIEW_ITEM for visualising anchor points, if enabled. | |
Definition at line 53 of file grid_helper.h.
Enumerator | |
---|---|
CORNER | |
OUTLINE | |
SNAPPABLE | |
ORIGIN | |
VERTICAL | |
HORIZONTAL | |
CONSTRUCTED | |
ALL |
Definition at line 125 of file grid_helper.h.
GRID_HELPER::GRID_HELPER | ( | TOOL_MANAGER * | aToolMgr, |
int | aConstructionLayer | ||
) |
Definition at line 39 of file grid_helper.cpp.
References KIGFX::VIEW::Add(), ALL, KIGFX::RENDER_SETTINGS::GetLayerColor(), KIGFX::VIEW::GetPainter(), KIGFX::PAINTER::GetSettings(), TOOL_MANAGER::GetView(), m_constructionGeomPreview, m_enableGrid, m_enableSnap, m_enableSnapLine, m_maskTypes, m_snapItem, m_snapManager, m_toolMgr, KIGFX::CONSTRUCTION_GEOM::SetColor(), KIGFX::CONSTRUCTION_GEOM::SetPersistentColor(), SNAP_MANAGER::SetUpdateCallback(), KIGFX::VIEW::SetVisible(), and KIGFX::COLOR4D::WithAlpha().
|
virtual |
Definition at line 75 of file grid_helper.cpp.
|
inlineprotected |
Definition at line 176 of file grid_helper.h.
References addAnchor().
Referenced by addAnchor(), PCB_GRID_HELPER::computeAnchors(), and EE_GRID_HELPER::computeAnchors().
|
inlineprotected |
Definition at line 182 of file grid_helper.h.
References m_anchors, and m_maskTypes.
Reimplemented in PCB_GRID_HELPER.
Definition at line 199 of file grid_helper.cpp.
References Align(), GetGrid(), and GetOrigin().
|
virtual |
Reimplemented in PCB_GRID_HELPER.
Definition at line 205 of file grid_helper.cpp.
References std::abs(), AlignGrid(), canUseGrid(), m_auxAxis, VECTOR2< T >::x, and VECTOR2< T >::y.
|
inlinevirtual |
Reimplemented in PCB_GRID_HELPER.
Definition at line 65 of file grid_helper.h.
References Align(), GetGridSize(), and GetOrigin().
Referenced by Align(), EE_GRID_HELPER::BestSnapAnchor(), and EE_GRID_HELPER::computeAnchors().
Definition at line 178 of file grid_helper.cpp.
References computeNearest(), GetGrid(), and GetOrigin().
VECTOR2I GRID_HELPER::AlignGrid | ( | const VECTOR2I & | aPoint, |
const VECTOR2D & | aGrid, | ||
const VECTOR2D & | aOffset | ||
) | const |
Definition at line 184 of file grid_helper.cpp.
References computeNearest().
|
inlinevirtual |
Reimplemented in PCB_GRID_HELPER.
Definition at line 70 of file grid_helper.h.
References AlignGrid(), GetGridSize(), and GetOrigin().
Referenced by Align(), AlignGrid(), EC_VERTICAL::Apply(), EC_HORIZONTAL::Apply(), EC_45DEGREE::Apply(), and EC_LINE::Apply().
|
protected |
Check whether it is possible to use the grid – this depends both on local grid helper settings and global (tool manager) KiCad settings.
Definition at line 226 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSnapping(), TOOL_MANAGER::GetView(), m_enableGrid, and m_toolMgr.
Referenced by Align(), and EE_GRID_HELPER::BestSnapAnchor().
|
inlineprotected |
Definition at line 189 of file grid_helper.h.
References m_anchors.
Referenced by PCB_GRID_HELPER::AlignToNearestPad(), EE_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestSnapAnchor(), and EE_GRID_HELPER::BestSnapAnchor().
|
inline |
Definition at line 121 of file grid_helper.h.
References m_maskTypes.
|
inline |
We clear the skip point by setting it to an unreachable position, thereby preventing matching.
Definition at line 106 of file grid_helper.h.
References m_skipPoint.
|
protected |
Definition at line 191 of file grid_helper.cpp.
References KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by AlignGrid().
|
protected |
Enable the anchor debug if permitted and return it.
Returns nullptr if not permitted by the advancd config
Definition at line 85 of file grid_helper.cpp.
References KIGFX::VIEW::Add(), ADVANCED_CFG::GetCfg(), TOOL_MANAGER::GetView(), m_anchorDebug, ADVANCED_CFG::m_EnableSnapAnchorsDebug, m_toolMgr, and KIGFX::VIEW::SetVisible().
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), and EE_GRID_HELPER::BestSnapAnchor().
VECTOR2I GRID_HELPER::GetGrid | ( | ) | const |
Definition at line 117 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), TOOL_MANAGER::GetView(), KiROUND(), m_toolMgr, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Align(), AlignGrid(), PCB_GRID_HELPER::computeAnchors(), and PNS::TOOL_BASE::pickSingleItem().
|
virtual |
Return the size of the specified grid.
Reimplemented in EE_GRID_HELPER, and PCB_GRID_HELPER.
Definition at line 156 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), TOOL_MANAGER::GetView(), and m_toolMgr.
Referenced by Align(), AlignGrid(), and GetSelectionGrid().
|
inlinevirtual |
Gets the coarsest grid that applies to an item.
Reimplemented in EE_GRID_HELPER, and PCB_GRID_HELPER.
Definition at line 91 of file grid_helper.h.
References GRID_CURRENT.
Referenced by GetSelectionGrid().
VECTOR2I GRID_HELPER::GetOrigin | ( | ) | const |
Definition at line 131 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridOrigin(), TOOL_MANAGER::GetView(), and m_toolMgr.
Referenced by Align(), and AlignGrid().
|
virtual |
Gets the coarsest grid that applies to a selecion of items.
Reimplemented in EE_GRID_HELPER.
Definition at line 139 of file grid_helper.cpp.
References SELECTION::Front(), GetGridSize(), GetItemGrid(), and grid.
|
inline |
Definition at line 112 of file grid_helper.h.
References m_enableSnap.
Referenced by DRAWING_TOOL::DrawVia(), and PNS::TOOL_BASE::updateEndItem().
|
inlineprotected |
Definition at line 206 of file grid_helper.h.
References m_snapManager.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), and PCB_GRID_HELPER::computeAnchors().
std::optional< VECTOR2I > GRID_HELPER::GetSnappedPoint | ( | ) | const |
Definition at line 232 of file grid_helper.cpp.
References m_snapItem.
Referenced by PCB_PICKER_TOOL::SelectPointInteractively().
|
inline |
Definition at line 115 of file grid_helper.h.
References m_enableGrid.
Referenced by PNS::TOOL_BASE::updateStartItem().
VECTOR2D GRID_HELPER::GetVisibleGrid | ( | ) | const |
Definition at line 125 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), TOOL_MANAGER::GetView(), KIGFX::GAL::GetVisibleGridSize(), and m_toolMgr.
Referenced by PCB_GRID_HELPER::BestSnapAnchor().
Definition at line 162 of file grid_helper.cpp.
References TOOL_MANAGER::GetView(), m_auxAxis, m_toolMgr, m_viewAxis, KIGFX::ORIGIN_VIEWITEM::SetPosition(), and KIGFX::VIEW::SetVisible().
Referenced by ROUTER_TOOL::InlineDrag(), and ROUTER_TOOL::performDragging().
|
inline |
Definition at line 119 of file grid_helper.h.
References m_maskTypes.
|
inline |
Definition at line 120 of file grid_helper.h.
References m_maskTypes.
|
inline |
Definition at line 98 of file grid_helper.h.
References m_skipPoint.
|
inline |
Definition at line 111 of file grid_helper.h.
References m_enableSnap.
Referenced by DRAWING_TOOL::DrawVia(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), PCB_PICKER_TOOL::SelectPointInteractively(), PNS::TOOL_BASE::updateEndItem(), and PNS::TOOL_BASE::updateStartItem().
|
inline |
Definition at line 117 of file grid_helper.h.
References m_enableSnapLine.
|
inline |
Definition at line 114 of file grid_helper.h.
References m_enableGrid.
Referenced by ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), PNS::TOOL_BASE::updateEndItem(), and PNS::TOOL_BASE::updateStartItem().
|
protected |
Definition at line 99 of file grid_helper.cpp.
References TOOL_MANAGER::GetView(), m_constructionGeomPreview, m_toolMgr, and KIGFX::VIEW::SetVisible().
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), and EE_GRID_HELPER::BestSnapAnchor().
|
protected |
Definition at line 105 of file grid_helper.cpp.
References KIGFX::GEOMETRY, TOOL_MANAGER::GetView(), KIGFX::VIEW::IsVisible(), TYPED_POINT2I::m_point, m_toolMgr, TYPED_POINT2I::m_types, m_viewSnapPoint, KIGFX::ORIGIN_VIEWITEM::SetPosition(), KIGFX::SNAP_INDICATOR::SetSnapTypes(), KIGFX::VIEW::SetVisible(), and KIGFX::VIEW::Update().
Referenced by PCB_GRID_HELPER::BestSnapAnchor().
|
private |
VIEW_ITEM for visualising anchor points, if enabled.
Definition at line 244 of file grid_helper.h.
Referenced by enableAndGetAnchorDebug().
|
protected |
Definition at line 217 of file grid_helper.h.
Referenced by addAnchor(), PCB_GRID_HELPER::AlignToNearestPad(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), clearAnchors(), PCB_GRID_HELPER::nearestAnchor(), and EE_GRID_HELPER::nearestAnchor().
|
protected |
Definition at line 220 of file grid_helper.h.
Referenced by Align(), and SetAuxAxes().
|
private |
Definition at line 237 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::Align(), EE_GRID_HELPER::GetGrid(), GRID_HELPER(), and showConstructionGeometry().
|
protected |
Definition at line 225 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), canUseGrid(), GetUseGrid(), GRID_HELPER(), and SetUseGrid().
|
protected |
Definition at line 224 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::AlignToArc(), PCB_GRID_HELPER::AlignToSegment(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GetSnap(), GRID_HELPER(), and SetSnap().
|
protected |
Definition at line 226 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER(), and SetSnapLine().
|
protected |
Definition at line 222 of file grid_helper.h.
Referenced by addAnchor(), ClearMaskFlag(), GRID_HELPER(), SetMask(), and SetMaskFlag().
|
protected |
Definition at line 229 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), ClearSkipPoint(), and SetSkipPoint().
|
protected |
Definition at line 227 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::AlignToNearestPad(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::GetSnapped(), PCB_GRID_HELPER::GetSnapped(), GetSnappedPoint(), GRID_HELPER(), and PCB_GRID_HELPER::OnBoardItemRemoved().
|
private |
Definition at line 241 of file grid_helper.h.
Referenced by getSnapManager(), and GRID_HELPER().
|
protected |
Definition at line 219 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::Align(), EE_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), canUseGrid(), PCB_GRID_HELPER::computeAnchors(), EE_GRID_HELPER::EE_GRID_HELPER(), enableAndGetAnchorDebug(), GetGrid(), GetGridSize(), EE_GRID_HELPER::GetGridSize(), PCB_GRID_HELPER::GetGridSize(), GetOrigin(), GetVisibleGrid(), GRID_HELPER(), PCB_GRID_HELPER::PCB_GRID_HELPER(), EE_GRID_HELPER::queryVisible(), PCB_GRID_HELPER::queryVisible(), SetAuxAxes(), showConstructionGeometry(), updateSnapPoint(), EE_GRID_HELPER::~EE_GRID_HELPER(), and PCB_GRID_HELPER::~PCB_GRID_HELPER().
|
protected |
Definition at line 232 of file grid_helper.h.
Referenced by EE_GRID_HELPER::EE_GRID_HELPER(), PCB_GRID_HELPER::PCB_GRID_HELPER(), SetAuxAxes(), EE_GRID_HELPER::~EE_GRID_HELPER(), and PCB_GRID_HELPER::~PCB_GRID_HELPER().
|
protected |
Definition at line 231 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::EE_GRID_HELPER(), PCB_GRID_HELPER::PCB_GRID_HELPER(), updateSnapPoint(), EE_GRID_HELPER::~EE_GRID_HELPER(), and PCB_GRID_HELPER::~PCB_GRID_HELPER().