KiCad PCB EDA Suite
|
#include <pcb_grid_helper.h>
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 | |
PCB_GRID_HELPER (TOOL_MANAGER *aToolMgr, MAGNETIC_SETTINGS *aMagneticSettings) | |
~PCB_GRID_HELPER () override | |
BOARD_ITEM * | GetSnapped () const |
Function GetSnapped If the PCB_GRID_HELPER has highlighted a snap point (target shown), this function will return a pointer to the item to which it snapped. | |
VECTOR2I | AlignToSegment (const VECTOR2I &aPoint, const SEG &aSeg) |
VECTOR2I | BestDragOrigin (const VECTOR2I &aMousePos, std::vector< BOARD_ITEM * > &aItem, GRID_HELPER_GRIDS aGrid=GRID_HELPER_GRIDS::GRID_CURRENT, const PCB_SELECTION_FILTER_OPTIONS *aSelectionFilter=nullptr) |
VECTOR2I | AlignToArc (const VECTOR2I &aPoint, const SHAPE_ARC &aSeg) |
VECTOR2I | AlignToNearestPad (const VECTOR2I &aMousePos, std::deque< PAD * > &aPads) |
virtual void | OnBoardItemRemoved (BOARD &aBoard, BOARD_ITEM *aBoardItem) override |
VECTOR2I | BestSnapAnchor (const VECTOR2I &aOrigin, BOARD_ITEM *aReferenceItem, GRID_HELPER_GRIDS aGrid=GRID_HELPER_GRIDS::GRID_CURRENT) |
Chooses the "best" snap anchor around the given point, optionally taking layers from the reference item. | |
VECTOR2I | BestSnapAnchor (const VECTOR2I &aOrigin, const LSET &aLayers, GRID_HELPER_GRIDS aGrid=GRID_HELPER_GRIDS::GRID_CURRENT, const std::vector< BOARD_ITEM * > &aSkip={}) |
GRID_HELPER_GRIDS | GetItemGrid (const EDA_ITEM *aItem) const override |
Gets the coarsest grid that applies to an item. | |
VECTOR2D | GetGridSize (GRID_HELPER_GRIDS aGrid) const override |
Return the size of the specified grid. | |
void | AddConstructionItems (std::vector< BOARD_ITEM * > aItems, bool aExtensionOnly, bool aIsPersistent) |
Add construction geometry for a set of board items. | |
virtual VECTOR2I | Align (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 |
virtual VECTOR2I | AlignGrid (const VECTOR2I &aPoint, GRID_HELPER_GRIDS aGrid) const |
VECTOR2I | AlignGrid (const VECTOR2I &aPoint) const |
VECTOR2I | AlignGrid (const VECTOR2I &aPoint, const VECTOR2D &aGrid, const VECTOR2D &aOffset) const |
VECTOR2I | GetGrid () const |
VECTOR2D | GetVisibleGrid () const |
VECTOR2I | GetOrigin () const |
void | SetAuxAxes (bool aEnable, const VECTOR2I &aOrigin=VECTOR2I(0, 0)) |
virtual GRID_HELPER_GRIDS | GetSelectionGrid (const SELECTION &aSelection) const |
Gets the coarsest grid that applies to a selecion of items. | |
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 |
virtual void | OnBoardItemAdded (BOARD &aBoard, BOARD_ITEM *aBoardItem) |
virtual void | OnBoardItemsAdded (BOARD &aBoard, std::vector< BOARD_ITEM * > &aBoardItem) |
virtual void | OnBoardItemsRemoved (BOARD &aBoard, std::vector< BOARD_ITEM * > &aBoardItem) |
virtual void | OnBoardNetSettingsChanged (BOARD &aBoard) |
virtual void | OnBoardItemChanged (BOARD &aBoard, BOARD_ITEM *aBoardItem) |
virtual void | OnBoardItemsChanged (BOARD &aBoard, std::vector< BOARD_ITEM * > &aBoardItem) |
virtual void | OnBoardHighlightNetChanged (BOARD &aBoard) |
virtual void | OnBoardRatsnestChanged (BOARD &aBoard) |
virtual void | OnBoardCompositeUpdate (BOARD &aBoard, std::vector< BOARD_ITEM * > &aAddedItems, std::vector< BOARD_ITEM * > &aRemovedItems, std::vector< BOARD_ITEM * > &aDeletedItems) |
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 Member Functions | |
std::vector< BOARD_ITEM * > | queryVisible (const BOX2I &aArea, const std::vector< BOARD_ITEM * > &aSkip) const |
ANCHOR * | nearestAnchor (const VECTOR2I &aPos, int aFlags) |
Find the nearest anchor point to the given position with matching flags. | |
void | computeAnchors (const std::vector< BOARD_ITEM * > &aItems, const VECTOR2I &aRefPos, bool aFrom, const PCB_SELECTION_FILTER_OPTIONS *aSelectionFilter, const LSET *aLayers, bool aForDrag) |
computeAnchors inserts the local anchor points in to the grid helper for the specified container of board items, including points implied by intersections or other relationships between the items. | |
void | computeAnchors (BOARD_ITEM *aItem, const VECTOR2I &aRefPos, bool aFrom, const PCB_SELECTION_FILTER_OPTIONS *aSelectionFilter) |
computeAnchors inserts the local anchor points in to the grid helper for the specified board item, given the reference point and the direction of use for the point. | |
Private Attributes | |
MAGNETIC_SETTINGS * | m_magneticSettings |
std::vector< NEARABLE_GEOM > | m_pointOnLineCandidates |
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 44 of file pcb_grid_helper.h.
|
inherited |
Enumerator | |
---|---|
CORNER | |
OUTLINE | |
SNAPPABLE | |
ORIGIN | |
VERTICAL | |
HORIZONTAL | |
CONSTRUCTED | |
ALL |
Definition at line 125 of file grid_helper.h.
PCB_GRID_HELPER::PCB_GRID_HELPER | ( | TOOL_MANAGER * | aToolMgr, |
MAGNETIC_SETTINGS * | aMagneticSettings | ||
) |
Definition at line 144 of file pcb_grid_helper.cpp.
References KIGFX::VIEW::Add(), KIGFX::ORIGIN_VIEWITEM::CIRCLE_CROSS, KIGFX::ORIGIN_VIEWITEM::CROSS, KIGFX::RENDER_SETTINGS::GetLayerColor(), KIGFX::VIEW::GetPainter(), KIGFX::PAINTER::GetSettings(), TOOL_MANAGER::GetView(), LAYER_AUX_ITEMS, GRID_HELPER::m_toolMgr, GRID_HELPER::m_viewAxis, GRID_HELPER::m_viewSnapPoint, KIGFX::ORIGIN_VIEWITEM::SetColor(), KIGFX::ORIGIN_VIEWITEM::SetDrawAtZero(), KIGFX::ORIGIN_VIEWITEM::SetSize(), KIGFX::ORIGIN_VIEWITEM::SetStyle(), KIGFX::VIEW::SetVisible(), and KIGFX::COLOR4D::WithAlpha().
|
override |
Definition at line 167 of file pcb_grid_helper.cpp.
References TOOL_MANAGER::GetView(), GRID_HELPER::m_toolMgr, GRID_HELPER::m_viewAxis, GRID_HELPER::m_viewSnapPoint, and KIGFX::VIEW::Remove().
|
inlineprotectedinherited |
Definition at line 176 of file grid_helper.h.
References GRID_HELPER::addAnchor().
Referenced by GRID_HELPER::addAnchor(), computeAnchors(), and EE_GRID_HELPER::computeAnchors().
|
inlineprotectedinherited |
Definition at line 182 of file grid_helper.h.
References GRID_HELPER::m_anchors, and GRID_HELPER::m_maskTypes.
void PCB_GRID_HELPER::AddConstructionItems | ( | std::vector< BOARD_ITEM * > | aItems, |
bool | aExtensionOnly, | ||
bool | aIsPersistent | ||
) |
Add construction geometry for a set of board items.
aItems | The items for which to add construction geometry |
aExtensionOnly | If true, the construction geometry only includes extensions of the items, if false it also overlays the items themselves. |
aIsPersistent | If true, the construction geometry is considered "persistent" and will always be shown and won't be replaced by later temporary geometry. |
Definition at line 176 of file pcb_grid_helper.cpp.
References CONSTRUCTION_MANAGER::FROM_ITEMS, EDA_SHAPE::GetArcMid(), PCB_SHAPE::GetCenter(), ADVANCED_CFG::GetCfg(), SNAP_MANAGER::GetConstructionManager(), EDA_SHAPE::GetEnd(), EDA_SHAPE::GetRadius(), EDA_SHAPE::GetShape(), GRID_HELPER::getSnapManager(), EDA_SHAPE::GetStart(), PCB_SHAPE_T, CONSTRUCTION_MANAGER::ProposeConstructionItems(), SNAP_MANAGER::SetReferenceOnlyPoints(), and EDA_ITEM::Type().
Referenced by BestSnapAnchor().
Reimplemented from GRID_HELPER.
Definition at line 75 of file grid_helper.cpp.
|
virtual |
Reimplemented from GRID_HELPER.
Definition at line 76 of file grid_helper.cpp.
References TOOL_MANAGER::GetView(), GRID_HELPER::m_constructionGeomPreview, GRID_HELPER::m_toolMgr, and KIGFX::VIEW::Remove().
|
inlinevirtual |
Reimplemented from GRID_HELPER.
Definition at line 65 of file grid_helper.h.
Referenced by AlignToArc(), AlignToSegment(), BestSnapAnchor(), PNS::TOOL_BASE::snapToItem(), and PNS::TOOL_BASE::updateEndItem().
Definition at line 79 of file grid_helper.cpp.
VECTOR2I GRID_HELPER::AlignGrid | ( | const VECTOR2I & | aPoint, |
const VECTOR2D & | aGrid, | ||
const VECTOR2D & | aOffset | ||
) | const |
Definition at line 80 of file grid_helper.cpp.
|
inlinevirtual |
Reimplemented from GRID_HELPER.
Definition at line 70 of file grid_helper.h.
Definition at line 349 of file pcb_grid_helper.cpp.
References Align(), VECTOR2< int32_t >::ECOORD_MAX, SHAPE_ARC::GetP0(), SHAPE_ARC::GetP1(), SHAPE_ARC::IntersectLine(), and GRID_HELPER::m_enableSnap.
Referenced by PNS::TOOL_BASE::snapToItem().
VECTOR2I PCB_GRID_HELPER::AlignToNearestPad | ( | const VECTOR2I & | aMousePos, |
std::deque< PAD * > & | aPads | ||
) |
Definition at line 394 of file pcb_grid_helper.cpp.
References GRID_HELPER::clearAnchors(), computeAnchors(), EDA_ITEM::HitTest(), GRID_HELPER::m_anchors, GRID_HELPER::m_snapItem, GRID_HELPER::ORIGIN, and GRID_HELPER::ANCHOR::pos.
Definition at line 294 of file pcb_grid_helper.cpp.
References SEG::A, Align(), SEG::B, VECTOR2< int32_t >::ECOORD_MAX, SEG::IntersectLines(), GRID_HELPER::m_enableSnap, and SEG::SquaredDistance().
Referenced by DRAWING_TOOL::DrawVia(), and PNS::TOOL_BASE::snapToItem().
VECTOR2I PCB_GRID_HELPER::BestDragOrigin | ( | const VECTOR2I & | aMousePos, |
std::vector< BOARD_ITEM * > & | aItem, | ||
GRID_HELPER_GRIDS | aGrid = GRID_HELPER_GRIDS::GRID_CURRENT , |
||
const PCB_SELECTION_FILTER_OPTIONS * | aSelectionFilter = nullptr |
||
) |
Definition at line 431 of file pcb_grid_helper.cpp.
References GRID_HELPER::clearAnchors(), computeAnchors(), GRID_HELPER::CORNER, GRID_HELPER::ANCHOR::Distance(), TOOL_MANAGER::GetView(), GRID_HELPER::m_toolMgr, nearestAnchor(), GRID_HELPER::ORIGIN, GRID_HELPER::OUTLINE, GRID_HELPER::ANCHOR::pos, and KIGFX::VIEW::ToWorld().
VECTOR2I PCB_GRID_HELPER::BestSnapAnchor | ( | const VECTOR2I & | aOrigin, |
BOARD_ITEM * | aReferenceItem, | ||
GRID_HELPER_GRIDS | aGrid = GRID_HELPER_GRIDS::GRID_CURRENT |
||
) |
Chooses the "best" snap anchor around the given point, optionally taking layers from the reference item.
The reference item will not be snapped to (it is being dragged or created) and we choose the layers that can be snapped based on the reference item layer
aOrigin | Point we want to snap from |
aReferenceItem | Reference item for layer/type special casing |
Definition at line 477 of file pcb_grid_helper.cpp.
References LSET::AllLayersMask(), BestSnapAnchor(), and BOARD_ITEM::GetLayerSet().
Referenced by BestSnapAnchor().
VECTOR2I PCB_GRID_HELPER::BestSnapAnchor | ( | const VECTOR2I & | aOrigin, |
const LSET & | aLayers, | ||
GRID_HELPER_GRIDS | aGrid = GRID_HELPER_GRIDS::GRID_CURRENT , |
||
const std::vector< BOARD_ITEM * > & | aSkip = {} |
||
) |
Definition at line 497 of file pcb_grid_helper.cpp.
References AddConstructionItems(), Align(), MAGNETIC_SETTINGS::allLayers, anchor, BOX2ISafe(), CONSTRUCTION_MANAGER::CancelProposal(), GRID_HELPER::clearAnchors(), SNAP_LINE_MANAGER::ClearSnapLine(), computeAnchors(), GRID_HELPER::CONSTRUCTED, GRID_HELPER::ANCHOR::Distance(), GRID_HELPER::enableAndGetAnchorDebug(), GRID_HELPER::ANCHOR::flags, KIGFX::GEOMETRY, ADVANCED_CFG::GetCfg(), SNAP_MANAGER::GetConstructionManager(), BOARD_ITEM::GetLayerSet(), GetNearestPoint(), SNAP_LINE_MANAGER::GetNearestSnapLinePoint(), SNAP_MANAGER::GetReferenceOnlyPoints(), SNAP_MANAGER::GetSnapLineManager(), GRID_HELPER::getSnapManager(), TOOL_MANAGER::GetView(), GRID_HELPER::GetVisibleGrid(), EDA_ITEM::HitTest(), CONSTRUCTION_MANAGER::InvolvesAllGivenRealItems(), GRID_HELPER::ANCHOR::items, KiROUND(), GRID_HELPER::m_anchors, ADVANCED_CFG::m_EnableExtensionSnaps, GRID_HELPER::m_enableGrid, GRID_HELPER::m_enableSnap, GRID_HELPER::m_enableSnapLine, ADVANCED_CFG::m_ExtensionSnapActivateOnHover, m_magneticSettings, m_pointOnLineCandidates, GRID_HELPER::m_skipPoint, GRID_HELPER::m_snapItem, GRID_HELPER::m_toolMgr, GRID_HELPER::m_viewSnapPoint, nearestAnchor(), GRID_HELPER::ANCHOR::pos, queryVisible(), SNAP_LINE_MANAGER::SetSnapLineEnd(), SNAP_LINE_MANAGER::SetSnapLineOrigin(), SNAP_LINE_MANAGER::SetSnappedAnchor(), KIGFX::SNAP_INDICATOR::SetSnapTypes(), KIGFX::VIEW::SetVisible(), GRID_HELPER::showConstructionGeometry(), GRID_HELPER::SNAPPABLE, KIGFX::VIEW::ToWorld(), KIGFX::VIEW::Update(), and GRID_HELPER::updateSnapPoint().
|
protectedinherited |
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(), GRID_HELPER::m_enableGrid, and GRID_HELPER::m_toolMgr.
Referenced by GRID_HELPER::Align(), and EE_GRID_HELPER::BestSnapAnchor().
|
inlineprotectedinherited |
Definition at line 189 of file grid_helper.h.
References GRID_HELPER::m_anchors.
Referenced by AlignToNearestPad(), EE_GRID_HELPER::BestDragOrigin(), BestDragOrigin(), BestSnapAnchor(), and EE_GRID_HELPER::BestSnapAnchor().
|
inlineinherited |
Definition at line 121 of file grid_helper.h.
References GRID_HELPER::m_maskTypes.
|
inlineinherited |
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 GRID_HELPER::m_skipPoint.
|
private |
computeAnchors inserts the local anchor points in to the grid helper for the specified board item, given the reference point and the direction of use for the point.
aItem | The board item for which to compute the anchors |
aRefPos | The point for which to compute the anchors (if used by the component) |
aFrom | Is this for an anchor that is designating a source point (aFrom=true) or not |
If we are getting a drag point, we don't want to center the edge of pads
Definition at line 1071 of file pcb_grid_helper.cpp.
References SEG::A, GRID_HELPER::addAnchor(), ANGLE_90, SHAPE_LINE_CHAIN::Append(), SEG::B, SEG::Center(), BOX2< Vec >::Centre(), SHAPE_POLY_SET::CIterateWithHoles(), computeAnchors(), GRID_HELPER::CORNER, PCB_SELECTION_FILTER_OPTIONS::dimensions, EDA_SHAPE::DupPolyPointsList(), ERROR_INSIDE, PCB_SELECTION_FILTER_OPTIONS::footprints, EDA_SHAPE::GetArcMid(), FOOTPRINT::GetBoundingBox(), BOARD_ITEM::GetCenter(), PCB_SHAPE::GetCenter(), KIGEOM::GetCircleKeyPoints(), PCB_DIM_ALIGNED::GetCrossbarEnd(), PCB_DIM_ALIGNED::GetCrossbarStart(), PAD::GetDelta(), PAD::GetDrillSize(), PAD::GetEffectivePolygon(), EDA_SHAPE::GetEnd(), PCB_DIMENSION_BASE::GetEnd(), PCB_TRACK::GetEnd(), GRID_HELPER::GetGrid(), KIGFX::RENDER_SETTINGS::GetHighContrast(), KIGFX::RENDER_SETTINGS::GetHighContrastLayers(), PCB_DIM_RADIAL::GetKnee(), BOARD_ITEM::GetLayerSet(), PAD::GetOrientation(), KIGEOM::GetOvalKeyPoints(), KIGFX::VIEW::GetPainter(), EDA_ITEM::GetPosition(), FOOTPRINT::GetPosition(), PAD::GetPosition(), PCB_SHAPE::GetPosition(), KIGFX::VIEW::GetScale(), SHAPE_LINE_CHAIN::GetSegment(), SHAPE_LINE_CHAIN::GetSegmentCount(), KIGFX::PAINTER::GetSettings(), EDA_SHAPE::GetShape(), PAD::GetShape(), PAD::GetSize(), PAD::GetSizeX(), EDA_SHAPE::GetStart(), PCB_DIMENSION_BASE::GetStart(), PCB_TRACK::GetStart(), EDA_TEXT::GetTextPos(), TOOL_MANAGER::GetView(), PCB_SELECTION_FILTER_OPTIONS::graphics, MAGNETIC_SETTINGS::graphics, grid, PAD::HasHole(), KIGFX::VIEW::IsLayerVisible(), KIGFX::VIEW::IsVisible(), KI_FALLTHROUGH, LAYER_ANCHOR, m_magneticSettings, GRID_HELPER::m_toolMgr, SHAPE_LINE_CHAIN::Move(), SHAPE_LINE_CHAIN::NearestPoint(), GRID_HELPER::ORIGIN, GRID_HELPER::OUTLINE, KIGEOM::OVAL_CAP_TIPS, KIGEOM::OVAL_CARDINAL_EXTREMES, KIGEOM::OVAL_CENTER, KIGEOM::OVAL_SIDE_MIDPOINTS, pad, PCB_SELECTION_FILTER_OPTIONS::pads, FOOTPRINT::Pads(), MAGNETIC_SETTINGS::pads, PCB_ARC_T, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_FIELD_T, PCB_FOOTPRINT_T, PCB_GROUP_T, PCB_MARKER_T, PCB_PAD_T, PCB_SHAPE_T, PCB_TARGET_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_TRACE_T, PCB_VIA_T, PCB_ZONE_T, SHAPE_LINE_CHAIN::Rotate(), RotatePoint(), LSET::Seq(), SHAPE_LINE_CHAIN::SetClosed(), PAD::ShapePos(), GRID_HELPER::SNAPPABLE, PCB_SELECTION_FILTER_OPTIONS::text, PCB_SELECTION_FILTER_OPTIONS::tracks, MAGNETIC_SETTINGS::tracks, EDA_ITEM::Type(), PCB_SELECTION_FILTER_OPTIONS::vias, KIGFX::VIEW_ITEM::ViewGetLOD(), VECTOR2< T >::x, VECTOR2< T >::y, and PCB_SELECTION_FILTER_OPTIONS::zones.
|
private |
computeAnchors inserts the local anchor points in to the grid helper for the specified container of board items, including points implied by intersections or other relationships between the items.
Definition at line 914 of file pcb_grid_helper.cpp.
References GRID_HELPER::addAnchor(), MAGNETIC_SETTINGS::allLayers, computeAnchors(), GRID_HELPER::CONSTRUCTED, PCB_INTERSECTABLE::Geometry, BOARD_ITEM::GetLayerSet(), GRID_HELPER::getSnapManager(), PCB_SELECTION_FILTER_OPTIONS::graphics, PCB_INTERSECTABLE::Item, m_magneticSettings, m_pointOnLineCandidates, PCB_ARC_T, PCB_SHAPE_T, PCB_TRACE_T, GRID_HELPER::SNAPPABLE, PCB_SELECTION_FILTER_OPTIONS::tracks, and EDA_ITEM::Type().
Referenced by AlignToNearestPad(), BestDragOrigin(), BestSnapAnchor(), and computeAnchors().
|
protectedinherited |
Definition at line 191 of file grid_helper.cpp.
References KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by GRID_HELPER::AlignGrid().
|
protectedinherited |
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(), GRID_HELPER::m_anchorDebug, ADVANCED_CFG::m_EnableSnapAnchorsDebug, GRID_HELPER::m_toolMgr, and KIGFX::VIEW::SetVisible().
Referenced by BestSnapAnchor(), and EE_GRID_HELPER::BestSnapAnchor().
|
inherited |
Definition at line 117 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), TOOL_MANAGER::GetView(), KiROUND(), GRID_HELPER::m_toolMgr, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by GRID_HELPER::Align(), GRID_HELPER::AlignGrid(), computeAnchors(), and PNS::TOOL_BASE::pickSingleItem().
|
overridevirtual |
Return the size of the specified grid.
Reimplemented from GRID_HELPER.
Definition at line 786 of file pcb_grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), TOOL_MANAGER::GetSettings(), TOOL_MANAGER::GetView(), grid, WINDOW_SETTINGS::grid, GRID_CONNECTABLE, GRID_GRAPHICS, GRID_TEXT, GRID_VIAS, GRID_WIRES, GRID_HELPER::m_toolMgr, APP_SETTINGS_BASE::m_Window, and pcbIUScale.
|
overridevirtual |
Gets the coarsest grid that applies to an item.
Reimplemented from GRID_HELPER.
Definition at line 752 of file pcb_grid_helper.cpp.
References GRID_CONNECTABLE, GRID_CURRENT, GRID_GRAPHICS, GRID_TEXT, GRID_VIAS, GRID_WIRES, PCB_ARC_T, PCB_DIMENSION_T, PCB_FIELD_T, PCB_FOOTPRINT_T, PCB_PAD_T, PCB_REFERENCE_IMAGE_T, PCB_SHAPE_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_TRACE_T, PCB_VIA_T, and EDA_ITEM::Type().
|
inherited |
Definition at line 131 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridOrigin(), TOOL_MANAGER::GetView(), and GRID_HELPER::m_toolMgr.
Referenced by GRID_HELPER::Align(), and GRID_HELPER::AlignGrid().
|
virtualinherited |
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(), GRID_HELPER::GetGridSize(), GRID_HELPER::GetItemGrid(), and grid.
|
inlineinherited |
Definition at line 112 of file grid_helper.h.
References GRID_HELPER::m_enableSnap.
Referenced by DRAWING_TOOL::DrawVia(), and PNS::TOOL_BASE::updateEndItem().
|
inlineprotectedinherited |
Definition at line 206 of file grid_helper.h.
References GRID_HELPER::m_snapManager.
Referenced by AddConstructionItems(), BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), and computeAnchors().
BOARD_ITEM * PCB_GRID_HELPER::GetSnapped | ( | ) | const |
Function GetSnapped If the PCB_GRID_HELPER has highlighted a snap point (target shown), this function will return a pointer to the item to which it snapped.
Definition at line 738 of file pcb_grid_helper.cpp.
References GRID_HELPER::m_snapItem.
|
inherited |
Definition at line 232 of file grid_helper.cpp.
References GRID_HELPER::m_snapItem.
Referenced by PCB_PICKER_TOOL::SelectPointInteractively().
|
inlineinherited |
Definition at line 115 of file grid_helper.h.
References GRID_HELPER::m_enableGrid.
Referenced by PNS::TOOL_BASE::updateStartItem().
|
inherited |
Definition at line 125 of file grid_helper.cpp.
References KIGFX::VIEW::GetGAL(), TOOL_MANAGER::GetView(), KIGFX::GAL::GetVisibleGridSize(), and GRID_HELPER::m_toolMgr.
Referenced by BestSnapAnchor().
|
private |
Find the nearest anchor point to the given position with matching flags.
return | The nearest anchor point, or nullptr if none found |
Definition at line 1587 of file pcb_grid_helper.cpp.
References anchor, and GRID_HELPER::m_anchors.
Referenced by BestDragOrigin(), and BestSnapAnchor().
|
inlinevirtualinherited |
Reimplemented in DIALOG_GENERATORS, APPEARANCE_CONTROLS, PCB_NET_INSPECTOR_PANEL, and PCB_SEARCH_PANE.
Definition at line 264 of file board.h.
Referenced by BOARD::OnItemsCompositeUpdate().
|
inlinevirtualinherited |
Reimplemented in PCB_NET_INSPECTOR_PANEL, and PCB_SEARCH_PANE.
Definition at line 262 of file board.h.
Referenced by BOARD::HighLightON(), BOARD::ResetNetHighLight(), and BOARD::SetHighLightNet().
|
inlinevirtualinherited |
Reimplemented in DIALOG_GENERATORS, PCB_NET_INSPECTOR_PANEL, PCB_SEARCH_PANE, and APPEARANCE_CONTROLS.
Definition at line 255 of file board.h.
Referenced by BOARD::Add().
|
inlinevirtualinherited |
Reimplemented in DIALOG_GENERATORS, PCB_NET_INSPECTOR_PANEL, PCB_SEARCH_PANE, and APPEARANCE_CONTROLS.
Definition at line 260 of file board.h.
Referenced by BOARD::OnItemChanged().
|
inlineoverridevirtual |
Reimplemented from BOARD_LISTENER.
Definition at line 73 of file pcb_grid_helper.h.
References GRID_HELPER::m_snapItem.
|
inlinevirtualinherited |
Reimplemented in DIALOG_GENERATORS, PCB_NET_INSPECTOR_PANEL, PCB_SEARCH_PANE, and APPEARANCE_CONTROLS.
Definition at line 256 of file board.h.
Referenced by BOARD::FinalizeBulkAdd().
|
inlinevirtualinherited |
Reimplemented in DIALOG_GENERATORS, PCB_NET_INSPECTOR_PANEL, PCB_SEARCH_PANE, and APPEARANCE_CONTROLS.
Definition at line 261 of file board.h.
Referenced by BOARD::OnItemsChanged().
|
inlinevirtualinherited |
Reimplemented in DIALOG_GENERATORS, PCB_NET_INSPECTOR_PANEL, PCB_SEARCH_PANE, and APPEARANCE_CONTROLS.
Definition at line 258 of file board.h.
Referenced by BOARD::FinalizeBulkRemove().
|
inlinevirtualinherited |
Reimplemented in APPEARANCE_CONTROLS, PCB_NET_INSPECTOR_PANEL, and PCB_SEARCH_PANE.
Definition at line 259 of file board.h.
Referenced by BOARD::SynchronizeNetsAndNetClasses().
|
inlinevirtualinherited |
Reimplemented in PCB_SEARCH_PANE.
Definition at line 263 of file board.h.
Referenced by BOARD::OnRatsnestChanged().
|
private |
Definition at line 840 of file pcb_grid_helper.cpp.
References TOOL_MANAGER::GetCurrentTool(), KIGFX::RENDER_SETTINGS::GetHighContrast(), KIGFX::RENDER_SETTINGS::GetHighContrastLayers(), KIGFX::VIEW::GetPainter(), BOARD_ITEM::GetParentFootprint(), KIGFX::VIEW::GetScale(), KIGFX::PAINTER::GetSettings(), TOOL_MANAGER::GetView(), PCB_TOOL_BASE::IsFootprintEditor(), IsPcbLayer(), KIGFX::VIEW::IsVisible(), GRID_HELPER::m_toolMgr, PCB_FOOTPRINT_T, KIGFX::VIEW::Query(), BOARD_ITEM::RunOnDescendants(), EDA_ITEM::Type(), and KIGFX::VIEW_ITEM::ViewGetLOD().
Referenced by BestSnapAnchor().
|
inherited |
Definition at line 162 of file grid_helper.cpp.
References TOOL_MANAGER::GetView(), GRID_HELPER::m_auxAxis, GRID_HELPER::m_toolMgr, GRID_HELPER::m_viewAxis, KIGFX::ORIGIN_VIEWITEM::SetPosition(), and KIGFX::VIEW::SetVisible().
Referenced by ROUTER_TOOL::InlineDrag(), and ROUTER_TOOL::performDragging().
|
inlineinherited |
Definition at line 119 of file grid_helper.h.
References GRID_HELPER::m_maskTypes.
|
inlineinherited |
Definition at line 120 of file grid_helper.h.
References GRID_HELPER::m_maskTypes.
|
inlineinherited |
Definition at line 98 of file grid_helper.h.
References GRID_HELPER::m_skipPoint.
|
inlineinherited |
Definition at line 111 of file grid_helper.h.
References GRID_HELPER::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().
|
inlineinherited |
Definition at line 117 of file grid_helper.h.
References GRID_HELPER::m_enableSnapLine.
|
inlineinherited |
Definition at line 114 of file grid_helper.h.
References GRID_HELPER::m_enableGrid.
Referenced by ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), PNS::TOOL_BASE::updateEndItem(), and PNS::TOOL_BASE::updateStartItem().
|
protectedinherited |
Definition at line 99 of file grid_helper.cpp.
References TOOL_MANAGER::GetView(), GRID_HELPER::m_constructionGeomPreview, GRID_HELPER::m_toolMgr, and KIGFX::VIEW::SetVisible().
Referenced by BestSnapAnchor(), and EE_GRID_HELPER::BestSnapAnchor().
|
protectedinherited |
Definition at line 105 of file grid_helper.cpp.
References KIGFX::GEOMETRY, TOOL_MANAGER::GetView(), KIGFX::VIEW::IsVisible(), TYPED_POINT2I::m_point, GRID_HELPER::m_toolMgr, TYPED_POINT2I::m_types, GRID_HELPER::m_viewSnapPoint, KIGFX::ORIGIN_VIEWITEM::SetPosition(), KIGFX::SNAP_INDICATOR::SetSnapTypes(), KIGFX::VIEW::SetVisible(), and KIGFX::VIEW::Update().
Referenced by BestSnapAnchor().
|
privateinherited |
VIEW_ITEM for visualising anchor points, if enabled.
Definition at line 244 of file grid_helper.h.
Referenced by GRID_HELPER::enableAndGetAnchorDebug().
|
protectedinherited |
Definition at line 217 of file grid_helper.h.
Referenced by GRID_HELPER::addAnchor(), AlignToNearestPad(), BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER::clearAnchors(), nearestAnchor(), and EE_GRID_HELPER::nearestAnchor().
|
protectedinherited |
Definition at line 220 of file grid_helper.h.
Referenced by GRID_HELPER::Align(), and GRID_HELPER::SetAuxAxes().
|
privateinherited |
Definition at line 237 of file grid_helper.h.
Referenced by Align(), EE_GRID_HELPER::GetGrid(), GRID_HELPER::GRID_HELPER(), and GRID_HELPER::showConstructionGeometry().
|
protectedinherited |
Definition at line 225 of file grid_helper.h.
Referenced by BestSnapAnchor(), GRID_HELPER::canUseGrid(), GRID_HELPER::GetUseGrid(), GRID_HELPER::GRID_HELPER(), and GRID_HELPER::SetUseGrid().
|
protectedinherited |
Definition at line 224 of file grid_helper.h.
Referenced by AlignToArc(), AlignToSegment(), BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER::GetSnap(), GRID_HELPER::GRID_HELPER(), and GRID_HELPER::SetSnap().
|
protectedinherited |
Definition at line 226 of file grid_helper.h.
Referenced by BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER::GRID_HELPER(), and GRID_HELPER::SetSnapLine().
|
private |
Definition at line 150 of file pcb_grid_helper.h.
Referenced by BestSnapAnchor(), and computeAnchors().
|
protectedinherited |
Definition at line 222 of file grid_helper.h.
Referenced by GRID_HELPER::addAnchor(), GRID_HELPER::ClearMaskFlag(), GRID_HELPER::GRID_HELPER(), GRID_HELPER::SetMask(), and GRID_HELPER::SetMaskFlag().
|
private |
Definition at line 152 of file pcb_grid_helper.h.
Referenced by BestSnapAnchor(), and computeAnchors().
|
protectedinherited |
Definition at line 229 of file grid_helper.h.
Referenced by BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER::ClearSkipPoint(), and GRID_HELPER::SetSkipPoint().
|
protectedinherited |
Definition at line 227 of file grid_helper.h.
Referenced by AlignToNearestPad(), BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::GetSnapped(), GetSnapped(), GRID_HELPER::GetSnappedPoint(), GRID_HELPER::GRID_HELPER(), and OnBoardItemRemoved().
|
privateinherited |
Definition at line 241 of file grid_helper.h.
Referenced by GRID_HELPER::getSnapManager(), and GRID_HELPER::GRID_HELPER().
|
protectedinherited |
Definition at line 219 of file grid_helper.h.
Referenced by Align(), EE_GRID_HELPER::BestDragOrigin(), BestDragOrigin(), BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), GRID_HELPER::canUseGrid(), computeAnchors(), EE_GRID_HELPER::EE_GRID_HELPER(), GRID_HELPER::enableAndGetAnchorDebug(), GRID_HELPER::GetGrid(), GRID_HELPER::GetGridSize(), EE_GRID_HELPER::GetGridSize(), GetGridSize(), GRID_HELPER::GetOrigin(), GRID_HELPER::GetVisibleGrid(), GRID_HELPER::GRID_HELPER(), PCB_GRID_HELPER(), EE_GRID_HELPER::queryVisible(), queryVisible(), GRID_HELPER::SetAuxAxes(), GRID_HELPER::showConstructionGeometry(), GRID_HELPER::updateSnapPoint(), EE_GRID_HELPER::~EE_GRID_HELPER(), and ~PCB_GRID_HELPER().
|
protectedinherited |
Definition at line 232 of file grid_helper.h.
Referenced by EE_GRID_HELPER::EE_GRID_HELPER(), PCB_GRID_HELPER(), GRID_HELPER::SetAuxAxes(), EE_GRID_HELPER::~EE_GRID_HELPER(), and ~PCB_GRID_HELPER().
|
protectedinherited |
Definition at line 231 of file grid_helper.h.
Referenced by BestSnapAnchor(), EE_GRID_HELPER::BestSnapAnchor(), EE_GRID_HELPER::EE_GRID_HELPER(), PCB_GRID_HELPER(), GRID_HELPER::updateSnapPoint(), EE_GRID_HELPER::~EE_GRID_HELPER(), and ~PCB_GRID_HELPER().