Loading change_log.txt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ email address. ================================================================================ ================================================================================ + pcbnew + pcbnew Added dedicated Show() function for SEGVIA. Enhanced BOARD_ITEM::MenuText() Added dedicated Show() function for SEGVIA. Enhanced BOARD_ITEM::MenuText() for SEGVIA. Added to todo.txt. for SEGVIA. 2007-Sep-29 UPDATE Dick Hollenbeck <dick@softplc.com> 2007-Sep-29 UPDATE Dick Hollenbeck <dick@softplc.com> Loading include/pcbstruct.h +41 −40 Original line number Original line Diff line number Diff line Loading @@ -34,46 +34,6 @@ #define CHAIN 0x01 /* segment marque */ #define CHAIN 0x01 /* segment marque */ /*************************************/ /* constantes de gestion des couches */ /*************************************/ #define CUIVRE_LAYER 0x00000001 /* Bit layer cuivre */ #define LAYER_2 0x00000002 /* Bit layer 2 */ #define LAYER_3 0x00000004 /* Bit layer 3 */ #define LAYER_4 0x00000008 /* Bit layer 4 */ #define LAYER_5 0x00000010 /* Bit layer 5 */ #define LAYER_6 0x00000020 /* Bit layer 6 */ #define LAYER_7 0x00000040 /* Bit layer 7 */ #define LAYER_8 0x00000080 /* Bit layer 8 */ #define LAYER_9 0x00000100 /* Bit layer 9 */ #define LAYER_10 0x00000200 /* Bit layer 10 */ #define LAYER_11 0x00000400 /* Bit layer 11 */ #define LAYER_12 0x00000800 /* Bit layer 12 */ #define LAYER_13 0x00001000 /* Bit layer 13 */ #define LAYER_14 0x00002000 /* Bit layer 14 */ #define LAYER_15 0x00004000 /* Bit layer 15 */ #define CMP_LAYER 0x00008000 /* Bit layer cmp */ #define ADHESIVE_LAYER_CU 0x00010000 #define ADHESIVE_LAYER_CMP 0x00020000 #define SOLDERPASTE_LAYER_CU 0x00040000 #define SOLDERPASTE_LAYER_CMP 0x00080000 #define SILKSCREEN_LAYER_CU 0x00100000 #define SILKSCREEN_LAYER_CMP 0x00200000 #define SOLDERMASK_LAYER_CU 0x00400000 #define SOLDERMASK_LAYER_CMP 0x00800000 #define DRAW_LAYER 0x01000000 #define COMMENT_LAYER 0x02000000 #define ECO1_LAYER 0x04000000 #define ECO2_LAYER 0x08000000 #define EDGE_LAYER 0x10000000 // extra bits 0xE0000000 /* masques generaux : */ #define ALL_LAYERS 0x1FFFFFFF #define ALL_NO_CU_LAYERS 0x1FFF0000 #define ALL_CU_LAYERS 0x0000FFFF #define INTERNAL_LAYERS 0x00007FFE /* Bits layers internes */ #define EXTERNAL_LAYERS 0x00008001 /* Flags pour les couches cuivres */ /* Flags pour les couches cuivres */ /* numero des couches particulieres */ /* numero des couches particulieres */ #define LAYER_CUIVRE_N 0 #define LAYER_CUIVRE_N 0 Loading Loading @@ -115,6 +75,47 @@ #define LAYER_COUNT 32 #define LAYER_COUNT 32 /*************************************/ /* constantes de gestion des couches */ /*************************************/ #define CUIVRE_LAYER (1<<LAYER_CUIVRE_N) ///< bit mask for copper layer #define LAYER_2 (1<<LAYER_N_2) ///< bit mask for layer 2 #define LAYER_3 (1<<LAYER_N_3) ///< bit mask for layer 3 #define LAYER_4 (1<<LAYER_N_4) ///< bit mask for layer 4 #define LAYER_5 (1<<LAYER_N_5) ///< bit mask for layer 5 #define LAYER_6 (1<<LAYER_N_6) ///< bit mask for layer 6 #define LAYER_7 (1<<LAYER_N_7) ///< bit mask for layer 7 #define LAYER_8 (1<<LAYER_N_8) ///< bit mask for layer 8 #define LAYER_9 (1<<LAYER_N_9) ///< bit mask for layer 9 #define LAYER_10 (1<<LAYER_N_10) ///< bit mask for layer 10 #define LAYER_11 (1<<LAYER_N_11) ///< bit mask for layer 11 #define LAYER_12 (1<<LAYER_N_12) ///< bit mask for layer 12 #define LAYER_13 (1<<LAYER_N_13) ///< bit mask for layer 13 #define LAYER_14 (1<<LAYER_N_14) ///< bit mask for layer 14 #define LAYER_15 (1<<LAYER_N_15) ///< bit mask for layer 15 #define CMP_LAYER (1<<LAYER_CMP_N) ///< bit mask for component layer #define ADHESIVE_LAYER_CU (1<<ADHESIVE_N_CU) #define ADHESIVE_LAYER_CMP (1<<ADHESIVE_N_CMP) #define SOLDERPASTE_LAYER_CU (1<<SOLDERPASTE_N_CU) #define SOLDERPASTE_LAYER_CMP (1<<SOLDERPASTE_N_CMP) #define SILKSCREEN_LAYER_CU (1<<SILKSCREEN_N_CU) #define SILKSCREEN_LAYER_CMP (1<<SILKSCREEN_N_CMP) #define SOLDERMASK_LAYER_CU (1<<SOLDERMASK_N_CU) #define SOLDERMASK_LAYER_CMP (1<<SOLDERMASK_N_CMP) #define DRAW_LAYER (1<<DRAW_N) #define COMMENT_LAYER (1<<COMMENT_N) #define ECO1_LAYER (1<<ECO1_N) #define ECO2_LAYER (1<<ECO2_N) #define EDGE_LAYER (1<<EDGE_N) // extra bits 0xE0000000 /* masques generaux : */ #define ALL_LAYERS 0x1FFFFFFF #define ALL_NO_CU_LAYERS 0x1FFF0000 #define ALL_CU_LAYERS 0x0000FFFF #define INTERNAL_LAYERS 0x00007FFE /* Bits layers internes */ #define EXTERNAL_LAYERS 0x00008001 /* Forme des segments (pistes, contours ..) ( parametre .shape ) */ /* Forme des segments (pistes, contours ..) ( parametre .shape ) */ enum Track_Shapes { enum Track_Shapes { S_SEGMENT = 0, /* segment rectiligne */ S_SEGMENT = 0, /* segment rectiligne */ Loading pcbnew/class_track.cpp +11 −5 Original line number Original line Diff line number Diff line Loading @@ -214,15 +214,19 @@ int TRACK::ReturnMaskLayer() { { if( Type() == TYPEVIA ) if( Type() == TYPEVIA ) { { int via_type = m_Shape & 15; int via_type = Shape(); if( via_type == VIA_NORMALE ) if( via_type == VIA_NORMALE ) return ALL_CU_LAYERS; return ALL_CU_LAYERS; // VIA_BORGNE ou VIA_ENTERREE: // VIA_BORGNE ou VIA_ENTERREE: int bottom_layer = (m_Layer >> 4) & 15; int top_layer = m_Layer & 15; int bottom_layer; if( bottom_layer > top_layer ) int top_layer; EXCHG( bottom_layer, top_layer ); // ReturnLayerPair() knows how layers are stored ((SEGVIA*)this)->ReturnLayerPair( &top_layer, &bottom_layer ); int layermask = 0; int layermask = 0; while( bottom_layer <= top_layer ) while( bottom_layer <= top_layer ) { { Loading Loading @@ -272,8 +276,10 @@ void SEGVIA::ReturnLayerPair( int* top_layer, int* bottom_layer ) const if( b_layer > t_layer ) if( b_layer > t_layer ) EXCHG( b_layer, t_layer ); EXCHG( b_layer, t_layer ); if( top_layer ) if( top_layer ) *top_layer = t_layer; *top_layer = t_layer; if( bottom_layer ) if( bottom_layer ) *bottom_layer = b_layer; *bottom_layer = b_layer; } } Loading pcbnew/class_track.h +8 −0 Original line number Original line Diff line number Diff line Loading @@ -96,8 +96,16 @@ public: /* divers */ /* divers */ int Shape() const { return m_Shape & 0xFF; } int Shape() const { return m_Shape & 0xFF; } /** * Function ReturnMaskLayer * returns a "layer mask", which is a bitmap of all layers on which the * TRACK segment or SEGVIA physically resides. * @return int - a layer mask, see pcbstruct.h's CUIVRE_LAYER, etc. */ int ReturnMaskLayer(); int ReturnMaskLayer(); int IsPointOnEnds( const wxPoint& point, int min_dist = 0 ); int IsPointOnEnds( const wxPoint& point, int min_dist = 0 ); bool IsNull(); // return TRUE if segment lenght = 0 bool IsNull(); // return TRUE if segment lenght = 0 Loading todo.txt +0 −2 Original line number Original line Diff line number Diff line Loading @@ -51,5 +51,3 @@ understanding by new developers. *** Implement the graying in/out of "Edit/Undo", "Edit/Redo" menu items, *** Implement the graying in/out of "Edit/Undo", "Edit/Redo" menu items, when Undo/Redo stack is empty/filled. when Undo/Redo stack is empty/filled. *** There is no way to truly edit a via, such as changing its layers. Loading
change_log.txt +1 −1 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ email address. ================================================================================ ================================================================================ + pcbnew + pcbnew Added dedicated Show() function for SEGVIA. Enhanced BOARD_ITEM::MenuText() Added dedicated Show() function for SEGVIA. Enhanced BOARD_ITEM::MenuText() for SEGVIA. Added to todo.txt. for SEGVIA. 2007-Sep-29 UPDATE Dick Hollenbeck <dick@softplc.com> 2007-Sep-29 UPDATE Dick Hollenbeck <dick@softplc.com> Loading
include/pcbstruct.h +41 −40 Original line number Original line Diff line number Diff line Loading @@ -34,46 +34,6 @@ #define CHAIN 0x01 /* segment marque */ #define CHAIN 0x01 /* segment marque */ /*************************************/ /* constantes de gestion des couches */ /*************************************/ #define CUIVRE_LAYER 0x00000001 /* Bit layer cuivre */ #define LAYER_2 0x00000002 /* Bit layer 2 */ #define LAYER_3 0x00000004 /* Bit layer 3 */ #define LAYER_4 0x00000008 /* Bit layer 4 */ #define LAYER_5 0x00000010 /* Bit layer 5 */ #define LAYER_6 0x00000020 /* Bit layer 6 */ #define LAYER_7 0x00000040 /* Bit layer 7 */ #define LAYER_8 0x00000080 /* Bit layer 8 */ #define LAYER_9 0x00000100 /* Bit layer 9 */ #define LAYER_10 0x00000200 /* Bit layer 10 */ #define LAYER_11 0x00000400 /* Bit layer 11 */ #define LAYER_12 0x00000800 /* Bit layer 12 */ #define LAYER_13 0x00001000 /* Bit layer 13 */ #define LAYER_14 0x00002000 /* Bit layer 14 */ #define LAYER_15 0x00004000 /* Bit layer 15 */ #define CMP_LAYER 0x00008000 /* Bit layer cmp */ #define ADHESIVE_LAYER_CU 0x00010000 #define ADHESIVE_LAYER_CMP 0x00020000 #define SOLDERPASTE_LAYER_CU 0x00040000 #define SOLDERPASTE_LAYER_CMP 0x00080000 #define SILKSCREEN_LAYER_CU 0x00100000 #define SILKSCREEN_LAYER_CMP 0x00200000 #define SOLDERMASK_LAYER_CU 0x00400000 #define SOLDERMASK_LAYER_CMP 0x00800000 #define DRAW_LAYER 0x01000000 #define COMMENT_LAYER 0x02000000 #define ECO1_LAYER 0x04000000 #define ECO2_LAYER 0x08000000 #define EDGE_LAYER 0x10000000 // extra bits 0xE0000000 /* masques generaux : */ #define ALL_LAYERS 0x1FFFFFFF #define ALL_NO_CU_LAYERS 0x1FFF0000 #define ALL_CU_LAYERS 0x0000FFFF #define INTERNAL_LAYERS 0x00007FFE /* Bits layers internes */ #define EXTERNAL_LAYERS 0x00008001 /* Flags pour les couches cuivres */ /* Flags pour les couches cuivres */ /* numero des couches particulieres */ /* numero des couches particulieres */ #define LAYER_CUIVRE_N 0 #define LAYER_CUIVRE_N 0 Loading Loading @@ -115,6 +75,47 @@ #define LAYER_COUNT 32 #define LAYER_COUNT 32 /*************************************/ /* constantes de gestion des couches */ /*************************************/ #define CUIVRE_LAYER (1<<LAYER_CUIVRE_N) ///< bit mask for copper layer #define LAYER_2 (1<<LAYER_N_2) ///< bit mask for layer 2 #define LAYER_3 (1<<LAYER_N_3) ///< bit mask for layer 3 #define LAYER_4 (1<<LAYER_N_4) ///< bit mask for layer 4 #define LAYER_5 (1<<LAYER_N_5) ///< bit mask for layer 5 #define LAYER_6 (1<<LAYER_N_6) ///< bit mask for layer 6 #define LAYER_7 (1<<LAYER_N_7) ///< bit mask for layer 7 #define LAYER_8 (1<<LAYER_N_8) ///< bit mask for layer 8 #define LAYER_9 (1<<LAYER_N_9) ///< bit mask for layer 9 #define LAYER_10 (1<<LAYER_N_10) ///< bit mask for layer 10 #define LAYER_11 (1<<LAYER_N_11) ///< bit mask for layer 11 #define LAYER_12 (1<<LAYER_N_12) ///< bit mask for layer 12 #define LAYER_13 (1<<LAYER_N_13) ///< bit mask for layer 13 #define LAYER_14 (1<<LAYER_N_14) ///< bit mask for layer 14 #define LAYER_15 (1<<LAYER_N_15) ///< bit mask for layer 15 #define CMP_LAYER (1<<LAYER_CMP_N) ///< bit mask for component layer #define ADHESIVE_LAYER_CU (1<<ADHESIVE_N_CU) #define ADHESIVE_LAYER_CMP (1<<ADHESIVE_N_CMP) #define SOLDERPASTE_LAYER_CU (1<<SOLDERPASTE_N_CU) #define SOLDERPASTE_LAYER_CMP (1<<SOLDERPASTE_N_CMP) #define SILKSCREEN_LAYER_CU (1<<SILKSCREEN_N_CU) #define SILKSCREEN_LAYER_CMP (1<<SILKSCREEN_N_CMP) #define SOLDERMASK_LAYER_CU (1<<SOLDERMASK_N_CU) #define SOLDERMASK_LAYER_CMP (1<<SOLDERMASK_N_CMP) #define DRAW_LAYER (1<<DRAW_N) #define COMMENT_LAYER (1<<COMMENT_N) #define ECO1_LAYER (1<<ECO1_N) #define ECO2_LAYER (1<<ECO2_N) #define EDGE_LAYER (1<<EDGE_N) // extra bits 0xE0000000 /* masques generaux : */ #define ALL_LAYERS 0x1FFFFFFF #define ALL_NO_CU_LAYERS 0x1FFF0000 #define ALL_CU_LAYERS 0x0000FFFF #define INTERNAL_LAYERS 0x00007FFE /* Bits layers internes */ #define EXTERNAL_LAYERS 0x00008001 /* Forme des segments (pistes, contours ..) ( parametre .shape ) */ /* Forme des segments (pistes, contours ..) ( parametre .shape ) */ enum Track_Shapes { enum Track_Shapes { S_SEGMENT = 0, /* segment rectiligne */ S_SEGMENT = 0, /* segment rectiligne */ Loading
pcbnew/class_track.cpp +11 −5 Original line number Original line Diff line number Diff line Loading @@ -214,15 +214,19 @@ int TRACK::ReturnMaskLayer() { { if( Type() == TYPEVIA ) if( Type() == TYPEVIA ) { { int via_type = m_Shape & 15; int via_type = Shape(); if( via_type == VIA_NORMALE ) if( via_type == VIA_NORMALE ) return ALL_CU_LAYERS; return ALL_CU_LAYERS; // VIA_BORGNE ou VIA_ENTERREE: // VIA_BORGNE ou VIA_ENTERREE: int bottom_layer = (m_Layer >> 4) & 15; int top_layer = m_Layer & 15; int bottom_layer; if( bottom_layer > top_layer ) int top_layer; EXCHG( bottom_layer, top_layer ); // ReturnLayerPair() knows how layers are stored ((SEGVIA*)this)->ReturnLayerPair( &top_layer, &bottom_layer ); int layermask = 0; int layermask = 0; while( bottom_layer <= top_layer ) while( bottom_layer <= top_layer ) { { Loading Loading @@ -272,8 +276,10 @@ void SEGVIA::ReturnLayerPair( int* top_layer, int* bottom_layer ) const if( b_layer > t_layer ) if( b_layer > t_layer ) EXCHG( b_layer, t_layer ); EXCHG( b_layer, t_layer ); if( top_layer ) if( top_layer ) *top_layer = t_layer; *top_layer = t_layer; if( bottom_layer ) if( bottom_layer ) *bottom_layer = b_layer; *bottom_layer = b_layer; } } Loading
pcbnew/class_track.h +8 −0 Original line number Original line Diff line number Diff line Loading @@ -96,8 +96,16 @@ public: /* divers */ /* divers */ int Shape() const { return m_Shape & 0xFF; } int Shape() const { return m_Shape & 0xFF; } /** * Function ReturnMaskLayer * returns a "layer mask", which is a bitmap of all layers on which the * TRACK segment or SEGVIA physically resides. * @return int - a layer mask, see pcbstruct.h's CUIVRE_LAYER, etc. */ int ReturnMaskLayer(); int ReturnMaskLayer(); int IsPointOnEnds( const wxPoint& point, int min_dist = 0 ); int IsPointOnEnds( const wxPoint& point, int min_dist = 0 ); bool IsNull(); // return TRUE if segment lenght = 0 bool IsNull(); // return TRUE if segment lenght = 0 Loading
todo.txt +0 −2 Original line number Original line Diff line number Diff line Loading @@ -51,5 +51,3 @@ understanding by new developers. *** Implement the graying in/out of "Edit/Undo", "Edit/Redo" menu items, *** Implement the graying in/out of "Edit/Undo", "Edit/Redo" menu items, when Undo/Redo stack is empty/filled. when Undo/Redo stack is empty/filled. *** There is no way to truly edit a via, such as changing its layers.