KiCad PCB EDA Suite
ARRAY_CIRCULAR_OPTIONS Struct Reference

#include <array_options.h>

Inheritance diagram for ARRAY_CIRCULAR_OPTIONS:
ARRAY_OPTIONS

Public Types

enum  ARRAY_TYPE_T { ARRAY_GRID , ARRAY_CIRCULAR }
 

Public Member Functions

 ARRAY_CIRCULAR_OPTIONS ()
 
TRANSFORM GetTransform (int aN, const VECTOR2I &aPos) const override
 Get the transform of the n-th point in the array. More...
 
int GetArraySize () const override
 The number of points in this array. More...
 
wxString GetItemNumber (int n) const override
 Get the position number (name) for the n'th array point. More...
 
bool ShouldNumberItems () const
 
void SetShouldNumber (bool aShouldNumber)
 
bool ShouldReannotateFootprints () const
 
void SetSShouldReannotateFootprints (bool aShouldReannotate)
 
bool GetNumberingStartIsSpecified () const
 
void SetNumberingStartIsSpecified (bool aIsSpecified)
 

Public Attributes

long m_nPts
 number of point in the array More...
 
EDA_ANGLE m_angle
 angle between points, or 0 for each point separated by this value (decideg) More...
 
VECTOR2I m_centre
 
bool m_rotateItems
 
ARRAY_AXIS m_axis
 

Protected Attributes

ARRAY_TYPE_T m_type
 
bool m_shouldNumber
 True if this array numbers the new items. More...
 
bool m_reannotateFootprints
 True if this array will rename any footprints to be unique. More...
 
bool m_numberingStartIsSpecified
 True if this array's number starts from the preset point False if the array numbering starts from some externally provided point. More...
 

Detailed Description

Definition at line 175 of file array_options.h.

Member Enumeration Documentation

◆ ARRAY_TYPE_T

Enumerator
ARRAY_GRID 

A grid (x*y) array.

ARRAY_CIRCULAR 

A circular array.

Definition at line 39 of file array_options.h.

40 {
43 };
@ ARRAY_CIRCULAR
A circular array.
Definition: array_options.h:42
@ ARRAY_GRID
A grid (x*y) array.
Definition: array_options.h:41

Constructor & Destructor Documentation

◆ ARRAY_CIRCULAR_OPTIONS()

ARRAY_CIRCULAR_OPTIONS::ARRAY_CIRCULAR_OPTIONS ( )
inline

Definition at line 177 of file array_options.h.

179 m_nPts( 0 ),
180 m_angle( ANGLE_0 ),
181 m_rotateItems( false )
182 {
183 }
ARRAY_OPTIONS(ARRAY_TYPE_T aType)
Definition: array_options.h:45
static constexpr EDA_ANGLE & ANGLE_0
Definition: eda_angle.h:423
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)

Member Function Documentation

◆ GetArraySize()

int ARRAY_CIRCULAR_OPTIONS::GetArraySize ( ) const
overridevirtual

The number of points in this array.

Implements ARRAY_OPTIONS.

Definition at line 102 of file array_options.cpp.

103{
104 return m_nPts;
105}

References m_nPts.

◆ GetItemNumber()

wxString ARRAY_CIRCULAR_OPTIONS::GetItemNumber ( int  n) const
overridevirtual

Get the position number (name) for the n'th array point.

Parameters
narray point index, from 0 to GetArraySize() - 1
Returns
the point's name

Implements ARRAY_OPTIONS.

Definition at line 130 of file array_options.cpp.

131{
132 return m_axis.GetItemNumber( aN );
133}
wxString GetItemNumber(int n) const
Get the position number (name) for the n'th axis point.
Definition: array_axis.cpp:133

References ARRAY_AXIS::GetItemNumber(), and m_axis.

◆ GetNumberingStartIsSpecified()

bool ARRAY_OPTIONS::GetNumberingStartIsSpecified ( ) const
inlineinherited
Returns
is the numbering is enabled and should start at a point specified in these options or is it implicit according to the calling code?

Definition at line 117 of file array_options.h.

118 {
120 }
bool m_shouldNumber
True if this array numbers the new items.
bool m_numberingStartIsSpecified
True if this array's number starts from the preset point False if the array numbering starts from som...

References ARRAY_OPTIONS::m_numberingStartIsSpecified, and ARRAY_OPTIONS::m_shouldNumber.

Referenced by ARRAY_PAD_NUMBER_PROVIDER::ARRAY_PAD_NUMBER_PROVIDER().

◆ GetTransform()

ARRAY_OPTIONS::TRANSFORM ARRAY_CIRCULAR_OPTIONS::GetTransform ( int  aN,
const VECTOR2I aPos 
) const
overridevirtual

Get the transform of the n-th point in the array.

Parameters
aNthe index of the array point (0 is the original point)
aPosthe existing item position
Returns
a transform (an offset and a rotation)

Implements ARRAY_OPTIONS.

Definition at line 108 of file array_options.cpp.

