37#define DCODE_DEFAULT_SIZE gerbIUScale.mmToIU( 0.1 ) 
   93        ret = wxT( 
"Round" );   
break;
 
   96        ret = wxT( 
"Rect" );    
break;
 
   99        ret = wxT( 
"Oval" );    
break;
 
  102        ret = wxT( 
"Poly" );    
break;
 
  105        ret = wxT( 
"Macro" );   
break;
 
  108        ret = wxT( 
"???" );     
break;
 
 
  154                               const VECTOR2I& aShapePos, 
bool aFilledShape )
 
  189        start.
x = aShapePos.
x - 
m_Size.x / 2;
 
  190        start.
y = aShapePos.
y - 
m_Size.y / 2;
 
 
  268                                 bool aFilled, 
const VECTOR2I& aPosition )
 
  273    int pointCount = 
m_Polygon.VertexCount();
 
  274    std::vector<VECTOR2I> points;
 
  275    points.reserve( pointCount );
 
  277    for( 
int ii = 0; ii < pointCount; ii++ )
 
  280        points[ii] = p + aPosition;
 
  284    GRClosedPoly( aDC, pointCount, &points[0], aFilled, aColor );
 
 
  309        int arc_to_seg_error = 
gerbIUScale.mmToIU( 0.005 );    
 
  320        initialpos = currpos;
 
  353        initialpos = currpos;
 
  361            currpos = initialpos;
 
  370            currpos = initialpos;
 
  388        initialpos = currpos;
 
  399            currpos = initialpos;
 
 
  431        int arc_to_seg_error = 
gerbIUScale.mmToIU( 0.005 );    
 
  438        currpos.
x = aSize.
x / 2;
 
  439        currpos.
y = aSize.
y / 2;
 
  441        currpos.
x -= aSize.
x;
 
  443        currpos.
y -= aSize.
y;
 
  445        currpos.
x += aSize.
x;
 
  447        currpos.
y += aSize.
y;
 
 
constexpr EDA_IU_SCALE gerbIUScale
 
Support the "aperture macro" defined within standard RS274X.
 
SHAPE_POLY_SET * GetApertureMacroShape(const GERBER_DRAW_ITEM *aParent, const VECTOR2I &aShapePos)
Calculate the primitive shape for flashed items.
 
constexpr size_type GetWidth() const
 
constexpr size_type GetHeight() const
 
APERTURE_MACRO * GetMacro() const
 
void DrawFlashedShape(const GERBER_DRAW_ITEM *aParent, wxDC *aDC, const COLOR4D &aColor, const VECTOR2I &aShapePos, bool aFilledShape)
Draw the dcode shape for flashed items.
 
int m_Num_Dcode
D code value ( >= 10 )
 
int GetShapeDim(GERBER_DRAW_ITEM *aParent)
Calculate a value that can be used to evaluate the size of text when displaying the D-Code of an item...
 
void DrawFlashedPolygon(const GERBER_DRAW_ITEM *aParent, wxDC *aDC, const COLOR4D &aColor, bool aFilled, const VECTOR2I &aPosition)
A helper function used to draw the polygon stored in m_PolyCorners.
 
EDA_ANGLE m_Rotation
shape rotation
 
VECTOR2I m_Drill
dimension of the hole (if any) (drill file)
 
int m_EdgesCount
in aperture definition Polygon only: number of edges for the polygon
 
static const wxChar * ShowApertureType(APERTURE_T aType)
Return a character string telling what type of aperture type aType is.
 
VECTOR2I m_Size
Horizontal and vertical dimensions.
 
APERTURE_T m_ApertType
Aperture type ( Line, rectangle, circle, oval poly, macro )
 
bool m_Defined
false if the aperture is not defined in the header
 
APERTURE_DEF_HOLETYPE m_DrillShape
shape of the hole (0 = no hole, round = 1, rect = 2).
 
bool m_InUse
false if the aperture (previously defined) is not used to draw something
 
APERTURE_MACRO * m_Macro
no ownership, points to GERBER.m_aperture_macros element.
 
void ConvertShapeToPolygon(const GERBER_DRAW_ITEM *aParent)
Convert a shape to an equivalent polygon.
 
VECTOR2I GetABPosition(const VECTOR2I &aXYPosition) const
Return the image position of aPosition for this object.
 
A color representation with 4 components: red, green, blue, alpha.
 
Represent a set of closed polygons.
 
void Fracture()
Convert a set of polygons with holes to a single outline with "slits"/"fractures" connecting the oute...
 
int Append(int x, int y, int aOutline=-1, int aHole=-1, bool aAllowDuplication=false)
Appends a vertex at the end of the given outline/hole (default: the last outline)
 
int NewOutline()
Creates a new empty polygon in the set and returns its index.
 
void BooleanSubtract(const SHAPE_POLY_SET &b)
Perform boolean polyset difference.
 
void TransformCircleToPolygon(SHAPE_LINE_CHAIN &aBuffer, const VECTOR2I &aCenter, int aRadius, int aError, ERROR_LOC aErrorLoc, int aMinSegCount=0)
Convert a circle to a polygon, using multiple straight lines.
 
static void addHoleToPolygon(SHAPE_POLY_SET *aPolygon, APERTURE_DEF_HOLETYPE aHoleShape, const VECTOR2I &aSize, const VECTOR2I &aAnchorPos)
 
#define DCODE_DEFAULT_SIZE
 
APERTURE_T
The set of all gerber aperture types allowed from ADD dcode command, like ADD11C,0....
 
static constexpr EDA_ANGLE ANGLE_0
 
static constexpr EDA_ANGLE ANGLE_90
 
static constexpr EDA_ANGLE ANGLE_360
 
void GRRect(wxDC *DC, const VECTOR2I &aStart, const VECTOR2I &aEnd, int aWidth, const COLOR4D &aColor)
 
void GRCSegm(wxDC *DC, const VECTOR2I &A, const VECTOR2I &B, int width, const COLOR4D &Color)
 
void GRCircle(wxDC *aDC, const VECTOR2I &aPos, int aRadius, int aWidth, const COLOR4D &aColor)
 
void GRFilledSegment(wxDC *aDC, const VECTOR2I &aStart, const VECTOR2I &aEnd, int aWidth, const COLOR4D &aColor)
 
void GRClosedPoly(wxDC *DC, int n, const VECTOR2I *Points, bool Fill, const COLOR4D &Color)
Draw a closed polyline and fill it if Fill, in object space.
 
void GRFilledRect(wxDC *DC, const VECTOR2I &aStart, const VECTOR2I &aEnd, int aWidth, const COLOR4D &aColor, const COLOR4D &aBgColor)
 
void GRFilledCircle(wxDC *aDC, const VECTOR2I &aPos, int aRadius, int aWidth, const COLOR4D &aStrokeColor, const COLOR4D &aFillColor)
Draw a circle onto the drawing context aDC centered at the user coordinates (x,y).
 
void RotatePoint(int *pX, int *pY, const EDA_ANGLE &aAngle)
Calculate the new point of coord coord pX, pY, for a rotation center 0, 0.
 
VECTOR2< int32_t > VECTOR2I