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 () | |
GRID_HELPER (TOOL_MANAGER *aToolMgr, int aConstructionLayer) | |
virtual | ~GRID_HELPER () |
VECTOR2I | GetGrid () const |
VECTOR2D | GetVisibleGrid () const |
VECTOR2I | GetOrigin () const |
void | SetGridSize (const VECTOR2D &aGrid) |
void | SetVisibleGridSize (const VECTOR2D &aGrid) |
void | SetOrigin (const VECTOR2I &aOrigin) |
void | SetGridSnapping (bool aEnable) |
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 |
VECTOR2I | AlignGrid (const VECTOR2I &aPoint) const |
VECTOR2I | AlignGrid (const VECTOR2I &aPoint, const VECTOR2D &aGrid) 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 |
Get 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 () |
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 |
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 |
VECTOR2D | m_manualGrid |
VECTOR2D | m_manualVisibleGrid |
VECTOR2I | m_manualOrigin |
bool | m_manualGridSnapping |
Private Attributes | |
KIGFX::CONSTRUCTION_GEOM | m_constructionGeomPreview |
Show construction geometry (if any) on the canvas. | |
SNAP_MANAGER | m_snapManager |
Manage the construction geometry, snap lines, reference points, etc. | |
std::unique_ptr< KIGFX::ANCHOR_DEBUG > | m_anchorDebug |
#VIEW_ITEM for visualising anchor points, if enabled. | |
Friends | |
void | TEST_CLEAR_ANCHORS (GRID_HELPER &helper) |
Definition at line 54 of file grid_helper.h.
Enumerator | |
---|---|
CORNER | |
OUTLINE | |
SNAPPABLE | |
ORIGIN | |
VERTICAL | |
HORIZONTAL | |
CONSTRUCTED | |
ALL |
Definition at line 132 of file grid_helper.h.
GRID_HELPER::GRID_HELPER | ( | ) |
Definition at line 40 of file grid_helper.cpp.
References ALL, m_enableGrid, m_enableSnap, m_enableSnapLine, m_manualGrid, m_manualGridSnapping, m_manualOrigin, m_manualVisibleGrid, m_maskTypes, and m_snapItem.
GRID_HELPER::GRID_HELPER | ( | TOOL_MANAGER * | aToolMgr, |
int | aConstructionLayer | ||
) |
Definition at line 56 of file grid_helper.cpp.
References m_toolMgr.
|
virtual |
Definition at line 99 of file grid_helper.cpp.
References TOOL_MANAGER::GetView(), m_anchorDebug, m_constructionGeomPreview, m_toolMgr, and KIGFX::VIEW::Remove().
|
inlineprotected |
Definition at line 185 of file grid_helper.h.
References addAnchor().
Referenced by addAnchor(), PCB_GRID_HELPER::computeAnchors(), and EE_GRID_HELPER::computeAnchors().
|
inlineprotected |
Definition at line 191 of file grid_helper.h.
References m_anchors, and m_maskTypes.
Reimplemented in PCB_GRID_HELPER.
Definition at line 238 of file grid_helper.cpp.
Reimplemented in PCB_GRID_HELPER.
Definition at line 244 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 74 of file grid_helper.h.
References Align(), and GetGridSize().
Referenced by Align(), EE_GRID_HELPER::BestSnapAnchor(), BOOST_AUTO_TEST_CASE(), and EE_GRID_HELPER::computeAnchors().
Definition at line 219 of file grid_helper.cpp.
References computeNearest(), and GetGrid().
Definition at line 225 of file grid_helper.cpp.
References computeNearest().
|
inlinevirtual |
Reimplemented in PCB_GRID_HELPER.
Definition at line 79 of file grid_helper.h.
References AlignGrid(), and GetGridSize().
Referenced by Align(), AlignGrid(), EC_VERTICAL::Apply(), EC_HORIZONTAL::Apply(), EC_45DEGREE::Apply(), EC_LINE::Apply(), and BOOST_AUTO_TEST_CASE().
|
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 264 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSnapping(), TOOL_MANAGER::GetView(), m_enableGrid, m_manualGridSnapping, and m_toolMgr.
Referenced by Align(), and EE_GRID_HELPER::BestSnapAnchor().
|
inlineprotected |
Definition at line 198 of file grid_helper.h.
References m_anchors.
Referenced by EE_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestDragOrigin(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), and PCB_GRID_HELPER::SnapToPad().
|
inline |
Definition at line 128 of file grid_helper.h.
References m_maskTypes.
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Clear the skip point by setting it to an unreachable position, thereby preventing matching.
Definition at line 113 of file grid_helper.h.
References m_skipPoint.
Referenced by BOOST_AUTO_TEST_CASE().
|
protected |
Definition at line 231 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 112 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 153 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), TOOL_MANAGER::GetView(), KiROUND(), m_manualGrid, m_toolMgr, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Align(), AlignGrid(), BOOST_AUTO_TEST_CASE(), 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 195 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), TOOL_MANAGER::GetView(), m_manualGrid, and m_toolMgr.
Referenced by Align(), AlignGrid(), BOOST_AUTO_TEST_CASE(), and GetSelectionGrid().
|
inlinevirtual |
Get the coarsest grid that applies to an item.
Reimplemented in EE_GRID_HELPER, and PCB_GRID_HELPER.
Definition at line 98 of file grid_helper.h.
References GRID_CURRENT.
Referenced by GetSelectionGrid().
VECTOR2I GRID_HELPER::GetOrigin | ( | ) | const |
Definition at line 166 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridOrigin(), TOOL_MANAGER::GetView(), m_manualOrigin, and m_toolMgr.
Referenced by BOOST_AUTO_TEST_CASE().
|
virtual |
Gets the coarsest grid that applies to a selecion of items.
Reimplemented in EE_GRID_HELPER.
Definition at line 178 of file grid_helper.cpp.
References SELECTION::Front(), GetGridSize(), GetItemGrid(), and grid.
|
inline |
Definition at line 119 of file grid_helper.h.
References m_enableSnap.
Referenced by BOOST_AUTO_TEST_CASE(), DRAWING_TOOL::DrawVia(), and PNS::TOOL_BASE::updateEndItem().
|
inlineprotected |
Definition at line 214 of file grid_helper.h.
References m_snapManager.
Referenced by PCB_GRID_HELPER::AddConstructionItems(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), PCB_GRID_HELPER::computeAnchors(), and PCB_GRID_HELPER::nearestAnchor().
std::optional< VECTOR2I > GRID_HELPER::GetSnappedPoint | ( | ) | const |
Definition at line 271 of file grid_helper.cpp.
References m_snapItem.
Referenced by BOOST_AUTO_TEST_CASE(), and PCB_PICKER_TOOL::SelectPointInteractively().
|
inline |
Definition at line 122 of file grid_helper.h.
References m_enableGrid.
Referenced by BOOST_AUTO_TEST_CASE(), and PNS::TOOL_BASE::updateStartItem().
VECTOR2D GRID_HELPER::GetVisibleGrid | ( | ) | const |
Definition at line 160 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), TOOL_MANAGER::GetView(), KIGFX::GAL::GetVisibleGridSize(), m_manualVisibleGrid, and m_toolMgr.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), and BOOST_AUTO_TEST_CASE().
Definition at line 201 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 BOOST_AUTO_TEST_CASE(), ROUTER_TOOL::InlineDrag(), and ROUTER_TOOL::performDragging().
|
inline |
Definition at line 67 of file grid_helper.h.
References m_manualGrid.
Referenced by BOOST_AUTO_TEST_CASE(), and PCBGridHelperTestFixture::PCBGridHelperTestFixture().
|
inline |
Definition at line 70 of file grid_helper.h.
References m_manualGridSnapping.
Referenced by BOOST_AUTO_TEST_CASE(), and PCBGridHelperTestFixture::PCBGridHelperTestFixture().
|
inline |
Definition at line 126 of file grid_helper.h.
References m_maskTypes.
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 127 of file grid_helper.h.
References m_maskTypes.
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 69 of file grid_helper.h.
References m_manualOrigin.
Referenced by BOOST_AUTO_TEST_CASE(), and PCBGridHelperTestFixture::PCBGridHelperTestFixture().
|
inline |
Definition at line 105 of file grid_helper.h.
References m_skipPoint.
Referenced by BOOST_AUTO_TEST_CASE().
|
inline |
Definition at line 118 of file grid_helper.h.
References m_enableSnap.
Referenced by BOOST_AUTO_TEST_CASE(), DRAWING_TOOL::DrawVia(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), PCBGridHelperTestFixture::PCBGridHelperTestFixture(), PCB_PICKER_TOOL::SelectPointInteractively(), PNS::TOOL_BASE::updateEndItem(), and PNS::TOOL_BASE::updateStartItem().
|
inline |
Definition at line 124 of file grid_helper.h.
References m_enableSnapLine.
|
inline |
Definition at line 121 of file grid_helper.h.
References m_enableGrid.
Referenced by BOOST_AUTO_TEST_CASE(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), PNS::TOOL_BASE::updateEndItem(), and PNS::TOOL_BASE::updateStartItem().
|
inline |
Definition at line 68 of file grid_helper.h.
References m_manualVisibleGrid.
Referenced by BOOST_AUTO_TEST_CASE().
|
protected |
Definition at line 131 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 138 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().
|
friend |
Definition at line 23 of file test_grid_helper.cpp.
|
private |
#VIEW_ITEM for visualising anchor points, if enabled.
Definition at line 256 of file grid_helper.h.
Referenced by enableAndGetAnchorDebug(), and ~GRID_HELPER().
|
protected |
Definition at line 225 of file grid_helper.h.
Referenced by addAnchor(), PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), clearAnchors(), PCB_GRID_HELPER::nearestAnchor(), EE_GRID_HELPER::nearestAnchor(), and PCB_GRID_HELPER::SnapToPad().
|
protected |
Definition at line 228 of file grid_helper.h.
Referenced by Align(), and SetAuxAxes().
|
private |
Show construction geometry (if any) on the canvas.
Definition at line 250 of file grid_helper.h.
Referenced by EE_GRID_HELPER::GetGrid(), showConstructionGeometry(), and ~GRID_HELPER().
|
protected |
Definition at line 233 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), canUseGrid(), GetUseGrid(), GRID_HELPER(), and SetUseGrid().
|
protected |
Definition at line 232 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 234 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER(), and SetSnapLine().
|
protected |
Definition at line 243 of file grid_helper.h.
Referenced by GetGrid(), GetGridSize(), GRID_HELPER(), and SetGridSize().
|
protected |
Definition at line 246 of file grid_helper.h.
Referenced by canUseGrid(), GRID_HELPER(), and SetGridSnapping().
|
protected |
Definition at line 245 of file grid_helper.h.
Referenced by GetOrigin(), GRID_HELPER(), and SetOrigin().
|
protected |
Definition at line 244 of file grid_helper.h.
Referenced by GetVisibleGrid(), GRID_HELPER(), and SetVisibleGridSize().
|
protected |
Definition at line 230 of file grid_helper.h.
Referenced by addAnchor(), ClearMaskFlag(), GRID_HELPER(), SetMask(), and SetMaskFlag().
|
protected |
Definition at line 237 of file grid_helper.h.
Referenced by PCB_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), ClearSkipPoint(), and SetSkipPoint().
|
protected |
Definition at line 235 of file grid_helper.h.
Referenced by 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 |
Manage the construction geometry, snap lines, reference points, etc.
Definition at line 253 of file grid_helper.h.
Referenced by getSnapManager().
|
protected |
Definition at line 227 of file grid_helper.h.
Referenced by 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(), ~GRID_HELPER(), and PCB_GRID_HELPER::~PCB_GRID_HELPER().
|
protected |
Definition at line 240 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 239 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().