Hi, macros.h provides two macros that appear to me completely unnecessary: EXCHG and NEGATE.
The comment above EXCHG points out that it differs from std::swap in that it accepts arguments of different types. I could not find a single instance depending on that - it always swapped values of the same type. It also remarks "I hope to get rid of this soon or late". I removed it and replaced its uses with std::swap. The comment above NEGATE justifies it: // This really needs a function? well, it is used *a lot* of times Doesn't really mean it needs a macro though, otherwise we might as well go defining macros like DOUBLE() and INCREMENT() and so on... It's just as easy to type something like "x = -x" or "x *= -1", and the latter is _shorter_ than "NEGATE( x )". I removed this too. Up to you whether or not you want to accept the patch, but I think it's a step in the direction of cleaner code. Macros for simple things that don't need them confuse people - you have to go check the definition to see if it does something "special". They also result in some clumsy use cases like this, from trying to shove them in: m_pos.x -= aYaxis_position; NEGATE( m_pos.x ); m_pos.x += aYaxis_position; Writing out the NEGATE makes it clear that the lines are all very similar and can easily be simplified: m_pos.x = 2 * aYaxis_position - m_pos.x; That's a lot clearer... I don't know about you, but I can visualize what that's doing graphically a lot better too. -- Chris
commit f96cd3a51e8c63f3f96a96d3a1e30e88723b9085 Author: Chris Pavlina <cpavl...@binghamton.edu> Date: Fri Jun 26 01:28:30 2015 -0400 Remove unnecessary macros EXCHG and NEGATE diff --git a/3d-viewer/3d_draw_helper_functions.cpp b/3d-viewer/3d_draw_helper_functions.cpp index 577be18..25e3e6e 100644 --- a/3d-viewer/3d_draw_helper_functions.cpp +++ b/3d-viewer/3d_draw_helper_functions.cpp @@ -219,7 +219,7 @@ void EDA_3D_CANVAS::draw3DGrid( double aGriSizeMM ) wxSize brd_size = getBoardSize(); wxPoint brd_center_pos = getBoardCenter(); - NEGATE( brd_center_pos.y ); + brd_center_pos.y *= -1; int xsize = std::max( brd_size.x, Millimeter2iu( 100 ) ) * 1.2; int ysize = std::max( brd_size.y, Millimeter2iu( 100 ) ) * 1.2; diff --git a/common/class_plotter.cpp b/common/class_plotter.cpp index 427a094..3150d2c 100644 --- a/common/class_plotter.cpp +++ b/common/class_plotter.cpp @@ -150,7 +150,7 @@ void PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, int r const int delta = 50; // increment (in 0.1 degrees) to draw circles if( StAngle > EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); SetCurrentLineWidth( width ); /* Please NOTE the different sign due to Y-axis flip */ @@ -406,7 +406,7 @@ void PLOTTER::sketchOval( const wxPoint& pos, const wxSize& aSize, double orient if( size.x > size.y ) { - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); orient = AddAngles( orient, 900 ); } diff --git a/common/common.cpp b/common/common.cpp index 6018e71..34aebf7 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -280,7 +280,7 @@ double RoundTo0( double x, double precision ) long long ix = KiROUND( x * precision ); if ( x < 0.0 ) - NEGATE( ix ); + ix *= -1; int remainder = ix % 10; // remainder is in precision mm @@ -290,7 +290,7 @@ double RoundTo0( double x, double precision ) ix += 10 - remainder; // round to near number if ( x < 0 ) - NEGATE( ix ); + ix *= -1; return (double) ix / precision; } diff --git a/common/common_plotDXF_functions.cpp b/common/common_plotDXF_functions.cpp index 545b5ca..da5ef03 100644 --- a/common/common_plotDXF_functions.cpp +++ b/common/common_plotDXF_functions.cpp @@ -508,7 +508,7 @@ void DXF_PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, i // If StAngle > EndAngle, it is CW. So transform it to CCW if( StAngle > EndAngle ) { - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } DPOINT centre_dev = userToDeviceCoordinates( centre ); @@ -536,7 +536,7 @@ void DXF_PLOTTER::FlashPadOval( const wxPoint& pos, const wxSize& aSize, double * (Oval vertical orientation 0) */ if( size.x > size.y ) { - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); orient = AddAngles( orient, 900 ); } diff --git a/common/common_plotGERBER_functions.cpp b/common/common_plotGERBER_functions.cpp index a2a912f..2e041e6 100644 --- a/common/common_plotGERBER_functions.cpp +++ b/common/common_plotGERBER_functions.cpp @@ -459,7 +459,7 @@ void GERBER_PLOTTER::FlashPadOval( const wxPoint& pos, const wxSize& aSize, doub && trace_mode == FILLED ) { if( orient == 900 || orient == 2700 ) /* orientation turned 90 deg. */ - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); DPOINT pos_dev = userToDeviceCoordinates( pos ); selectAperture( size, APERTURE::Oval ); @@ -469,7 +469,7 @@ void GERBER_PLOTTER::FlashPadOval( const wxPoint& pos, const wxSize& aSize, doub { if( size.x > size.y ) { - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); if( orient < 2700 ) orient += 900; @@ -512,7 +512,7 @@ void GERBER_PLOTTER::FlashPadRect( const wxPoint& pos, const wxSize& aSize, { case 900: case 2700: // rotation of 90 degrees or 270 swaps sizes - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); // Pass through case 0: diff --git a/common/common_plotHPGL_functions.cpp b/common/common_plotHPGL_functions.cpp index 514b53d..697b1a8 100644 --- a/common/common_plotHPGL_functions.cpp +++ b/common/common_plotHPGL_functions.cpp @@ -460,7 +460,7 @@ void HPGL_PLOTTER::FlashPadOval( const wxPoint& pos, const wxSize& aSize, double */ if( size.x > size.y ) { - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); orient = AddAngles( orient, 900 ); } diff --git a/common/common_plotPDF_functions.cpp b/common/common_plotPDF_functions.cpp index b06950e..3fc8c4f 100644 --- a/common/common_plotPDF_functions.cpp +++ b/common/common_plotPDF_functions.cpp @@ -223,7 +223,7 @@ void PDF_PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, i const int delta = 50; // increment (in 0.1 degrees) to draw circles if( StAngle > EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); SetCurrentLineWidth( width ); diff --git a/common/common_plotPS_functions.cpp b/common/common_plotPS_functions.cpp index 409e8d6..22b1de5 100644 --- a/common/common_plotPS_functions.cpp +++ b/common/common_plotPS_functions.cpp @@ -98,7 +98,7 @@ void PSLIKE_PLOTTER::FlashPadOval( const wxPoint& aPadPos, const wxSize& aSize, // The pad is reduced to an oval by dy > dx if( size.x > size.y ) { - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); aPadOrient = AddAngles( aPadOrient, 900 ); } @@ -514,7 +514,7 @@ void PS_PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, return; if( StAngle > EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); SetCurrentLineWidth( width ); @@ -528,7 +528,7 @@ void PS_PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, { StAngle = 1800.0 -StAngle; EndAngle = 1800.0 -EndAngle; - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } else { diff --git a/common/common_plotSVG_functions.cpp b/common/common_plotSVG_functions.cpp index e79bcd0..2984660 100644 --- a/common/common_plotSVG_functions.cpp +++ b/common/common_plotSVG_functions.cpp @@ -352,7 +352,7 @@ void SVG_PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, i return; if( StAngle > EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); setFillMode( fill ); SetCurrentLineWidth( width ); @@ -374,7 +374,7 @@ void SVG_PLOTTER::Arc( const wxPoint& centre, double StAngle, double EndAngle, i { StAngle = 1800.0 -StAngle; EndAngle = 1800.0 -EndAngle; - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } else { diff --git a/common/convert_basic_shapes_to_polygon.cpp b/common/convert_basic_shapes_to_polygon.cpp index b13e4b6..42bf53f 100644 --- a/common/convert_basic_shapes_to_polygon.cpp +++ b/common/convert_basic_shapes_to_polygon.cpp @@ -174,8 +174,8 @@ void TransformArcToPolygon( CPOLYGONS_LIST& aCornerBuffer, if( aArcAngle < 0 ) { - EXCHG( arc_start, arc_end ); - NEGATE( aArcAngle ); + std::swap( arc_start, arc_end ); + aArcAngle *= -1; } // Compute the ends of segments and creates poly diff --git a/common/eda_text.cpp b/common/eda_text.cpp index 8f49a48..36e77b6 100644 --- a/common/eda_text.cpp +++ b/common/eda_text.cpp @@ -477,7 +477,7 @@ void EDA_TEXT::TransformTextShapeToSegmentList( std::vector<wxPoint>& aCornerBuf wxSize size = GetSize(); if( IsMirrored() ) - NEGATE( size.x ); + size.x *= -1; s_cornerBuffer = &aCornerBuffer; EDA_COLOR_T color = BLACK; // not actually used, but needed by DrawGraphicText diff --git a/common/trigo.cpp b/common/trigo.cpp index f814fd7..4f29125 100644 --- a/common/trigo.cpp +++ b/common/trigo.cpp @@ -153,7 +153,7 @@ bool TestSegmentHit( const wxPoint &aRefPoint, wxPoint aStart, // To have only one case to examine, ensure aEnd.y > aStart.y if( aEnd.y < aStart.y ) - EXCHG( aStart.y, aEnd.y ); + std::swap( aStart.y, aEnd.y ); if( aRefPoint.y <= aEnd.y && aRefPoint.y >= aStart.y ) return true; @@ -186,7 +186,7 @@ bool TestSegmentHit( const wxPoint &aRefPoint, wxPoint aStart, // To have only one case to examine, ensure xf > xi if( aEnd.x < aStart.x ) - EXCHG( aStart.x, aEnd.x ); + std::swap( aStart.x, aEnd.x ); if( aRefPoint.x <= aEnd.x && aRefPoint.x >= aStart.x ) return true; diff --git a/cvpcb/dialogs/dialog_config_equfiles.cpp b/cvpcb/dialogs/dialog_config_equfiles.cpp index 807139b..3ae03fd 100644 --- a/cvpcb/dialogs/dialog_config_equfiles.cpp +++ b/cvpcb/dialogs/dialog_config_equfiles.cpp @@ -166,7 +166,7 @@ void DIALOG_CONFIG_EQUFILES::OnButtonMoveUp( wxCommandEvent& event ) for( size_t ii = 0; ii < selections.GetCount(); ii++ ) { int jj = selections[ii]; - EXCHG( libnames[jj], libnames[jj-1] ); + std::swap( libnames[jj], libnames[jj-1] ); } m_ListEquiv->Set( libnames ); @@ -201,7 +201,7 @@ void DIALOG_CONFIG_EQUFILES::OnButtonMoveDown( wxCommandEvent& event ) for( int ii = selections.GetCount()-1; ii >= 0; ii-- ) { int jj = selections[ii]; - EXCHG( libnames[jj], libnames[jj+1]); + std::swap( libnames[jj], libnames[jj+1]); } m_ListEquiv->Set( libnames ); diff --git a/eeschema/block_libedit.cpp b/eeschema/block_libedit.cpp index 5fed110..c520c49 100644 --- a/eeschema/block_libedit.cpp +++ b/eeschema/block_libedit.cpp @@ -171,7 +171,7 @@ bool LIB_EDIT_FRAME::HandleBlockEnd( wxDC* DC ) pt = GetScreen()->m_BlockLocate.Centre(); pt = GetNearestGridPosition( pt ); - NEGATE( pt.y ); + pt.y *= -1; if( GetCurPart() ) { @@ -261,7 +261,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) SaveCopyInUndoList( GetCurPart() ); pt = GetScreen()->m_BlockLocate.GetMoveVector(); - NEGATE( pt.y ); + pt.y *= -1; if( GetCurPart() ) GetCurPart()->CopySelectedItems( pt ); @@ -280,7 +280,7 @@ void LIB_EDIT_FRAME::HandleBlockPlace( wxDC* DC ) pt = GetScreen()->m_BlockLocate.Centre(); pt = GetNearestGridPosition( pt ); - NEGATE( pt.y ); + pt.y *= -1; if( GetCurPart() ) { diff --git a/eeschema/class_netlist_object.cpp b/eeschema/class_netlist_object.cpp index 3052e59..169a28f 100644 --- a/eeschema/class_netlist_object.cpp +++ b/eeschema/class_netlist_object.cpp @@ -288,7 +288,7 @@ void NETLIST_OBJECT::ConvertBusToNetListItems( NETLIST_OBJECT_LIST& aNetListItem end = 0; if( begin > end ) - EXCHG( begin, end ); + std::swap( begin, end ); member = begin; tmp = busName; diff --git a/eeschema/dialogs/dialog_choose_component.cpp b/eeschema/dialogs/dialog_choose_component.cpp index 64bf53b..270b141 100644 --- a/eeschema/dialogs/dialog_choose_component.cpp +++ b/eeschema/dialogs/dialog_choose_component.cpp @@ -345,8 +345,8 @@ void DIALOG_CHOOSE_COMPONENT::renderPreview( LIB_PART* aComponent, int aUnit ) dc.SetUserScale( scale, scale ); wxPoint offset = bBox.Centre(); - NEGATE( offset.x ); - NEGATE( offset.y ); + offset.x *= -1; + offset.y *= -1; // Avoid rendering when either dimension is zero int width, height; diff --git a/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp b/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp index 1de0d49..c5475f6 100644 --- a/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp +++ b/eeschema/dialogs/dialog_edit_libentry_fields_in_lib.cpp @@ -726,7 +726,7 @@ void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel() // Note: the Y axis for components in lib is from bottom to top // and the screen axis is top to bottom: we must change the y coord sign for editing - NEGATE( coord.y ); + coord.y *= -1; coordText = StringFromValue( g_UserUnit, coord.y ); posYTextCtrl->SetValue( coordText ); } @@ -798,7 +798,7 @@ bool DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField() // Note: the Y axis for components in lib is from bottom to top // and the screen axis is top to bottom: we must change the y coord sign for editing - NEGATE( pos.y ); + pos.y *= -1; field.SetTextPosition( pos ); diff --git a/eeschema/dialogs/dialog_eeschema_config.cpp b/eeschema/dialogs/dialog_eeschema_config.cpp index 17d110f..148b035 100644 --- a/eeschema/dialogs/dialog_eeschema_config.cpp +++ b/eeschema/dialogs/dialog_eeschema_config.cpp @@ -164,7 +164,7 @@ void DIALOG_EESCHEMA_CONFIG::OnButtonUpClick( wxCommandEvent& event ) for( size_t ii = 0; ii < selections.GetCount(); ii++ ) { int jj = selections[ii]; - EXCHG( libnames[jj], libnames[jj-1]); + std::swap( libnames[jj], libnames[jj-1]); } m_ListLibr->Set(libnames); @@ -198,7 +198,7 @@ void DIALOG_EESCHEMA_CONFIG::OnButtonDownClick( wxCommandEvent& event ) for( int ii = selections.GetCount()-1; ii >= 0; ii-- ) { int jj = selections[ii]; - EXCHG( libnames[jj], libnames[jj+1]); + std::swap( libnames[jj], libnames[jj+1]); } m_ListLibr->Set( libnames ); diff --git a/eeschema/lib_arc.cpp b/eeschema/lib_arc.cpp index ad3f5a2..35c98eb 100644 --- a/eeschema/lib_arc.cpp +++ b/eeschema/lib_arc.cpp @@ -195,7 +195,7 @@ bool LIB_ARC::HitTest( const wxPoint &aPosition, int aThreshold, const TRANSFORM // TODO: use aTransMat to calculates parameters wxPoint relativePosition = aPosition; - NEGATE( relativePosition.y ); // reverse Y axis + relativePosition.y *= -1; // reverse Y axis int distance = KiROUND( GetLineLength( m_Pos, relativePosition ) ); @@ -220,7 +220,7 @@ bool LIB_ARC::HitTest( const wxPoint &aPosition, int aThreshold, const TRANSFORM // relative to the start point to end point vector lies if( CrossProduct( startEndVector, startRelativePositionVector ) < 0 ) { - EXCHG( crossProductStart, crossProductEnd ); + std::swap( crossProductStart, crossProductEnd ); } // When the cross products have a different sign, the point lies in sector @@ -294,8 +294,8 @@ void LIB_ARC::MirrorHorizontal( const wxPoint& aCenter ) m_ArcEnd.x -= aCenter.x; m_ArcEnd.x *= -1; m_ArcEnd.x += aCenter.x; - EXCHG( m_ArcStart, m_ArcEnd ); - EXCHG( m_t1, m_t2 ); + std::swap( m_ArcStart, m_ArcEnd ); + std::swap( m_t1, m_t2 ); m_t1 = 1800 - m_t1; m_t2 = 1800 - m_t2; if( m_t1 > 3600 || m_t2 > 3600 ) @@ -321,8 +321,8 @@ void LIB_ARC::MirrorVertical( const wxPoint& aCenter ) m_ArcEnd.y -= aCenter.y; m_ArcEnd.y *= -1; m_ArcEnd.y += aCenter.y; - EXCHG( m_ArcStart, m_ArcEnd ); - EXCHG( m_t1, m_t2 ); + std::swap( m_ArcStart, m_ArcEnd ); + std::swap( m_t1, m_t2 ); m_t1 = - m_t1; m_t2 = - m_t2; if( m_t1 > 3600 || m_t2 > 3600 ) @@ -439,8 +439,8 @@ void LIB_ARC::drawGraphic( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf if( swap ) { - EXCHG( pos1.x, pos2.x ); - EXCHG( pos1.y, pos2.y ); + std::swap( pos1.x, pos2.x ); + std::swap( pos1.y, pos2.y ); } GRSetDrawMode( aDC, aDrawMode ); @@ -515,8 +515,8 @@ start(%d, %d), end(%d, %d), radius %d" ), if( DefaultTransform.MapAngles( &angleStart, &angleEnd ) ) { - EXCHG( endPos.x, startPos.x ); - EXCHG( endPos.y, startPos.y ); + std::swap( endPos.x, startPos.x ); + std::swap( endPos.y, startPos.y ); } /* Start with the start and end point of the arc. */ diff --git a/eeschema/lib_field.cpp b/eeschema/lib_field.cpp index a223b34..231f5b6 100644 --- a/eeschema/lib_field.cpp +++ b/eeschema/lib_field.cpp @@ -721,7 +721,7 @@ void LIB_FIELD::calcEdit( const wxPoint& aPosition ) if( m_updateText ) { - EXCHG( m_Text, m_savedText ); + std::swap( m_Text, m_savedText ); m_updateText = false; } diff --git a/eeschema/lib_pin.cpp b/eeschema/lib_pin.cpp index 7496009..42bac76 100644 --- a/eeschema/lib_pin.cpp +++ b/eeschema/lib_pin.cpp @@ -2085,13 +2085,13 @@ const EDA_RECT LIB_PIN::GetBoundingBox() const case PIN_DOWN: RotatePoint( &begin, wxPoint( 0, 0 ), 900 ); RotatePoint( &end, wxPoint( 0, 0 ), 900 ); - NEGATE( begin.x ); - NEGATE( end.x ); + begin.x *= -1; + end.x *= -1; break; case PIN_LEFT: - NEGATE( begin.x ); - NEGATE( end.x ); + begin.x *= -1; + end.x *= -1; break; case PIN_RIGHT: diff --git a/eeschema/lib_text.cpp b/eeschema/lib_text.cpp index 3947e2c..10c831b 100644 --- a/eeschema/lib_text.cpp +++ b/eeschema/lib_text.cpp @@ -538,7 +538,7 @@ void LIB_TEXT::calcEdit( const wxPoint& aPosition ) if( m_updateText ) { - EXCHG( m_Text, m_savedText ); + std::swap( m_Text, m_savedText ); m_updateText = false; } diff --git a/eeschema/sch_bitmap.cpp b/eeschema/sch_bitmap.cpp index 43b344e..d974a64 100644 --- a/eeschema/sch_bitmap.cpp +++ b/eeschema/sch_bitmap.cpp @@ -127,8 +127,8 @@ void SCH_BITMAP::SwapData( SCH_ITEM* aItem ) GetChars( aItem->GetClass() ) ) ); SCH_BITMAP* item = (SCH_BITMAP*) aItem; - EXCHG( m_Pos, item->m_Pos ); - EXCHG( m_Image, item->m_Image ); + std::swap( m_Pos, item->m_Pos ); + std::swap( m_Image, item->m_Image ); } @@ -223,9 +223,7 @@ wxSize SCH_BITMAP::GetSize() const */ void SCH_BITMAP::MirrorX( int aXaxis_position ) { - m_Pos.y -= aXaxis_position; - NEGATE( m_Pos.y ); - m_Pos.y += aXaxis_position; + m_Pos.y = 2 * aXaxis_position - m_Pos.y; m_Image->Mirror( true ); } @@ -236,9 +234,7 @@ void SCH_BITMAP::MirrorX( int aXaxis_position ) */ void SCH_BITMAP::MirrorY( int aYaxis_position ) { - m_Pos.x -= aYaxis_position; - NEGATE( m_Pos.x ); - m_Pos.x += aYaxis_position; + m_Pos.x = 2 * aYaxis_position - m_Pos.x; m_Image->Mirror( false ); } diff --git a/eeschema/sch_bus_entry.cpp b/eeschema/sch_bus_entry.cpp index 52c37b7..01d9b8d 100644 --- a/eeschema/sch_bus_entry.cpp +++ b/eeschema/sch_bus_entry.cpp @@ -89,8 +89,8 @@ void SCH_BUS_ENTRY_BASE::SwapData( SCH_ITEM* aItem ) SCH_BUS_ENTRY_BASE* item = dynamic_cast<SCH_BUS_ENTRY_BASE*>( aItem ); wxCHECK_RET( item, wxT( "Cannot swap bus entry data with invalid item." ) ); - EXCHG( m_pos, item->m_pos ); - EXCHG( m_size, item->m_size ); + std::swap( m_pos, item->m_pos ); + std::swap( m_size, item->m_size ); } @@ -215,19 +215,15 @@ void SCH_BUS_ENTRY_BASE::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& void SCH_BUS_ENTRY_BASE::MirrorX( int aXaxis_position ) { - m_pos.y -= aXaxis_position; - NEGATE( m_pos.y ); - m_pos.y += aXaxis_position; - NEGATE( m_size.y ); + m_pos.y = 2 * aXaxis_position - m_pos.y; + m_size.y *= -1; } void SCH_BUS_ENTRY_BASE::MirrorY( int aYaxis_position ) { - m_pos.x -= aYaxis_position; - NEGATE( m_pos.x ); - m_pos.x += aYaxis_position; - NEGATE( m_size.x ); + m_pos.x = 2 * aYaxis_position - m_pos.x; + m_size.x *= -1; } diff --git a/eeschema/sch_component.cpp b/eeschema/sch_component.cpp index ddf2f14..bd3ce1f 100644 --- a/eeschema/sch_component.cpp +++ b/eeschema/sch_component.cpp @@ -698,11 +698,11 @@ void SCH_COMPONENT::SwapData( SCH_ITEM* aItem ) SCH_COMPONENT* component = (SCH_COMPONENT*) aItem; - EXCHG( m_part_name, component->m_part_name ); - EXCHG( m_part, component->m_part ); - EXCHG( m_Pos, component->m_Pos ); - EXCHG( m_unit, component->m_unit ); - EXCHG( m_convert, component->m_convert ); + std::swap( m_part_name, component->m_part_name ); + std::swap( m_part, component->m_part ); + std::swap( m_Pos, component->m_Pos ); + std::swap( m_unit, component->m_unit ); + std::swap( m_convert, component->m_convert ); TRANSFORM tmp = m_transform; @@ -723,7 +723,7 @@ void SCH_COMPONENT::SwapData( SCH_ITEM* aItem ) GetField( ii )->SetParent( this ); } - EXCHG( m_PathsAndReferences, component->m_PathsAndReferences ); + std::swap( m_PathsAndReferences, component->m_PathsAndReferences ); } @@ -1472,10 +1472,10 @@ EDA_RECT SCH_COMPONENT::GetBodyBoundingBox() const // H and W must be > 0: if( x2 < x1 ) - EXCHG( x2, x1 ); + std::swap( x2, x1 ); if( y2 < y1 ) - EXCHG( y2, y1 ); + std::swap( y2, y1 ); bBox.SetX( x1 ); bBox.SetY( y1 ); @@ -1547,9 +1547,7 @@ void SCH_COMPONENT::MirrorY( int aYaxis_position ) int dx = m_Pos.x; SetOrientation( CMP_MIRROR_Y ); - m_Pos.x -= aYaxis_position; - NEGATE( m_Pos.x ); - m_Pos.x += aYaxis_position; + m_Pos.x = 2 * aYaxis_position - m_Pos.x; dx -= m_Pos.x; // dx,0 is the move vector for this transform for( int ii = 0; ii < GetFieldCount(); ii++ ) @@ -1567,9 +1565,7 @@ void SCH_COMPONENT::MirrorX( int aXaxis_position ) int dy = m_Pos.y; SetOrientation( CMP_MIRROR_X ); - m_Pos.y -= aXaxis_position; - NEGATE( m_Pos.y ); - m_Pos.y += aXaxis_position; + m_Pos.y = 2 * aXaxis_position - m_Pos.y; dy -= m_Pos.y; // dy,0 is the move vector for this transform for( int ii = 0; ii < GetFieldCount(); ii++ ) diff --git a/eeschema/sch_field.cpp b/eeschema/sch_field.cpp index a2b2775..30818ce 100644 --- a/eeschema/sch_field.cpp +++ b/eeschema/sch_field.cpp @@ -238,18 +238,18 @@ void SCH_FIELD::SwapData( SCH_ITEM* aItem ) SCH_FIELD* item = (SCH_FIELD*) aItem; - EXCHG( m_Text, item->m_Text ); - EXCHG( m_Layer, item->m_Layer ); - EXCHG( m_Pos, item->m_Pos ); - EXCHG( m_Size, item->m_Size ); - EXCHG( m_Thickness, item->m_Thickness ); - EXCHG( m_Orient, item->m_Orient ); - EXCHG( m_Mirror, item->m_Mirror ); - EXCHG( m_Attributs, item->m_Attributs ); - EXCHG( m_Italic, item->m_Italic ); - EXCHG( m_Bold, item->m_Bold ); - EXCHG( m_HJustify, item->m_HJustify ); - EXCHG( m_VJustify, item->m_VJustify ); + std::swap( m_Text, item->m_Text ); + std::swap( m_Layer, item->m_Layer ); + std::swap( m_Pos, item->m_Pos ); + std::swap( m_Size, item->m_Size ); + std::swap( m_Thickness, item->m_Thickness ); + std::swap( m_Orient, item->m_Orient ); + std::swap( m_Mirror, item->m_Mirror ); + std::swap( m_Attributs, item->m_Attributs ); + std::swap( m_Italic, item->m_Italic ); + std::swap( m_Bold, item->m_Bold ); + std::swap( m_HJustify, item->m_HJustify ); + std::swap( m_VJustify, item->m_VJustify ); } @@ -285,12 +285,8 @@ const EDA_RECT SCH_FIELD::GetBoundingBox() const // Due to the Y axis direction, we must mirror the bounding box, // relative to the text position: - begin.y -= pos.y; - end.y -= pos.y; - NEGATE( begin.y ); - NEGATE( end.y ); - begin.y += pos.y; - end.y += pos.y; + begin.y = 2 * pos.y - begin.y; + end.y = 2 * pos.y - end.y; // Now, apply the component transform (mirror/rot) begin = parentComponent->GetTransform().TransformCoordinate( begin ); diff --git a/eeschema/sch_junction.cpp b/eeschema/sch_junction.cpp index a12f21b..d5d2235 100644 --- a/eeschema/sch_junction.cpp +++ b/eeschema/sch_junction.cpp @@ -74,7 +74,7 @@ void SCH_JUNCTION::SwapData( SCH_ITEM* aItem ) wxT( "Cannot swap junction data with invalid item." ) ); SCH_JUNCTION* item = (SCH_JUNCTION*) aItem; - EXCHG( m_pos, item->m_pos ); + std::swap( m_pos, item->m_pos ); } @@ -128,17 +128,13 @@ void SCH_JUNCTION::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOffs void SCH_JUNCTION::MirrorX( int aXaxis_position ) { - m_pos.y -= aXaxis_position; - NEGATE( m_pos.y ); - m_pos.y += aXaxis_position; + m_pos.y = 2 * aXaxis_position - m_pos.y; } void SCH_JUNCTION::MirrorY( int aYaxis_position ) { - m_pos.x -= aYaxis_position; - NEGATE( m_pos.x ); - m_pos.x += aYaxis_position; + m_pos.x = 2 * aYaxis_position - m_pos.x; } diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index a786332..b75d1c8 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -250,23 +250,15 @@ void SCH_LINE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset, void SCH_LINE::MirrorX( int aXaxis_position ) { - m_start.y -= aXaxis_position; - NEGATE( m_start.y ); - m_start.y += aXaxis_position; - m_end.y -= aXaxis_position; - NEGATE( m_end.y ); - m_end.y += aXaxis_position; + m_start.y = 2 * aXaxis_position - m_start.y; + m_end.y = 2 * aXaxis_position - m_end.y; } void SCH_LINE::MirrorY( int aYaxis_position ) { - m_start.x -= aYaxis_position; - NEGATE( m_start.x ); - m_start.x += aYaxis_position; - m_end.x -= aYaxis_position; - NEGATE( m_end.x ); - m_end.x += aYaxis_position; + m_start.x = 2 * aYaxis_position - m_start.x; + m_end.x = 2 * aYaxis_position - m_end.x; } @@ -313,7 +305,7 @@ bool SCH_LINE::MergeOverlap( SCH_LINE* aLine ) } else if( m_end == aLine->m_end ) { - EXCHG( aLine->m_start, aLine->m_end ); + std::swap( aLine->m_start, aLine->m_end ); } else if( m_end != aLine->m_start ) { diff --git a/eeschema/sch_no_connect.cpp b/eeschema/sch_no_connect.cpp index 694069d..b569bc7 100644 --- a/eeschema/sch_no_connect.cpp +++ b/eeschema/sch_no_connect.cpp @@ -63,8 +63,8 @@ void SCH_NO_CONNECT::SwapData( SCH_ITEM* aItem ) wxT( "Cannot swap no connect data with invalid item." ) ); SCH_NO_CONNECT* item = (SCH_NO_CONNECT*)aItem; - EXCHG( m_pos, item->m_pos ); - EXCHG( m_size, item->m_size ); + std::swap( m_pos, item->m_pos ); + std::swap( m_size, item->m_size ); } @@ -153,17 +153,13 @@ void SCH_NO_CONNECT::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint& aOf void SCH_NO_CONNECT::MirrorX( int aXaxis_position ) { - m_pos.y -= aXaxis_position; - NEGATE( m_pos.y ); - m_pos.y += aXaxis_position; + m_pos.y = 2 * aXaxis_position - m_pos.y; } void SCH_NO_CONNECT::MirrorY( int aYaxis_position ) { - m_pos.x -= aYaxis_position; - NEGATE( m_pos.x ); - m_pos.x += aYaxis_position; + m_pos.x = 2 * aYaxis_position - m_pos.x; } diff --git a/eeschema/sch_sheet.cpp b/eeschema/sch_sheet.cpp index 8910ad2..7af93aa 100644 --- a/eeschema/sch_sheet.cpp +++ b/eeschema/sch_sheet.cpp @@ -319,11 +319,11 @@ void SCH_SHEET::SwapData( SCH_ITEM* aItem ) SCH_SHEET* sheet = ( SCH_SHEET* ) aItem; - EXCHG( m_pos, sheet->m_pos ); - EXCHG( m_size, sheet->m_size ); - EXCHG( m_name, sheet->m_name ); - EXCHG( m_sheetNameSize, sheet->m_sheetNameSize ); - EXCHG( m_fileNameSize, sheet->m_fileNameSize ); + std::swap( m_pos, sheet->m_pos ); + std::swap( m_size, sheet->m_size ); + std::swap( m_name, sheet->m_name ); + std::swap( m_sheetNameSize, sheet->m_sheetNameSize ); + std::swap( m_fileNameSize, sheet->m_fileNameSize ); m_pins.swap( sheet->m_pins ); // Ensure sheet labels have their .m_Parent member pointing really on their @@ -844,13 +844,13 @@ void SCH_SHEET::Rotate(wxPoint aPosition) if( m_size.x < 0 ) { m_pos.x += m_size.x; - NEGATE( m_size.x ); + m_size.x *= -1; } if( m_size.y < 0 ) { m_pos.y += m_size.y; - NEGATE( m_size.y ); + m_size.y *= -1; } BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) @@ -862,10 +862,7 @@ void SCH_SHEET::Rotate(wxPoint aPosition) void SCH_SHEET::MirrorX( int aXaxis_position ) { - m_pos.y -= aXaxis_position; - NEGATE( m_pos.y ); - m_pos.y += aXaxis_position; - m_pos.y -= m_size.y; + m_pos.y = 2 * aXaxis_position - m_pos.y - m_size.y; BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, m_pins ) { @@ -876,10 +873,7 @@ void SCH_SHEET::MirrorX( int aXaxis_position ) void SCH_SHEET::MirrorY( int aYaxis_position ) { - m_pos.x -= aYaxis_position; - NEGATE( m_pos.x ); - m_pos.x += aYaxis_position; - m_pos.x -= m_size.x; + m_pos.x = 2 * aYaxis_position - m_pos.x - m_size.x; BOOST_FOREACH( SCH_SHEET_PIN& label, m_pins ) { diff --git a/eeschema/sch_text.cpp b/eeschema/sch_text.cpp index 762ffbd..960548d 100644 --- a/eeschema/sch_text.cpp +++ b/eeschema/sch_text.cpp @@ -204,9 +204,7 @@ void SCH_TEXT::MirrorY( int aYaxis_position ) break; } - m_Pos.x -= aYaxis_position; - NEGATE( m_Pos.x ); - m_Pos.x += aYaxis_position; + m_Pos.x = 2 * aYaxis_position - m_Pos.x; } @@ -228,9 +226,8 @@ void SCH_TEXT::MirrorX( int aXaxis_position ) default: break; } - m_Pos.y -= aXaxis_position; - NEGATE( m_Pos.y ); - m_Pos.y += aXaxis_position; + + m_Pos.y = 2 * aXaxis_position - m_Pos.y; } @@ -306,18 +303,18 @@ void SCH_TEXT::SwapData( SCH_ITEM* aItem ) { SCH_TEXT* item = (SCH_TEXT*) aItem; - EXCHG( m_Text, item->m_Text ); - EXCHG( m_Pos, item->m_Pos ); - EXCHG( m_Size, item->m_Size ); - EXCHG( m_Thickness, item->m_Thickness ); - EXCHG( m_shape, item->m_shape ); - EXCHG( m_Orient, item->m_Orient ); + std::swap( m_Text, item->m_Text ); + std::swap( m_Pos, item->m_Pos ); + std::swap( m_Size, item->m_Size ); + std::swap( m_Thickness, item->m_Thickness ); + std::swap( m_shape, item->m_shape ); + std::swap( m_Orient, item->m_Orient ); - EXCHG( m_Layer, item->m_Layer ); - EXCHG( m_HJustify, item->m_HJustify ); - EXCHG( m_VJustify, item->m_VJustify ); - EXCHG( m_isDangling, item->m_isDangling ); - EXCHG( m_schematicOrientation, item->m_schematicOrientation ); + std::swap( m_Layer, item->m_Layer ); + std::swap( m_HJustify, item->m_HJustify ); + std::swap( m_VJustify, item->m_VJustify ); + std::swap( m_isDangling, item->m_isDangling ); + std::swap( m_schematicOrientation, item->m_schematicOrientation ); } @@ -356,9 +353,9 @@ void SCH_TEXT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& aOffset, GRSetDrawMode( DC, DrawMode ); wxPoint text_offset = aOffset + GetSchematicTextOffset(); - EXCHG( linewidth, m_Thickness ); // Set the minimum width + std::swap( linewidth, m_Thickness ); // Set the minimum width EDA_TEXT::Draw( clipbox, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR ); - EXCHG( linewidth, m_Thickness ); // set initial value + std::swap( linewidth, m_Thickness ); // set initial value if( m_isDangling && panel) DrawDanglingSymbol( panel, DC, m_Pos + aOffset, color ); @@ -859,9 +856,7 @@ void SCH_LABEL::MirrorX( int aXaxis_position ) break; } - m_Pos.y -= aXaxis_position; - NEGATE( m_Pos.y ); - m_Pos.y += aXaxis_position; + m_Pos.y = 2 * aXaxis_position - m_Pos.y; } @@ -1140,9 +1135,7 @@ void SCH_GLOBALLABEL::MirrorY( int aYaxis_position ) break; } - m_Pos.x -= aYaxis_position; - NEGATE( m_Pos.x ); - m_Pos.x += aYaxis_position; + m_Pos.x = 2 * aYaxis_position - m_Pos.x; } @@ -1159,9 +1152,7 @@ void SCH_GLOBALLABEL::MirrorX( int aXaxis_position ) break; } - m_Pos.y -= aXaxis_position; - NEGATE( m_Pos.y ); - m_Pos.y += aXaxis_position; + m_Pos.y = 2 * aXaxis_position - m_Pos.y; } @@ -1274,10 +1265,10 @@ void SCH_GLOBALLABEL::Draw( EDA_DRAW_PANEL* panel, int linewidth = (m_Thickness == 0) ? GetDefaultLineThickness() : m_Thickness; linewidth = Clamp_Text_PenSize( linewidth, m_Size, m_Bold ); - EXCHG( linewidth, m_Thickness ); // Set the minimum width + std::swap( linewidth, m_Thickness ); // Set the minimum width EDA_RECT* clipbox = panel? panel->GetClipBox() : NULL; EDA_TEXT::Draw( clipbox, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR ); - EXCHG( linewidth, m_Thickness ); // set initial value + std::swap( linewidth, m_Thickness ); // set initial value CreateGraphicShape( Poly, m_Pos + aOffset ); GRPoly( clipbox, DC, Poly.size(), &Poly[0], 0, linewidth, color, color ); @@ -1606,10 +1597,10 @@ void SCH_HIERLABEL::Draw( EDA_DRAW_PANEL* panel, GRSetDrawMode( DC, DrawMode ); - EXCHG( linewidth, m_Thickness ); // Set the minimum width + std::swap( linewidth, m_Thickness ); // Set the minimum width wxPoint text_offset = offset + GetSchematicTextOffset(); EDA_TEXT::Draw( clipbox, DC, text_offset, color, DrawMode, FILLED, UNSPECIFIED_COLOR ); - EXCHG( linewidth, m_Thickness ); // set initial value + std::swap( linewidth, m_Thickness ); // set initial value CreateGraphicShape( Poly, m_Pos + offset ); GRPoly( clipbox, DC, Poly.size(), &Poly[0], 0, linewidth, color, color ); @@ -1750,9 +1741,7 @@ void SCH_HIERLABEL::MirrorY( int aYaxis_position ) break; } - m_Pos.x -= aYaxis_position; - NEGATE( m_Pos.x ); - m_Pos.x += aYaxis_position; + m_Pos.x = 2 * aYaxis_position - m_Pos.x; } @@ -1769,9 +1758,7 @@ void SCH_HIERLABEL::MirrorX( int aXaxis_position ) break; } - m_Pos.y -= aXaxis_position; - NEGATE( m_Pos.y ); - m_Pos.y += aXaxis_position; + m_Pos.y = 2 * aXaxis_position - m_Pos.y; } diff --git a/gerbview/class_aperture_macro.cpp b/gerbview/class_aperture_macro.cpp index 3ea8764..0c48a5b 100644 --- a/gerbview/class_aperture_macro.cpp +++ b/gerbview/class_aperture_macro.cpp @@ -143,7 +143,7 @@ void AM_PRIMITIVE::DrawBasicShape( GERBER_DRAW_ITEM* aParent, double rotation; if( mapExposure( aParent ) == false ) { - EXCHG(aColor, aAltColor); + std::swap( aColor, aAltColor ); } switch( primitive_id ) diff --git a/gerbview/class_gerber_draw_item.cpp b/gerbview/class_gerber_draw_item.cpp index 02bf826..5abb0bd 100644 --- a/gerbview/class_gerber_draw_item.cpp +++ b/gerbview/class_gerber_draw_item.cpp @@ -111,7 +111,7 @@ wxPoint GERBER_DRAW_ITEM::GetABPosition( const wxPoint& aXYPosition ) const wxPoint abPos = aXYPosition + m_imageParams->m_ImageJustifyOffset; if( m_swapAxis ) - EXCHG( abPos.x, abPos.y ); + std::swap( abPos.x, abPos.y ); abPos += m_layerOffset + m_imageParams->m_ImageOffset; abPos.x = KiROUND( abPos.x * m_drawScale.x ); @@ -123,11 +123,11 @@ wxPoint GERBER_DRAW_ITEM::GetABPosition( const wxPoint& aXYPosition ) const // Negate A axis if mirrored if( m_mirrorA ) - NEGATE( abPos.x ); + abPos.x *= -1; // abPos.y must be negated when no mirror, because draw axis is top to bottom if( !m_mirrorB ) - NEGATE( abPos.y ); + abPos.y *= -1; return abPos; } @@ -138,10 +138,10 @@ wxPoint GERBER_DRAW_ITEM::GetXYPosition( const wxPoint& aABPosition ) const wxPoint xyPos = aABPosition; if( m_mirrorA ) - NEGATE( xyPos.x ); + xyPos.x *= -1; if( !m_mirrorB ) - NEGATE( xyPos.y ); + xyPos.y *= -1; double rotation = m_lyrRotation * 10 + m_imageParams->m_ImageRotation * 10; @@ -153,7 +153,7 @@ wxPoint GERBER_DRAW_ITEM::GetXYPosition( const wxPoint& aABPosition ) const xyPos -= m_layerOffset + m_imageParams->m_ImageOffset; if( m_swapAxis ) - EXCHG( xyPos.x, xyPos.y ); + std::swap( xyPos.x, xyPos.y ); return xyPos - m_imageParams->m_ImageJustifyOffset; } @@ -344,7 +344,7 @@ void GERBER_DRAW_ITEM::Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, GR_DRAWMODE aDra if( !isDark ) { // draw in background color ("negative" color) - EXCHG( color, alt_color ); + std::swap( color, alt_color ); } GRSetDrawMode( aDC, aDrawMode ); @@ -470,7 +470,7 @@ void GERBER_DRAW_ITEM::ConvertSegmentToPolygon( ) // make calculations more easy if ensure start.x < end.x // (only 2 quadrants to consider) if( start.x > end.x ) - EXCHG( start, end ); + std::swap( start, end ); // calculate values relative to start point: wxPoint delta = end - start; @@ -481,7 +481,7 @@ void GERBER_DRAW_ITEM::ConvertSegmentToPolygon( ) bool change = delta.y < 0; if( change ) - NEGATE( delta.y); + delta.y *= -1; // Now create the full polygon. // Due to previous changes, the shape is always something like @@ -516,7 +516,7 @@ void GERBER_DRAW_ITEM::ConvertSegmentToPolygon( ) for( unsigned ii = 0; ii < m_PolyCorners.size(); ii++ ) { if( change ) - NEGATE( m_PolyCorners[ii].y); + m_PolyCorners[ii].y *= -1; m_PolyCorners[ii] += start; } diff --git a/gerbview/export_to_pcbnew.cpp b/gerbview/export_to_pcbnew.cpp index fc81b54..01b39db 100644 --- a/gerbview/export_to_pcbnew.cpp +++ b/gerbview/export_to_pcbnew.cpp @@ -291,8 +291,8 @@ void GBR_TO_PCB_EXPORTER::export_non_copper_item( GERBER_DRAW_ITEM* aGbrItem, LA } // Reverse Y axis: - NEGATE( seg_start.y ); - NEGATE( seg_end.y ); + seg_start.y *= -1; + seg_end.y *= -1; writePcbLineItem( isArc, seg_start, seg_end, aGbrItem->m_Size.x, aLayer, angle ); } @@ -327,8 +327,8 @@ void GBR_TO_PCB_EXPORTER::export_segline_copper_item( GERBER_DRAW_ITEM* aGbrItem seg_end = aGbrItem->m_End; // Reverse Y axis: - NEGATE( seg_start.y ); - NEGATE( seg_end.y ); + seg_start.y *= -1; + seg_end.y *= -1; writeCopperLineItem( seg_start, seg_end, aGbrItem->m_Size.x, aLayer ); } @@ -382,8 +382,8 @@ void GBR_TO_PCB_EXPORTER::export_segarc_copper_item( GERBER_DRAW_ITEM* aGbrItem, -RAD2DECIDEG( DELTA_ANGLE * ii ) ); seg_end = curr_end; // Reverse Y axis: - NEGATE( seg_start.y ); - NEGATE( seg_end.y ); + seg_start.y *= -1; + seg_end.y *= -1; writeCopperLineItem( seg_start, seg_end, aGbrItem->m_Size.x, aLayer ); curr_start = curr_end; } @@ -393,8 +393,8 @@ void GBR_TO_PCB_EXPORTER::export_segarc_copper_item( GERBER_DRAW_ITEM* aGbrItem, seg_start = curr_start; seg_end = end; // Reverse Y axis: - NEGATE( seg_start.y ); - NEGATE( seg_end.y ); + seg_start.y *= -1; + seg_end.y *= -1; writeCopperLineItem( seg_start, seg_end, aGbrItem->m_Size.x, aLayer ); } } @@ -419,7 +419,7 @@ void GBR_TO_PCB_EXPORTER::export_flashed_copper_item( GERBER_DRAW_ITEM* aGbrItem wxPoint via_pos = aGbrItem->m_Start; int width = (aGbrItem->m_Size.x + aGbrItem->m_Size.y) / 2; // Reverse Y axis: - NEGATE( via_pos.y ); + via_pos.y *= -1; // Layers are Front to Back fprintf( m_fp, " (via (at %s %s) (size %s)", diff --git a/gerbview/rs274d.cpp b/gerbview/rs274d.cpp index 1207616..bb81385 100644 --- a/gerbview/rs274d.cpp +++ b/gerbview/rs274d.cpp @@ -252,7 +252,7 @@ static void fillArcGBRITEM( GERBER_DRAW_ITEM* aGbrItem, int Dcode_index, int aL * ---S--- * 3 | 4 */ - NEGATE( center.x); + center.x *= -1; } else if( (delta.x >= 0) && (delta.y < 0) ) { @@ -270,8 +270,8 @@ static void fillArcGBRITEM( GERBER_DRAW_ITEM* aGbrItem, int Dcode_index, int aL * ---S--- * C | 4 */ - NEGATE( center.x); - NEGATE( center.y); + center.x *= -1; + center.y *= -1; } else { @@ -280,7 +280,7 @@ static void fillArcGBRITEM( GERBER_DRAW_ITEM* aGbrItem, int Dcode_index, int aL * ---S--- * E | C */ - NEGATE( center.y); + center.y *= -1; } // Due to your draw arc function, we need this: diff --git a/include/macros.h b/include/macros.h index 8bdcafa..79e1508 100644 --- a/include/macros.h +++ b/include/macros.h @@ -84,23 +84,9 @@ static inline const wxChar* GetChars( const wxString& s ) #endif } -// This really needs a function? well, it is used *a lot* of times -template <class T> inline void NEGATE( T &x ) { x = -x; } - /// # of elements in an array #define DIM( x ) unsigned( sizeof(x) / sizeof( (x)[0] ) ) // not size_t -/// Exchange two values -// std::swap works only with arguments of the same type (which is saner); -// here the compiler will figure out what to do (I hope to get rid of -// this soon or late) -template <class T, class T2> inline void EXCHG( T& a, T2& b ) -{ - T temp = a; - a = b; - b = temp; -} - /** * Function Clamp * limits @a value within the range @a lower <= @a value <= @a upper. It will work diff --git a/pcbnew/autorouter/auto_place_footprints.cpp b/pcbnew/autorouter/auto_place_footprints.cpp index 277aaca..d6d25a1 100644 --- a/pcbnew/autorouter/auto_place_footprints.cpp +++ b/pcbnew/autorouter/auto_place_footprints.cpp @@ -936,7 +936,7 @@ double compute_Ratsnest_PlaceModule( BOARD* aBrd ) // ttry to have always dx >= dy to calculate the cost of the rastsnet if( dx < dy ) - EXCHG( dx, dy ); + std::swap( dx, dy ); // Cost of the connection = lenght + penalty due to the slope // dx is the biggest lenght relative to the X or Y axis diff --git a/pcbnew/autorouter/graphpcb.cpp b/pcbnew/autorouter/graphpcb.cpp index 0aacee6..259b859 100644 --- a/pcbnew/autorouter/graphpcb.cpp +++ b/pcbnew/autorouter/graphpcb.cpp @@ -114,7 +114,7 @@ void PlacePad( D_PAD* aPad, int color, int marge, int op_logic ) // Orientation turned 90 deg. if( aPad->GetOrientation() == 900 || aPad->GetOrientation() == 2700 ) { - EXCHG( dx, dy ); + std::swap( dx, dy ); } TraceFilledRectangle( shape_pos.x - dx, shape_pos.y - dy, @@ -345,7 +345,7 @@ void TracePcbLine( int x0, int y0, int x1, int y1, LAYER_NUM layer, int color, i if( x0 == x1 ) // Vertical. { if( y1 < y0 ) - EXCHG( y0, y1 ); + std::swap( y0, y1 ); dy = y0 / RoutingMatrix.m_GridRouting; lim = y1 / RoutingMatrix.m_GridRouting; @@ -372,7 +372,7 @@ void TracePcbLine( int x0, int y0, int x1, int y1, LAYER_NUM layer, int color, i if( y0 == y1 ) // Horizontal { if( x1 < x0 ) - EXCHG( x0, x1 ); + std::swap( x0, x1 ); dx = x0 / RoutingMatrix.m_GridRouting; lim = x1 / RoutingMatrix.m_GridRouting; @@ -401,7 +401,8 @@ void TracePcbLine( int x0, int y0, int x1, int y1, LAYER_NUM layer, int color, i { if( x1 < x0 ) { - EXCHG( x1, x0 ); EXCHG( y1, y0 ); + std::swap( x1, x0 ); + std::swap( y1, y0 ); } dx = x0 / RoutingMatrix.m_GridRouting; @@ -438,8 +439,8 @@ void TracePcbLine( int x0, int y0, int x1, int y1, LAYER_NUM layer, int color, i { if( y1 < y0 ) { - EXCHG( x1, x0 ); - EXCHG( y1, y0 ); + std::swap( x1, x0 ); + std::swap( y1, y0 ); } dy = y0 / RoutingMatrix.m_GridRouting; @@ -643,8 +644,8 @@ void DrawSegmentQcq( int ux0, int uy0, int ux1, int uy1, int lg, LAYER_NUM layer // Make coordinate ux1 tj > ux0 to simplify calculations if( ux1 < ux0 ) { - EXCHG( ux1, ux0 ); - EXCHG( uy1, uy0 ); + std::swap( ux1, ux0 ); + std::swap( uy1, uy0 ); } // Calculating the incrementing the Y axis diff --git a/pcbnew/autorouter/solve.cpp b/pcbnew/autorouter/solve.cpp index dbc9c68..c10e57f 100644 --- a/pcbnew/autorouter/solve.cpp +++ b/pcbnew/autorouter/solve.cpp @@ -484,7 +484,7 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe, int py = pt_cur_ch->m_PadStart->GetPosition().y; if( ( ( int( pt_cur_ch->m_PadStart->GetOrientation() ) / 900 ) & 1 ) != 0 ) - EXCHG( dx, dy ); + std::swap( dx, dy ); if( ( abs( cX - px ) > dx ) || ( abs( cY - py ) > dy ) ) goto end_of_route; @@ -499,7 +499,7 @@ static int Autoroute_One_Track( PCB_EDIT_FRAME* pcbframe, py = pt_cur_ch->m_PadEnd->GetPosition().y; if( ( ( int( pt_cur_ch->m_PadEnd->GetOrientation() ) / 900) & 1 ) != 0 ) - EXCHG( dx, dy ); + std::swap( dx, dy ); if( ( abs( cX - px ) > dx ) || ( abs( cY - py ) > dy ) ) goto end_of_route; diff --git a/pcbnew/block_module_editor.cpp b/pcbnew/block_module_editor.cpp index 047dd86..972de85 100644 --- a/pcbnew/block_module_editor.cpp +++ b/pcbnew/block_module_editor.cpp @@ -606,11 +606,11 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset, bool force_all ) pad->SetX0( pad->GetPosition().x ); tmp = pad->GetOffset(); - NEGATE( tmp.x ); + tmp.x = -tmp.x; pad->SetOffset( tmp ); tmpz = pad->GetDelta(); - NEGATE( tmpz.x ); + tmpz.x = -tmpz.x; pad->SetDelta( tmpz ); pad->SetOrientation( 1800 - pad->GetOrientation() ); diff --git a/pcbnew/board_items_to_polygon_shape_transform.cpp b/pcbnew/board_items_to_polygon_shape_transform.cpp index a326945..f4623c2 100644 --- a/pcbnew/board_items_to_polygon_shape_transform.cpp +++ b/pcbnew/board_items_to_polygon_shape_transform.cpp @@ -258,7 +258,7 @@ void MODULE::TransformGraphicShapesWithClearanceToPolygonSet( wxSize size = textmod->GetSize(); if( textmod->IsMirrored() ) - NEGATE( size.x ); + size.x = -size.x; DrawGraphicText( NULL, NULL, textmod->GetTextPosition(), BLACK, textmod->GetShownText(), textmod->GetDrawRotation(), size, @@ -380,7 +380,7 @@ void TEXTE_PCB::TransformShapeWithClearanceToPolygonSet( wxSize size = GetSize(); if( IsMirrored() ) - NEGATE( size.x ); + size.x = -size.x; s_cornerBuffer = &aCornerBuffer; s_textWidth = GetThickness() + ( 2 * aClearanceValue ); @@ -886,9 +886,9 @@ void CreateThermalReliefPadPolygon( CPOLYGONS_LIST& aCornerBuffer, if( dx < dy ) { - EXCHG( dx, dy ); + std::swap( dx, dy ); supp_angle = 900; - EXCHG( copper_thickness.x, copper_thickness.y ); + std::swap( copper_thickness.x, copper_thickness.y ); } int deltasize = dx - dy; // = distance between shape position and the 2 demi-circle ends centre diff --git a/pcbnew/board_undo_redo.cpp b/pcbnew/board_undo_redo.cpp index fff523b..8e0a629 100644 --- a/pcbnew/board_undo_redo.cpp +++ b/pcbnew/board_undo_redo.cpp @@ -225,7 +225,7 @@ void BOARD_ITEM::SwapData( BOARD_ITEM* aImage ) TRACK* track = (TRACK*) this; TRACK* image = (TRACK*) aImage; - EXCHG(track->m_Layer, image->m_Layer ); + std::swap(track->m_Layer, image->m_Layer ); // swap start, end, width and shape for track and image. wxPoint exchp = track->GetStart(); @@ -258,7 +258,7 @@ void BOARD_ITEM::SwapData( BOARD_ITEM* aImage ) if( viaimage->IsDrillDefault() ) itmp = -1; - EXCHG(itmp, drilltmp ); + std::swap(itmp, drilltmp ); if( drilltmp > 0 ) via->SetDrill( drilltmp ); diff --git a/pcbnew/class_board.cpp b/pcbnew/class_board.cpp index 862ab31..579f535 100644 --- a/pcbnew/class_board.cpp +++ b/pcbnew/class_board.cpp @@ -1409,7 +1409,7 @@ ZONE_CONTAINER* BOARD::HitTestForAnyFilledArea( const wxPoint& aRefPos, aEndLayer = aStartLayer; if( aEndLayer < aStartLayer ) - EXCHG( aEndLayer, aStartLayer ); + std::swap( aEndLayer, aStartLayer ); for( unsigned ia = 0; ia < m_ZoneDescriptorList.size(); ia++ ) { diff --git a/pcbnew/class_drawsegment.cpp b/pcbnew/class_drawsegment.cpp index 53c2f4b..01396ff 100644 --- a/pcbnew/class_drawsegment.cpp +++ b/pcbnew/class_drawsegment.cpp @@ -137,7 +137,7 @@ void DRAWSEGMENT::Flip( const wxPoint& aCentre ) if( m_Shape == S_ARC ) { - NEGATE( m_Angle ); + m_Angle *= -1; } SetLayer( FlipLayer( GetLayer() ) ); @@ -294,12 +294,12 @@ void DRAWSEGMENT::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode, if( !panel->GetPrintMirrored() ) { if( StAngle > EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } else // Mirrored mode: arc orientation is reversed { if( StAngle < EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } if( filled ) diff --git a/pcbnew/class_edge_mod.cpp b/pcbnew/class_edge_mod.cpp index 041d3cc..c79daa2 100644 --- a/pcbnew/class_edge_mod.cpp +++ b/pcbnew/class_edge_mod.cpp @@ -197,12 +197,12 @@ void EDGE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode, if( !panel->GetPrintMirrored() ) { if( StAngle > EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } else // Mirrored mode: arc orientation is reversed { if( StAngle < EndAngle ) - EXCHG( StAngle, EndAngle ); + std::swap( StAngle, EndAngle ); } if( filled ) @@ -311,15 +311,15 @@ void EDGE_MODULE::Flip( const wxPoint& aCentre ) pt.y += aCentre.y; SetEnd( pt ); - NEGATE( m_Start0.y ); - NEGATE( m_End0.y ); + m_Start0.y = -m_Start0.y; + m_End0.y = -m_End0.y; break; case S_POLYGON: // polygon corners coordinates are always relative to the // footprint position, orientation 0 for( unsigned ii = 0; ii < m_PolyPoints.size(); ii++ ) - NEGATE( m_PolyPoints[ii].y ); + m_PolyPoints[ii].y = -m_PolyPoints[ii].y; } SetLayer( FlipLayer( GetLayer() ) ); diff --git a/pcbnew/class_module.cpp b/pcbnew/class_module.cpp index e8e6944..093df74 100644 --- a/pcbnew/class_module.cpp +++ b/pcbnew/class_module.cpp @@ -954,7 +954,7 @@ void MODULE::Flip( const wxPoint& aCentre ) SetLayer( FlipLayer( GetLayer() ) ); // Reverse mirror orientation. - NEGATE( m_Orient ); + m_Orient = -m_Orient; NORMALIZE_ANGLE_POS( m_Orient ); // Mirror pads to other side of board about the x axis, i.e. vertically. diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index 9845a72..ddfef77 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -285,9 +285,9 @@ void D_PAD::Flip( const wxPoint& aCentre ) SetY( y ); - NEGATE( m_Pos0.y ); - NEGATE( m_Offset.y ); - NEGATE( m_DeltaSize.y ); + m_Pos0.y = -m_Pos0.y; + m_Offset.y = -m_Offset.y; + m_DeltaSize.y = -m_DeltaSize.y; SetOrientation( -GetOrientation() ); diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 0d0723b..3aa14f3 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -412,7 +412,7 @@ void VIA::SetLayerPair( LAYER_ID aTopLayer, LAYER_ID aBottomLayer ) } if( aBottomLayer < aTopLayer ) - EXCHG( aBottomLayer, aTopLayer ); + std::swap( aBottomLayer, aTopLayer ); m_Layer = aTopLayer; m_BottomLayer = aBottomLayer; @@ -430,7 +430,7 @@ void VIA::LayerPair( LAYER_ID* top_layer, LAYER_ID* bottom_layer ) const t_layer = m_Layer; if( b_layer < t_layer ) - EXCHG( b_layer, t_layer ); + std::swap( b_layer, t_layer ); } if( top_layer ) @@ -1502,8 +1502,8 @@ int TRACK::GetEndSegments( int aCount, TRACK** aStartTrace, TRACK** aEndTrace ) if( EndPad ) Track->SetState( BEGIN_ONPAD, true ); - EXCHG( Track->m_Start, Track->m_End ); - EXCHG( Track->start, Track->end ); + std::swap( Track->m_Start, Track->m_End ); + std::swap( Track->start, Track->end ); ok = 1; return ok; } @@ -1546,8 +1546,8 @@ int TRACK::GetEndSegments( int aCount, TRACK** aStartTrace, TRACK** aEndTrace ) if( EndPad ) Track->SetState( BEGIN_ONPAD, true ); - EXCHG( Track->m_Start, Track->m_End ); - EXCHG( Track->start, Track->end ); + std::swap( Track->m_Start, Track->m_End ); + std::swap( Track->start, Track->end ); break; case 1: diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 8c52288..84a592a 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -773,8 +773,7 @@ void ZONE_CONTAINER::Mirror( const wxPoint& mirror_ref ) { for( unsigned ic = 0; ic < m_Poly->m_CornersList.GetCornersCount(); ic++ ) { - int py = m_Poly->m_CornersList.GetY( ic ) - mirror_ref.y; - NEGATE( py ); + int py = mirror_ref.y - m_Poly->m_CornersList.GetY( ic ); m_Poly->m_CornersList.SetY( ic, py + mirror_ref.y ); } @@ -783,19 +782,14 @@ void ZONE_CONTAINER::Mirror( const wxPoint& mirror_ref ) /* mirror filled areas: */ for( unsigned ic = 0; ic < m_FilledPolysList.GetCornersCount(); ic++ ) { - int py = m_FilledPolysList.GetY( ic ) - mirror_ref.y; - NEGATE( py ); + int py = mirror_ref.y - m_FilledPolysList.GetY( ic ); m_FilledPolysList.SetY( ic, py + mirror_ref.y ); } for( unsigned ic = 0; ic < m_FillSegmList.size(); ic++ ) { - m_FillSegmList[ic].m_Start.y -= mirror_ref.y; - NEGATE( m_FillSegmList[ic].m_Start.y ); - m_FillSegmList[ic].m_Start.y += mirror_ref.y; - m_FillSegmList[ic].m_End.y -= mirror_ref.y; - NEGATE( m_FillSegmList[ic].m_End.y ); - m_FillSegmList[ic].m_End.y += mirror_ref.y; + m_FillSegmList[ic].m_Start.y = 2 * mirror_ref.y - m_FillSegmList[ic].m_Start.y; + m_FillSegmList[ic].m_End.y = 2 * mirror_ref.y - m_FillSegmList[ic].m_End.y; } } diff --git a/pcbnew/connect.cpp b/pcbnew/connect.cpp index b52166c..848c30b 100644 --- a/pcbnew/connect.cpp +++ b/pcbnew/connect.cpp @@ -502,7 +502,7 @@ int CONNECTIONS::Merge_PadsSubNets( int aOldSubNet, int aNewSubNet ) return 0; if( (aOldSubNet > 0) && (aOldSubNet < aNewSubNet) ) - EXCHG( aOldSubNet, aNewSubNet ); + std::swap( aOldSubNet, aNewSubNet ); // Examine connections between intersecting pads for( unsigned ii = 0; ii < m_sortedPads.size(); ii++ ) @@ -532,7 +532,7 @@ int CONNECTIONS::Merge_SubNets( int aOldSubNet, int aNewSubNet ) return 0; if( (aOldSubNet > 0) && (aOldSubNet < aNewSubNet) ) - EXCHG( aOldSubNet, aNewSubNet ); + std::swap( aOldSubNet, aNewSubNet ); curr_track = (TRACK*)m_firstTrack; diff --git a/pcbnew/dialogs/dialog_pad_properties.cpp b/pcbnew/dialogs/dialog_pad_properties.cpp index 2cbc4cb..8700a89 100644 --- a/pcbnew/dialogs/dialog_pad_properties.cpp +++ b/pcbnew/dialogs/dialog_pad_properties.cpp @@ -350,11 +350,11 @@ void DIALOG_PAD_PROPERTIES::initValues() if( m_isFlipped ) { wxPoint pt = m_dummyPad->GetOffset(); - NEGATE( pt.y ); + pt.y *= -1; m_dummyPad->SetOffset( pt ); wxSize sz = m_dummyPad->GetDelta(); - NEGATE( sz.y ); + sz.y *= -1; m_dummyPad->SetDelta( sz ); // flip pad's layers @@ -457,7 +457,7 @@ void DIALOG_PAD_PROPERTIES::initValues() angle = m_currentPad->GetOrientation() - module->GetOrientation(); if( m_isFlipped ) - NEGATE( angle ); + angle *= -1; m_dummyPad->SetOrientation( angle ); } diff --git a/pcbnew/dragsegm.cpp b/pcbnew/dragsegm.cpp index 3b8a89f..1aa8887 100644 --- a/pcbnew/dragsegm.cpp +++ b/pcbnew/dragsegm.cpp @@ -126,7 +126,7 @@ void DRAG_SEGM_PICKER::SetTrackEndsCoordinates( wxPoint aOffset ) RotatePoint(&padoffset, curr_rot_offset); if( flip ) - NEGATE( padoffset.y ); + padoffset.y *= -1; m_Track->SetStart( m_Pad_Start->GetPosition() - aOffset + padoffset ); } @@ -139,7 +139,7 @@ void DRAG_SEGM_PICKER::SetTrackEndsCoordinates( wxPoint aOffset ) RotatePoint( &padoffset, curr_rot_offset ); if( flip ) - NEGATE( padoffset.y ); + padoffset.y *= -1; m_Track->SetEnd( m_Pad_End->GetPosition() - aOffset + padoffset ); } diff --git a/pcbnew/drc_clearance_test_functions.cpp b/pcbnew/drc_clearance_test_functions.cpp index ded598c..3973337 100644 --- a/pcbnew/drc_clearance_test_functions.cpp +++ b/pcbnew/drc_clearance_test_functions.cpp @@ -213,7 +213,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads ) refvia->LayerPair( &layer1, &layer2 ); if( layer1 > layer2 ) - EXCHG( layer1, layer2 ); + std::swap( layer1, layer2 ); if( layer2 == B_Cu && layer1 == m_pcb->GetDesignSettings().GetCopperLayerCount() - 2 ) err = false; @@ -416,7 +416,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads ) // Ensure segStartPoint.x <= segEndPoint.x if( segStartPoint.x > segEndPoint.x ) - EXCHG( segStartPoint.x, segEndPoint.x ); + std::swap( segStartPoint.x, segEndPoint.x ); if( segStartPoint.x > (-w_dist) && segStartPoint.x < (m_segmLength + w_dist) ) /* possible error drc */ { @@ -480,7 +480,7 @@ bool DRC::doTrackDrc( TRACK* aRefSeg, TRACK* aStart, bool testPads ) // Test if segments are crossing if( segStartPoint.y > segEndPoint.y ) - EXCHG( segStartPoint.y, segEndPoint.y ); + std::swap( segStartPoint.y, segEndPoint.y ); if( (segStartPoint.y < 0) && (segEndPoint.y > 0) ) { @@ -633,7 +633,7 @@ bool DRC::checkClearancePadToPad( D_PAD* aRefPad, D_PAD* aPad ) if( swap_pads ) { - EXCHG( aRefPad, aPad ); + std::swap( aRefPad, aPad ); relativePadPos = -relativePadPos; } @@ -678,7 +678,7 @@ bool DRC::checkClearancePadToPad( D_PAD* aRefPad, D_PAD* aPad ) { if( (pad_angle == 900) || (pad_angle == 2700) ) { - EXCHG( size.x, size.y ); + std::swap( size.x, size.y ); } // Test DRC: @@ -877,7 +877,7 @@ bool DRC::checkClearanceSegmToPad( const D_PAD* aPad, int aSegmentWidth, int aMi */ if( padHalfsize.x > padHalfsize.y ) { - EXCHG( padHalfsize.x, padHalfsize.y ); + std::swap( padHalfsize.x, padHalfsize.y ); orient = AddAngles( orient, 900 ); } @@ -1061,7 +1061,7 @@ bool DRC::checkLine( wxPoint aSegStart, wxPoint aSegEnd ) int temp; if( aSegStart.x > aSegEnd.x ) - EXCHG( aSegStart, aSegEnd ); + std::swap( aSegStart, aSegEnd ); if( (aSegEnd.x < m_xcliplo) || (aSegStart.x > m_xcliphi) ) { diff --git a/pcbnew/exporters/export_vrml.cpp b/pcbnew/exporters/export_vrml.cpp index 0dce853..28f5037 100644 --- a/pcbnew/exporters/export_vrml.cpp +++ b/pcbnew/exporters/export_vrml.cpp @@ -633,7 +633,7 @@ static void export_vrml_pcbtext( MODEL_VRML& aModel, TEXTE_PCB* text ) wxSize size = text->GetSize(); if( text->IsMirrored() ) - NEGATE( size.x ); + size.x = -size.x; EDA_COLOR_T color = BLACK; // not actually used, but needed by DrawGraphicText @@ -929,7 +929,7 @@ static void export_vrml_text_module( TEXTE_MODULE* module ) wxSize size = module->GetSize(); if( module->IsMirrored() ) - NEGATE( size.x ); // Text is mirrored + size.x = -size.x; // Text is mirrored model_vrml->s_text_layer = module->GetLayer(); model_vrml->s_text_width = module->GetThickness(); @@ -1279,8 +1279,8 @@ static void export_vrml_module( MODEL_VRML& aModel, BOARD* aPcb, MODULE* aModule if( isFlipped ) { rotx += 180.0; - NEGATE( roty ); - NEGATE( rotz ); + roty *= -1; + rotz *= -1; } // Do some quaternion munching @@ -1313,9 +1313,9 @@ static void export_vrml_module( MODEL_VRML& aModel, BOARD* aPcb, MODULE* aModule double offsetz = vrmlm->m_MatPosition.z * IU_PER_MILS * 1000.0; if( isFlipped ) - NEGATE( offsetz ); + offsetz *= -1; else // In normal mode, Y axis is reversed in Pcbnew. - NEGATE( offsety ); + offsety *= -1; RotatePoint( &offsetx, &offsety, aModule->GetOrientation() ); diff --git a/pcbnew/exporters/gendrill_Excellon_writer.cpp b/pcbnew/exporters/gendrill_Excellon_writer.cpp index 149f13e..7b2f6e9 100644 --- a/pcbnew/exporters/gendrill_Excellon_writer.cpp +++ b/pcbnew/exporters/gendrill_Excellon_writer.cpp @@ -619,7 +619,7 @@ void EXCELLON_WRITER::BuildHolesList( int aFirstLayer, if( (aFirstLayer >= 0) && (aLastLayer >= 0) ) { if( aFirstLayer > aLastLayer ) - EXCHG( aFirstLayer, aLastLayer ); + std::swap( aFirstLayer, aLastLayer ); } if ( aGenerateNPTH_list && aMerge_PTH_NPTH ) diff --git a/pcbnew/pad_edition_functions.cpp b/pcbnew/pad_edition_functions.cpp index f6cd9f3..5d97c5a 100644 --- a/pcbnew/pad_edition_functions.cpp +++ b/pcbnew/pad_edition_functions.cpp @@ -245,21 +245,21 @@ void PCB_BASE_FRAME::RotatePad( D_PAD* aPad, wxDC* DC ) module->Draw( m_canvas, DC, GR_XOR ); wxSize sz = aPad->GetSize(); - EXCHG( sz.x, sz.y ); + std::swap( sz.x, sz.y ); aPad->SetSize( sz ); sz = aPad->GetDrillSize(); - EXCHG( sz.x, sz.y ); + std::swap( sz.x, sz.y ); aPad->SetDrillSize( sz ); wxPoint pt = aPad->GetOffset(); - EXCHG( pt.x, pt.y ); + std::swap( pt.x, pt.y ); aPad->SetOffset( pt ); aPad->SetOffset( wxPoint( aPad->GetOffset().x, -aPad->GetOffset().y ) ); sz = aPad->GetDelta(); - EXCHG( sz.x, sz.y ); + std::swap( sz.x, sz.y ); sz.x = -sz.x; aPad->SetDelta( sz ); diff --git a/pcbnew/pcb_painter.cpp b/pcbnew/pcb_painter.cpp index bd7775b..cd814a5 100644 --- a/pcbnew/pcb_painter.cpp +++ b/pcbnew/pcb_painter.cpp @@ -465,7 +465,7 @@ void PCB_PAINTER::draw( const D_PAD* aPad, int aLayer ) { orientation += 900.0; size = padsize.x; - EXCHG( padsize.x, padsize.y ); + std::swap( padsize.x, padsize.y ); } else if( padsize.x == padsize.y ) { diff --git a/pcbnew/plot_brditems_plotter.cpp b/pcbnew/plot_brditems_plotter.cpp index 887ff9c..99b600a 100644 --- a/pcbnew/plot_brditems_plotter.cpp +++ b/pcbnew/plot_brditems_plotter.cpp @@ -223,7 +223,7 @@ void BRDITEMS_PLOTTER::PlotTextModule( TEXTE_MODULE* pt_texte, EDA_COLOR_T aColo thickness = pt_texte->GetThickness(); if( pt_texte->IsMirrored() ) - NEGATE( size.x ); // Text is mirrored + size.x = -size.x; // Text is mirrored // Non bold texts thickness is clamped at 1/6 char size by the low level draw function. // but in Pcbnew we do not manage bold texts and thickness up to 1/4 char size diff --git a/pcbnew/ratsnest.cpp b/pcbnew/ratsnest.cpp index f1eb0c7..b388085 100644 --- a/pcbnew/ratsnest.cpp +++ b/pcbnew/ratsnest.cpp @@ -374,7 +374,7 @@ static int tst_links_between_blocks( NETINFO_ITEM* aNetinfo, min_id = best_link->m_PadEnd->GetSubRatsnest(); if( min_id > subratsnest_id ) - EXCHG( min_id, subratsnest_id ); + std::swap( min_id, subratsnest_id ); // Merge the 2 blocks in one sub ratsnest: for( unsigned ii = 0; ii < aNetinfo->m_PadInNetList.size(); ii++ ) diff --git a/pcbnew/specctra_export.cpp b/pcbnew/specctra_export.cpp index 7a0f08d..401b0ea 100644 --- a/pcbnew/specctra_export.cpp +++ b/pcbnew/specctra_export.cpp @@ -866,7 +866,7 @@ PADSTACK* SPECCTRA_DB::makeVia( const ::VIA* aVia ) int botLayer = kicadLayer2pcb[botLayerNum]; if( topLayer > botLayer ) - EXCHG( topLayer, botLayer ); + std::swap( topLayer, botLayer ); return makeVia( aVia->GetWidth(), aVia->GetDrillValue(), topLayer, botLayer ); } @@ -1106,7 +1106,7 @@ void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) wxASSERT( close_enough( prevPt, graphic->GetArcEnd(), prox ) ); angle = -angle; - EXCHG( start, end ); + std::swap( start, end ); } wxPoint nextPt; @@ -1241,7 +1241,7 @@ void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) wxASSERT( close_enough( prevPt, graphic->GetArcEnd(), prox ) ); angle = -angle; - EXCHG( start, end ); + std::swap( start, end ); } wxPoint nextPt; diff --git a/pcbnew/zones_polygons_test_connections.cpp b/pcbnew/zones_polygons_test_connections.cpp index 50127d0..3f45b06 100644 --- a/pcbnew/zones_polygons_test_connections.cpp +++ b/pcbnew/zones_polygons_test_connections.cpp @@ -392,7 +392,7 @@ void Merge_SubNets_Connected_By_CopperAreas( BOARD* aPcb, int aNetcode ) // Here we have 2 items connected by the same area have 2 differents subnets: merge subnets if( (subnet > old_subnet) || ( subnet <= 0) ) - EXCHG( subnet, old_subnet ); + std::swap( subnet, old_subnet ); for( unsigned jj = 0; jj < Candidates.size(); jj++ ) {
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp