diff --git a/common/sch_item_struct.cpp b/common/sch_item_struct.cpp index baccf7d7cf..a9c2bec4c0 100644 --- a/common/sch_item_struct.cpp +++ b/common/sch_item_struct.cpp @@ -101,7 +101,7 @@ bool SCH_ITEM::operator < ( const SCH_ITEM& aItem ) const } -void SCH_ITEM::doPlot( PLOTTER* aPlotter ) +void SCH_ITEM::Plot( PLOTTER* aPlotter ) { - wxFAIL_MSG( wxT( "doPlot() method not implemented for class " ) + GetClass() ); + wxFAIL_MSG( wxT( "Plot() method not implemented for class " ) + GetClass() ); } diff --git a/cvpcb/CMakeLists.txt b/cvpcb/CMakeLists.txt index 6fff56f0ed..3256bb8935 100644 --- a/cvpcb/CMakeLists.txt +++ b/cvpcb/CMakeLists.txt @@ -29,6 +29,7 @@ set(CVPCB_SRCS ../pcbnew/netlist_reader_common.cpp ../pcbnew/netlist_reader_kicad.cpp ../pcbnew/netlist_reader_firstformat.cpp + ../pcbnew/class_drc_item.cpp autosel.cpp cfg.cpp class_components_listbox.cpp diff --git a/eeschema/block.cpp b/eeschema/block.cpp index 110fc7bdb6..9ae9a815d3 100644 --- a/eeschema/block.cpp +++ b/eeschema/block.cpp @@ -54,8 +54,8 @@ extern void SetSchItemParent( SCH_ITEM* Struct, SCH_SCREEN* Screen ); extern void MoveItemsInList( PICKED_ITEMS_LIST& aItemsList, const wxPoint aMoveVector ); extern void RotateListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center ); -extern void Mirror_X_ListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ); -extern void MirrorListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center ); +extern void MirrorX( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ); +extern void MirrorY( PICKED_ITEMS_LIST& aItemsList, wxPoint& Center ); extern void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList, const wxPoint aMoveVector ); @@ -434,7 +434,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) mirrorPoint = GetScreen()->GetNearestGridPosition( mirrorPoint ); GetScreen()->SetCrossHairPosition( mirrorPoint ); SaveCopyInUndoList( block->m_ItemsSelection, UR_MIRRORED_X, mirrorPoint ); - Mirror_X_ListOfItems( block->m_ItemsSelection, mirrorPoint ); + MirrorX( block->m_ItemsSelection, mirrorPoint ); OnModify(); } GetScreen()->TestDanglingEnds( m_canvas, DC ); @@ -452,7 +452,7 @@ void SCH_EDIT_FRAME::HandleBlockEndByPopUp( int Command, wxDC* DC ) mirrorPoint = GetScreen()->GetNearestGridPosition( mirrorPoint ); GetScreen()->SetCrossHairPosition( mirrorPoint ); SaveCopyInUndoList( block->m_ItemsSelection, UR_MIRRORED_Y, mirrorPoint ); - MirrorListOfItems( block->m_ItemsSelection, mirrorPoint ); + MirrorY( block->m_ItemsSelection, mirrorPoint ); OnModify(); } diff --git a/eeschema/edit_bitmap.cpp b/eeschema/edit_bitmap.cpp index 3e832a3215..fb3db8427a 100644 --- a/eeschema/edit_bitmap.cpp +++ b/eeschema/edit_bitmap.cpp @@ -179,9 +179,9 @@ void SCH_EDIT_FRAME::MirrorImage( SCH_BITMAP* aItem, bool Is_X_axis ) SaveCopyInUndoList( aItem, UR_CHANGED ); if( Is_X_axis ) - aItem->Mirror_X( aItem->GetPosition().y ); + aItem->MirrorX( aItem->GetPosition().y ); else - aItem->Mirror_Y( aItem->GetPosition().x ); + aItem->MirrorY( aItem->GetPosition().x ); OnModify(); m_canvas->Refresh(); diff --git a/eeschema/lib_arc.h b/eeschema/lib_arc.h index d0fafb655f..ecef241c86 100644 --- a/eeschema/lib_arc.h +++ b/eeschema/lib_arc.h @@ -198,8 +198,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_arc_xpm; } private: diff --git a/eeschema/lib_circle.h b/eeschema/lib_circle.h index 096eb8a59c..2385acb845 100644 --- a/eeschema/lib_circle.h +++ b/eeschema/lib_circle.h @@ -168,8 +168,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_circle_xpm; } private: diff --git a/eeschema/lib_field.h b/eeschema/lib_field.h index 9fdbc88491..adfe8034db 100644 --- a/eeschema/lib_field.h +++ b/eeschema/lib_field.h @@ -319,8 +319,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return move_field_xpm; } private: diff --git a/eeschema/lib_pin.h b/eeschema/lib_pin.h index 872a7e6e6c..be0e8f5abd 100644 --- a/eeschema/lib_pin.h +++ b/eeschema/lib_pin.h @@ -569,8 +569,10 @@ public: */ virtual void SetWidth( int aWidth ); + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; private: diff --git a/eeschema/lib_polyline.h b/eeschema/lib_polyline.h index 00a89910bd..874172254e 100644 --- a/eeschema/lib_polyline.h +++ b/eeschema/lib_polyline.h @@ -184,8 +184,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_polygon_xpm; } private: diff --git a/eeschema/lib_rectangle.h b/eeschema/lib_rectangle.h index 2be36de5f2..97b9191f25 100644 --- a/eeschema/lib_rectangle.h +++ b/eeschema/lib_rectangle.h @@ -172,8 +172,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Width = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_rectangle_xpm; } private: diff --git a/eeschema/lib_text.h b/eeschema/lib_text.h index 0f62baf34d..bf3e9a613d 100644 --- a/eeschema/lib_text.h +++ b/eeschema/lib_text.h @@ -204,8 +204,10 @@ public: */ virtual void SetWidth( int aWidth ) { m_Thickness = aWidth; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } private: diff --git a/eeschema/operations_on_items_lists.cpp b/eeschema/operations_on_items_lists.cpp index 6703b03032..461e22ed73 100644 --- a/eeschema/operations_on_items_lists.cpp +++ b/eeschema/operations_on_items_lists.cpp @@ -65,23 +65,23 @@ void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList, const wxPoint aMoveVector ); -void MirrorListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) +void MirrorY( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) { for( unsigned ii = 0; ii < aItemsList.GetCount(); ii++ ) { SCH_ITEM* item = (SCH_ITEM*) aItemsList.GetPickedItem( ii ); - item->Mirror_Y( aMirrorPoint.x ); // Place it in its new position. + item->MirrorY( aMirrorPoint.x ); // Place it in its new position. item->ClearFlags(); } } -void Mirror_X_ListOfItems( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) +void MirrorX( PICKED_ITEMS_LIST& aItemsList, wxPoint& aMirrorPoint ) { for( unsigned ii = 0; ii < aItemsList.GetCount(); ii++ ) { SCH_ITEM* item = (SCH_ITEM*) aItemsList.GetPickedItem( ii ); - item->Mirror_X( aMirrorPoint.y ); // Place it in its new position. + item->MirrorX( aMirrorPoint.y ); // Place it in its new position. item->ClearFlags(); } } diff --git a/eeschema/sch_bitmap.cpp b/eeschema/sch_bitmap.cpp index 38d18b1c2c..ea725d2785 100644 --- a/eeschema/sch_bitmap.cpp +++ b/eeschema/sch_bitmap.cpp @@ -229,7 +229,7 @@ wxSize SCH_BITMAP::GetSize() const /* * Mirror image relative to a horizontal X axis ) */ -void SCH_BITMAP::Mirror_X( int aXaxis_position ) +void SCH_BITMAP::MirrorX( int aXaxis_position ) { m_Pos.y -= aXaxis_position; NEGATE( m_Pos.y ); @@ -242,7 +242,7 @@ void SCH_BITMAP::Mirror_X( int aXaxis_position ) /* * Mirror image relative to a vertical Y axis */ -void SCH_BITMAP::Mirror_Y( int aYaxis_position ) +void SCH_BITMAP::MirrorY( int aYaxis_position ) { m_Pos.x -= aYaxis_position; NEGATE( m_Pos.x ); @@ -251,9 +251,9 @@ void SCH_BITMAP::Mirror_Y( int aYaxis_position ) } -void SCH_BITMAP::Rotate( wxPoint rotationPoint ) +void SCH_BITMAP::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); m_Image->Rotate( false ); } @@ -284,17 +284,17 @@ void SCH_BITMAP::Show( int nestLevel, std::ostream& os ) const #endif -bool SCH_BITMAP::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_BITMAP::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_BITMAP::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_BITMAP::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -307,13 +307,7 @@ bool SCH_BITMAP::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccurac } -bool SCH_BITMAP::doIsConnected( const wxPoint& aPosition ) const -{ - return m_Pos == aPosition; -} - - -void SCH_BITMAP::doPlot( PLOTTER* aPlotter ) +void SCH_BITMAP::Plot( PLOTTER* aPlotter ) { m_Image->PlotImage( aPlotter, m_Pos, ReturnLayerColor( GetLayer() ), GetPenSize() ); } diff --git a/eeschema/sch_bitmap.h b/eeschema/sch_bitmap.h index 5837d160ed..743938a4a6 100644 --- a/eeschema/sch_bitmap.h +++ b/eeschema/sch_bitmap.h @@ -133,46 +133,52 @@ public: */ virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function Move - * moves then item to a new position by \a aMoveVector. - * @param aMoveVector The displacement vector. - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsSelectStateChanged( const wxRect& aRect ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "Image" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return image_xpm; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; - virtual bool doIsConnected( const wxPoint& aPosition ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } }; diff --git a/eeschema/sch_bus_entry.cpp b/eeschema/sch_bus_entry.cpp index 83ee22ac3a..980043f86e 100644 --- a/eeschema/sch_bus_entry.cpp +++ b/eeschema/sch_bus_entry.cpp @@ -194,7 +194,7 @@ void SCH_BUS_ENTRY::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOff } -void SCH_BUS_ENTRY::Mirror_X( int aXaxis_position ) +void SCH_BUS_ENTRY::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -203,7 +203,7 @@ void SCH_BUS_ENTRY::Mirror_X( int aXaxis_position ) } -void SCH_BUS_ENTRY::Mirror_Y( int aYaxis_position ) +void SCH_BUS_ENTRY::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -212,9 +212,9 @@ void SCH_BUS_ENTRY::Mirror_Y( int aYaxis_position ) } -void SCH_BUS_ENTRY::Rotate( wxPoint rotationPoint ) +void SCH_BUS_ENTRY::Rotate( wxPoint aPosition ) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); RotatePoint( &m_size.x, &m_size.y, 900 ); } @@ -260,13 +260,13 @@ wxString SCH_BUS_ENTRY::GetSelectMenuText() const } -bool SCH_BUS_ENTRY::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_BUS_ENTRY::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TestSegmentHit( aPoint, m_pos, m_End(), aAccuracy ); + return TestSegmentHit( aPosition, m_pos, m_End(), aAccuracy ); } -bool SCH_BUS_ENTRY::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_BUS_ENTRY::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -279,7 +279,7 @@ bool SCH_BUS_ENTRY::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccu } -void SCH_BUS_ENTRY::doPlot( PLOTTER* aPlotter ) +void SCH_BUS_ENTRY::Plot( PLOTTER* aPlotter ) { aPlotter->set_current_line_width( GetPenSize() ); aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); diff --git a/eeschema/sch_bus_entry.h b/eeschema/sch_bus_entry.h index f2e7417a4a..f8c8d036c7 100644 --- a/eeschema/sch_bus_entry.h +++ b/eeschema/sch_bus_entry.h @@ -123,26 +123,20 @@ public: */ virtual int GetPenSize() const; - /** - * Function Move - * moves and item to a new position by \a aMoveVector. - * @param aMoveVector The displacement vector. - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position The Y axis coordinate to mirror around. - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual void GetEndPoints( std::vector & aItemList ); @@ -155,21 +149,34 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_entry_xpm; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } }; diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index a8d7ff0d12..70f44399d7 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -1502,7 +1502,7 @@ void SCH_COMPONENT::DisplayInfo( EDA_DRAW_FRAME* frame ) } -void SCH_COMPONENT::Mirror_Y( int aYaxis_position ) +void SCH_COMPONENT::MirrorY( int aYaxis_position ) { int dx = m_Pos.x; @@ -1521,7 +1521,7 @@ void SCH_COMPONENT::Mirror_Y( int aYaxis_position ) } -void SCH_COMPONENT::Mirror_X( int aXaxis_position ) +void SCH_COMPONENT::MirrorX( int aXaxis_position ) { int dy = m_Pos.y; @@ -1540,11 +1540,11 @@ void SCH_COMPONENT::Mirror_X( int aXaxis_position ) } -void SCH_COMPONENT::Rotate( wxPoint rotationPoint ) +void SCH_COMPONENT::Rotate( wxPoint aPosition ) { wxPoint prev = m_Pos; - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); //SetOrientation( CMP_ROTATE_COUNTERCLOCKWISE ); SetOrientation( CMP_ROTATE_CLOCKWISE ); @@ -1837,20 +1837,23 @@ SCH_ITEM& SCH_COMPONENT::operator=( const SCH_ITEM& aItem ) } -bool SCH_COMPONENT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_COMPONENT::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT bBox = GetBodyBoundingBox(); bBox.Inflate( aAccuracy ); - if( bBox.Contains( aPoint ) ) + if( bBox.Contains( aPosition ) ) return true; return false; } -bool SCH_COMPONENT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_COMPONENT::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { + if( m_Flags & STRUCT_DELETED || m_Flags & SKIP_STRUCT ) + return false; + EDA_RECT rect = aRect; rect.Inflate( aAccuracy ); @@ -1878,7 +1881,7 @@ bool SCH_COMPONENT::doIsConnected( const wxPoint& aPosition ) const } -void SCH_COMPONENT::doPlot( PLOTTER* aPlotter ) +void SCH_COMPONENT::Plot( PLOTTER* aPlotter ) { LIB_COMPONENT* Entry; TRANSFORM temp = TRANSFORM(); diff --git a/eeschema/sch_component.h b/eeschema/sch_component.h index 4035f57d8b..fece3e917c 100644 --- a/eeschema/sch_component.h +++ b/eeschema/sch_component.h @@ -329,11 +329,7 @@ public: // Geometric transforms (used in block operations): - /** - * Function Move - * moves item to a new position by \a aMoveVector. - * @param aMoveVector The displacement to move the component - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { if( aMoveVector == wxPoint( 0, 0 ) ) @@ -347,21 +343,14 @@ public: SetModified(); } - /** - * Function Mirror_Y - * mirrors the component relative to an Y axis about the \a aYaxis_position. - * @param aYaxis_position The y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - /** - * Function Mirror_X (virtual) - * mirrors item relative to an X axis about the \a aXaxis_position. - * @param aXaxis_position The x axis position - */ - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * @copydoc EDA_ITEM::Matches() @@ -391,8 +380,10 @@ public: */ LIB_ITEM* GetDrawItem( const wxPoint& aPosition, KICAD_T aType = TYPE_NOT_INIT ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_component_xpm; } virtual void GetNetListItem( vector& aNetListItems, @@ -410,18 +401,31 @@ public: */ virtual bool IsReplaceable() const { return true; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; + virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { Move( aPosition - m_Pos ); } }; diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index 7ea9cbc608..1123a07fcc 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -458,9 +458,9 @@ bool SCH_FIELD::Replace( wxFindReplaceData& aSearchData, void* aAuxData ) } -void SCH_FIELD::Rotate( wxPoint rotationPoint ) +void SCH_FIELD::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); } @@ -499,7 +499,7 @@ BITMAP_DEF SCH_FIELD::GetMenuImage() const } -bool SCH_FIELD::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_FIELD::HitTest( const wxPoint& aPosition, int aAccuracy ) const { // Do not hit test hidden or empty fields. if( !IsVisible() || IsVoid() ) @@ -509,11 +509,11 @@ bool SCH_FIELD::doHitTest( const wxPoint& aPoint, int aAccuracy ) const rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_FIELD::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_FIELD::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { // Do not hit test hidden fields. if( !IsVisible() || IsVoid() ) @@ -530,7 +530,7 @@ bool SCH_FIELD::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy } -void SCH_FIELD::doPlot( PLOTTER* aPlotter ) +void SCH_FIELD::Plot( PLOTTER* aPlotter ) { SCH_COMPONENT* parent = ( SCH_COMPONENT* ) GetParent(); @@ -593,7 +593,7 @@ void SCH_FIELD::doPlot( PLOTTER* aPlotter ) } -void SCH_FIELD::doSetPosition( const wxPoint& aPosition ) +void SCH_FIELD::SetPosition( const wxPoint& aPosition ) { SCH_COMPONENT* component = (SCH_COMPONENT*) GetParent(); @@ -608,7 +608,7 @@ void SCH_FIELD::doSetPosition( const wxPoint& aPosition ) } -wxPoint SCH_FIELD::doGetPosition() const +wxPoint SCH_FIELD::GetPosition() const { SCH_COMPONENT* component = (SCH_COMPONENT*) GetParent(); diff --git a/eeschema/sch_field.h b/eeschema/sch_field.h index df8bf3f7d8..68bd96b538 100644 --- a/eeschema/sch_field.h +++ b/eeschema/sch_field.h @@ -163,36 +163,36 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); - virtual void Mirror_X( int aXaxis_position ) + /** + * @copydoc SCH_ITEM::MirrorX() + * + * This overload does nothing. Fields are never mirrored alone. They are moved + * when the parent component is mirrored. This function is only needed by the + * virtual pure function of the master class. + */ + virtual void MirrorX( int aXaxis_position ) { - /* Do Nothing: fields are never mirrored alone. - * they are moved when the parent component is mirrored - * this function is only needed by the virtual pure function of the - * master class */ } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position + /** + * @copydoc SCH_ITEM::MirrorY() + * + * This overload does nothing. Fields are never mirrored alone. They are moved + * when the parent component is mirrored. This function is only needed by the + * virtual pure function of the master class. */ - virtual void Mirror_Y( int aYaxis_position ) + virtual void MirrorY( int aYaxis_position ) { - /* Do Nothing: fields are never mirrored alone. - * they are moved when the parent component is mirrored - * this function is only needed by the virtual pure function of the - * master class */ } /** @@ -206,8 +206,10 @@ public: */ virtual bool Replace( wxFindReplaceData& aSearchData, void* aAuxData = NULL ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; /** @@ -215,17 +217,28 @@ public: */ virtual bool IsReplaceable() const { return true; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const; + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ); + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const; - virtual void doSetPosition( const wxPoint& aPosition ); }; diff --git a/eeschema/sch_junction.cpp b/eeschema/sch_junction.cpp index fe9d7c547d..8374c5f9c2 100644 --- a/eeschema/sch_junction.cpp +++ b/eeschema/sch_junction.cpp @@ -130,7 +130,7 @@ void SCH_JUNCTION::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffs } -void SCH_JUNCTION::Mirror_X( int aXaxis_position ) +void SCH_JUNCTION::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -138,7 +138,7 @@ void SCH_JUNCTION::Mirror_X( int aXaxis_position ) } -void SCH_JUNCTION::Mirror_Y( int aYaxis_position ) +void SCH_JUNCTION::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -146,9 +146,9 @@ void SCH_JUNCTION::Mirror_Y( int aYaxis_position ) } -void SCH_JUNCTION::Rotate( wxPoint rotationPoint ) +void SCH_JUNCTION::Rotate( wxPoint aPosition ) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); } @@ -204,18 +204,21 @@ void SCH_JUNCTION::Show( int nestLevel, std::ostream& os ) const #endif -bool SCH_JUNCTION::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_JUNCTION::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_JUNCTION::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_JUNCTION::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { + if( m_Flags & STRUCT_DELETED || m_Flags & SKIP_STRUCT ) + return false; + EDA_RECT rect = aRect; rect.Inflate( aAccuracy ); @@ -233,7 +236,7 @@ bool SCH_JUNCTION::doIsConnected( const wxPoint& aPosition ) const } -void SCH_JUNCTION::doPlot( PLOTTER* aPlotter ) +void SCH_JUNCTION::Plot( PLOTTER* aPlotter ) { aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); aPlotter->circle( m_pos, m_size.x, FILLED_SHAPE ); diff --git a/eeschema/sch_junction.h b/eeschema/sch_junction.h index 92ca5c977a..1a37387581 100644 --- a/eeschema/sch_junction.h +++ b/eeschema/sch_junction.h @@ -84,26 +84,20 @@ public: */ virtual bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - /** - * Function Move - * moves then item to a new position by \a aMoveVector. - * @param aMoveVector The displacement vector. - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual void GetEndPoints( std::vector & aItemList ); @@ -113,25 +107,40 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "Junction" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_junction_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; - virtual bool doIsConnected( const wxPoint& aPosition ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::doIsConnected() */ + virtual bool doIsConnected( const wxPoint& aPosition ) const; }; diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index 6169f53d69..37c2f0981f 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -256,7 +256,7 @@ void SCH_LINE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset, } -void SCH_LINE::Mirror_X( int aXaxis_position ) +void SCH_LINE::MirrorX( int aXaxis_position ) { m_start.y -= aXaxis_position; NEGATE( m_start.y ); @@ -267,7 +267,7 @@ void SCH_LINE::Mirror_X( int aXaxis_position ) } -void SCH_LINE::Mirror_Y( int aYaxis_position ) +void SCH_LINE::MirrorY( int aYaxis_position ) { m_start.x -= aYaxis_position; NEGATE( m_start.x ); @@ -278,10 +278,10 @@ void SCH_LINE::Mirror_Y( int aYaxis_position ) } -void SCH_LINE::Rotate( wxPoint rotationPoint ) +void SCH_LINE::Rotate( wxPoint aPosition ) { - RotatePoint( &m_start, rotationPoint, 900 ); - RotatePoint( &m_end, rotationPoint, 900 ); + RotatePoint( &m_start, aPosition, 900 ); + RotatePoint( &m_end, aPosition, 900 ); } @@ -540,14 +540,17 @@ bool SCH_LINE::operator <( const SCH_ITEM& aItem ) const } -bool SCH_LINE::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_LINE::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TestSegmentHit( aPoint, m_start, m_end, aAccuracy ); + return TestSegmentHit( aPosition, m_start, m_end, aAccuracy ); } -bool SCH_LINE::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_LINE::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { + if( m_Flags & STRUCT_DELETED || m_Flags & SKIP_STRUCT ) + return false; + EDA_RECT rect = aRect; rect.Inflate( aAccuracy ); @@ -568,7 +571,7 @@ bool SCH_LINE::doIsConnected( const wxPoint& aPosition ) const } -void SCH_LINE::doPlot( PLOTTER* aPlotter ) +void SCH_LINE::Plot( PLOTTER* aPlotter ) { aPlotter->set_color( ReturnLayerColor( GetLayer() ) ); aPlotter->set_current_line_width( GetPenSize() ); @@ -584,7 +587,7 @@ void SCH_LINE::doPlot( PLOTTER* aPlotter ) } -void SCH_LINE::doSetPosition( const wxPoint& aPosition ) +void SCH_LINE::SetPosition( const wxPoint& aPosition ) { m_end = m_end - ( m_start - aPosition ); m_start = aPosition; diff --git a/eeschema/sch_line.h b/eeschema/sch_line.h index dfa0b92032..a9e04cbef1 100644 --- a/eeschema/sch_line.h +++ b/eeschema/sch_line.h @@ -118,23 +118,17 @@ public: */ virtual int GetPenSize() const; - /** - * Function Move - * moves the item by \a aMoveVector. - * @param aMoveVector The displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * Check line against \a aLine to see if it overlaps and merge if it does. @@ -164,8 +158,10 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; virtual void GetNetListItem( vector& aNetListItems, @@ -173,18 +169,31 @@ public: virtual bool operator <( const SCH_ITEM& aItem ) const; + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_start; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ); + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; + virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_start; } - virtual void doSetPosition( const wxPoint& aPosition ); }; diff --git a/eeschema/sch_marker.cpp b/eeschema/sch_marker.cpp index 1ab556aec2..094e4b3d53 100644 --- a/eeschema/sch_marker.cpp +++ b/eeschema/sch_marker.cpp @@ -1,6 +1,31 @@ -/*******************************************/ -/* Schematic marker object implementation. */ -/*******************************************/ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2009 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com + * Copyright (C) 1992-2011 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 Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file sch_marker.cpp + * @brief Class SCH_MARKER implementation + */ #include #include @@ -27,9 +52,9 @@ const wxChar* NameMarqueurType[] = }; -/**************************/ +/********************/ /* class SCH_MARKER */ -/**************************/ +/********************/ SCH_MARKER::SCH_MARKER() : SCH_ITEM( NULL, SCH_MARKER_T ), MARKER_BASE() { @@ -145,13 +170,13 @@ void SCH_MARKER::DisplayInfo( EDA_DRAW_FRAME* aFrame ) } -void SCH_MARKER::Rotate( wxPoint rotationPoint ) +void SCH_MARKER::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); } -void SCH_MARKER::Mirror_X( int aXaxis_position ) +void SCH_MARKER::MirrorX( int aXaxis_position ) { m_Pos.y -= aXaxis_position; m_Pos.y = -m_Pos.y; @@ -159,7 +184,7 @@ void SCH_MARKER::Mirror_X( int aXaxis_position ) } -void SCH_MARKER::Mirror_Y( int aYaxis_position ) +void SCH_MARKER::MirrorY( int aYaxis_position ) { m_Pos.x -= aYaxis_position; m_Pos.x = -m_Pos.x; @@ -180,8 +205,8 @@ bool SCH_MARKER::IsSelectStateChanged( const wxRect& aRect ) } -bool SCH_MARKER::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_MARKER::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return HitTestMarker( aPoint ); + return HitTestMarker( aPosition ); } diff --git a/eeschema/sch_marker.h b/eeschema/sch_marker.h index 0696c3a711..877496b36c 100644 --- a/eeschema/sch_marker.h +++ b/eeschema/sch_marker.h @@ -89,23 +89,21 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); + + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); + + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * Compare DRC marker main and auxiliary text against search string. @@ -125,18 +123,26 @@ public: virtual bool IsSelectStateChanged( const wxRect& aRect ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "ERC Marker" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return erc_xpm; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } }; #endif // TYPE_SCH_MARKER_H_ diff --git a/eeschema/sch_no_connect.cpp b/eeschema/sch_no_connect.cpp index 7a7226385b..d7214b0964 100644 --- a/eeschema/sch_no_connect.cpp +++ b/eeschema/sch_no_connect.cpp @@ -146,7 +146,7 @@ void SCH_NO_CONNECT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf } -void SCH_NO_CONNECT::Mirror_X( int aXaxis_position ) +void SCH_NO_CONNECT::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -154,7 +154,7 @@ void SCH_NO_CONNECT::Mirror_X( int aXaxis_position ) } -void SCH_NO_CONNECT::Mirror_Y( int aYaxis_position ) +void SCH_NO_CONNECT::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -162,9 +162,9 @@ void SCH_NO_CONNECT::Mirror_Y( int aYaxis_position ) } -void SCH_NO_CONNECT::Rotate( wxPoint rotationPoint ) +void SCH_NO_CONNECT::Rotate( wxPoint aPosition ) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); } @@ -207,11 +207,11 @@ bool SCH_NO_CONNECT::doIsConnected( const wxPoint& aPosition ) const return m_pos == aPosition; } -bool SCH_NO_CONNECT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_NO_CONNECT::HitTest( const wxPoint& aPosition, int aAccuracy ) const { int delta = ( ( m_size.x + g_DrawDefaultLineThickness ) / 2 ) + aAccuracy; - wxPoint dist = aPoint - m_pos; + wxPoint dist = aPosition - m_pos; if( ( ABS( dist.x ) <= delta ) && ( ABS( dist.y ) <= delta ) ) return true; @@ -220,7 +220,7 @@ bool SCH_NO_CONNECT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const } -bool SCH_NO_CONNECT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_NO_CONNECT::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -233,7 +233,7 @@ bool SCH_NO_CONNECT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAcc } -void SCH_NO_CONNECT::doPlot( PLOTTER* aPlotter ) +void SCH_NO_CONNECT::Plot( PLOTTER* aPlotter ) { int delta = m_size.x / 2; int pX, pY; diff --git a/eeschema/sch_no_connect.h b/eeschema/sch_no_connect.h index 544782934c..68ceccd01a 100644 --- a/eeschema/sch_no_connect.h +++ b/eeschema/sch_no_connect.h @@ -92,25 +92,20 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors item relative to \a aYaxis_position. - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsSelectStateChanged( const wxRect& aRect ); @@ -118,25 +113,40 @@ public: virtual void GetConnectionPoints( vector< wxPoint >& aPoints ) const; + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const { return wxString( _( "No Connect" ) ); } + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return noconn_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const; - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; + virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } }; diff --git a/eeschema/sch_polyline.cpp b/eeschema/sch_polyline.cpp index e314733a36..c1bd84d2ec 100644 --- a/eeschema/sch_polyline.cpp +++ b/eeschema/sch_polyline.cpp @@ -190,7 +190,7 @@ void SCH_POLYLINE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffs } -void SCH_POLYLINE::Mirror_X( int aXaxis_position ) +void SCH_POLYLINE::MirrorX( int aXaxis_position ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) { @@ -201,7 +201,7 @@ void SCH_POLYLINE::Mirror_X( int aXaxis_position ) } -void SCH_POLYLINE::Mirror_Y( int aYaxis_position ) +void SCH_POLYLINE::MirrorY( int aYaxis_position ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) { @@ -212,11 +212,11 @@ void SCH_POLYLINE::Mirror_Y( int aYaxis_position ) } -void SCH_POLYLINE::Rotate( wxPoint rotationPoint ) +void SCH_POLYLINE::Rotate( wxPoint aPosition ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) { - RotatePoint( &m_points[ii], rotationPoint, 900 ); + RotatePoint( &m_points[ii], aPosition, 900 ); } } @@ -260,11 +260,11 @@ BITMAP_DEF SCH_POLYLINE::GetMenuImage() const } -bool SCH_POLYLINE::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_POLYLINE::HitTest( const wxPoint& aPosition, int aAccuracy ) const { for( size_t i = 0; i < m_points.size() - 1; i++ ) { - if( TestSegmentHit( aPoint, m_points[i], m_points[i + 1], aAccuracy ) ) + if( TestSegmentHit( aPosition, m_points[i], m_points[i + 1], aAccuracy ) ) return true; } @@ -272,7 +272,7 @@ bool SCH_POLYLINE::doHitTest( const wxPoint& aPoint, int aAccuracy ) const } -bool SCH_POLYLINE::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_POLYLINE::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -285,7 +285,7 @@ bool SCH_POLYLINE::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccur } -void SCH_POLYLINE::doSetPosition( const wxPoint& aPosition ) +void SCH_POLYLINE::SetPosition( const wxPoint& aPosition ) { wxPoint offset = m_points[0] - aPosition; diff --git a/eeschema/sch_polyline.h b/eeschema/sch_polyline.h index 30dba3d850..9328ca0d9a 100644 --- a/eeschema/sch_polyline.h +++ b/eeschema/sch_polyline.h @@ -112,30 +112,26 @@ public: */ virtual int GetPenSize() const; - /** - * Function Move - * moves an item to a new position by \a aMoveVector. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) m_points[ii] += aMoveVector; } - /** - * Function Mirror_Y - * mirrors an item relative to \a aYaxis_position. - * @param aYaxis_position The y axis position to mirror around. - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const; /** @@ -153,16 +149,25 @@ public: return m_points[ aIndex ]; } + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_points[0]; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ); + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual wxPoint doGetPosition() const { return m_points[0]; } - virtual void doSetPosition( const wxPoint& aPosition ); }; diff --git a/eeschema/sch_sheet.cpp b/eeschema/sch_sheet.cpp index 2dcaa4ea70..e6dec56b58 100644 --- a/eeschema/sch_sheet.cpp +++ b/eeschema/sch_sheet.cpp @@ -514,7 +514,7 @@ SCH_SHEET_PIN* SCH_SHEET::GetPin( const wxPoint& aPosition ) { BOOST_FOREACH( SCH_SHEET_PIN& pin, m_pins ) { - if( pin.HitTest( aPosition ) ) + if( pin.HitTest( aPosition, 0 ) ) return &pin; } @@ -837,9 +837,9 @@ void SCH_SHEET::DisplayInfo( EDA_DRAW_FRAME* frame ) } -void SCH_SHEET::Rotate(wxPoint rotationPoint) +void SCH_SHEET::Rotate(wxPoint aPosition) { - RotatePoint( &m_pos, rotationPoint, 900 ); + RotatePoint( &m_pos, aPosition, 900 ); RotatePoint( &m_size.x, &m_size.y, 900 ); if( m_size.x < 0 ) @@ -856,12 +856,12 @@ void SCH_SHEET::Rotate(wxPoint rotationPoint) BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) { - sheetPin.Rotate( rotationPoint ); + sheetPin.Rotate( aPosition ); } } -void SCH_SHEET::Mirror_X( int aXaxis_position ) +void SCH_SHEET::MirrorX( int aXaxis_position ) { m_pos.y -= aXaxis_position; NEGATE( m_pos.y ); @@ -870,12 +870,12 @@ void SCH_SHEET::Mirror_X( int aXaxis_position ) BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) { - sheetPin.Mirror_X( aXaxis_position ); + sheetPin.MirrorX( aXaxis_position ); } } -void SCH_SHEET::Mirror_Y( int aYaxis_position ) +void SCH_SHEET::MirrorY( int aYaxis_position ) { m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); @@ -884,7 +884,7 @@ void SCH_SHEET::Mirror_Y( int aYaxis_position ) BOOST_FOREACH( SCH_SHEET_PIN& label, m_pins ) { - label.Mirror_Y( aYaxis_position ); + label.MirrorY( aYaxis_position ); } } @@ -1048,17 +1048,17 @@ wxString SCH_SHEET::GetSelectMenuText() const } -bool SCH_SHEET::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_SHEET::HitTest( const wxPoint& aPosition, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); rect.Inflate( aAccuracy ); - return rect.Contains( aPoint ); + return rect.Contains( aPosition ); } -bool SCH_SHEET::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_SHEET::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { EDA_RECT rect = aRect; @@ -1102,7 +1102,7 @@ void SCH_SHEET::GetNetListItem( vector& aNetListItems, } -void SCH_SHEET::doPlot( PLOTTER* aPlotter ) +void SCH_SHEET::Plot( PLOTTER* aPlotter ) { EDA_Colors txtcolor = UNSPECIFIED_COLOR; wxSize size; diff --git a/eeschema/sch_sheet.h b/eeschema/sch_sheet.h index 7159641347..425a856159 100644 --- a/eeschema/sch_sheet.h +++ b/eeschema/sch_sheet.h @@ -80,8 +80,6 @@ private: virtual EDA_ITEM* doClone() const; - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - public: SCH_SHEET_PIN( SCH_SHEET* parent, const wxPoint& pos = wxPoint( 0, 0 ), @@ -178,24 +176,20 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); /** * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) @@ -219,15 +213,16 @@ public: virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierar_pin_xpm; } -private: - virtual void doSetPosition( const wxPoint& aPosition ) - { - ConstrainOnEdge( aPosition ); - } + virtual void SetPosition( const wxPoint& aPosition ) { ConstrainOnEdge( aPosition ); } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; }; @@ -551,10 +546,7 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_pos += aMoveVector; @@ -565,13 +557,14 @@ public: } } - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); + + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); + + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) @@ -622,8 +615,10 @@ public: virtual SEARCH_RESULT Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ); + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_subsheet_xpm; } virtual void GetNetListItem( vector& aNetListItems, @@ -631,6 +626,22 @@ public: SCH_ITEM& operator=( const SCH_ITEM& aSheet ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif @@ -647,12 +658,7 @@ protected: void renumberPins(); private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_pos = aPosition; } }; diff --git a/eeschema/sch_sheet_pin.cpp b/eeschema/sch_sheet_pin.cpp index 470516b6dc..7a54ce5de4 100644 --- a/eeschema/sch_sheet_pin.cpp +++ b/eeschema/sch_sheet_pin.cpp @@ -378,7 +378,7 @@ bool SCH_SHEET_PIN::Matches( wxFindReplaceData& aSearchData, } -void SCH_SHEET_PIN::Mirror_X( int aXaxis_position ) +void SCH_SHEET_PIN::MirrorX( int aXaxis_position ) { int p = m_Pos.y - aXaxis_position; @@ -397,7 +397,7 @@ void SCH_SHEET_PIN::Mirror_X( int aXaxis_position ) } -void SCH_SHEET_PIN::Mirror_Y( int aYaxis_position ) +void SCH_SHEET_PIN::MirrorY( int aYaxis_position ) { int p = m_Pos.x - aYaxis_position; @@ -416,9 +416,9 @@ void SCH_SHEET_PIN::Mirror_Y( int aYaxis_position ) } -void SCH_SHEET_PIN::Rotate( wxPoint rotationPoint ) +void SCH_SHEET_PIN::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); switch( m_edge ) { @@ -484,7 +484,7 @@ wxString SCH_SHEET_PIN::GetSelectMenuText() const } -bool SCH_SHEET_PIN::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_SHEET_PIN::HitTest( const wxPoint& aPoint, int aAccuracy ) const { EDA_RECT rect = GetBoundingBox(); diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index 9a886d74fa..b3c487ffe0 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -182,7 +182,7 @@ bool SCH_TEXT::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint } -void SCH_TEXT::Mirror_Y( int aYaxis_position ) +void SCH_TEXT::MirrorY( int aYaxis_position ) { // Text is NOT really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text @@ -223,7 +223,7 @@ void SCH_TEXT::Mirror_Y( int aYaxis_position ) } -void SCH_TEXT::Mirror_X( int aXaxis_position ) +void SCH_TEXT::MirrorX( int aXaxis_position ) { // Text is NOT really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text @@ -264,11 +264,11 @@ void SCH_TEXT::Mirror_X( int aXaxis_position ) } -void SCH_TEXT::Rotate( wxPoint rotationPoint ) +void SCH_TEXT::Rotate( wxPoint aPosition ) { int dy; - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 1) % 4 ); switch( GetOrientation() ) @@ -671,19 +671,19 @@ void SCH_TEXT::GetNetListItem( vector& aNetListItems, } -bool SCH_TEXT::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_TEXT::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } -bool SCH_TEXT::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const +bool SCH_TEXT::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const { return TextHitTest( aRect, aContained, aAccuracy ); } -void SCH_TEXT::doPlot( PLOTTER* aPlotter ) +void SCH_TEXT::Plot( PLOTTER* aPlotter ) { static std::vector Poly; @@ -776,7 +776,7 @@ void SCH_LABEL::SetOrientation( int aOrientation ) } -void SCH_LABEL::Mirror_X( int aXaxis_position ) +void SCH_LABEL::MirrorX( int aXaxis_position ) { // Text is NOT really mirrored; it is moved to a suitable position // which is the closest position for a true mirrored text @@ -791,9 +791,9 @@ void SCH_LABEL::Mirror_X( int aXaxis_position ) } -void SCH_LABEL::Rotate( wxPoint rotationPoint ) +void SCH_LABEL::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 1) % 4 ); } @@ -944,9 +944,9 @@ wxString SCH_LABEL::GetSelectMenuText() const } -bool SCH_LABEL::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_LABEL::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } @@ -1055,7 +1055,7 @@ bool SCH_GLOBALLABEL::Load( LINE_READER& aLine, wxString& aErrorMsg ) } -void SCH_GLOBALLABEL::Mirror_Y( int aYaxis_position ) +void SCH_GLOBALLABEL::MirrorY( int aYaxis_position ) { /* The global label is NOT really mirrored. * for an horizontal label, the schematic orientation is changed. @@ -1079,7 +1079,7 @@ void SCH_GLOBALLABEL::Mirror_Y( int aYaxis_position ) } -void SCH_GLOBALLABEL::Mirror_X( int aXaxis_position ) +void SCH_GLOBALLABEL::MirrorX( int aXaxis_position ) { switch( GetOrientation() ) { @@ -1098,9 +1098,9 @@ void SCH_GLOBALLABEL::Mirror_X( int aXaxis_position ) } -void SCH_GLOBALLABEL::Rotate( wxPoint rotationPoint ) +void SCH_GLOBALLABEL::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 3) % 4 ); } @@ -1373,9 +1373,9 @@ wxString SCH_GLOBALLABEL::GetSelectMenuText() const } -bool SCH_GLOBALLABEL::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_GLOBALLABEL::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } @@ -1663,7 +1663,7 @@ wxPoint SCH_HIERLABEL::GetSchematicTextOffset() const } -void SCH_HIERLABEL::Mirror_Y( int aYaxis_position ) +void SCH_HIERLABEL::MirrorY( int aYaxis_position ) { /* The hierarchical label is NOT really mirrored for an horizontal label, the schematic * orientation is changed. For a vertical label, the schematic orientation is not changed @@ -1687,7 +1687,7 @@ void SCH_HIERLABEL::Mirror_Y( int aYaxis_position ) } -void SCH_HIERLABEL::Mirror_X( int aXaxis_position ) +void SCH_HIERLABEL::MirrorX( int aXaxis_position ) { switch( GetOrientation() ) { @@ -1706,9 +1706,9 @@ void SCH_HIERLABEL::Mirror_X( int aXaxis_position ) } -void SCH_HIERLABEL::Rotate( wxPoint rotationPoint ) +void SCH_HIERLABEL::Rotate( wxPoint aPosition ) { - RotatePoint( &m_Pos, rotationPoint, 900 ); + RotatePoint( &m_Pos, aPosition, 900 ); SetOrientation( (GetOrientation() + 3) % 4 ); } @@ -1723,7 +1723,7 @@ wxString SCH_HIERLABEL::GetSelectMenuText() const } -bool SCH_HIERLABEL::doHitTest( const wxPoint& aPoint, int aAccuracy ) const +bool SCH_HIERLABEL::HitTest( const wxPoint& aPosition, int aAccuracy ) const { - return TextHitTest( aPoint, aAccuracy ); + return TextHitTest( aPosition, aAccuracy ); } diff --git a/eeschema/sch_text.h b/eeschema/sch_text.h index 7bce16f1e7..260d9634e6 100644 --- a/eeschema/sch_text.h +++ b/eeschema/sch_text.h @@ -187,25 +187,20 @@ public: // Geometric transforms (used in block operations): - /** virtual function Move - * move item to a new position. - * @param aMoveVector = the displacement vector - */ + /** @copydoc SCH_ITEM::Move() */ virtual void Move( const wxPoint& aMoveVector ) { m_Pos += aMoveVector; } - /** - * Function Mirror_Y - * mirrors the item relative to \a aYaxisPosition. - * @param aYaxis_position The y axis coordinate to mirror around. - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * @copydoc EDA_ITEM::Matches(wxFindReplaceData&,void*,wxPoint*) @@ -237,24 +232,37 @@ public: virtual bool CanIncrementLabel() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_text_xpm; } virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ); + /** @copydoc SCH_ITEM::GetPosition() */ + virtual wxPoint GetPosition() const { return m_Pos; } + + /** @copydoc SCH_ITEM::SetPosition() */ + virtual void SetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } + + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + + /** @copydoc SCH_ITEM::HitTest(EDA_RECT&,bool=false,int=0) */ + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, + int aAccuracy = 0 ) const; + + /** @copydoc SCH_ITEM::Plot() */ + virtual void Plot( PLOTTER* aPlotter ); + #if defined(DEBUG) void Show( int nestLevel, std::ostream& os ) const; // override #endif private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const; virtual EDA_ITEM* doClone() const; - virtual void doPlot( PLOTTER* aPlotter ); - virtual wxPoint doGetPosition() const { return m_Pos; } - virtual void doSetPosition( const wxPoint& aPosition ) { m_Pos = aPosition; } }; @@ -303,9 +311,11 @@ public: */ virtual wxPoint GetSchematicTextOffset() const; - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); /** * Function GetBoundingBox @@ -337,8 +347,10 @@ public: virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_line_label_xpm; } /** @@ -346,9 +358,13 @@ public: */ virtual bool IsReplaceable() const { return true; } + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + virtual EDA_ITEM* doClone() const; }; @@ -434,25 +450,30 @@ public: */ virtual void CreateGraphicShape( std::vector & aPoints, const wxPoint& aPos ); - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_glabel_xpm; } + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + virtual EDA_ITEM* doClone() const; }; @@ -540,25 +561,30 @@ public: */ EDA_RECT GetBoundingBox() const; - /** virtual function Mirror_Y - * mirror item relative to an Y axis - * @param aYaxis_position = the y axis position - */ - virtual void Mirror_Y( int aYaxis_position ); + /** @copydoc SCH_ITEM::MirrorY() */ + virtual void MirrorY( int aYaxis_position ); - virtual void Mirror_X( int aXaxis_position ); + /** @copydoc SCH_ITEM::MirrorX() */ + virtual void MirrorX( int aXaxis_position ); - virtual void Rotate( wxPoint rotationPoint ); + /** @copydoc SCH_ITEM::Rotate() */ + virtual void Rotate( wxPoint aPosition ); virtual bool IsConnectable() const { return true; } + /** @copydoc EDA_ITEM::GetSelectMenuText() */ virtual wxString GetSelectMenuText() const; + /** @copydoc EDA_ITEM::GetMenuImage() */ virtual BITMAP_DEF GetMenuImage() const { return add_hierarchical_label_xpm; } + /** @copydoc SCH_ITEM::HitTest(wxPoint&,int) */ + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; + private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const; + /** @copydoc SCH_ITEM::doIsConnected() */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return m_Pos == aPosition; } + virtual EDA_ITEM* doClone() const; }; diff --git a/eeschema/schematic_undo_redo.cpp b/eeschema/schematic_undo_redo.cpp index 28936e3376..89c2c59e40 100644 --- a/eeschema/schematic_undo_redo.cpp +++ b/eeschema/schematic_undo_redo.cpp @@ -304,11 +304,11 @@ void SCH_EDIT_FRAME::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRed break; case UR_MIRRORED_Y: - item->Mirror_Y( aList->m_TransformPoint.x ); + item->MirrorY( aList->m_TransformPoint.x ); break; case UR_MIRRORED_X: - item->Mirror_X( aList->m_TransformPoint.y ); + item->MirrorX( aList->m_TransformPoint.y ); break; case UR_ROTATED: diff --git a/gerbview/CMakeLists.txt b/gerbview/CMakeLists.txt index ad39be8b99..f44c34125d 100644 --- a/gerbview/CMakeLists.txt +++ b/gerbview/CMakeLists.txt @@ -68,6 +68,7 @@ set(GERBVIEW_SRCS set(GERBVIEW_EXTRA_SRCS ../pcbnew/layer_widget.cpp ../pcbnew/printout_controler.cpp + ../pcbnew/class_drc_item.cpp ) ### @@ -114,7 +115,7 @@ endif(APPLE) ### # Link executable target gerbview with correct libraries ### -target_link_libraries(gerbview common pcbcommon 3d-viewer polygon bitmaps kbool +target_link_libraries(gerbview pcbcommon common 3d-viewer polygon bitmaps kbool ${OPENGL_LIBRARIES} ${wxWidgets_LIBRARIES} ${GDI_PLUS_LIBRARIES}) diff --git a/include/base_struct.h b/include/base_struct.h index 368da50827..993f3b8e6a 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -490,23 +490,29 @@ public: /** * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false + * tests if \a aPosition is contained within or on the bounding area of an item. + * + * @note This function cannot be const because some of the derive objects perform + * intermediate calculations which change object members. Make sure derived + * objects do not declare this as const. + * + * @param aPosition A reference to a wxPoint object containing the coordinates to test. + * @return True if \a aPosition is within or on the item bounding area. */ - virtual bool HitTest( const wxPoint& refPos ) + virtual bool HitTest( const wxPoint& aPosition ) { return false; // derived classes should override this function } /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect this object. - * For now, an ending point must be inside this rect. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false + * Function HitTest + * tests if the \a aRect intersects this object. + * For now, an ending point must be inside \a aRect. + * + * @param aRect A reference to an EDA_RECT object containg the area to test. + * @return True if \a aRect intersects the object, otherwise false. */ - virtual bool HitTest( EDA_RECT& refArea ) + virtual bool HitTest( const EDA_RECT& aRect ) const { return false; // derived classes should override this function } diff --git a/include/class_drc_item.h b/include/class_drc_item.h index 78a7a29c4b..978178d185 100644 --- a/include/class_drc_item.h +++ b/include/class_drc_item.h @@ -31,8 +31,8 @@ /** * Class DRC_ITEM * is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item. - * It is generated when two objects are too close (DRC) - * or two connected objects (pins) have incompatibleelectrical type (ERC). + * It is generated when two objects are too close (DRC) + * or two connected objects (pins) have incompatible electrical types (ERC). * There are holders for information on two items. The * information held is the board coordinate and the MenuText for each item. * Also held is the type of error by number and the location of the MARKER. @@ -151,26 +151,26 @@ public: { // omit the coordinate, a NETCLASS has no location ret.Printf( _( "ErrType(%d): %s
  • %s
" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( m_MainText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( m_MainText ) ); } else if( m_hasSecondItem ) { // an html fragment for the entire message in the listbox. feel free // to add color if you want: ret.Printf( _( "ErrType(%d): %s
  • %s: %s
  • %s: %s
" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition )), GetChars( m_MainText ), - GetChars( ShowCoord( m_AuxiliaryPosition )), GetChars( m_AuxiliaryText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition )), GetChars( m_MainText ), + GetChars( ShowCoord( m_AuxiliaryPosition )), GetChars( m_AuxiliaryText ) ); } else { ret.Printf( _( "ErrType(%d): %s
  • %s: %s
" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); } return ret; @@ -190,17 +190,17 @@ public: if( m_hasSecondItem ) { ret.Printf( wxT( "ErrType(%d): %s\n %s: %s\n %s: %s\n" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ), - GetChars( ShowCoord( m_AuxiliaryPosition ) ), GetChars( m_AuxiliaryText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ), + GetChars( ShowCoord( m_AuxiliaryPosition ) ), GetChars( m_AuxiliaryText ) ); } else { ret.Printf( wxT( "ErrType(%d): %s\n %s: %s\n" ), - m_ErrorCode, - GetChars( GetErrorText() ), - GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); + m_ErrorCode, + GetChars( GetErrorText() ), + GetChars( ShowCoord( m_MainPosition ) ), GetChars( m_MainText ) ); } return ret; @@ -219,8 +219,8 @@ public: /** * Function GetErrorText * returns the string form of a drc error code. - */ - wxString GetErrorText() const; + */ + wxString GetErrorText() const; const wxString& GetTextA() const { diff --git a/include/sch_item_struct.h b/include/sch_item_struct.h index e412f0c39a..c016749c4d 100644 --- a/include/sch_item_struct.h +++ b/include/sch_item_struct.h @@ -83,13 +83,13 @@ enum DANGLING_END_T { /** - * Class DANLIGN_END_ITEM + * Class DANGLING_END_ITEM * is a helper class used to store the state of schematic items that can be connected to * other schematic items. */ class DANGLING_END_ITEM { - /// A pointer to the connectable ojbect. + /// A pointer to the connectable object. const void* m_item; /// The position of the connection point. @@ -186,15 +186,26 @@ public: virtual void Move( const wxPoint& aMoveVector ) = 0; /** - * Function Mirror_Y - * mirrors item relative to an Y axis about \a aYaxis_position. + * Function MirrorY + * mirrors item relative to the Y axis about \a aYaxis_position. * @param aYaxis_position The Y axis position to mirror around. */ - virtual void Mirror_Y( int aYaxis_position ) = 0; + virtual void MirrorY( int aYaxis_position ) = 0; - virtual void Mirror_X( int aXaxis_position ) = 0; + /** + * Function MirrorX + * mirrors item relative to the X axis about \a aXaxis_position. + * @param aXaxis_position The X axis position to mirror around. + */ + virtual void MirrorX( int aXaxis_position ) = 0; - virtual void Rotate( wxPoint rotationPoint ) = 0; + /** + * Function Rotate + * rotates the item around \a aPosition 90 degrees in the clockwise direction. + * @param aPosition A reference to a wxPoint object containing the coordinates to + * rotate around. + */ + virtual void Rotate( wxPoint aPosition ) = 0; /** * Function Save @@ -285,7 +296,7 @@ public: * Function IsConnected * tests the item to see if it is connected to \a aPoint. * - * @param aPoint - Position to test for connection. + * @param aPoint A reference to a wxPoint object containing the coordinates to test. * @return True if connection to \a aPoint exists. */ bool IsConnected( const wxPoint& aPoint ) const; @@ -294,34 +305,37 @@ public: /** * Function HitTest - * tests if \a aPoint is contained within or on the bounding box of an item. + * tests if \a aPosition is contained within or on the bounding box of an item. * - * @param aPoint - Point to test. - * @param aAccuracy - Increase the item bounding box by this amount. - * @return True if \a aPoint is within the item bounding box. + * @param aPosition A reference to a wxPoint object containing the coordinates to test. + * @param aAccuracy Increase the item bounding box by this amount. + * @return True if \a aPosition is within the item bounding box. */ - bool HitTest( const wxPoint& aPoint, int aAccuracy = 0 ) const - { - return doHitTest( aPoint, aAccuracy ); - } + virtual bool HitTest( const wxPoint& aPosition, int aAccuracy ) const { return false; } /** * Function HitTest * tests if \a aRect intersects or is contained within the bounding box of an item. * - * @param aRect - Rectangle to test. - * @param aContained - Set to true to test for containment instead of an intersection. - * @param aAccuracy - Increase aRect by this amount. + * @param aRect A reference to a EDA_RECT object containing the rectangle to test. + * @param aContained Set to true to test for containment instead of an intersection. + * @param aAccuracy Increase \a aRect by this amount. * @return True if \a aRect contains or intersects the item bounding box. */ - bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const + virtual bool HitTest( const EDA_RECT& aRect, bool aContained = false, int aAccuracy = 0 ) const { - return doHitTest( aRect, aContained, aAccuracy ); + return false; } virtual bool CanIncrementLabel() const { return false; } - void Plot( PLOTTER* aPlotter ) { doPlot( aPlotter ); } + /** + * Function Plot + * plots the schematic item to \a aPlotter. + * + * @param aPlotter A pointer to a #PLOTTER object. + */ + virtual void Plot( PLOTTER* aPlotter ); /** * Function GetNetListItem @@ -331,15 +345,16 @@ public: * Not all schematic objects have net list items associated with them. This * method only needs to be overridden for those schematic objects that have * net list objects associated with them. + *

*/ virtual void GetNetListItem( vector& aNetListItems, SCH_SHEET_PATH* aSheetPath ) { } /** * Function GetPosition - * @return the schematic item position. + * @return A wxPoint object containing the schematic item position. */ - wxPoint GetPosition() const { return doGetPosition(); } + virtual wxPoint GetPosition() const = 0; /** * Function SetPosition @@ -347,34 +362,26 @@ public: * * @param aPosition A reference to a wxPoint object containing the new position. */ - void SetPosition( const wxPoint& aPosition ) { doSetPosition( aPosition ); } + virtual void SetPosition( const wxPoint& aPosition ) = 0; virtual bool operator <( const SCH_ITEM& aItem ) const; - /** - * @note - The DoXXX() functions below are used to enforce the interface while retaining - * the ability of change the implementation behavior of derived classes. See - * Herb Sutters explanation of virtuality as to why you might want to do this at: - * http://www.gotw.ca/publications/mill18.htm. - */ private: - virtual bool doHitTest( const wxPoint& aPoint, int aAccuracy ) const - { - return false; - } - - virtual bool doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const - { - return false; - } - + /** + * Function doIsConnected + * provides the object specific test to see if it is connected to \a aPosition. + * + * @note Override this function if the derived object can be connect to another + * object such as a wire, bus, or junction. Do not override this function + * for objects that cannot have connections. The default will always return + * false. This functions is call through the public function IsConnected() + * which performs tests common to all schematic items before calling the + * item specific connection testing. + * + * @param aPosition A reference to a wxPoint object containing the test position. + * @return True if connection to \a aPosition exists. + */ virtual bool doIsConnected( const wxPoint& aPosition ) const { return false; } - - virtual void doPlot( PLOTTER* aPlotter ); - - virtual wxPoint doGetPosition() const = 0; - - virtual void doSetPosition( const wxPoint& aPosition ) = 0; }; diff --git a/pcbnew/class_dimension.cpp b/pcbnew/class_dimension.cpp index ecd342cb11..6af02f73e7 100644 --- a/pcbnew/class_dimension.cpp +++ b/pcbnew/class_dimension.cpp @@ -445,12 +445,12 @@ void DIMENSION::DisplayInfo( EDA_DRAW_FRAME* frame ) } -bool DIMENSION::HitTest( const wxPoint& aPoint ) +bool DIMENSION::HitTest( const wxPoint& aPosition ) { int ux0, uy0; int dx, dy, spot_cX, spot_cY; - if( m_Text.TextHitTest( aPoint ) ) + if( m_Text.TextHitTest( aPosition ) ) return true; // Locate SEGMENTS? @@ -461,8 +461,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_crossBarFx - ux0; dy = m_crossBarFy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -473,8 +473,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_featureLineGFx - ux0; dy = m_featureLineGFy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -485,8 +485,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_featureLineDFx - ux0; dy = m_featureLineDFy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -497,8 +497,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowD1Fx - ux0; dy = m_arrowD1Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -509,8 +509,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowD2Fx - ux0; dy = m_arrowD2Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -521,8 +521,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowG1Fx - ux0; dy = m_arrowG1Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -533,8 +533,8 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) dx = m_arrowG2Fx - ux0; dy = m_arrowG2Fy - uy0; - spot_cX = aPoint.x - ux0; - spot_cY = aPoint.y - uy0; + spot_cX = aPosition.x - ux0; + spot_cY = aPosition.y - uy0; if( DistanceTest( m_Width / 2, dx, dy, spot_cX, spot_cY ) ) return true; @@ -543,9 +543,9 @@ bool DIMENSION::HitTest( const wxPoint& aPoint ) } -bool DIMENSION::HitTest( EDA_RECT& refArea ) +bool DIMENSION::HitTest( const EDA_RECT& aRect ) const { - if( refArea.Contains( m_Pos ) ) + if( aRect.Contains( m_Pos ) ) return true; return false; diff --git a/pcbnew/class_dimension.h b/pcbnew/class_dimension.h index c5c7cb39bc..2e7c8aed7c 100644 --- a/pcbnew/class_dimension.h +++ b/pcbnew/class_dimension.h @@ -151,22 +151,11 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param ref_pos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& ref_pos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect this object. - * For now, the anchor must be inside this rect. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetClass diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 5dc0e7447b..c3f4c2b512 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -439,10 +439,10 @@ EDA_RECT DRAWSEGMENT::GetBoundingBox() const } -bool DRAWSEGMENT::HitTest( const wxPoint& aRefPos ) +bool DRAWSEGMENT::HitTest( const wxPoint& aPosition ) { /* Calculate coordinates to test relative to segment origin. */ - wxPoint relPos = aRefPos - m_Start; + wxPoint relPos = aPosition - m_Start; switch( m_Shape ) { @@ -476,13 +476,13 @@ bool DRAWSEGMENT::HitTest( const wxPoint& aRefPos ) case S_CURVE: for( unsigned int i= 1; i < m_BezierPoints.size(); i++) { - if( TestSegmentHit( aRefPos,m_BezierPoints[i-1], m_BezierPoints[i-1], m_Width / 2 ) ) + if( TestSegmentHit( aPosition, m_BezierPoints[i-1], m_BezierPoints[i-1], m_Width / 2 ) ) return true; } break; case S_SEGMENT: - if( TestSegmentHit( aRefPos, m_Start, m_End, m_Width / 2 ) ) + if( TestSegmentHit( aPosition, m_Start, m_End, m_Width / 2 ) ) return true; break; @@ -494,15 +494,16 @@ bool DRAWSEGMENT::HitTest( const wxPoint& aRefPos ) } -bool DRAWSEGMENT::HitTest( EDA_RECT& refArea ) +bool DRAWSEGMENT::HitTest( const EDA_RECT& aRect ) const { switch( m_Shape ) { case S_CIRCLE: { int radius = GetRadius(); + // Text if area intersects the circle: - EDA_RECT area = refArea; + EDA_RECT area = aRect; area.Inflate( radius ); if( area.Contains( m_Start ) ) @@ -512,9 +513,10 @@ bool DRAWSEGMENT::HitTest( EDA_RECT& refArea ) case S_ARC: case S_SEGMENT: - if( refArea.Contains( GetStart() ) ) + if( aRect.Contains( GetStart() ) ) return true; - if( refArea.Contains( GetEnd() ) ) + + if( aRect.Contains( GetEnd() ) ) return true; break; } diff --git a/pcbnew/class_drawsegment.h b/pcbnew/class_drawsegment.h index 0eb613be6f..a554a4e1e3 100644 --- a/pcbnew/class_drawsegment.h +++ b/pcbnew/class_drawsegment.h @@ -186,22 +186,11 @@ public: */ virtual EDA_RECT GetBoundingBox() const; - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlayed) - * tests if the given EDA_RECT intersect this object. - * For now, an ending point must be inside this rect. - * @param refArea the given EDA_RECT to test - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetClass diff --git a/pcbnew/class_marker_pcb.h b/pcbnew/class_marker_pcb.h index 364c712ce1..3e9fcc5237 100644 --- a/pcbnew/class_marker_pcb.h +++ b/pcbnew/class_marker_pcb.h @@ -80,14 +80,10 @@ public: const wxPoint& GetPosition() const { return m_Pos; } void SetPosition( const wxPoint& aPos ) { m_Pos = aPos; } - /** - * Function HitTest - * @return true if the point aPosRef is within item area - * @param aPosRef = a wxPoint to test - */ - bool HitTest( const wxPoint& aPosRef ) + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ) { - return HitTestMarker( aPosRef ); + return HitTestMarker( aPosition ); } /** diff --git a/pcbnew/class_mire.cpp b/pcbnew/class_mire.cpp index 3a2765c7eb..31693a5d35 100644 --- a/pcbnew/class_mire.cpp +++ b/pcbnew/class_mire.cpp @@ -162,24 +162,18 @@ void PCB_TARGET::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int mode_color, const wx } -/** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ -bool PCB_TARGET::HitTest( const wxPoint& refPos ) +bool PCB_TARGET::HitTest( const wxPoint& aPosition ) { - int dX = refPos.x - m_Pos.x; - int dY = refPos.y - m_Pos.y; + int dX = aPosition.x - m_Pos.x; + int dY = aPosition.y - m_Pos.y; int radius = m_Size / 2; return abs( dX ) <= radius && abs( dY ) <= radius; } -bool PCB_TARGET::HitTest( EDA_RECT& refArea ) +bool PCB_TARGET::HitTest( const EDA_RECT& aRect ) const { - if( refArea.Contains( m_Pos ) ) + if( aRect.Contains( m_Pos ) ) return true; return false; diff --git a/pcbnew/class_mire.h b/pcbnew/class_mire.h index 4a3189ca7a..0717b73ef7 100644 --- a/pcbnew/class_mire.h +++ b/pcbnew/class_mire.h @@ -118,22 +118,11 @@ public: void Draw( EDA_DRAW_PANEL* panel, wxDC* DC, int aDrawMode, const wxPoint& offset = ZeroOffset ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect this object. - * For now, the anchor must be inside this rect. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; EDA_RECT GetBoundingBox() const; diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index 7a44399225..e8363f1e61 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -508,27 +508,27 @@ void MODULE::DisplayInfo( EDA_DRAW_FRAME* frame ) } -bool MODULE::HitTest( const wxPoint& aRefPos ) +bool MODULE::HitTest( const wxPoint& aPosition ) { - if( m_BoundaryBox.Contains( aRefPos ) ) + if( m_BoundaryBox.Contains( aPosition ) ) return true; return false; } -bool MODULE::HitTest( EDA_RECT& aRefArea ) +bool MODULE::HitTest( const EDA_RECT& aRect ) const { - if( m_BoundaryBox.GetX() < aRefArea.GetX() ) + if( m_BoundaryBox.GetX() < aRect.GetX() ) return false; - if( m_BoundaryBox.GetY() < aRefArea.GetY() ) + if( m_BoundaryBox.GetY() < aRect.GetY() ) return false; - if( m_BoundaryBox.GetRight() > aRefArea.GetRight() ) + if( m_BoundaryBox.GetRight() > aRect.GetRight() ) return false; - if( m_BoundaryBox.GetBottom() > aRefArea.GetBottom() ) + if( m_BoundaryBox.GetBottom() > aRect.GetBottom() ) return false; return true; diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index c32d0fe6e2..cc7f9dc355 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -321,21 +321,11 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos is a wxPoint to test. - * @return bool - true if a hit, else false. - */ - bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given EDA_RECT intersect the bounds of this object. - * @param aRefArea is the given EDA_RECT. - * @return bool - true if a hit, else false. - */ - bool HitTest( EDA_RECT& aRefArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetReference diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index 38a9e314e2..93abf1be18 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -100,7 +100,7 @@ int D_PAD::boundingRadius() const case PAD_RECT: radius = 1 + (int) ( sqrt( (double) m_Size.y * m_Size.y - + (double) m_Size.x * m_Size.x ) / 2 ); + + (double) m_Size.x * m_Size.x ) / 2 ); break; case PAD_TRAPEZOID: @@ -175,7 +175,7 @@ void D_PAD::AppendConfigs( PARAM_CFG_ARRAY* aResult ) // Returns the position of the pad. -const wxPoint D_PAD::ReturnShapePos() +const wxPoint D_PAD::ReturnShapePos() const { if( m_Offset.x == 0 && m_Offset.y == 0 ) return m_Pos; @@ -664,14 +664,14 @@ bool D_PAD::IsOnLayer( int aLayer ) const } -bool D_PAD::HitTest( const wxPoint& refPos ) +bool D_PAD::HitTest( const wxPoint& aPosition ) { int dx, dy; double dist; wxPoint shape_pos = ReturnShapePos(); - wxPoint delta = refPos - shape_pos; + wxPoint delta = aPosition - shape_pos; // first test: a test point must be inside a minimum sized bounding circle. int radius = GetBoundingRadius(); diff --git a/pcbnew/class_pad.h b/pcbnew/class_pad.h index 0cadcb2eed..a5ec232dbe 100644 --- a/pcbnew/class_pad.h +++ b/pcbnew/class_pad.h @@ -353,10 +353,11 @@ public: { m_boundingRadius = boundingRadius(); } + return m_boundingRadius; } - const wxPoint ReturnShapePos(); + const wxPoint ReturnShapePos() const; /** * Function GetSubRatsnest @@ -385,13 +386,8 @@ public: */ bool IsOnLayer( int aLayer ) const; - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); /** * Function GetClass diff --git a/pcbnew/class_pcb_text.h b/pcbnew/class_pcb_text.h index 10329dff8a..8084a7b2d9 100644 --- a/pcbnew/class_pcb_text.h +++ b/pcbnew/class_pcb_text.h @@ -108,26 +108,16 @@ public: */ void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ) + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ) { - return TextHitTest( refPos ); + return TextHitTest( aPosition ); } - /** - * Function HitTest (overloaded) - * tests if the given EDA_RECT intersect this object. - * @param refArea the given EDA_RECT to test - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ) + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) { - return TextHitTest( refArea ); + return TextHitTest( aRect ); } /** diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index 0bbb52f615..1950aebe9b 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -184,13 +184,7 @@ EDA_RECT TEXTE_MODULE::GetTextRect( void ) const } -/** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test - * @return true if a hit, else false - */ -bool TEXTE_MODULE::HitTest( const wxPoint& aRefPos ) +bool TEXTE_MODULE::HitTest( const wxPoint& aPosition ) { wxPoint rel_pos; EDA_RECT area = GetTextRect(); @@ -199,7 +193,7 @@ bool TEXTE_MODULE::HitTest( const wxPoint& aRefPos ) * to test if refPos is within area (which is relative to an horizontal * text) */ - rel_pos = aRefPos; + rel_pos = aPosition; RotatePoint( &rel_pos, m_Pos, -GetDrawRotation() ); if( area.Contains( rel_pos ) ) diff --git a/pcbnew/class_text_mod.h b/pcbnew/class_text_mod.h index 93d30c8a68..a4bf817363 100644 --- a/pcbnew/class_text_mod.h +++ b/pcbnew/class_text_mod.h @@ -167,13 +167,8 @@ public: void DisplayInfo( EDA_DRAW_FRAME* frame ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param aRefPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& aRefPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); /** * Function IsOnLayer diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 626ee88cec..090af5ce46 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -1179,7 +1179,7 @@ void TRACK::DisplayInfoBase( EDA_DRAW_FRAME* frame ) } -bool TRACK::HitTest( const wxPoint& refPos ) +bool TRACK::HitTest( const wxPoint& aPosition ) { int radius = m_Width >> 1; @@ -1188,8 +1188,8 @@ bool TRACK::HitTest( const wxPoint& refPos ) int dy = m_End.y - m_Start.y; // (spot_cX, spot_cY) is a vector from m_Start to ref_pos (an origin of m_Start) - int spot_cX = refPos.x - m_Start.x; - int spot_cY = refPos.y - m_Start.y; + int spot_cX = aPosition.x - m_Start.x; + int spot_cY = aPosition.y - m_Start.y; if( Type() == PCB_VIA_T ) { @@ -1205,12 +1205,12 @@ bool TRACK::HitTest( const wxPoint& refPos ) } -bool TRACK::HitTest( EDA_RECT& refArea ) +bool TRACK::HitTest( const EDA_RECT& aRect ) const { - if( refArea.Contains( m_Start ) ) + if( aRect.Contains( m_Start ) ) return true; - if( refArea.Contains( m_End ) ) + if( aRect.Contains( m_End ) ) return true; return false; diff --git a/pcbnew/class_track.h b/pcbnew/class_track.h index ecdc9bb08e..d3beeed79c 100644 --- a/pcbnew/class_track.h +++ b/pcbnew/class_track.h @@ -303,22 +303,11 @@ public: const KICAD_T scanTypes[] ); - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); - /** - * Function HitTest (overlaid) - * tests if the given wxRect intersect this object. - * For now, an ending point must be inside this rect. - * @param refArea an EDA_RECT to test - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& aRect ) const; /** * Function GetVia diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 7ce8eeba1f..6adb5b75d8 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -2,7 +2,6 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2006 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2011 Wayne Stambaugh * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or @@ -468,12 +467,12 @@ int ZONE_CONTAINER::GetThermalReliefCopperBridge( D_PAD* aPad ) const } -bool ZONE_CONTAINER::HitTest( const wxPoint& refPos ) +bool ZONE_CONTAINER::HitTest( const wxPoint& aPosition ) { - if( HitTestForCorner( refPos ) ) + if( HitTestForCorner( aPosition ) ) return true; - if( HitTestForEdge( refPos ) ) + if( HitTestForEdge( aPosition ) ) return true; return false; @@ -584,22 +583,22 @@ bool ZONE_CONTAINER::HitTestForEdge( const wxPoint& refPos ) } -bool ZONE_CONTAINER::HitTest( EDA_RECT& refArea ) +bool ZONE_CONTAINER::HitTest( const EDA_RECT& aRect ) const { bool is_out_of_box = false; CRect rect = m_Poly->GetCornerBounds(); - if( rect.left < refArea.GetX() ) + if( rect.left < aRect.GetX() ) is_out_of_box = true; - if( rect.top < refArea.GetY() ) + if( rect.top < aRect.GetY() ) is_out_of_box = true; - if( rect.right > refArea.GetRight() ) + if( rect.right > aRect.GetRight() ) is_out_of_box = true; - if( rect.bottom > refArea.GetBottom() ) + if( rect.bottom > aRect.GetBottom() ) is_out_of_box = true; return is_out_of_box ? false : true; @@ -633,7 +632,7 @@ int ZONE_CONTAINER::GetClearance( BOARD_CONNECTED_ITEM* aItem ) const } -bool ZONE_CONTAINER::HitTestFilledArea( const wxPoint& aRefPos ) +bool ZONE_CONTAINER::HitTestFilledArea( const wxPoint& aRefPos ) const { unsigned indexstart = 0, indexend; bool inside = false; diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index 990ced3ee0..d3cb379ab9 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -297,14 +297,8 @@ public: int GetMinThickness() const { return m_ZoneMinThickness; } void SetMinThickness( int aMinThickness ) { m_ZoneMinThickness = aMinThickness; } - /** - * Function HitTest - * tests if the given wxPoint is within the bounds of this object. - * For zones, this means near an outline segment - * @param refPos A wxPoint to test - * @return bool - true if a hit, else false - */ - bool HitTest( const wxPoint& refPos ); + /** @copydoc EDA_ITEM::HitTest(wxPoint&) */ + bool HitTest( const wxPoint& aPosition ); /** * Function HitTestFilledArea @@ -312,7 +306,7 @@ public: * @param aRefPos A wxPoint to test * @return bool - true if a hit, else false */ - bool HitTestFilledArea( const wxPoint& aRefPos ); + bool HitTestFilledArea( const wxPoint& aRefPos ) const; /** * Function BuildFilledPolysListData @@ -377,13 +371,8 @@ public: */ bool HitTestForEdge( const wxPoint& refPos ); - /** - * Function HitTest (overloaded) - * tests if the given EDA_RECT contains the bounds of this object. - * @param refArea : the given EDA_RECT - * @return bool - true if a hit, else false - */ - bool HitTest( EDA_RECT& refArea ); + /** @copydoc EDA_ITEM::HitTest(EDA_RECT&) */ + bool HitTest( const EDA_RECT& refArea ) const; /** * Function Fill_Zone