109{
111
112 if( m_angle.IsZero() )
113 // angle is zero, divide evenly into m_nPts
114 angle = EDA_ANGLE( 360.0 * n / double( m_nPts ), DEGREES_T );
115 else
116 // n'th step
118
119 VECTOR2I new_pos = aPos;
120 RotatePoint( new_pos, m_centre, angle );
121
122 // take off the rotation (but not the translation) if needed
123 if( !m_rotateItems )
124 angle = ANGLE_0;
125
126 return { new_pos - aPos, angle };
127}
double AsDegrees() const
Definition: eda_angle.h:149
bool IsZero() const
Definition: eda_angle.h:169
@ DEGREES_T
Definition: eda_angle.h:31
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)
void RotatePoint(int *pX, int *pY, const EDA_ANGLE &aAngle)
Definition: trigo.cpp:183

References PNS::angle(), ANGLE_0, EDA_ANGLE::AsDegrees(), DEGREES_T, EDA_ANGLE::IsZero(), m_angle, m_centre, m_nPts, m_rotateItems, and RotatePoint().

◆ SetNumberingStartIsSpecified()

void ARRAY_OPTIONS::SetNumberingStartIsSpecified ( bool  aIsSpecified)
inlineinherited

Definition at line 122 of file array_options.h.

123 {
124 m_numberingStartIsSpecified = aIsSpecified;
125 }

References ARRAY_OPTIONS::m_numberingStartIsSpecified.

◆ SetShouldNumber()

void ARRAY_OPTIONS::SetShouldNumber ( bool  aShouldNumber)
inlineinherited

Definition at line 93 of file array_options.h.

94 {
95 m_shouldNumber = aShouldNumber;
96 }

References ARRAY_OPTIONS::m_shouldNumber.

◆ SetSShouldReannotateFootprints()

void ARRAY_OPTIONS::SetSShouldReannotateFootprints ( bool  aShouldReannotate)
inlineinherited

Definition at line 107 of file array_options.h.

108 {
109 m_reannotateFootprints = aShouldReannotate;
110 }
bool m_reannotateFootprints
True if this array will rename any footprints to be unique.

References ARRAY_OPTIONS::m_reannotateFootprints.

◆ ShouldNumberItems()

bool ARRAY_OPTIONS::ShouldNumberItems ( ) const
inlineinherited
Returns
are the items in this array numbered, or are all the items numbered the same?

Definition at line 88 of file array_options.h.

89 {
90 return m_shouldNumber;
91 }

References ARRAY_OPTIONS::m_shouldNumber.

◆ ShouldReannotateFootprints()

bool ARRAY_OPTIONS::ShouldReannotateFootprints ( ) const
inlineinherited
Returns
are the footprints in this array reannotated to be unique (true), or do they keep the original annotation (false)?

Definition at line 102 of file array_options.h.

103 {
105 }

References ARRAY_OPTIONS::m_reannotateFootprints.

Member Data Documentation

◆ m_angle

EDA_ANGLE ARRAY_CIRCULAR_OPTIONS::m_angle

angle between points, or 0 for each point separated by this value (decideg)

Definition at line 188 of file array_options.h.

Referenced by BOOST_AUTO_TEST_CASE(), and GetTransform().

◆ m_axis

ARRAY_AXIS ARRAY_CIRCULAR_OPTIONS::m_axis

Definition at line 191 of file array_options.h.

Referenced by GetItemNumber().

◆ m_centre

VECTOR2I ARRAY_CIRCULAR_OPTIONS::m_centre

Definition at line 189 of file array_options.h.

Referenced by BOOST_AUTO_TEST_CASE(), and GetTransform().

◆ m_nPts

long ARRAY_CIRCULAR_OPTIONS::m_nPts

number of point in the array

Definition at line 186 of file array_options.h.

Referenced by BOOST_AUTO_TEST_CASE(), GetArraySize(), and GetTransform().

◆ m_numberingStartIsSpecified

bool ARRAY_OPTIONS::m_numberingStartIsSpecified
protectedinherited

True if this array's number starts from the preset point False if the array numbering starts from some externally provided point.

Definition at line 139 of file array_options.h.

Referenced by ARRAY_OPTIONS::GetNumberingStartIsSpecified(), and ARRAY_OPTIONS::SetNumberingStartIsSpecified().

◆ m_reannotateFootprints

bool ARRAY_OPTIONS::m_reannotateFootprints
protectedinherited

True if this array will rename any footprints to be unique.

Definition at line 135 of file array_options.h.

Referenced by ARRAY_OPTIONS::SetSShouldReannotateFootprints(), and ARRAY_OPTIONS::ShouldReannotateFootprints().

◆ m_rotateItems

bool ARRAY_CIRCULAR_OPTIONS::m_rotateItems

Definition at line 190 of file array_options.h.

Referenced by BOOST_AUTO_TEST_CASE(), and GetTransform().

◆ m_shouldNumber

bool ARRAY_OPTIONS::m_shouldNumber
protectedinherited

True if this array numbers the new items.

Definition at line 132 of file array_options.h.

Referenced by ARRAY_OPTIONS::GetNumberingStartIsSpecified(), ARRAY_OPTIONS::SetShouldNumber(), and ARRAY_OPTIONS::ShouldNumberItems().

◆ m_type

ARRAY_TYPE_T ARRAY_OPTIONS::m_type
protectedinherited

Definition at line 129 of file array_options.h.


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