KiCad PCB EDA Suite
Loading...
Searching...
No Matches
GRID_HELPER Class Reference

#include <grid_helper.h>

Inheritance diagram for GRID_HELPER:
EE_GRID_HELPER PCB_GRID_HELPER

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 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
 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 SetSnapLineDirections (const std::vector< VECTOR2I > &aDirections)
 
void SetSnapLineOrigin (const VECTOR2I &aOrigin)
 
void SetSnapLineEnd (const std::optional< VECTOR2I > &aEnd)
 
void ClearSnapLine ()
 
std::optional< VECTOR2ISnapToConstructionLines (const VECTOR2I &aPoint, const VECTOR2I &aNearestGrid, const VECTOR2D &aGrid, double aSnapRange) const
 
void SetMask (int aMask)
 
void SetMaskFlag (int aFlag)
 
void ClearMaskFlag (int aFlag)
 
std::optional< VECTOR2IGetSnappedPoint () 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_MANAGERgetSnapManager ()
 
void updateSnapPoint (const TYPED_POINT2I &aPoint)
 
KIGFX::ANCHOR_DEBUGenableAndGetAnchorDebug ()
 Enable the anchor debug if permitted and return it.
 

Protected Attributes

std::vector< ANCHORm_anchors
 
TOOL_MANAGERm_toolMgr
 
std::optional< VECTOR2Im_auxAxis
 
int m_maskTypes
 
bool m_enableSnap
 
bool m_enableGrid
 
bool m_enableSnapLine
 
std::optional< ANCHORm_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_DEBUGm_anchorDebug
 #VIEW_ITEM for visualising anchor points, if enabled.
 

Friends

void TEST_CLEAR_ANCHORS (GRID_HELPER &helper)
 

Detailed Description

Definition at line 55 of file grid_helper.h.

Member Enumeration Documentation

◆ ANCHOR_FLAGS

Enumerator
CORNER 
OUTLINE 
SNAPPABLE 
ORIGIN 
VERTICAL 
HORIZONTAL 
CONSTRUCTED 
ALL 

Definition at line 143 of file grid_helper.h.

Constructor & Destructor Documentation

◆ GRID_HELPER() [1/2]

◆ GRID_HELPER() [2/2]

GRID_HELPER::GRID_HELPER ( TOOL_MANAGER * aToolMgr,
int aConstructionLayer )

Definition at line 56 of file grid_helper.cpp.

References GRID_HELPER(), and m_toolMgr.

◆ ~GRID_HELPER()

GRID_HELPER::~GRID_HELPER ( )
virtual

Member Function Documentation

◆ addAnchor() [1/2]

void GRID_HELPER::addAnchor ( const VECTOR2I & aPos,
int aFlags,
EDA_ITEM * aItem,
int aPointTypes = POINT_TYPE::PT_NONE )
inlineprotected

◆ addAnchor() [2/2]

void GRID_HELPER::addAnchor ( const VECTOR2I & aPos,
int aFlags,
std::vector< EDA_ITEM * > aItems,
int aPointTypes )
inlineprotected

Definition at line 202 of file grid_helper.h.

References m_anchors, and m_maskTypes.

◆ Align() [1/3]

VECTOR2I GRID_HELPER::Align ( const VECTOR2I & aPoint) const
virtual

Reimplemented in PCB_GRID_HELPER.

Definition at line 353 of file grid_helper.cpp.

References Align(), GetGrid(), and GetOrigin().

◆ Align() [2/3]

VECTOR2I GRID_HELPER::Align ( const VECTOR2I & aPoint,
const VECTOR2D & aGrid,
const VECTOR2D & aOffset ) const
virtual

Reimplemented in PCB_GRID_HELPER.

Definition at line 359 of file grid_helper.cpp.

References std::abs(), AlignGrid(), canUseGrid(), m_auxAxis, VECTOR2< T >::x, and VECTOR2< T >::y.

◆ Align() [3/3]

