Loading common/CMakeLists.txt +0 −1 Original line number Original line Diff line number Diff line Loading @@ -106,7 +106,6 @@ set(PCB_COMMON_SRCS ../pcbnew/class_marker_pcb.cpp ../pcbnew/class_marker_pcb.cpp ../pcbnew/class_mire.cpp ../pcbnew/class_mire.cpp ../pcbnew/class_module.cpp ../pcbnew/class_module.cpp ../pcbnew/class_module_transform_functions.cpp ../pcbnew/class_pad.cpp ../pcbnew/class_pad.cpp ../pcbnew/class_pad_draw_functions.cpp ../pcbnew/class_pad_draw_functions.cpp ../pcbnew/class_pcb_text.cpp ../pcbnew/class_pcb_text.cpp Loading common/pcbcommon.cpp +112 −0 Original line number Original line Diff line number Diff line Loading @@ -72,3 +72,115 @@ int g_PadCMPColor = RED; */ */ DLIST<TRACK> g_CurrentTrackList; DLIST<TRACK> g_CurrentTrackList; LAYER_NUM FlipLayer( LAYER_NUM oldlayer ) { switch( oldlayer ) { case LAYER_N_BACK: return LAYER_N_FRONT; case LAYER_N_FRONT: return LAYER_N_BACK; case SILKSCREEN_N_BACK: return SILKSCREEN_N_FRONT; case SILKSCREEN_N_FRONT: return SILKSCREEN_N_BACK; case ADHESIVE_N_BACK: return ADHESIVE_N_FRONT; case ADHESIVE_N_FRONT: return ADHESIVE_N_BACK; case SOLDERMASK_N_BACK: return SOLDERMASK_N_FRONT; case SOLDERMASK_N_FRONT: return SOLDERMASK_N_BACK; case SOLDERPASTE_N_BACK: return SOLDERPASTE_N_FRONT; case SOLDERPASTE_N_FRONT: return SOLDERPASTE_N_BACK; // No change for the other layers default: return oldlayer; } } LAYER_MSK FlipLayerMask( LAYER_MSK aMask ) { LAYER_MSK newMask; newMask = aMask & ~(LAYER_BACK | LAYER_FRONT | SILKSCREEN_LAYER_BACK | SILKSCREEN_LAYER_FRONT | ADHESIVE_LAYER_BACK | ADHESIVE_LAYER_FRONT | SOLDERMASK_LAYER_BACK | SOLDERMASK_LAYER_FRONT | SOLDERPASTE_LAYER_BACK | SOLDERPASTE_LAYER_FRONT | ADHESIVE_LAYER_BACK | ADHESIVE_LAYER_FRONT); if( aMask & LAYER_BACK ) newMask |= LAYER_FRONT; if( aMask & LAYER_FRONT ) newMask |= LAYER_BACK; if( aMask & SILKSCREEN_LAYER_BACK ) newMask |= SILKSCREEN_LAYER_FRONT; if( aMask & SILKSCREEN_LAYER_FRONT ) newMask |= SILKSCREEN_LAYER_BACK; if( aMask & ADHESIVE_LAYER_BACK ) newMask |= ADHESIVE_LAYER_FRONT; if( aMask & ADHESIVE_LAYER_FRONT ) newMask |= ADHESIVE_LAYER_BACK; if( aMask & SOLDERMASK_LAYER_BACK ) newMask |= SOLDERMASK_LAYER_FRONT; if( aMask & SOLDERMASK_LAYER_FRONT ) newMask |= SOLDERMASK_LAYER_BACK; if( aMask & SOLDERPASTE_LAYER_BACK ) newMask |= SOLDERPASTE_LAYER_FRONT; if( aMask & SOLDERPASTE_LAYER_FRONT ) newMask |= SOLDERPASTE_LAYER_BACK; if( aMask & ADHESIVE_LAYER_BACK ) newMask |= ADHESIVE_LAYER_FRONT; if( aMask & ADHESIVE_LAYER_FRONT ) newMask |= ADHESIVE_LAYER_BACK; return newMask; } LAYER_NUM ExtractLayer( LAYER_MSK aMask ) { if( aMask == NO_LAYERS ) return UNSELECTED_LAYER; LAYER_NUM candidate = UNDEFINED_LAYER; // Scan all the layers and take note of the first set; if other are // then found return UNDEFINED_LAYER for( LAYER_NUM i = FIRST_LAYER; i < NB_LAYERS; ++i ) { if( aMask & GetLayerMask( i ) ) { if( candidate == UNDEFINED_LAYER ) candidate = i; else return UNDEFINED_LAYER; } } return candidate; } include/layers_id_colors_and_visibility.h +25 −0 Original line number Original line Diff line number Diff line Loading @@ -124,6 +124,12 @@ typedef unsigned LAYER_MSK; #define ALL_CU_LAYERS 0x0000FFFF #define ALL_CU_LAYERS 0x0000FFFF #define INTERNAL_LAYERS 0x00007FFE #define INTERNAL_LAYERS 0x00007FFE #define EXTERNAL_LAYERS 0x00008001 #define EXTERNAL_LAYERS 0x00008001 #define BACK_LAYERS (LAYER_BACK | ADHESIVE_LAYER_BACK | \ SOLDERPASTE_LAYER_BACK | SILKSCREEN_LAYER_BACK | \ SOLDERMASK_LAYER_BACK) #define FRONT_LAYERS (LAYER_FRONT | ADHESIVE_LAYER_FRONT | \ SOLDERPASTE_LAYER_FRONT | SILKSCREEN_LAYER_FRONT | \ SOLDERMASK_LAYER_FRONT) #define NO_LAYERS 0x00000000 #define NO_LAYERS 0x00000000 /** return a one bit layer mask from a layer number /** return a one bit layer mask from a layer number Loading Loading @@ -271,5 +277,24 @@ inline bool IsBackLayer( LAYER_NUM aLayer ) aLayer == SOLDERPASTE_N_BACK ); aLayer == SOLDERPASTE_N_BACK ); } } /** * Function ReturnFlippedLayerNumber * @return the layer number after flipping an item * some (not all) layers: external copper, Mask, Paste, and solder * are swapped between front and back sides */ LAYER_NUM FlipLayer( LAYER_NUM oldlayer ); /** * Calculate the mask layer when flipping a footprint * BACK and FRONT copper layers, mask, paste, solder layers are swapped */ LAYER_MSK FlipLayerMask( LAYER_MSK aMask ); /** * Extract the set layer from a mask. Returns UNDEFINED_LAYER if more * than one is set or UNSELECTED_LAYER if none is */ LAYER_NUM ExtractLayer( LAYER_MSK aMask ); #endif // _LAYERS_ID_AND_VISIBILITY_H_ #endif // _LAYERS_ID_AND_VISIBILITY_H_ pcbnew/class_board.h +0 −8 Original line number Original line Diff line number Diff line Loading @@ -656,14 +656,6 @@ public: */ */ EDA_COLOR_T GetLayerColor( LAYER_NUM aLayer ) const; EDA_COLOR_T GetLayerColor( LAYER_NUM aLayer ) const; /** * Function ReturnFlippedLayerNumber * @return the layer number after flipping an item * some (not all) layers: external copper, Mask, Paste, and solder * are swapped between front and back sides */ static LAYER_NUM ReturnFlippedLayerNumber( LAYER_NUM oldlayer ); /** Functions to get some items count */ /** Functions to get some items count */ int GetNumSegmTrack() const; int GetNumSegmTrack() const; Loading pcbnew/class_dimension.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -176,7 +176,7 @@ void DIMENSION::Rotate( const wxPoint& aRotCentre, double aAngle ) void DIMENSION::Flip( const wxPoint& aCentre ) void DIMENSION::Flip( const wxPoint& aCentre ) { { Mirror( aCentre ); Mirror( aCentre ); SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); SetLayer( FlipLayer( GetLayer() ) ); } } Loading Loading
common/CMakeLists.txt +0 −1 Original line number Original line Diff line number Diff line Loading @@ -106,7 +106,6 @@ set(PCB_COMMON_SRCS ../pcbnew/class_marker_pcb.cpp ../pcbnew/class_marker_pcb.cpp ../pcbnew/class_mire.cpp ../pcbnew/class_mire.cpp ../pcbnew/class_module.cpp ../pcbnew/class_module.cpp ../pcbnew/class_module_transform_functions.cpp ../pcbnew/class_pad.cpp ../pcbnew/class_pad.cpp ../pcbnew/class_pad_draw_functions.cpp ../pcbnew/class_pad_draw_functions.cpp ../pcbnew/class_pcb_text.cpp ../pcbnew/class_pcb_text.cpp Loading
common/pcbcommon.cpp +112 −0 Original line number Original line Diff line number Diff line Loading @@ -72,3 +72,115 @@ int g_PadCMPColor = RED; */ */ DLIST<TRACK> g_CurrentTrackList; DLIST<TRACK> g_CurrentTrackList; LAYER_NUM FlipLayer( LAYER_NUM oldlayer ) { switch( oldlayer ) { case LAYER_N_BACK: return LAYER_N_FRONT; case LAYER_N_FRONT: return LAYER_N_BACK; case SILKSCREEN_N_BACK: return SILKSCREEN_N_FRONT; case SILKSCREEN_N_FRONT: return SILKSCREEN_N_BACK; case ADHESIVE_N_BACK: return ADHESIVE_N_FRONT; case ADHESIVE_N_FRONT: return ADHESIVE_N_BACK; case SOLDERMASK_N_BACK: return SOLDERMASK_N_FRONT; case SOLDERMASK_N_FRONT: return SOLDERMASK_N_BACK; case SOLDERPASTE_N_BACK: return SOLDERPASTE_N_FRONT; case SOLDERPASTE_N_FRONT: return SOLDERPASTE_N_BACK; // No change for the other layers default: return oldlayer; } } LAYER_MSK FlipLayerMask( LAYER_MSK aMask ) { LAYER_MSK newMask; newMask = aMask & ~(LAYER_BACK | LAYER_FRONT | SILKSCREEN_LAYER_BACK | SILKSCREEN_LAYER_FRONT | ADHESIVE_LAYER_BACK | ADHESIVE_LAYER_FRONT | SOLDERMASK_LAYER_BACK | SOLDERMASK_LAYER_FRONT | SOLDERPASTE_LAYER_BACK | SOLDERPASTE_LAYER_FRONT | ADHESIVE_LAYER_BACK | ADHESIVE_LAYER_FRONT); if( aMask & LAYER_BACK ) newMask |= LAYER_FRONT; if( aMask & LAYER_FRONT ) newMask |= LAYER_BACK; if( aMask & SILKSCREEN_LAYER_BACK ) newMask |= SILKSCREEN_LAYER_FRONT; if( aMask & SILKSCREEN_LAYER_FRONT ) newMask |= SILKSCREEN_LAYER_BACK; if( aMask & ADHESIVE_LAYER_BACK ) newMask |= ADHESIVE_LAYER_FRONT; if( aMask & ADHESIVE_LAYER_FRONT ) newMask |= ADHESIVE_LAYER_BACK; if( aMask & SOLDERMASK_LAYER_BACK ) newMask |= SOLDERMASK_LAYER_FRONT; if( aMask & SOLDERMASK_LAYER_FRONT ) newMask |= SOLDERMASK_LAYER_BACK; if( aMask & SOLDERPASTE_LAYER_BACK ) newMask |= SOLDERPASTE_LAYER_FRONT; if( aMask & SOLDERPASTE_LAYER_FRONT ) newMask |= SOLDERPASTE_LAYER_BACK; if( aMask & ADHESIVE_LAYER_BACK ) newMask |= ADHESIVE_LAYER_FRONT; if( aMask & ADHESIVE_LAYER_FRONT ) newMask |= ADHESIVE_LAYER_BACK; return newMask; } LAYER_NUM ExtractLayer( LAYER_MSK aMask ) { if( aMask == NO_LAYERS ) return UNSELECTED_LAYER; LAYER_NUM candidate = UNDEFINED_LAYER; // Scan all the layers and take note of the first set; if other are // then found return UNDEFINED_LAYER for( LAYER_NUM i = FIRST_LAYER; i < NB_LAYERS; ++i ) { if( aMask & GetLayerMask( i ) ) { if( candidate == UNDEFINED_LAYER ) candidate = i; else return UNDEFINED_LAYER; } } return candidate; }
include/layers_id_colors_and_visibility.h +25 −0 Original line number Original line Diff line number Diff line Loading @@ -124,6 +124,12 @@ typedef unsigned LAYER_MSK; #define ALL_CU_LAYERS 0x0000FFFF #define ALL_CU_LAYERS 0x0000FFFF #define INTERNAL_LAYERS 0x00007FFE #define INTERNAL_LAYERS 0x00007FFE #define EXTERNAL_LAYERS 0x00008001 #define EXTERNAL_LAYERS 0x00008001 #define BACK_LAYERS (LAYER_BACK | ADHESIVE_LAYER_BACK | \ SOLDERPASTE_LAYER_BACK | SILKSCREEN_LAYER_BACK | \ SOLDERMASK_LAYER_BACK) #define FRONT_LAYERS (LAYER_FRONT | ADHESIVE_LAYER_FRONT | \ SOLDERPASTE_LAYER_FRONT | SILKSCREEN_LAYER_FRONT | \ SOLDERMASK_LAYER_FRONT) #define NO_LAYERS 0x00000000 #define NO_LAYERS 0x00000000 /** return a one bit layer mask from a layer number /** return a one bit layer mask from a layer number Loading Loading @@ -271,5 +277,24 @@ inline bool IsBackLayer( LAYER_NUM aLayer ) aLayer == SOLDERPASTE_N_BACK ); aLayer == SOLDERPASTE_N_BACK ); } } /** * Function ReturnFlippedLayerNumber * @return the layer number after flipping an item * some (not all) layers: external copper, Mask, Paste, and solder * are swapped between front and back sides */ LAYER_NUM FlipLayer( LAYER_NUM oldlayer ); /** * Calculate the mask layer when flipping a footprint * BACK and FRONT copper layers, mask, paste, solder layers are swapped */ LAYER_MSK FlipLayerMask( LAYER_MSK aMask ); /** * Extract the set layer from a mask. Returns UNDEFINED_LAYER if more * than one is set or UNSELECTED_LAYER if none is */ LAYER_NUM ExtractLayer( LAYER_MSK aMask ); #endif // _LAYERS_ID_AND_VISIBILITY_H_ #endif // _LAYERS_ID_AND_VISIBILITY_H_
pcbnew/class_board.h +0 −8 Original line number Original line Diff line number Diff line Loading @@ -656,14 +656,6 @@ public: */ */ EDA_COLOR_T GetLayerColor( LAYER_NUM aLayer ) const; EDA_COLOR_T GetLayerColor( LAYER_NUM aLayer ) const; /** * Function ReturnFlippedLayerNumber * @return the layer number after flipping an item * some (not all) layers: external copper, Mask, Paste, and solder * are swapped between front and back sides */ static LAYER_NUM ReturnFlippedLayerNumber( LAYER_NUM oldlayer ); /** Functions to get some items count */ /** Functions to get some items count */ int GetNumSegmTrack() const; int GetNumSegmTrack() const; Loading
pcbnew/class_dimension.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -176,7 +176,7 @@ void DIMENSION::Rotate( const wxPoint& aRotCentre, double aAngle ) void DIMENSION::Flip( const wxPoint& aCentre ) void DIMENSION::Flip( const wxPoint& aCentre ) { { Mirror( aCentre ); Mirror( aCentre ); SetLayer( BOARD::ReturnFlippedLayerNumber( GetLayer() ) ); SetLayer( FlipLayer( GetLayer() ) ); } } Loading