From c32f56ffaac4f1e6975020706fc622caa155519b Mon Sep 17 00:00:00 2001 From: Lorenzo Marcantonio Date: Sun, 31 Mar 2013 22:40:22 +0200 Subject: [PATCH] Removed the long time dead SCH_POLYLINE class (schematic level polyline) --- eeschema/CMakeLists.txt | 1 - eeschema/bus-wire-junction.cpp | 27 --- eeschema/load_one_schematic_file.cpp | 5 - eeschema/operations_on_items_lists.cpp | 3 - eeschema/sch_collectors.cpp | 5 - eeschema/sch_polyline.cpp | 295 ------------------------- eeschema/sch_polyline.h | 144 ------------ eeschema/schematic_undo_redo.cpp | 1 - include/base_struct.h | 1 - include/class_colors_design_settings.h | 3 +- 10 files changed, 1 insertion(+), 484 deletions(-) delete mode 100644 eeschema/sch_polyline.cpp delete mode 100644 eeschema/sch_polyline.h diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt index 768d7c08bf..a4f03f0ce2 100644 --- a/eeschema/CMakeLists.txt +++ b/eeschema/CMakeLists.txt @@ -132,7 +132,6 @@ set(EESCHEMA_SRCS sch_line.cpp sch_marker.cpp sch_no_connect.cpp - sch_polyline.cpp sch_screen.cpp sch_sheet.cpp sch_sheet_path.cpp diff --git a/eeschema/bus-wire-junction.cpp b/eeschema/bus-wire-junction.cpp index 6cc039235e..1072491a17 100644 --- a/eeschema/bus-wire-junction.cpp +++ b/eeschema/bus-wire-junction.cpp @@ -41,7 +41,6 @@ #include #include #include -#include #include #include #include @@ -346,33 +345,7 @@ void SCH_EDIT_FRAME::DeleteCurrentSegment( wxDC* DC ) if( ( screen->GetCurItem() == NULL ) || !screen->GetCurItem()->IsNew() ) return; - /* Cancel trace in progress */ - if( screen->GetCurItem()->Type() == SCH_POLYLINE_T ) - { - SCH_POLYLINE* polyLine = (SCH_POLYLINE*) screen->GetCurItem(); - wxPoint endpos; - - endpos = screen->GetCrossHairPosition(); - - int idx = polyLine->GetCornerCount() - 1; - wxPoint pt = (*polyLine)[idx]; - - if( GetForceHVLines() ) - { - /* Coerce the line to vertical or horizontal one: */ - if( std::abs( endpos.x - pt.x ) < std::abs( endpos.y - pt.y ) ) - endpos.x = pt.x; - else - endpos.y = pt.y; - } - - polyLine->SetPoint( idx, endpos ); - polyLine->Draw( m_canvas, DC, wxPoint( 0, 0 ), g_XorMode ); - } - else - { DrawSegment( m_canvas, DC, wxDefaultPosition, false ); - } screen->Remove( screen->GetCurItem() ); m_canvas->SetMouseCaptureCallback( NULL ); diff --git a/eeschema/load_one_schematic_file.cpp b/eeschema/load_one_schematic_file.cpp index e621454278..05edd267b4 100644 --- a/eeschema/load_one_schematic_file.cpp +++ b/eeschema/load_one_schematic_file.cpp @@ -41,7 +41,6 @@ #include #include #include -#include #include #include #include @@ -182,10 +181,6 @@ again." ); item = new SCH_BUS_ENTRY(); break; - case 'P': // Its a polyline item. - item = new SCH_POLYLINE(); - break; - case 'C': // It is a connection item. item = new SCH_JUNCTION(); break; diff --git a/eeschema/operations_on_items_lists.cpp b/eeschema/operations_on_items_lists.cpp index c7cad1af69..943b514296 100644 --- a/eeschema/operations_on_items_lists.cpp +++ b/eeschema/operations_on_items_lists.cpp @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -25,7 +24,6 @@ void SetSchItemParent( SCH_ITEM* Struct, SCH_SCREEN* Screen ) { switch( Struct->Type() ) { - case SCH_POLYLINE_T: case SCH_JUNCTION_T: case SCH_TEXT_T: case SCH_LABEL_T: @@ -185,7 +183,6 @@ void DuplicateItemsInList( SCH_SCREEN* screen, PICKED_ITEMS_LIST& aItemsList, { switch( newitem->Type() ) { - case SCH_POLYLINE_T: case SCH_JUNCTION_T: case SCH_LINE_T: case SCH_BUS_ENTRY_T: diff --git a/eeschema/sch_collectors.cpp b/eeschema/sch_collectors.cpp index 2d4e0236f3..62bc97dbbf 100644 --- a/eeschema/sch_collectors.cpp +++ b/eeschema/sch_collectors.cpp @@ -41,7 +41,6 @@ const KICAD_T SCH_COLLECTOR::AllItems[] = { SCH_NO_CONNECT_T, SCH_BUS_ENTRY_T, SCH_LINE_T, - SCH_POLYLINE_T, SCH_BITMAP_T, SCH_TEXT_T, SCH_LABEL_T, @@ -62,7 +61,6 @@ const KICAD_T SCH_COLLECTOR::AllItemsButPins[] = { SCH_NO_CONNECT_T, SCH_BUS_ENTRY_T, SCH_LINE_T, - SCH_POLYLINE_T, SCH_BITMAP_T, SCH_TEXT_T, SCH_LABEL_T, @@ -111,7 +109,6 @@ const KICAD_T SCH_COLLECTOR::MovableItems[] = { SCH_NO_CONNECT_T, SCH_BUS_ENTRY_T, // SCH_LINE_T, - SCH_POLYLINE_T, SCH_BITMAP_T, SCH_TEXT_T, SCH_LABEL_T, @@ -129,7 +126,6 @@ const KICAD_T SCH_COLLECTOR::DraggableItems[] = { SCH_JUNCTION_T, SCH_BUS_ENTRY_T, SCH_LINE_T, - SCH_POLYLINE_T, SCH_LABEL_T, SCH_GLOBAL_LABEL_T, SCH_HIERARCHICAL_LABEL_T, @@ -158,7 +154,6 @@ const KICAD_T SCH_COLLECTOR::ParentItems[] = { SCH_NO_CONNECT_T, SCH_BUS_ENTRY_T, SCH_LINE_T, - SCH_POLYLINE_T, SCH_TEXT_T, SCH_LABEL_T, SCH_GLOBAL_LABEL_T, diff --git a/eeschema/sch_polyline.cpp b/eeschema/sch_polyline.cpp deleted file mode 100644 index dc38b29f48..0000000000 --- a/eeschema/sch_polyline.cpp +++ /dev/null @@ -1,295 +0,0 @@ -/* - * This program source code file is part of KiCad, a free EDA CAD application. - * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2004-2011 KiCad Developers, see change_log.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_polyline.cpp - */ - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - - -SCH_POLYLINE::SCH_POLYLINE( int layer ) : - SCH_ITEM( NULL, SCH_POLYLINE_T ) -{ - m_width = 0; - - switch( layer ) - { - default: - m_Layer = LAYER_NOTES; - break; - - case LAYER_WIRE: - case LAYER_NOTES: - case LAYER_BUS: - m_Layer = layer; - break; - } -} - - -SCH_POLYLINE::~SCH_POLYLINE() -{ -} - - -EDA_ITEM* SCH_POLYLINE::Clone() const -{ - return new SCH_POLYLINE( *this ); -} - - -bool SCH_POLYLINE::Save( FILE* aFile ) const -{ - bool success = true; - - const char* layer = "Notes"; - const char* width = "Line"; - - if( GetLayer() == LAYER_WIRE ) - layer = "Wire"; - - if( GetLayer() == LAYER_BUS ) - layer = "Bus"; - - if( fprintf( aFile, "Poly %s %s %d\n", width, layer, GetCornerCount() ) == EOF ) - { - return false; - } - - for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) - { - if( fprintf( aFile, "\t%-4d %-4d\n", m_points[ii ].x, m_points[ii].y ) == EOF ) - { - success = false; - break; - } - } - - return success; -} - - -bool SCH_POLYLINE::Load( LINE_READER& aLine, wxString& aErrorMsg ) -{ - char Name1[256]; - char Name2[256]; - wxPoint pt; - int ii; - char* line = (char*) aLine; - - while( (*line != ' ' ) && *line ) - line++; - - if( sscanf( line, "%s %s %d", Name1, Name2, &ii ) != 3 ) - { - aErrorMsg.Printf( wxT( "Eeschema file polyline struct error at line %d, aborted" ), - aLine.LineNumber() ); - aErrorMsg << wxT( "\n" ) << FROM_UTF8( (char*) aLine ); - return false; - } - - m_Layer = LAYER_NOTES; - - if( Name2[0] == 'W' ) - m_Layer = LAYER_WIRE; - - if( Name2[0] == 'B' ) - m_Layer = LAYER_BUS; - - for( unsigned jj = 0; jj < (unsigned)ii; jj++ ) - { - wxPoint point; - - if( !aLine.ReadLine() || sscanf( ((char*) aLine), "%d %d", &pt.x, &pt.y ) != 2 ) - { - aErrorMsg.Printf( wxT( "Eeschema file polyline struct error at line %d, aborted" ), - aLine.LineNumber() ); - aErrorMsg << wxT( "\n" ) << FROM_UTF8( (char*) aLine ); - return false; - } - - AddPoint( pt ); - } - - return true; -} - - -int SCH_POLYLINE::GetPenSize() const -{ - int pensize = ( m_width == 0 ) ? GetDefaultLineThickness() : m_width; - - return pensize; -} - - -void SCH_POLYLINE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - GR_DRAWMODE aDrawMode, EDA_COLOR_T aColor ) -{ - EDA_COLOR_T color; - int width = GetPenSize(); - - if( aColor >= 0 ) - color = aColor; - else - color = ReturnLayerColor( m_Layer ); - - GRSetDrawMode( aDC, aDrawMode ); - - if( m_Layer == LAYER_BUS ) - { - width *= 3; - } - - GRMoveTo( m_points[0].x, m_points[0].y ); - - if( m_Layer == LAYER_NOTES ) - { - for( unsigned i = 1; i < GetCornerCount(); i++ ) - GRDashedLineTo( aPanel->GetClipBox(), aDC, m_points[i].x + aOffset.x, - m_points[i].y + aOffset.y, width, color ); - } - else - { - for( unsigned i = 1; i < GetCornerCount(); i++ ) - GRLineTo( aPanel->GetClipBox(), aDC, m_points[i].x + aOffset.x, - m_points[i].y + aOffset.y, width, color ); - } -} - - -void SCH_POLYLINE::MirrorX( int aXaxis_position ) -{ - for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) - { - m_points[ii].y -= aXaxis_position; - NEGATE( m_points[ii].y ); - m_points[ii].y = aXaxis_position; - } -} - - -void SCH_POLYLINE::MirrorY( int aYaxis_position ) -{ - for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) - { - m_points[ii].x -= aYaxis_position; - NEGATE( m_points[ii].x ); - m_points[ii].x = aYaxis_position; - } -} - - -void SCH_POLYLINE::Rotate( wxPoint aPosition ) -{ - for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) - { - RotatePoint( &m_points[ii], aPosition, 900 ); - } -} - - -wxString SCH_POLYLINE::GetSelectMenuText() const -{ - wxString menuText, fmt; - - switch( m_Layer ) - { - case LAYER_NOTES: - fmt = _( "Graphic Polyline with %d Points" ); - break; - - case LAYER_WIRE: - fmt = _( "Polyline Wire with %d Points" ); - break; - - case LAYER_BUS: - fmt = _( "Polyline Bus with %d Points" ); - break; - - default: - fmt = _( "Polyline on Unkown Layer with %d Points" ); - } - - menuText.Printf( fmt, m_points.size() ); - - return menuText; -} - - -BITMAP_DEF SCH_POLYLINE::GetMenuImage() const -{ - if( m_Layer == LAYER_NOTES ) - return add_dashed_line_xpm; - else if( m_Layer == LAYER_WIRE ) - return add_line_xpm; - - return add_bus_xpm; -} - - -bool SCH_POLYLINE::HitTest( const wxPoint& aPosition, int aAccuracy ) const -{ - for( size_t i = 0; i < m_points.size() - 1; i++ ) - { - if( TestSegmentHit( aPosition, m_points[i], m_points[i + 1], aAccuracy ) ) - return true; - } - - return false; -} - - -bool SCH_POLYLINE::HitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy ) const -{ - EDA_RECT rect = aRect; - - rect.Inflate( aAccuracy ); - - if( aContained ) - return rect.Contains( GetBoundingBox() ); - - return rect.Intersects( GetBoundingBox() ); -} - - -void SCH_POLYLINE::SetPosition( const wxPoint& aPosition ) -{ - wxPoint offset = m_points[0] - aPosition; - - for( size_t i = 0; i < m_points.size(); i++ ) - m_points[i] = m_points[i] - offset; -} - diff --git a/eeschema/sch_polyline.h b/eeschema/sch_polyline.h deleted file mode 100644 index 84ac454d2f..0000000000 --- a/eeschema/sch_polyline.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * This program source code file is part of KiCad, a free EDA CAD application. - * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2004-2011 KiCad Developers, see change_log.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_polyline.h - * - */ - -#ifndef _SCH_POLYLINE_H_ -#define _SCH_POLYLINE_H_ - - -#include - - -class SCH_POLYLINE : public SCH_ITEM -{ - int m_width; // Thickness - std::vector m_points; // list of points (>= 2) - -public: - SCH_POLYLINE( int layer = LAYER_NOTES ); - - // Do not create a copy constructor. The one generated by the compiler is adequate. - - ~SCH_POLYLINE(); - - wxString GetClass() const - { - return wxT( "SCH_POLYLINE" ); - } - - void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffset, - GR_DRAWMODE aDrawMode, EDA_COLOR_T aColor = UNSPECIFIED_COLOR ); - - bool Save( FILE* aFile ) const; - - bool Load( LINE_READER& aLine, wxString& aErrorMsg ); - - /** - * Function AddPoint - * add a corner to m_points - */ - void AddPoint( const wxPoint& point ) - { - m_points.push_back( point ); - } - - - /** - * Function SetPoint - * sets the point at \a aIndex in the list to \a aPoint. - * - * @param aIndex The index in the point list. - * @param aPoint The new point value. - */ - void SetPoint( int aIndex, const wxPoint& aPoint ) - { - // (unsigned) excludes aIndex<0 also - wxCHECK_RET( (unsigned)aIndex < m_points.size(), - wxT( "Invalid SCH_POLYLINE point list index." ) ); - - m_points[ aIndex ] = aPoint; - } - - - /** - * Function GetCornerCount - * @return the number of corners - */ - unsigned GetCornerCount() const { return m_points.size(); } - - int GetPenSize() const; - - void Move( const wxPoint& aMoveVector ) - { - for( unsigned ii = 0; ii < GetCornerCount(); ii++ ) - m_points[ii] += aMoveVector; - } - - void MirrorY( int aYaxis_position ); - - void MirrorX( int aXaxis_position ); - - void Rotate( wxPoint aPosition ); - - wxString GetSelectMenuText() const; - - BITMAP_DEF GetMenuImage() const; - - /** - * Function operator[] - * is used for read only access and returns the point at \a aIndex. - * @param aIndex The index of the list of points to return. - * @return A wxPoint object containing the point at \a aIndex. - */ - wxPoint operator[]( int aIndex ) const - { - // (unsigned) excludes aIndex<0 also - wxCHECK_MSG( (unsigned)aIndex < m_points.size(), wxDefaultPosition, - wxT( "Invalid SCH_POLYLINE point list index." ) ); - - return m_points[ aIndex ]; - } - - wxPoint GetPosition() const { return m_points[0]; } - - void SetPosition( const wxPoint& aPosition ); - - bool HitTest( const wxPoint& aPosition, int aAccuracy ) const; - - bool HitTest( const EDA_RECT& aRect, bool aContained = false, - int aAccuracy = 0 ) const; - - EDA_ITEM* Clone() const; - -#if defined(DEBUG) - void Show( int nestLevel, std::ostream& os ) const { ShowDummy( os ); } // override -#endif -}; - - -#endif // _SCH_POLYLINE_H_ diff --git a/eeschema/schematic_undo_redo.cpp b/eeschema/schematic_undo_redo.cpp index 89c2c59e40..4481e8cce0 100644 --- a/eeschema/schematic_undo_redo.cpp +++ b/eeschema/schematic_undo_redo.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #include #include diff --git a/include/base_struct.h b/include/base_struct.h index 56ce1a04e7..0c0db083d5 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -84,7 +84,6 @@ enum KICAD_T { SCH_NO_CONNECT_T, SCH_BUS_ENTRY_T, SCH_LINE_T, - SCH_POLYLINE_T, SCH_BITMAP_T, SCH_TEXT_T, SCH_LABEL_T, diff --git a/include/class_colors_design_settings.h b/include/class_colors_design_settings.h index 5813b82676..d49cab4ba1 100644 --- a/include/class_colors_design_settings.h +++ b/include/class_colors_design_settings.h @@ -7,8 +7,7 @@ #define _COLORS_DESIGN_SETTING_H #include -// XXX shouldn't these come from somewhere else? -#define LAYERSCOLORSBUFFERSIZE 32 +#define LAYERSCOLORSBUFFERSIZE NB_LAYERS #define ITEMSCOLORSBUFFERSIZE 32 /**