◆ AlignGrid() [1/3]

VECTOR2I GRID_HELPER::AlignGrid ( const VECTOR2I & aPoint) const

Definition at line 332 of file grid_helper.cpp.

References computeNearest(), GetGrid(), and GetOrigin().

◆ AlignGrid() [2/3]

VECTOR2I GRID_HELPER::AlignGrid ( const VECTOR2I & aPoint,
const VECTOR2D & aGrid,
const VECTOR2D & aOffset ) const

Definition at line 338 of file grid_helper.cpp.

References computeNearest().

◆ AlignGrid() [3/3]

◆ canUseGrid()

bool GRID_HELPER::canUseGrid ( ) const
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 380 of file grid_helper.cpp.

References m_enableGrid, m_manualGridSnapping, and m_toolMgr.

Referenced by Align(), EE_GRID_HELPER::BestSnapAnchor(), and SnapToConstructionLines().

◆ clearAnchors()

◆ ClearMaskFlag()

void GRID_HELPER::ClearMaskFlag ( int aFlag)
inline

Definition at line 139 of file grid_helper.h.

References m_maskTypes.

Referenced by BOOST_AUTO_TEST_CASE().

◆ ClearSkipPoint()

void GRID_HELPER::ClearSkipPoint ( )
inline

Clear the skip point by setting it to an unreachable position, thereby preventing matching.

Definition at line 116 of file grid_helper.h.

References m_skipPoint.

Referenced by BOOST_AUTO_TEST_CASE().

◆ ClearSnapLine()

void GRID_HELPER::ClearSnapLine ( )

Definition at line 150 of file grid_helper.cpp.

References m_snapManager.

◆ computeNearest()

VECTOR2I GRID_HELPER::computeNearest ( const VECTOR2I & aPoint,
const VECTOR2I & aGrid,
const VECTOR2I & aOffset ) const
protected

Definition at line 345 of file grid_helper.cpp.

References KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by AlignGrid(), and AlignGrid().

◆ enableAndGetAnchorDebug()

KIGFX::ANCHOR_DEBUG * GRID_HELPER::enableAndGetAnchorDebug ( )
protected

Enable the anchor debug if permitted and return it.

Returns nullptr if not permitted by the advancd config

Definition at line 108 of file grid_helper.cpp.

References KIGFX::VIEW::Add(), ADVANCED_CFG::GetCfg(), m_anchorDebug, ADVANCED_CFG::m_EnableSnapAnchorsDebug, m_toolMgr, and KIGFX::VIEW::SetVisible().

Referenced by EE_GRID_HELPER::BestSnapAnchor(), and PCB_GRID_HELPER::BestSnapAnchor().

◆ GetGrid()

VECTOR2I GRID_HELPER::GetGrid ( ) const

◆ GetGridSize()

VECTOR2D GRID_HELPER::GetGridSize ( GRID_HELPER_GRIDS aGrid) const
virtual

Return the size of the specified grid.

Reimplemented in EE_GRID_HELPER, and PCB_GRID_HELPER.

Definition at line 308 of file grid_helper.cpp.

References m_manualGrid, and m_toolMgr.

Referenced by Align(), AlignGrid(), BOOST_AUTO_TEST_CASE(), and GetSelectionGrid().

◆ GetItemGrid()

virtual GRID_HELPER_GRIDS GRID_HELPER::GetItemGrid ( const EDA_ITEM * aItem) const
inlinevirtual

Get the coarsest grid that applies to an item.

Reimplemented in EE_GRID_HELPER, and PCB_GRID_HELPER.

Definition at line 101 of file grid_helper.h.

References GRID_CURRENT.

Referenced by GetSelectionGrid().

◆ GetOrigin()

VECTOR2I GRID_HELPER::GetOrigin ( ) const

Definition at line 279 of file grid_helper.cpp.

References m_manualOrigin, and m_toolMgr.

