diff --git a/gerbview/export_to_pcbnew.cpp b/gerbview/export_to_pcbnew.cpp index 2708b72ff5..956648baf5 100644 --- a/gerbview/export_to_pcbnew.cpp +++ b/gerbview/export_to_pcbnew.cpp @@ -163,7 +163,7 @@ void GBR_TO_PCB_EXPORTER::export_non_copper_item( const GERBER_DRAW_ITEM* aGbrIt if( d_codeDescr == nullptr ) d_codeDescr = &dummyD_CODE; - switch( aGbrItem->m_Shape ) + switch( aGbrItem->m_ShapeType ) { case GBR_POLYGON: writePcbPolygon( aGbrItem->m_Polygon, aLayer ); @@ -287,7 +287,7 @@ void GBR_TO_PCB_EXPORTER::export_via( const EXPORT_VIA& aVia ) void GBR_TO_PCB_EXPORTER::export_copper_item( const GERBER_DRAW_ITEM* aGbrItem, int aLayer ) { - switch( aGbrItem->m_Shape ) + switch( aGbrItem->m_ShapeType ) { case GBR_SPOT_CIRCLE: case GBR_SPOT_RECT: @@ -412,7 +412,7 @@ void GBR_TO_PCB_EXPORTER::export_flashed_copper_item( const GERBER_DRAW_ITEM* aG if( d_codeDescr == nullptr ) d_codeDescr = &flashed_item_D_CODE; - if( aGbrItem->m_Shape == GBR_SPOT_CIRCLE ) + if( aGbrItem->m_ShapeType == GBR_SPOT_CIRCLE ) { // See if there's a via that we can enlarge to fit this flashed item for( EXPORT_VIA& via : m_vias ) @@ -427,8 +427,8 @@ void GBR_TO_PCB_EXPORTER::export_flashed_copper_item( const GERBER_DRAW_ITEM* aG VECTOR2I offset = aGbrItem->GetABPosition( aGbrItem->m_Start ); - if( aGbrItem->m_Shape == GBR_SPOT_CIRCLE || - ( aGbrItem->m_Shape == GBR_SPOT_OVAL && d_codeDescr->m_Size.x == d_codeDescr->m_Size.y ) ) + if( aGbrItem->m_ShapeType == GBR_SPOT_CIRCLE || + ( aGbrItem->m_ShapeType == GBR_SPOT_OVAL && d_codeDescr->m_Size.x == d_codeDescr->m_Size.y ) ) { // export it as filled circle VECTOR2I center = offset; diff --git a/gerbview/gerber_draw_item.cpp b/gerbview/gerber_draw_item.cpp index 3aa8d7c664..35340433c3 100644 --- a/gerbview/gerber_draw_item.cpp +++ b/gerbview/gerber_draw_item.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 1992-2017 - * Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 1992-2023 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,7 +42,7 @@ GERBER_DRAW_ITEM::GERBER_DRAW_ITEM( GERBER_FILE_IMAGE* aGerberImageFile ) : EDA_ITEM( nullptr, GERBER_DRAW_ITEM_T ) { m_GerberImageFile = aGerberImageFile; - m_Shape = GBR_SEGMENT; + m_ShapeType = GBR_SEGMENT; m_Flashed = false; m_DCode = 0; m_UnitsMetric = false; @@ -92,7 +92,7 @@ bool GERBER_DRAW_ITEM::GetTextD_CodePrms( int& aSize, VECTOR2I& aPos, EDA_ANGLE& if( m_DCode <= 0 ) return false; // No D_Code for this item - if( m_Flashed || m_Shape == GBR_ARC ) + if( m_Flashed || m_ShapeType == GBR_ARC ) aPos = m_Start; else // it is a line: aPos = ( m_Start + m_End) / 2; @@ -207,7 +207,7 @@ void GERBER_DRAW_ITEM::SetLayerParameters() wxString GERBER_DRAW_ITEM::ShowGBRShape() const { - switch( m_Shape ) + switch( m_ShapeType ) { case GBR_SEGMENT: return _( "Line" ); case GBR_ARC: return _( "Arc" ); @@ -256,7 +256,7 @@ const BOX2I GERBER_DRAW_ITEM::GetBoundingBox() const // Until/unless that is changed, we need to do different things depending on // what is actually being represented by this GERBER_DRAW_ITEM. - switch( m_Shape ) + switch( m_ShapeType ) { case GBR_POLYGON: { @@ -432,7 +432,7 @@ void GERBER_DRAW_ITEM::Print( wxDC* aDC, const VECTOR2I& aOffset, GBR_DISPLAY_OP isFilled = aOptions->m_DisplayLinesFill; - switch( m_Shape ) + switch( m_ShapeType ) { case GBR_POLYGON: isFilled = aOptions->m_DisplayPolygonsFill; @@ -622,7 +622,7 @@ void GERBER_DRAW_ITEM::GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vectorGetMacro()->GetApertureMacroShape( this, m_Start ); return p->Contains( VECTOR2I( aRefPos ), -1, aAccuracy ); } + case GBR_SEGMENT: + case GBR_CIRCLE: + case GBR_SPOT_CIRCLE: + break; // handled below. + } + // TODO: a better analyze of the shape (perhaps create a D_CODE::HitTest for flashed items) int radius = std::min( m_Size.x, m_Size.y ) >> 1; @@ -900,7 +907,7 @@ bool GERBER_DRAW_ITEM::HitTest( const BOX2I& aRefArea, bool aContained, int aAcc void GERBER_DRAW_ITEM::Show( int nestLevel, std::ostream& os ) const { NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << - " shape=\"" << m_Shape << '"' << + " shape=\"" << m_ShapeType << '"' << " addr=\"" << std::hex << this << std::dec << '"' << " layer=\"" << GetLayer() << '"' << " size=\"" << m_Size << '"' << @@ -940,7 +947,7 @@ double GERBER_DRAW_ITEM::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const { int size = 0; - switch( m_Shape ) + switch( m_ShapeType ) { case GBR_SPOT_MACRO: size = GetDcodeDescr()->m_Polygon.BBox().GetWidth(); diff --git a/gerbview/gerber_draw_item.h b/gerbview/gerber_draw_item.h index c49851a2ca..fcb157ef97 100644 --- a/gerbview/gerber_draw_item.h +++ b/gerbview/gerber_draw_item.h @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 1992-2016 - * Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 1992-2023 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -46,8 +46,8 @@ namespace KIGFX } -/* Shapes id for basic shapes ( .m_Shape member ) */ -enum Gbr_Basic_Shapes +/* Shapes id for basic shapes ( .m_ShapeType member ) */ +enum GBR_BASIC_SHAPE_TYPE { GBR_SEGMENT = 0, // usual segment : line with rounded ends GBR_ARC, // Arcs (with rounded ends) @@ -57,8 +57,7 @@ enum Gbr_Basic_Shapes GBR_SPOT_RECT, // flashed shape: rectangular shape can have hole) GBR_SPOT_OVAL, // flashed shape: oval shape GBR_SPOT_POLY, // flashed shape: regular polygon, 3 to 12 edges - GBR_SPOT_MACRO, // complex shape described by a macro - GBR_LAST // last value for this list + GBR_SPOT_MACRO // complex shape described by a macro }; class GERBER_DRAW_ITEM : public EDA_ITEM @@ -172,7 +171,7 @@ public: void PrintGerberPoly( wxDC* aDC, const COLOR4D& aColor, const VECTOR2I& aOffset, bool aFilledShape ); - int Shape() const { return m_Shape; } + GBR_BASIC_SHAPE_TYPE ShapeType() const { return m_ShapeType; } void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector& aList ) override; @@ -230,7 +229,7 @@ public: public: bool m_UnitsMetric; // store here the gerber units (inch/mm). Used // only to calculate aperture macros shapes sizes - int m_Shape; // Shape and type of this gerber item + GBR_BASIC_SHAPE_TYPE m_ShapeType; // Shape type of this gerber item VECTOR2I m_Start; // Line or arc start point or position of the shape // for flashed items VECTOR2I m_End; // Line or arc end point diff --git a/gerbview/gerbview_painter.cpp b/gerbview/gerbview_painter.cpp index da8bf5bda3..eb58d9fa11 100644 --- a/gerbview/gerbview_painter.cpp +++ b/gerbview/gerbview_painter.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2017 Jon Evans - * Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2017-2023 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -244,7 +244,7 @@ void GERBVIEW_PAINTER::draw( /*const*/ GERBER_DRAW_ITEM* aItem, int aLayer ) m_gal->SetIsFill( isFilled ); m_gal->SetIsStroke( !isFilled ); - switch( aItem->m_Shape ) + switch( aItem->m_ShapeType ) { case GBR_POLYGON: { @@ -459,7 +459,7 @@ void GERBVIEW_PAINTER::drawFlashedShape( GERBER_DRAW_ITEM* aItem, bool aFilled ) m_gal->SetIsStroke( !aFilled ); m_gal->SetLineWidth( m_gerbviewSettings.m_outlineWidth ); - switch( aItem->m_Shape ) + switch( aItem->m_ShapeType ) { case GBR_SPOT_CIRCLE: { diff --git a/gerbview/rs274d.cpp b/gerbview/rs274d.cpp index dd914927a8..efc4452bb1 100644 --- a/gerbview/rs274d.cpp +++ b/gerbview/rs274d.cpp @@ -6,7 +6,7 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 1992-2023 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -114,24 +114,24 @@ void fillFlashedGBRITEM( GERBER_DRAW_ITEM* aGbrItem, switch( aAperture ) { case APT_POLYGON: // flashed regular polygon - aGbrItem->m_Shape = GBR_SPOT_POLY; + aGbrItem->m_ShapeType = GBR_SPOT_POLY; break; case APT_CIRCLE: - aGbrItem->m_Shape = GBR_SPOT_CIRCLE; + aGbrItem->m_ShapeType = GBR_SPOT_CIRCLE; aGbrItem->m_Size.y = aGbrItem->m_Size.x; break; case APT_OVAL: - aGbrItem->m_Shape = GBR_SPOT_OVAL; + aGbrItem->m_ShapeType = GBR_SPOT_OVAL; break; case APT_RECT: - aGbrItem->m_Shape = GBR_SPOT_RECT; + aGbrItem->m_ShapeType = GBR_SPOT_RECT; break; case APT_MACRO: - aGbrItem->m_Shape = GBR_SPOT_MACRO; + aGbrItem->m_ShapeType = GBR_SPOT_MACRO; // Cache the bounding box for aperture macros aGbrItem->GetDcodeDescr()->GetMacro()->GetApertureMacroShape( aGbrItem, aPos ); @@ -205,7 +205,7 @@ void fillArcGBRITEM( GERBER_DRAW_ITEM* aGbrItem, int Dcode_index, const VECTOR2I { VECTOR2I center, delta; - aGbrItem->m_Shape = GBR_ARC; + aGbrItem->m_ShapeType = GBR_ARC; aGbrItem->m_Size = aPenSize; aGbrItem->m_Flashed = false; @@ -598,7 +598,7 @@ bool GERBER_FILE_IMAGE::Execute_DCODE_Command( char*& text, int D_commande ) m_Exposure = true; gbritem = new GERBER_DRAW_ITEM( this ); AddItemToList( gbritem ); - gbritem->m_Shape = GBR_POLYGON; + gbritem->m_ShapeType = GBR_POLYGON; gbritem->m_Flashed = false; gbritem->m_DCode = 0; // No DCode for a Polygon (Region in Gerber dialect) diff --git a/gerbview/tools/gerbview_control.cpp b/gerbview/tools/gerbview_control.cpp index 175e35b73b..b0f63198c9 100644 --- a/gerbview/tools/gerbview_control.cpp +++ b/gerbview/tools/gerbview_control.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2017 Jon Evans - * Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2017-2023 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -244,7 +244,7 @@ int GERBVIEW_CONTROL::DisplayControl( const TOOL_EVENT& aEvent ) { GERBER_DRAW_ITEM* item = static_cast( aItem ); - switch( item->m_Shape ) + switch( item->m_ShapeType ) { case GBR_CIRCLE: case GBR_ARC: @@ -265,7 +265,7 @@ int GERBVIEW_CONTROL::DisplayControl( const TOOL_EVENT& aEvent ) { GERBER_DRAW_ITEM* item = static_cast( aItem ); - switch( item->m_Shape ) + switch( item->m_ShapeType ) { case GBR_SPOT_CIRCLE: case GBR_SPOT_RECT: @@ -288,7 +288,7 @@ int GERBVIEW_CONTROL::DisplayControl( const TOOL_EVENT& aEvent ) { GERBER_DRAW_ITEM* item = static_cast( aItem ); - return ( item->m_Shape == GBR_POLYGON ); + return ( item->m_ShapeType == GBR_POLYGON ); } ); } else if( aEvent.IsAction( &GERBVIEW_ACTIONS::negativeObjectDisplay ) )