24#ifndef PCBNEW_ARRAY_OPTIONS__H
25#define PCBNEW_ARRAY_OPTIONS__H
48 m_shouldNumber( false ),
49 m_reannotateFootprints( false ),
50 m_numberingStartIsSpecified( false )
91 return m_shouldNumber;
96 m_shouldNumber = aShouldNumber;
105 return m_reannotateFootprints;
110 m_reannotateFootprints = aShouldReannotate;
120 return m_shouldNumber && m_numberingStartIsSpecified;
125 m_numberingStartIsSpecified = aIsSpecified;
151 m_horizontalThenVertical( true ),
152 m_reverseNumberingAlternate( false ),
154 m_stagger_rows( true ),
155 m_2dArrayNumbering( false )
171 int GetArraySize()
const override;
172 wxString GetItemNumber(
int n )
const override;
175 VECTOR2I gtItemPosRelativeToItem0(
int n )
const;
176 VECTOR2I getGridCoords(
int n )
const;
186 m_rotateItems( false )
199 int GetArraySize()
const override;
200 wxString GetItemNumber(
int n )
const override;
Class that contains information about a single array axis and the numbering of items along that axis.
Options that govern the setup of an "array" of multiple item.
virtual int GetArraySize() const =0
The number of points in this array.
void SetSShouldReannotateFootprints(bool aShouldReannotate)
bool m_shouldNumber
True if this array numbers the new items.
bool ShouldNumberItems() const
virtual wxString GetItemNumber(int n) const =0
Get the position number (name) for the n'th array point.
virtual TRANSFORM GetTransform(int aN, const VECTOR2I &aPos) const =0
Get the transform of the n-th point in the array.
void SetShouldNumber(bool aShouldNumber)
bool ShouldReannotateFootprints() const
void SetNumberingStartIsSpecified(bool aIsSpecified)
bool GetNumberingStartIsSpecified() const
@ ARRAY_CIRCULAR
A circular array.
@ ARRAY_GRID
A grid (x*y) array.
ARRAY_OPTIONS(ARRAY_TYPE_T aType)
bool m_numberingStartIsSpecified
True if this array's number starts from the preset point False if the array numbering starts from som...
bool m_reannotateFootprints
True if this array will rename any footprints to be unique.
static constexpr EDA_ANGLE ANGLE_0
long m_nPts
number of point in the array
EDA_ANGLE m_angle
angle between points, or 0 for each point separated by this value (decideg)
bool m_horizontalThenVertical