Referenced by Align(), Align(), AlignGrid(), AlignGrid(), and BOOST_AUTO_TEST_CASE().

◆ GetSelectionGrid()

GRID_HELPER_GRIDS GRID_HELPER::GetSelectionGrid ( const SELECTION & aSelection) const
virtual

Gets the coarsest grid that applies to a selecion of items.

Reimplemented in EE_GRID_HELPER.

Definition at line 291 of file grid_helper.cpp.

References SELECTION::Front(), GetGridSize(), GetItemGrid(), and grid.

◆ GetSnap()

bool GRID_HELPER::GetSnap ( ) const
inline

Definition at line 122 of file grid_helper.h.

References m_enableSnap.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and DRAWING_TOOL::DrawVia().

◆ getSnapManager()

◆ GetSnappedPoint()

std::optional< VECTOR2I > GRID_HELPER::GetSnappedPoint ( ) const

Definition at line 387 of file grid_helper.cpp.

References m_snapItem.

Referenced by BOOST_AUTO_TEST_CASE(), and PCB_PICKER_TOOL::SelectPointInteractively().

◆ GetUseGrid()

bool GRID_HELPER::GetUseGrid ( ) const
inline

Definition at line 125 of file grid_helper.h.

References m_enableGrid.

Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

◆ GetVisibleGrid()

VECTOR2D GRID_HELPER::GetVisibleGrid ( ) const

Definition at line 273 of file grid_helper.cpp.

References m_manualVisibleGrid, and m_toolMgr.

Referenced by PCB_GRID_HELPER::BestSnapAnchor(), and BOOST_AUTO_TEST_CASE().

◆ SetAuxAxes()

void GRID_HELPER::SetAuxAxes ( bool aEnable,
const VECTOR2I & aOrigin = VECTOR2I( 0, 0 ) )

Definition at line 314 of file grid_helper.cpp.

References m_auxAxis, m_toolMgr, and m_viewAxis.

Referenced by BOOST_AUTO_TEST_CASE().

◆ SetGridSize()

◆ SetGridSnapping()

◆ SetMask()

void GRID_HELPER::SetMask ( int aMask)
inline

Definition at line 137 of file grid_helper.h.

References m_maskTypes.

Referenced by BOOST_AUTO_TEST_CASE().

◆ SetMaskFlag()

void GRID_HELPER::SetMaskFlag ( int aFlag)
inline

Definition at line 138 of file grid_helper.h.

References m_maskTypes.

Referenced by BOOST_AUTO_TEST_CASE().

◆ SetOrigin()

◆ SetSkipPoint()

void GRID_HELPER::SetSkipPoint ( const VECTOR2I & aPoint)
inline

Definition at line 108 of file grid_helper.h.

References m_skipPoint.

Referenced by BOOST_AUTO_TEST_CASE().

◆ SetSnap()

void GRID_HELPER::SetSnap ( bool aSnap)
inline

◆ SetSnapLine()

void GRID_HELPER::SetSnapLine ( bool aSnap)
inline

Definition at line 127 of file grid_helper.h.

References m_enableSnapLine.

◆ SetSnapLineDirections()

void GRID_HELPER::SetSnapLineDirections ( const std::vector< VECTOR2I > & aDirections)

Definition at line 134 of file grid_helper.cpp.

References m_snapManager.

◆ SetSnapLineEnd()

void GRID_HELPER::SetSnapLineEnd ( const std::optional< VECTOR2I > & aEnd)

Definition at line 145 of file grid_helper.cpp.

References m_snapManager.

◆ SetSnapLineOrigin()

void GRID_HELPER::SetSnapLineOrigin ( const VECTOR2I & aOrigin)

Definition at line 140 of file grid_helper.cpp.

References m_snapManager.

◆ SetUseGrid()

void GRID_HELPER::SetUseGrid ( bool aSnapToGrid)
inline

Definition at line 124 of file grid_helper.h.

References m_enableGrid.

Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().

◆ SetVisibleGridSize()

