diff --git a/pcbnew/board_item.cpp b/pcbnew/board_item.cpp index 2aef9f8944..19d03af4ec 100644 --- a/pcbnew/board_item.cpp +++ b/pcbnew/board_item.cpp @@ -154,9 +154,7 @@ std::shared_ptr BOARD_ITEM::GetEffectiveShape( PCB_LAYER_ID aLayer ) cons { std::shared_ptr shape; - int unimplemented_get_effective_shape = 0; - assert( unimplemented_get_effective_shape ); - (void) unimplemented_get_effective_shape; + wxFAIL_MSG( "GetEffectiveShape() not implemented for " + GetClass() ); return shape; } diff --git a/pcbnew/pcb_target.cpp b/pcbnew/pcb_target.cpp index 3e8ae0e923..5d21d8f81a 100644 --- a/pcbnew/pcb_target.cpp +++ b/pcbnew/pcb_target.cpp @@ -32,26 +32,26 @@ #include #include #include - +#include PCB_TARGET::PCB_TARGET( BOARD_ITEM* aParent ) : BOARD_ITEM( aParent, PCB_TARGET_T ) { - m_Shape = 0; - m_Size = Millimeter2iu( 5 ); // Gives a decent size - m_Width = Millimeter2iu( DEFAULT_COPPER_LINE_WIDTH ); - m_layer = Edge_Cuts; // a target is on all layers + m_shape = 0; + m_size = Millimeter2iu( 5 ); // Gives a decent size + m_lineWidth = Millimeter2iu( DEFAULT_COPPER_LINE_WIDTH ); + m_layer = Edge_Cuts; // a target is on all layers } PCB_TARGET::PCB_TARGET( BOARD_ITEM* aParent, int aShape, PCB_LAYER_ID aLayer, - const wxPoint& aPos, int aSize, int aWidth ) : + const wxPoint& aPos, int aSize, int aWidth ) : BOARD_ITEM( aParent, PCB_TARGET_T ) { - m_Shape = aShape; - m_layer = aLayer; - m_Pos = aPos; - m_Size = aSize; - m_Width = aWidth; + m_shape = aShape; + m_layer = aLayer; + m_pos = aPos; + m_size = aSize; + m_lineWidth = aWidth; } @@ -62,9 +62,9 @@ PCB_TARGET::~PCB_TARGET() bool PCB_TARGET::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - int dX = aPosition.x - m_Pos.x; - int dY = aPosition.y - m_Pos.y; - int radius = aAccuracy + ( m_Size / 2 ); + int dX = aPosition.x - m_pos.x; + int dY = aPosition.y - m_pos.y; + int radius = aAccuracy + ( m_size / 2 ); return abs( dX ) <= radius && abs( dY ) <= radius; } @@ -83,16 +83,16 @@ bool PCB_TARGET::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy void PCB_TARGET::Rotate(const wxPoint& aRotCentre, double aAngle) { - RotatePoint( &m_Pos, aRotCentre, aAngle ); + RotatePoint( &m_pos, aRotCentre, aAngle ); } void PCB_TARGET::Flip(const wxPoint& aCentre, bool aFlipLeftRight ) { if( aFlipLeftRight ) - m_Pos.x = aCentre.x - ( m_Pos.x - aCentre.x ); + m_pos.x = aCentre.x - ( m_pos.x - aCentre.x ); else - m_Pos.y = aCentre.y - ( m_Pos.y - aCentre.y ); + m_pos.y = aCentre.y - ( m_pos.y - aCentre.y ); SetLayer( FlipLayer( GetLayer() ) ); } @@ -101,15 +101,21 @@ void PCB_TARGET::Flip(const wxPoint& aCentre, bool aFlipLeftRight ) const EDA_RECT PCB_TARGET::GetBoundingBox() const { EDA_RECT bBox; - bBox.SetX( m_Pos.x - m_Size/2 ); - bBox.SetY( m_Pos.y - m_Size/2 ); - bBox.SetWidth( m_Size ); - bBox.SetHeight( m_Size ); + bBox.SetX( m_pos.x - m_size / 2 ); + bBox.SetY( m_pos.y - m_size / 2 ); + bBox.SetWidth( m_size ); + bBox.SetHeight( m_size ); return bBox; } +std::shared_ptr PCB_TARGET::GetEffectiveShape( PCB_LAYER_ID aLayer ) const +{ + return std::make_shared( m_pos, m_size / 2 ); +} + + wxString PCB_TARGET::GetSelectMenuText( EDA_UNITS aUnits ) const { // Targets are on *every* layer by definition diff --git a/pcbnew/pcb_target.h b/pcbnew/pcb_target.h index 5d9e10ae31..0021b6e991 100644 --- a/pcbnew/pcb_target.h +++ b/pcbnew/pcb_target.h @@ -34,10 +34,10 @@ class LINE_READER; class PCB_TARGET : public BOARD_ITEM { - int m_Shape; // bit 0 : 0 = draw +, 1 = draw X - int m_Size; - int m_Width; - wxPoint m_Pos; + int m_shape; // bit 0 : 0 = draw +, 1 = draw X + int m_size; + int m_lineWidth; + wxPoint m_pos; public: PCB_TARGET( BOARD_ITEM* aParent ); @@ -57,21 +57,21 @@ public: return aItem && PCB_TARGET_T == aItem->Type(); } - void SetPosition( const wxPoint& aPos ) override { m_Pos = aPos; } - wxPoint GetPosition() const override { return m_Pos; } + void SetPosition( const wxPoint& aPos ) override { m_pos = aPos; } + wxPoint GetPosition() const override { return m_pos; } - void SetShape( int aShape ) { m_Shape = aShape; } - int GetShape() const { return m_Shape; } + void SetShape( int aShape ) { m_shape = aShape; } + int GetShape() const { return m_shape; } - void SetSize( int aSize ) { m_Size = aSize; } - int GetSize() const { return m_Size; } + void SetSize( int aSize ) { m_size = aSize; } + int GetSize() const { return m_size; } - void SetWidth( int aWidth ) { m_Width = aWidth; } - int GetWidth() const { return m_Width; } + void SetWidth( int aWidth ) { m_lineWidth = aWidth; } + int GetWidth() const { return m_lineWidth; } void Move( const wxPoint& aMoveVector ) override { - m_Pos += aMoveVector; + m_pos += aMoveVector; } void Rotate( const wxPoint& aRotCentre, double aAngle ) override; @@ -89,6 +89,8 @@ public: // Virtual function const EDA_RECT GetBoundingBox() const override; + std::shared_ptr GetEffectiveShape( PCB_LAYER_ID aLayer ) const override; + wxString GetSelectMenuText( EDA_UNITS aUnits ) const override; BITMAP_DEF GetMenuImage() const override;