void GRID_HELPER::SetVisibleGridSize ( const VECTOR2D & aGrid)
inline

Definition at line 69 of file grid_helper.h.

References m_manualVisibleGrid.

Referenced by BOOST_AUTO_TEST_CASE().

◆ showConstructionGeometry()

void GRID_HELPER::showConstructionGeometry ( bool aShow)
protected

◆ SnapToConstructionLines()

std::optional< VECTOR2I > GRID_HELPER::SnapToConstructionLines ( const VECTOR2I & aPoint,
const VECTOR2I & aNearestGrid,
const VECTOR2D & aGrid,
double aSnapRange ) const

◆ updateSnapPoint()

void GRID_HELPER::updateSnapPoint ( const TYPED_POINT2I & aPoint)
protected

Friends And Related Symbol Documentation

◆ TEST_CLEAR_ANCHORS

void TEST_CLEAR_ANCHORS ( GRID_HELPER & helper)
friend

Definition at line 23 of file test_grid_helper.cpp.

References clearAnchors(), and GRID_HELPER().

Member Data Documentation

◆ m_anchorDebug

std::unique_ptr<KIGFX::ANCHOR_DEBUG> GRID_HELPER::m_anchorDebug
private

#VIEW_ITEM for visualising anchor points, if enabled.

Definition at line 268 of file grid_helper.h.

Referenced by enableAndGetAnchorDebug(), and ~GRID_HELPER().

◆ m_anchors

◆ m_auxAxis

std::optional<VECTOR2I> GRID_HELPER::m_auxAxis
protected

Definition at line 240 of file grid_helper.h.

Referenced by Align(), and SetAuxAxes().

◆ m_constructionGeomPreview

KIGFX::CONSTRUCTION_GEOM GRID_HELPER::m_constructionGeomPreview
private

Show construction geometry (if any) on the canvas.

Definition at line 262 of file grid_helper.h.

Referenced by EE_GRID_HELPER::GetGrid(), GRID_HELPER(), showConstructionGeometry(), and ~GRID_HELPER().

◆ m_enableGrid

bool GRID_HELPER::m_enableGrid
protected

◆ m_enableSnap

◆ m_enableSnapLine

bool GRID_HELPER::m_enableSnapLine
protected

◆ m_manualGrid

VECTOR2D GRID_HELPER::m_manualGrid
protected

Definition at line 255 of file grid_helper.h.

Referenced by PCB_GRID_HELPER::Align(), GetGrid(), GetGridSize(), GRID_HELPER(), and SetGridSize().

◆ m_manualGridSnapping

bool GRID_HELPER::m_manualGridSnapping
protected

◆ m_manualOrigin

VECTOR2I GRID_HELPER::m_manualOrigin
protected

Definition at line 257 of file grid_helper.h.

Referenced by PCB_GRID_HELPER::AlignGrid(), GetOrigin(), GRID_HELPER(), and SetOrigin().

◆ m_manualVisibleGrid

VECTOR2D GRID_HELPER::m_manualVisibleGrid
protected

◆ m_maskTypes

int GRID_HELPER::m_maskTypes
protected

Definition at line 242 of file grid_helper.h.

Referenced by addAnchor(), ClearMaskFlag(), GRID_HELPER(), SetMask(), and SetMaskFlag().

◆ m_skipPoint

◆ m_snapItem

◆ m_snapManager

SNAP_MANAGER GRID_HELPER::m_snapManager
private

Manage the construction geometry, snap lines, reference points, etc.

Definition at line 265 of file grid_helper.h.

Referenced by ClearSnapLine(), EE_GRID_HELPER::GetGrid(), getSnapManager(), GRID_HELPER(), SetSnapLineDirections(), SetSnapLineEnd(), SetSnapLineOrigin(), and SnapToConstructionLines().

◆ m_toolMgr

◆ m_viewAxis

◆ m_viewSnapPoint


The documentation for this class was generated from the following files: