Commit 3cd47555 authored by dickelbeck's avatar dickelbeck

see 2007-Oct-12 change_log.txt

parent 0abcf450
...@@ -19,6 +19,40 @@ email address. ...@@ -19,6 +19,40 @@ email address.
with genliste.cpp.notused with genliste.cpp.notused
2007-Oct-12 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+ all
* m_NetCode is now private or protected throughout.
added SetNet() and GetNet() to all classes which have this member name.
ditto for m_Sous_NetCode, for which there is now SetSubNet() and GetSubNet().
+ pcbnew
added more disambiguating text to the PcbGeneralLocateAndDisplay() popup
menu for tracks. We need all the info we can get there I found after using
the software for many hours.
Jean-Pierre:
I never thought I would find a greater problem in using Kicad than having to
lay down all the ground and power tracks, rather that just linking vias into
pre-established zones or "tagged layers".
But I have, hundreds of my tracks and vias are showing
unconnected under my BGA, (where say the track or via is NetCode==0) and it
should not be, because the damn track ties the BGA pad to a nearby via.
How can the software be made to think these three items are on the same net,
without re-entering all the damn tracks?
This issue has been coming up for months on the user list, it must be dealt with now.
There is always the same lame answer, "make sure your tracks go to the center of the pads".
Nonsense, the software picked the track end points, not me, and grid was on when it did it.
There are bugs here.
Does Recalcule_all_net_connexion() work, and why is not called from anywhere?
2007-Oct-11 UPDATE Dick Hollenbeck <dick@softplc.com> 2007-Oct-11 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================ ================================================================================
+ pcbnew + pcbnew
......
...@@ -427,7 +427,7 @@ int GetTimeStamp() ...@@ -427,7 +427,7 @@ int GetTimeStamp()
/*************************************************/ /*************************************************/
void valeur_param( int valeur, wxString& buf_texte ) const wxString& valeur_param( int valeur, wxString& buf_texte )
/*************************************************/ /*************************************************/
/* Retourne pour affichage la valeur d'un parametre, selon type d'unites choisies /* Retourne pour affichage la valeur d'un parametre, selon type d'unites choisies
...@@ -444,4 +444,6 @@ void valeur_param( int valeur, wxString& buf_texte ) ...@@ -444,4 +444,6 @@ void valeur_param( int valeur, wxString& buf_texte )
{ {
buf_texte.Printf( wxT( "%2.4f \"" ), valeur * 0.0001 ); buf_texte.Printf( wxT( "%2.4f \"" ), valeur * 0.0001 );
} }
return buf_texte;
} }
...@@ -343,7 +343,7 @@ void WinEDA_ErcFrame::TestErc( wxCommandEvent& event ) ...@@ -343,7 +343,7 @@ void WinEDA_ErcFrame::TestErc( wxCommandEvent& event )
for( ; NetItemRef < Lim; NetItemRef++ ) for( ; NetItemRef < Lim; NetItemRef++ )
{ {
/* Tst changement de net */ /* Tst changement de net */
if( OldItem->m_NetCode != NetItemRef->m_NetCode ) if( OldItem->GetNet() != NetItemRef->GetNet() )
{ {
MinConn = NOC; MinConn = NOC;
NetNbItems = 0; NetNbItems = 0;
...@@ -581,7 +581,7 @@ static void Diagnose( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -581,7 +581,7 @@ static void Diagnose( WinEDA_DrawPanel* panel, wxDC* DC,
{ {
Marker->m_Comment.Printf( Marker->m_Comment.Printf(
_( "Warning Pin %s not driven (Net %d)" ), _( "Warning Pin %s not driven (Net %d)" ),
MsgPinElectricType[ii], NetItemRef->m_NetCode ); MsgPinElectricType[ii], NetItemRef->GetNet() );
if( screen == panel->GetScreen() ) if( screen == panel->GetScreen() )
RedrawOneStruct( panel, DC, Marker, GR_COPY ); RedrawOneStruct( panel, DC, Marker, GR_COPY );
return; return;
...@@ -612,7 +612,7 @@ static void Diagnose( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -612,7 +612,7 @@ static void Diagnose( WinEDA_DrawPanel* panel, wxDC* DC,
"%s: Pin %s connected to Pin %s (net %d)" ), "%s: Pin %s connected to Pin %s (net %d)" ),
DiagLevel.GetData(), DiagLevel.GetData(),
MsgPinElectricType[ii], MsgPinElectricType[ii],
MsgPinElectricType[jj], NetItemRef->m_NetCode ); MsgPinElectricType[jj], NetItemRef->GetNet() );
if( screen == panel->GetScreen() ) if( screen == panel->GetScreen() )
RedrawOneStruct( panel, DC, Marker, GR_COPY ); RedrawOneStruct( panel, DC, Marker, GR_COPY );
...@@ -653,7 +653,7 @@ static void TestOthersItems( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -653,7 +653,7 @@ static void TestOthersItems( WinEDA_DrawPanel* panel, wxDC* DC,
/* Est - on toujours dans le meme net ? */ /* Est - on toujours dans le meme net ? */
if( (NetItemTst >= Lim) // fin de liste (donc fin de net) if( (NetItemTst >= Lim) // fin de liste (donc fin de net)
|| (NetItemRef->m_NetCode != NetItemTst->m_NetCode) ) // fin de net || (NetItemRef->GetNet() != NetItemTst->GetNet()) ) // fin de net
{ /* Fin de netcode trouve: Tst connexion minimum */ { /* Fin de netcode trouve: Tst connexion minimum */
if( (*MinConnexion < NET_NC ) if( (*MinConnexion < NET_NC )
&& (local_minconn < NET_NC ) ) /* pin non connecte ou non pilotee */ && (local_minconn < NET_NC ) ) /* pin non connecte ou non pilotee */
...@@ -796,7 +796,7 @@ void TestLabel( WinEDA_DrawPanel* panel, wxDC* DC, ...@@ -796,7 +796,7 @@ void TestLabel( WinEDA_DrawPanel* panel, wxDC* DC,
/* Est - on toujours dans le meme net ? */ /* Est - on toujours dans le meme net ? */
if( ( NetItemTst == Lim ) if( ( NetItemTst == Lim )
|| ( NetItemRef->m_NetCode != NetItemTst->m_NetCode ) ) || ( NetItemRef->GetNet() != NetItemTst->GetNet() ) )
{ {
/* Fin de netcode trouve */ /* Fin de netcode trouve */
if( erc ) if( erc )
......
...@@ -192,7 +192,7 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin, ...@@ -192,7 +192,7 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin,
* "netname_sheetnumber" for the usual nets * "netname_sheetnumber" for the usual nets
*/ */
{ {
int netcode = Pin->m_NetCode; int netcode = Pin->GetNet();
wxString NetName; wxString NetName;
if( (netcode == 0 ) || ( Pin->m_FlagOfConnection != CONNECT ) ) if( (netcode == 0 ) || ( Pin->m_FlagOfConnection != CONNECT ) )
...@@ -204,7 +204,7 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin, ...@@ -204,7 +204,7 @@ static wxString ReturnPinNetName( ObjetNetListStruct* Pin,
int jj; int jj;
for( jj = 0; jj < g_NbrObjNet; jj++ ) for( jj = 0; jj < g_NbrObjNet; jj++ )
{ {
if( g_TabObjNet[jj].m_NetCode != netcode ) if( g_TabObjNet[jj].GetNet() != netcode )
continue; continue;
if( ( g_TabObjNet[jj].m_Type != NET_GLOBLABEL) if( ( g_TabObjNet[jj].m_Type != NET_GLOBLABEL)
&& ( g_TabObjNet[jj].m_Type != NET_LABEL) && ( g_TabObjNet[jj].m_Type != NET_LABEL)
...@@ -481,7 +481,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f, ...@@ -481,7 +481,7 @@ static void WriteNetListPspice( WinEDA_SchematicFrame* frame, FILE* f,
if( NetName == wxT( "0" ) || NetName == wxT( "GND" ) ) if( NetName == wxT( "0" ) || NetName == wxT( "GND" ) )
fprintf( f, " 0" ); fprintf( f, " 0" );
else else
fprintf( f, " %d", Pin->m_NetCode ); fprintf( f, " %d", Pin->GetNet() );
} }
} }
...@@ -834,13 +834,13 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet ) ...@@ -834,13 +834,13 @@ static void WriteGENERICListOfNets( FILE* f, ObjetNetListStruct* ObjNet )
for( ii = 0; ii < g_NbrObjNet; ii++ ) for( ii = 0; ii < g_NbrObjNet; ii++ )
{ {
if( (NetCode = ObjNet[ii].m_NetCode) != LastNetCode ) // New net found, write net id; if( (NetCode = ObjNet[ii].GetNet()) != LastNetCode ) // New net found, write net id;
{ {
SameNetcodeCount = 0; // Items count for this net SameNetcodeCount = 0; // Items count for this net
NetName.Empty(); NetName.Empty();
for( jj = 0; jj < g_NbrObjNet; jj++ ) // Find a label (if exists) for this net for( jj = 0; jj < g_NbrObjNet; jj++ ) // Find a label (if exists) for this net
{ {
if( ObjNet[jj].m_NetCode != NetCode ) if( ObjNet[jj].GetNet() != NetCode )
continue; continue;
if( ( ObjNet[jj].m_Type != NET_GLOBLABEL) if( ( ObjNet[jj].m_Type != NET_GLOBLABEL)
&& ( ObjNet[jj].m_Type != NET_LABEL) && ( ObjNet[jj].m_Type != NET_LABEL)
...@@ -1010,12 +1010,12 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ) ...@@ -1010,12 +1010,12 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet )
for( ii = 0; ii < g_NbrObjNet; ii++ ) for( ii = 0; ii < g_NbrObjNet; ii++ )
{ {
// Get the NetName of the current net : // Get the NetName of the current net :
if( (NetCode = ObjNet[ii].m_NetCode) != LastNetCode ) if( (NetCode = ObjNet[ii].GetNet()) != LastNetCode )
{ {
NetName.Empty(); NetName.Empty();
for( jj = 0; jj < g_NbrObjNet; jj++ ) for( jj = 0; jj < g_NbrObjNet; jj++ )
{ {
if( ObjNet[jj].m_NetCode != NetCode ) if( ObjNet[jj].GetNet() != NetCode )
continue; continue;
if( ( ObjNet[jj].m_Type != NET_GLOBLABEL) if( ( ObjNet[jj].m_Type != NET_GLOBLABEL)
&& ( ObjNet[jj].m_Type != NET_LABEL) && ( ObjNet[jj].m_Type != NET_LABEL)
...@@ -1089,7 +1089,7 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet ) ...@@ -1089,7 +1089,7 @@ static void WriteListOfNetsCADSTAR( FILE* f, ObjetNetListStruct* ObjNet )
// pour ne pas generer plusieurs fois la connexion // pour ne pas generer plusieurs fois la connexion
for( jj = ii + 1; jj < g_NbrObjNet; jj++ ) for( jj = ii + 1; jj < g_NbrObjNet; jj++ )
{ {
if( ObjNet[jj].m_NetCode != NetCode ) if( ObjNet[jj].GetNet() != NetCode )
break; break;
if( ObjNet[jj].m_Type != NET_PIN ) if( ObjNet[jj].m_Type != NET_PIN )
continue; continue;
......
...@@ -66,7 +66,7 @@ void ObjetNetListStruct::Show( std::ostream& out, int ndx ) ...@@ -66,7 +66,7 @@ void ObjetNetListStruct::Show( std::ostream& out, int ndx )
{ {
out << "<netItem ndx=\"" << ndx << '"' << out << "<netItem ndx=\"" << ndx << '"' <<
" type=\"" << ShowType(m_Type) << '"' << " type=\"" << ShowType(m_Type) << '"' <<
" netCode=\"" << m_NetCode << '"' << " netCode=\"" << GetNet() << '"' <<
" sheet=\"" << m_SheetNumber << '"' << " sheet=\"" << m_SheetNumber << '"' <<
">\n"; ">\n";
...@@ -226,14 +226,14 @@ void* WinEDA_SchematicFrame::BuildNetListBase() ...@@ -226,14 +226,14 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
case NET_PINLABEL: case NET_PINLABEL:
case NET_SHEETLABEL: case NET_SHEETLABEL:
case NET_NOCONNECT: case NET_NOCONNECT:
if( g_TabObjNet[i].m_NetCode != 0 ) if( g_TabObjNet[i].GetNet() != 0 )
break; /* Deja connecte */ break; /* Deja connecte */
case NET_SEGMENT: case NET_SEGMENT:
/* Controle des connexions type point a point ( Sans BUS ) */ /* Controle des connexions type point a point ( Sans BUS ) */
if( g_TabObjNet[i].m_NetCode == 0 ) if( g_TabObjNet[i].GetNet() == 0 )
{ {
g_TabObjNet[i].m_NetCode = LastNetCode; g_TabObjNet[i].SetNet( LastNetCode );
LastNetCode++; LastNetCode++;
} }
PointToPointConnect( g_TabObjNet + i, 0, istart ); PointToPointConnect( g_TabObjNet + i, 0, istart );
...@@ -241,9 +241,9 @@ void* WinEDA_SchematicFrame::BuildNetListBase() ...@@ -241,9 +241,9 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
case NET_JONCTION: case NET_JONCTION:
/* Controle des jonction , hors BUS */ /* Controle des jonction , hors BUS */
if( g_TabObjNet[i].m_NetCode == 0 ) if( g_TabObjNet[i].GetNet() == 0 )
{ {
g_TabObjNet[i].m_NetCode = LastNetCode; g_TabObjNet[i].SetNet( LastNetCode );
LastNetCode++; LastNetCode++;
} }
SegmentToPointConnect( g_TabObjNet + i, 0, istart ); SegmentToPointConnect( g_TabObjNet + i, 0, istart );
...@@ -260,9 +260,9 @@ void* WinEDA_SchematicFrame::BuildNetListBase() ...@@ -260,9 +260,9 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
case NET_LABEL: case NET_LABEL:
case NET_GLOBLABEL: case NET_GLOBLABEL:
/* Controle des connexions type jonction ( Sans BUS ) */ /* Controle des connexions type jonction ( Sans BUS ) */
if( g_TabObjNet[i].m_NetCode == 0 ) if( g_TabObjNet[i].GetNet() == 0 )
{ {
g_TabObjNet[i].m_NetCode = LastNetCode; g_TabObjNet[i].SetNet( LastNetCode );
LastNetCode++; LastNetCode++;
} }
SegmentToPointConnect( g_TabObjNet + i, 0, istart ); SegmentToPointConnect( g_TabObjNet + i, 0, istart );
...@@ -285,7 +285,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase() ...@@ -285,7 +285,7 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
case NET_BUSLABELMEMBER: case NET_BUSLABELMEMBER:
case NET_GLOBBUSLABELMEMBER: case NET_GLOBBUSLABELMEMBER:
/* Controle des connexions semblables a des sur BUS */ /* Controle des connexions semblables a des sur BUS */
if( g_TabObjNet[i].m_NetCode == 0 ) if( g_TabObjNet[i].GetNet() == 0 )
{ {
g_TabObjNet[i].m_BusNetCode = LastBusNetCode; g_TabObjNet[i].m_BusNetCode = LastBusNetCode;
LastBusNetCode++; LastBusNetCode++;
...@@ -368,12 +368,12 @@ void* WinEDA_SchematicFrame::BuildNetListBase() ...@@ -368,12 +368,12 @@ void* WinEDA_SchematicFrame::BuildNetListBase()
LastNetCode = NetCode = 0; LastNetCode = NetCode = 0;
for( i = 0; i < g_NbrObjNet; i++ ) for( i = 0; i < g_NbrObjNet; i++ )
{ {
if( g_TabObjNet[i].m_NetCode != LastNetCode ) if( g_TabObjNet[i].GetNet() != LastNetCode )
{ {
NetCode++; NetCode++;
LastNetCode = g_TabObjNet[i].m_NetCode; LastNetCode = g_TabObjNet[i].GetNet();
} }
g_TabObjNet[i].m_NetCode = NetCode; g_TabObjNet[i].SetNet( NetCode );
} }
Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), GREEN ); Affiche_1_Parametre( this, -1, wxEmptyString, _( "Done" ), GREEN );
...@@ -393,7 +393,7 @@ static void SheetLabelConnection( ObjetNetListStruct* SheetLabel ) ...@@ -393,7 +393,7 @@ static void SheetLabelConnection( ObjetNetListStruct* SheetLabel )
int i; int i;
ObjetNetListStruct* ObjetNet; ObjetNetListStruct* ObjetNet;
if( SheetLabel->m_NetCode == 0 ) if( SheetLabel->GetNet() == 0 )
return; return;
/* Calcul du numero de sous feuille correspondante au sheetlabel */ /* Calcul du numero de sous feuille correspondante au sheetlabel */
...@@ -409,17 +409,17 @@ static void SheetLabelConnection( ObjetNetListStruct* SheetLabel ) ...@@ -409,17 +409,17 @@ static void SheetLabelConnection( ObjetNetListStruct* SheetLabel )
&& (ObjetNet[i].m_Type != NET_GLOBBUSLABELMEMBER ) ) && (ObjetNet[i].m_Type != NET_GLOBBUSLABELMEMBER ) )
continue; continue;
if( ObjetNet[i].m_NetCode == SheetLabel->m_NetCode ) if( ObjetNet[i].GetNet() == SheetLabel->GetNet() )
continue; continue;
if( ObjetNet[i].m_Label->CmpNoCase( *SheetLabel->m_Label ) != 0 ) if( ObjetNet[i].m_Label->CmpNoCase( *SheetLabel->m_Label ) != 0 )
continue; continue;
/* Propagation du Netcode a tous les Objets de meme NetCode */ /* Propagation du Netcode a tous les Objets de meme NetCode */
if( ObjetNet[i].m_NetCode ) if( ObjetNet[i].GetNet() )
PropageNetCode( ObjetNet[i].m_NetCode, SheetLabel->m_NetCode, 0 ); PropageNetCode( ObjetNet[i].GetNet(), SheetLabel->GetNet(), 0 );
else else
ObjetNet[i].m_NetCode = SheetLabel->m_NetCode; ObjetNet[i].SetNet( SheetLabel->GetNet() );
} }
} }
...@@ -714,9 +714,9 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems ) ...@@ -714,9 +714,9 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems )
|| (Label->m_Type == NET_BUSLABELMEMBER) || (Label->m_Type == NET_BUSLABELMEMBER)
|| (Label->m_Type == NET_GLOBBUSLABELMEMBER) ) || (Label->m_Type == NET_GLOBBUSLABELMEMBER) )
{ {
if( Label->m_NetCode == 0 ) if( Label->GetNet() == 0 )
{ {
Label->m_NetCode = LastNetCode; Label->SetNet( LastNetCode );
LastNetCode++; LastNetCode++;
} }
...@@ -732,10 +732,10 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems ) ...@@ -732,10 +732,10 @@ static void ConnectBusLabels( ObjetNetListStruct* Label, int NbItems )
if( LabelInTst->m_Member != Label->m_Member ) if( LabelInTst->m_Member != Label->m_Member )
continue; continue;
if( LabelInTst->m_NetCode == 0 ) if( LabelInTst->GetNet() == 0 )
LabelInTst->m_NetCode = Label->m_NetCode; LabelInTst->SetNet( Label->GetNet() );
else else
PropageNetCode( LabelInTst->m_NetCode, Label->m_NetCode, 0 ); PropageNetCode( LabelInTst->GetNet(), Label->GetNet(), 0 );
} }
} }
} }
...@@ -886,9 +886,9 @@ static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus ) ...@@ -886,9 +886,9 @@ static void PropageNetCode( int OldNetCode, int NewNetCode, int IsBus )
{ {
for( jj = 0; jj < g_NbrObjNet; jj++, Objet++ ) for( jj = 0; jj < g_NbrObjNet; jj++, Objet++ )
{ {
if( Objet->m_NetCode == OldNetCode ) if( Objet->GetNet() == OldNetCode )
{ {
Objet->m_NetCode = NewNetCode; Objet->SetNet( NewNetCode );
} }
} }
} }
...@@ -933,7 +933,7 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) ...@@ -933,7 +933,7 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start )
if( IsBus == 0 ) /* Objets autres que BUS et BUSLABELS */ if( IsBus == 0 ) /* Objets autres que BUS et BUSLABELS */
{ {
netCode = Ref->m_NetCode; netCode = Ref->GetNet();
for( i = start; i < g_NbrObjNet; i++ ) for( i = start; i < g_NbrObjNet; i++ )
{ {
if( netTable[i].m_SheetNumber > Ref->m_SheetNumber ) if( netTable[i].m_SheetNumber > Ref->m_SheetNumber )
...@@ -954,10 +954,10 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start ) ...@@ -954,10 +954,10 @@ static void PointToPointConnect( ObjetNetListStruct* Ref, int IsBus, int start )
|| Ref->m_End == netTable[i].m_Start || Ref->m_End == netTable[i].m_Start
|| Ref->m_End == netTable[i].m_End ) || Ref->m_End == netTable[i].m_End )
{ {
if( netTable[i].m_NetCode == 0 ) if( netTable[i].GetNet() == 0 )
netTable[i].m_NetCode = netCode; netTable[i].SetNet( netCode );
else else
PropageNetCode( netTable[i].m_NetCode, netCode, 0 ); PropageNetCode( netTable[i].GetNet(), netCode, 0 );
} }
break; break;
...@@ -1052,11 +1052,11 @@ static void SegmentToPointConnect( ObjetNetListStruct* Jonction, ...@@ -1052,11 +1052,11 @@ static void SegmentToPointConnect( ObjetNetListStruct* Jonction,
/* Propagation du Netcode a tous les Objets de meme NetCode */ /* Propagation du Netcode a tous les Objets de meme NetCode */
if( IsBus == 0 ) if( IsBus == 0 )
{ {
if( Segment[i].m_NetCode ) if( Segment[i].GetNet() )
PropageNetCode( Segment[i].m_NetCode, PropageNetCode( Segment[i].GetNet(),
Jonction->m_NetCode, IsBus ); Jonction->GetNet(), IsBus );
else else
Segment[i].m_NetCode = Jonction->m_NetCode; Segment[i].SetNet( Jonction->GetNet() );
} }
else else
{ {
...@@ -1076,14 +1076,14 @@ static void SegmentToPointConnect( ObjetNetListStruct* Jonction, ...@@ -1076,14 +1076,14 @@ static void SegmentToPointConnect( ObjetNetListStruct* Jonction,
*******************************************************************/ *******************************************************************/
static void LabelConnection( ObjetNetListStruct* LabelRef ) static void LabelConnection( ObjetNetListStruct* LabelRef )
{ {
if( LabelRef->m_NetCode == 0 ) if( LabelRef->GetNet() == 0 )
return; return;
ObjetNetListStruct* netTable = g_TabObjNet; ObjetNetListStruct* netTable = g_TabObjNet;
for( int i=0; i<g_NbrObjNet; i++ ) for( int i=0; i<g_NbrObjNet; i++ )
{ {
if( netTable[i].m_NetCode == LabelRef->m_NetCode ) if( netTable[i].GetNet() == LabelRef->GetNet() )
continue; continue;
if( netTable[i].m_SheetNumber != LabelRef->m_SheetNumber ) if( netTable[i].m_SheetNumber != LabelRef->m_SheetNumber )
...@@ -1104,10 +1104,10 @@ static void LabelConnection( ObjetNetListStruct* LabelRef ) ...@@ -1104,10 +1104,10 @@ static void LabelConnection( ObjetNetListStruct* LabelRef )
/* Ici 2 labels identiques */ /* Ici 2 labels identiques */
/* Propagation du Netcode a tous les Objets de meme NetCode */ /* Propagation du Netcode a tous les Objets de meme NetCode */
if( netTable[i].m_NetCode ) if( netTable[i].GetNet() )
PropageNetCode( netTable[i].m_NetCode, LabelRef->m_NetCode, 0 ); PropageNetCode( netTable[i].GetNet(), LabelRef->GetNet(), 0 );
else else
netTable[i].m_NetCode = LabelRef->m_NetCode; netTable[i].SetNet( LabelRef->GetNet() );
} }
} }
} }
...@@ -1124,7 +1124,7 @@ static int TriNetCode( const void* o1, const void* o2 ) ...@@ -1124,7 +1124,7 @@ static int TriNetCode( const void* o1, const void* o2 )
ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1; ObjetNetListStruct* Objet1 = (ObjetNetListStruct*) o1;
ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2; ObjetNetListStruct* Objet2 = (ObjetNetListStruct*) o2;
return Objet1->m_NetCode - Objet2->m_NetCode; return Objet1->GetNet() - Objet2->GetNet();
} }
...@@ -1173,7 +1173,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems ) ...@@ -1173,7 +1173,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems )
NetItemTst = NetItemRef + 1; NetItemTst = NetItemRef + 1;
if( (NetItemTst >= Lim) if( (NetItemTst >= Lim)
|| (NetItemRef->m_NetCode != NetItemTst->m_NetCode) ) || (NetItemRef->GetNet() != NetItemTst->GetNet()) )
{ {
/* Net analyse: mise a jour de m_FlagOfConnection */ /* Net analyse: mise a jour de m_FlagOfConnection */
NetEnd = NetItemTst; NetEnd = NetItemTst;
...@@ -1195,7 +1195,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems ) ...@@ -1195,7 +1195,7 @@ static void SetUnconnectedFlag( ObjetNetListStruct* ListObj, int NbItems )
for( ; ; NetItemTst++ ) for( ; ; NetItemTst++ )
{ {
if( (NetItemTst >= Lim) if( (NetItemTst >= Lim)
|| (NetItemRef->m_NetCode != NetItemTst->m_NetCode) ) || (NetItemRef->GetNet() != NetItemTst->GetNet()) )
break; break;
switch( NetItemTst->m_Type ) switch( NetItemTst->m_Type )
......
...@@ -70,7 +70,9 @@ public: ...@@ -70,7 +70,9 @@ public:
SCH_SCREEN* m_Screen; /* Ecran d'appartenance */ SCH_SCREEN* m_Screen; /* Ecran d'appartenance */
NetObjetType m_Type; NetObjetType m_Type;
int m_ElectricalType; /* Pour Pins et sheet labels: type electrique */ int m_ElectricalType; /* Pour Pins et sheet labels: type electrique */
private:
int m_NetCode; /* pour elements simples */ int m_NetCode; /* pour elements simples */
public:
int m_BusNetCode; /* pour connexions type bus */ int m_BusNetCode; /* pour connexions type bus */
int m_Member; /* pour les labels type BUSWIRE ( labels de bus eclate ) int m_Member; /* pour les labels type BUSWIRE ( labels de bus eclate )
* numero de membre */ * numero de membre */
...@@ -85,6 +87,8 @@ public: ...@@ -85,6 +87,8 @@ public:
void Show( std::ostream& out, int ndx ); void Show( std::ostream& out, int ndx );
#endif #endif
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
int GetNet() const { return m_NetCode; }
}; };
......
...@@ -71,7 +71,7 @@ void Affiche_Infos_Piste( WinEDA_BasePcbFrame* frame, TRACK* pt_piste ) ...@@ -71,7 +71,7 @@ void Affiche_Infos_Piste( WinEDA_BasePcbFrame* frame, TRACK* pt_piste )
frame->MsgPanel->EraseMsgBox(); frame->MsgPanel->EraseMsgBox();
d_index = pt_piste->m_NetCode; d_index = pt_piste->GetNet();
pt_D_code = ReturnToolDescr( layer, d_index, &ii ); pt_D_code = ReturnToolDescr( layer, d_index, &ii );
switch( pt_piste->Type() ) switch( pt_piste->Type() )
......
...@@ -334,7 +334,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) ...@@ -334,7 +334,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC )
track->Draw( DrawPanel, DC, GR_XOR ); // erase the display track->Draw( DrawPanel, DC, GR_XOR ); // erase the display
track->m_Start.x += deltaX; track->m_Start.y += deltaY; track->m_Start.x += deltaX; track->m_Start.y += deltaY;
track->m_End.x += deltaX; track->m_End.y += deltaY; track->m_End.x += deltaX; track->m_End.y += deltaY;
track->m_Param += deltaX; track->m_Sous_Netcode += deltaY; track->m_Param += deltaX; track->SetSubNet( track->GetSubNet() + deltaY );
track->Draw( DrawPanel, DC, GR_OR ); // redraw the moved track track->Draw( DrawPanel, DC, GR_OR ); // redraw the moved track
} }
track = track->Next(); track = track->Next();
...@@ -349,7 +349,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC ) ...@@ -349,7 +349,7 @@ void WinEDA_BasePcbFrame::Block_Move( wxDC* DC )
zsegment->Draw( DrawPanel, DC, GR_XOR ); // erase the display zsegment->Draw( DrawPanel, DC, GR_XOR ); // erase the display
zsegment->m_Start.x += deltaX; track->m_Start.y += deltaY; zsegment->m_Start.x += deltaX; track->m_Start.y += deltaY;
zsegment->m_End.x += deltaX; track->m_End.y += deltaY; zsegment->m_End.x += deltaX; track->m_End.y += deltaY;
zsegment->m_Param += deltaX; track->m_Sous_Netcode += deltaY; zsegment->m_Param += deltaX; track->SetSubNet( track->GetSubNet() + deltaY );
zsegment->Draw( DrawPanel, DC, GR_OR ); // redraw the moved zone zegment zsegment->Draw( DrawPanel, DC, GR_OR ); // redraw the moved zone zegment
} }
zsegment = zsegment->Next(); zsegment = zsegment->Next();
......
...@@ -340,7 +340,7 @@ D_CODE * pt_Dcode; /* Pointeur sur le D code*/ ...@@ -340,7 +340,7 @@ D_CODE * pt_Dcode; /* Pointeur sur le D code*/
track = m_Pcb->m_Track; track = m_Pcb->m_Track;
for ( ; track != NULL ; track = (TRACK*) track->Pnext ) for ( ; track != NULL ; track = (TRACK*) track->Pnext )
{ {
pt_Dcode = ReturnToolDescr(track->GetLayer(), track->m_NetCode); pt_Dcode = ReturnToolDescr(track->GetLayer(), track->GetNet());
pt_Dcode->m_InUse = TRUE; pt_Dcode->m_InUse = TRUE;
if ( // Line Item if ( // Line Item
......
...@@ -28,7 +28,7 @@ void WinEDA_GerberFrame::Delete_DCode_Items( wxDC* DC, int dcode_value, int laye ...@@ -28,7 +28,7 @@ void WinEDA_GerberFrame::Delete_DCode_Items( wxDC* DC, int dcode_value, int laye
for( ; track != NULL; track = next_track ) for( ; track != NULL; track = next_track )
{ {
next_track = track->Next(); next_track = track->Next();
if( dcode_value != track->m_NetCode ) if( dcode_value != track->GetNet() )
continue; continue;
if( layer_number >= 0 && layer_number != track->GetLayer() ) if( layer_number >= 0 && layer_number != track->GetLayer() )
continue; continue;
......
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
* Les Flash sont représentées par des DRAWSEGMENTS * Les Flash sont représentées par des DRAWSEGMENTS
* - ronds ou ovales: DRAWSEGMENTS * - ronds ou ovales: DRAWSEGMENTS
* - rectangles: DRAWSEGMENTS * - rectangles: DRAWSEGMENTS
* la reference aux D-CODES est placée dans le membre m_NetCode * la reference aux D-CODES est placée dans le membre GetNet()
*/ */
......
...@@ -112,7 +112,7 @@ static void Append_1_Flash_ROND_GERBER( int Dcode_tool, ...@@ -112,7 +112,7 @@ static void Append_1_Flash_ROND_GERBER( int Dcode_tool,
track->m_Start = track->m_End = pos; track->m_Start = track->m_End = pos;
NEGATE( track->m_Start.y ); NEGATE( track->m_Start.y );
NEGATE( track->m_End.y ); NEGATE( track->m_End.y );
track->m_NetCode = Dcode_tool; track->SetNet( Dcode_tool );
track->m_Shape = S_SPOT_CIRCLE; track->m_Shape = S_SPOT_CIRCLE;
Trace_Segment( frame->DrawPanel, DC, track, GR_OR ); Trace_Segment( frame->DrawPanel, DC, track, GR_OR );
...@@ -145,7 +145,7 @@ static void Append_1_Flash_GERBER( int Dcode_index, ...@@ -145,7 +145,7 @@ static void Append_1_Flash_GERBER( int Dcode_index,
track->m_Start = track->m_End = pos; track->m_Start = track->m_End = pos;
NEGATE( track->m_Start.y ); NEGATE( track->m_Start.y );
NEGATE( track->m_End.y ); NEGATE( track->m_End.y );
track->m_NetCode = Dcode_index; track->SetNet( Dcode_index );
if( forme == OVALE ) if( forme == OVALE )
track->m_Shape = S_SPOT_OVALE; track->m_Shape = S_SPOT_OVALE;
...@@ -187,7 +187,7 @@ static void Append_1_Line_GERBER( int Dcode_index, ...@@ -187,7 +187,7 @@ static void Append_1_Line_GERBER( int Dcode_index,
NEGATE( track->m_Start.y ); NEGATE( track->m_Start.y );
track->m_End = endpoint; track->m_End = endpoint;
NEGATE( track->m_End.y ); NEGATE( track->m_End.y );
track->m_NetCode = Dcode_index; track->SetNet( Dcode_index );
Trace_Segment( frame->DrawPanel, DC, track, GR_OR ); Trace_Segment( frame->DrawPanel, DC, track, GR_OR );
} }
...@@ -279,13 +279,15 @@ static void Append_1_SEG_ARC_GERBER( int Dcode_index, ...@@ -279,13 +279,15 @@ static void Append_1_SEG_ARC_GERBER( int Dcode_index,
} }
} }
track->m_NetCode = Dcode_index; track->SetNet( Dcode_index );
track->m_Param = center.x; track->m_Param = center.x;
track->m_Sous_Netcode = center.y; track->SetSubNet( center.y );
NEGATE( track->m_Start.y ); NEGATE( track->m_Start.y );
NEGATE( track->m_End.y ); NEGATE( track->m_End.y );
NEGATE( track->m_Sous_Netcode );
//NEGATE( track->GetSubNet() );
track->SetSubNet( -track->GetSubNet() );
Trace_Segment( frame->DrawPanel, DC, track, GR_OR ); Trace_Segment( frame->DrawPanel, DC, track, GR_OR );
} }
...@@ -745,7 +747,7 @@ bool GERBER_Descr::Execute_DCODE_Command( WinEDA_GerberFrame* frame, wxDC* DC, ...@@ -745,7 +747,7 @@ bool GERBER_Descr::Execute_DCODE_Command( WinEDA_GerberFrame* frame, wxDC* DC,
NEGATE( edge_poly->m_Start.y ); NEGATE( edge_poly->m_Start.y );
edge_poly->m_End = m_CurrentPos; edge_poly->m_End = m_CurrentPos;
NEGATE( edge_poly->m_End.y ); NEGATE( edge_poly->m_End.y );
edge_poly->m_NetCode = m_PolygonFillModeState; edge_poly->SetNet( m_PolygonFillModeState );
m_PreviousPos = m_CurrentPos; m_PreviousPos = m_CurrentPos;
m_PolygonFillModeState = 1; m_PolygonFillModeState = 1;
break; break;
......
...@@ -112,7 +112,7 @@ void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int draw_mode, int printmasklay ...@@ -112,7 +112,7 @@ void WinEDA_GerberFrame::Trace_Gerber( wxDC* DC, int draw_mode, int printmasklay
if ( printmasklayer != -1 ) if ( printmasklayer != -1 )
if ( (track->ReturnMaskLayer() & printmasklayer) == 0 ) continue; if ( (track->ReturnMaskLayer() & printmasklayer) == 0 ) continue;
if( track->m_NetCode == 0 ) // StartPoint if( track->GetNet() == 0 ) // StartPoint
{ {
if( nbpoints ) if( nbpoints )
{ {
......
...@@ -44,7 +44,7 @@ void Draw_Track_Buffer( WinEDA_DrawPanel* panel, wxDC* DC, BOARD* Pcb, int draw_ ...@@ -44,7 +44,7 @@ void Draw_Track_Buffer( WinEDA_DrawPanel* panel, wxDC* DC, BOARD* Pcb, int draw_
if( (Track->ReturnMaskLayer() & printmasklayer) == 0 ) if( (Track->ReturnMaskLayer() & printmasklayer) == 0 )
continue; continue;
if( (dcode_hightlight == Track->m_NetCode) if( (dcode_hightlight == Track->GetNet())
&& (Track->GetLayer() == layer) ) && (Track->GetLayer() == layer) )
Trace_Segment( panel, DC, Track, draw_mode | GR_SURBRILL ); Trace_Segment( panel, DC, Track, draw_mode | GR_SURBRILL );
else else
...@@ -122,13 +122,13 @@ void Trace_Segment( WinEDA_DrawPanel* panel, wxDC* DC, TRACK* track, int draw_mo ...@@ -122,13 +122,13 @@ void Trace_Segment( WinEDA_DrawPanel* panel, wxDC* DC, TRACK* track, int draw_mo
{ {
GRArc1( &panel->m_ClipBox, DC, track->m_Start.x, track->m_Start.y, GRArc1( &panel->m_ClipBox, DC, track->m_Start.x, track->m_Start.y,
track->m_End.x, track->m_End.y, track->m_End.x, track->m_End.y,
track->m_Param, track->m_Sous_Netcode, 0, color ); track->m_Param, track->GetSubNet(), 0, color );
} }
else else
{ {
GRArc1( &panel->m_ClipBox, DC, track->m_Start.x, track->m_Start.y, GRArc1( &panel->m_ClipBox, DC, track->m_Start.x, track->m_Start.y,
track->m_End.x, track->m_End.y, track->m_End.x, track->m_End.y,
track->m_Param, track->m_Sous_Netcode, track->m_Param, track->GetSubNet(),
track->m_Width, color ); track->m_Width, color );
} }
} }
...@@ -344,7 +344,7 @@ void Affiche_DCodes_Pistes( WinEDA_DrawPanel* panel, wxDC* DC, BOARD* Pcb, int d ...@@ -344,7 +344,7 @@ void Affiche_DCodes_Pistes( WinEDA_DrawPanel* panel, wxDC* DC, BOARD* Pcb, int d
pos.x = (track->m_Start.x + track->m_End.x) / 2; pos.x = (track->m_Start.x + track->m_End.x) / 2;
pos.y = (track->m_Start.y + track->m_End.y) / 2; pos.y = (track->m_Start.y + track->m_End.y) / 2;
} }
Line.Printf( wxT( "D%d" ), track->m_NetCode ); Line.Printf( wxT( "D%d" ), track->GetNet() );
width = track->m_Width; width = track->m_Width;
orient = TEXT_ORIENT_HORIZ; orient = TEXT_ORIENT_HORIZ;
if( track->m_Shape >= S_SPOT_CIRCLE ) // forme flash if( track->m_Shape >= S_SPOT_CIRCLE ) // forme flash
......
...@@ -44,7 +44,7 @@ void WinEDA_GerberFrame::UnDeleteItem( wxDC* DC ) ...@@ -44,7 +44,7 @@ void WinEDA_GerberFrame::UnDeleteItem( wxDC* DC )
} }
PtStruct = g_UnDeleteStack[g_UnDeleteStackPtr]; PtStruct = g_UnDeleteStack[g_UnDeleteStackPtr];
net_code = ( (TRACK*) PtStruct )->m_NetCode; net_code = ( (TRACK*) PtStruct )->GetNet();
pt_track = ( (TRACK*) PtStruct )->GetBestInsertPoint( m_Pcb ); pt_track = ( (TRACK*) PtStruct )->GetBestInsertPoint( m_Pcb );
( (TRACK*) PtStruct )->Insert( m_Pcb, pt_track ); ( (TRACK*) PtStruct )->Insert( m_Pcb, pt_track );
......
...@@ -588,7 +588,7 @@ int GetCommandOptions( const int argc, const char** argv, const char* st ...@@ -588,7 +588,7 @@ int GetCommandOptions( const int argc, const char** argv, const char* st
const char** optarg, int* optind ); const char** optarg, int* optind );
void valeur_param( int valeur, wxString& buf_texte ); const wxString& valeur_param( int valeur, wxString& buf_texte );
/* Retourne pour affichage la valeur d'un parametre, selon type d'unites choisies /* Retourne pour affichage la valeur d'un parametre, selon type d'unites choisies
* entree : valeur en mils , buffer de texte * entree : valeur en mils , buffer de texte
......
...@@ -43,7 +43,7 @@ void Affiche_Infos_Equipot( int netcode, WinEDA_BasePcbFrame* frame ) ...@@ -43,7 +43,7 @@ void Affiche_Infos_Equipot( int netcode, WinEDA_BasePcbFrame* frame )
{ {
for( pad = module->m_Pads; pad != 0; pad = (D_PAD*) pad->Pnext ) for( pad = module->m_Pads; pad != 0; pad = (D_PAD*) pad->Pnext )
{ {
if( pad->m_NetCode == netcode ) if( pad->GetNet() == netcode )
ii++; ii++;
} }
} }
...@@ -55,7 +55,7 @@ void Affiche_Infos_Equipot( int netcode, WinEDA_BasePcbFrame* frame ) ...@@ -55,7 +55,7 @@ void Affiche_Infos_Equipot( int netcode, WinEDA_BasePcbFrame* frame )
{ {
ii++; ii++;
if( Struct->Type() == TYPEVIA ) if( Struct->Type() == TYPEVIA )
if( ( (SEGVIA*) Struct )->m_NetCode == netcode ) if( ( (SEGVIA*) Struct )->GetNet() == netcode )
nb_vias++; nb_vias++;
} }
......
...@@ -76,7 +76,7 @@ void WinEDA_PcbFrame::Attribut_net( wxDC* DC, int net_code, bool Flag_On ) ...@@ -76,7 +76,7 @@ void WinEDA_PcbFrame::Attribut_net( wxDC* DC, int net_code, bool Flag_On )
{ {
for( ; Track != NULL; Track = (TRACK*) Track->Pnext ) for( ; Track != NULL; Track = (TRACK*) Track->Pnext )
{ {
if( net_code == Track->m_NetCode ) if( net_code == Track->GetNet() )
break; break;
} }
} }
...@@ -84,7 +84,7 @@ void WinEDA_PcbFrame::Attribut_net( wxDC* DC, int net_code, bool Flag_On ) ...@@ -84,7 +84,7 @@ void WinEDA_PcbFrame::Attribut_net( wxDC* DC, int net_code, bool Flag_On )
DrawPanel->CursorOff( DC ); // Erase cursor shape DrawPanel->CursorOff( DC ); // Erase cursor shape
while( Track ) /* Flag change */ while( Track ) /* Flag change */
{ {
if( (net_code >= 0 ) && (net_code != Track->m_NetCode) ) if( (net_code >= 0 ) && (net_code != Track->GetNet()) )
break; break;
GetScreen()->SetModify(); GetScreen()->SetModify();
Track->SetState( SEGM_FIXE, Flag_On ); Track->SetState( SEGM_FIXE, Flag_On );
......
...@@ -449,7 +449,7 @@ int WinEDA_PcbFrame::GenPlaceBoard() ...@@ -449,7 +449,7 @@ int WinEDA_PcbFrame::GenPlaceBoard()
TRACK TmpSegm( NULL ); TRACK TmpSegm( NULL );
TmpSegm.SetLayer( -1 ); TmpSegm.SetLayer( -1 );
TmpSegm.m_NetCode = -1; TmpSegm.SetNet( -1 );
TmpSegm.m_Width = g_GridRoutingSize / 2; TmpSegm.m_Width = g_GridRoutingSize / 2;
for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext ) for( ; PtStruct != NULL; PtStruct = PtStruct->Pnext )
{ {
...@@ -970,7 +970,7 @@ void Build_PlacedPads_List( BOARD* Pcb ) ...@@ -970,7 +970,7 @@ void Build_PlacedPads_List( BOARD* Pcb )
PtPad->m_physical_connexion = 0; PtPad->m_physical_connexion = 0;
PtPad->m_logical_connexion = 0; PtPad->m_logical_connexion = 0;
PtPad->m_Parent = Module; PtPad->m_Parent = Module;
if( PtPad->m_NetCode ) if( PtPad->GetNet() )
Pcb->m_NbNodes++; Pcb->m_NbNodes++;
pt_liste_pad++; pt_liste_pad++;
} }
......
/***************************************/ /***************************************/
/* PCBNEW: Autorouting command control */ /* PCBNEW: Autorouting command control */
/***************************************/ /***************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
...@@ -16,18 +16,18 @@ ...@@ -16,18 +16,18 @@
/* Variables locales */ /* Variables locales */
/********************************************************/ /********************************************************/
void WinEDA_PcbFrame::Autoroute(wxDC * DC, int mode) void WinEDA_PcbFrame::Autoroute( wxDC* DC, int mode )
/********************************************************/ /********************************************************/
/* init board, route traces*/ /* init board, route traces*/
{ {
int ii, start, stop; int ii, start, stop;
CHEVELU* ptmp; CHEVELU* ptmp;
MODULE * Module = NULL; MODULE* Module = NULL;
D_PAD * Pad = NULL; D_PAD* Pad = NULL;
int autoroute_net_code = -1; int autoroute_net_code = -1;
wxString msg; wxString msg;
if ( g_DesignSettings.m_CopperLayerCount > 1 ) if( g_DesignSettings.m_CopperLayerCount > 1 )
{ {
Route_Layer_TOP = GetScreen()->m_Route_Layer_TOP; Route_Layer_TOP = GetScreen()->m_Route_Layer_TOP;
Route_Layer_BOTTOM = GetScreen()->m_Route_Layer_BOTTOM; Route_Layer_BOTTOM = GetScreen()->m_Route_Layer_BOTTOM;
...@@ -38,25 +38,25 @@ wxString msg; ...@@ -38,25 +38,25 @@ wxString msg;
Route_Layer_BOTTOM = COPPER_LAYER_N; Route_Layer_BOTTOM = COPPER_LAYER_N;
} }
switch ( mode ) switch( mode )
{ {
case ROUTE_NET: case ROUTE_NET:
if ( GetScreen()->GetCurItem() ) if( GetScreen()->GetCurItem() )
{ {
switch ( GetScreen()->GetCurItem()->Type() ) switch( GetScreen()->GetCurItem()->Type() )
{ {
case TYPEPAD: case TYPEPAD:
Pad = (D_PAD*) GetScreen()->GetCurItem(); Pad = (D_PAD*) GetScreen()->GetCurItem();
autoroute_net_code = Pad->m_NetCode; autoroute_net_code = Pad->GetNet();
break; break;
default: default:
break; break;
} }
} }
if( autoroute_net_code <= 0) if( autoroute_net_code <= 0 )
{ {
DisplayError(this, _("Net not selected")); return; DisplayError( this, _( "Net not selected" ) ); return;
} }
break; break;
...@@ -64,7 +64,7 @@ wxString msg; ...@@ -64,7 +64,7 @@ wxString msg;
Module = (MODULE*) GetScreen()->GetCurItem(); Module = (MODULE*) GetScreen()->GetCurItem();
if( (Module == NULL) || (Module->Type() != TYPEMODULE) ) if( (Module == NULL) || (Module->Type() != TYPEMODULE) )
{ {
DisplayError(this, _("Module not selected") ); return; DisplayError( this, _( "Module not selected" ) ); return;
} }
break; break;
...@@ -72,148 +72,164 @@ wxString msg; ...@@ -72,148 +72,164 @@ wxString msg;
Pad = (D_PAD*) GetScreen()->GetCurItem(); Pad = (D_PAD*) GetScreen()->GetCurItem();
if( (Pad == NULL) || (Pad->Type() != TYPEPAD) ) if( (Pad == NULL) || (Pad->Type() != TYPEPAD) )
{ {
DisplayError(this, _("Pad not selected") ); return; DisplayError( this, _( "Pad not selected" ) ); return;
} }
break; break;
} }
if( (m_Pcb->m_Status_Pcb & LISTE_CHEVELU_OK ) == 0 ) if( (m_Pcb->m_Status_Pcb & LISTE_CHEVELU_OK ) == 0 )
Compile_Ratsnest(DC, TRUE); Compile_Ratsnest( DC, TRUE );
/* Placement du flag CH_ROUTE_REQ sur les chevelus demandes */ /* Placement du flag CH_ROUTE_REQ sur les chevelus demandes */
ptmp = (CHEVELU*) m_Pcb->m_Ratsnest; ptmp = (CHEVELU*) m_Pcb->m_Ratsnest;
for ( ii = m_Pcb->GetNumRatsnests(); ii > 0; ii--, ptmp ++ ) for( ii = m_Pcb->GetNumRatsnests(); ii > 0; ii--, ptmp++ )
{ {
ptmp->status &= ~CH_ROUTE_REQ; ptmp->status &= ~CH_ROUTE_REQ;
switch ( mode )
switch( mode )
{ {
case ROUTE_ALL: case ROUTE_ALL:
ptmp->status |= CH_ROUTE_REQ; break; ptmp->status |= CH_ROUTE_REQ; break;
case ROUTE_NET: case ROUTE_NET:
if( autoroute_net_code == ptmp->m_NetCode) if( autoroute_net_code == ptmp->GetNet() )
ptmp->status |= CH_ROUTE_REQ; ptmp->status |= CH_ROUTE_REQ;
break; break;
case ROUTE_MODULE: case ROUTE_MODULE:
{ {
D_PAD * pt_pad = (D_PAD *) Module->m_Pads; D_PAD* pt_pad = (D_PAD*) Module->m_Pads;
for( ; pt_pad != NULL; pt_pad = (D_PAD *)pt_pad->Pnext) for( ; pt_pad != NULL; pt_pad = (D_PAD*) pt_pad->Pnext )
{ {
if( ptmp->pad_start == pt_pad ) if( ptmp->pad_start == pt_pad )
ptmp->status |= CH_ROUTE_REQ; ptmp->status |= CH_ROUTE_REQ;
if( ptmp->pad_end == pt_pad ) if( ptmp->pad_end == pt_pad )
ptmp->status |= CH_ROUTE_REQ; ptmp->status |= CH_ROUTE_REQ;
} }
break; break;
} }
case ROUTE_PAD: case ROUTE_PAD:
if( (ptmp->pad_start == Pad) || (ptmp->pad_end == Pad)) if( (ptmp->pad_start == Pad) || (ptmp->pad_end == Pad) )
ptmp->status |= CH_ROUTE_REQ; ptmp->status |= CH_ROUTE_REQ;
break; break;
} }
} }
ptmp = (CHEVELU*)m_Pcb->m_Ratsnest;
ptmp = (CHEVELU*) m_Pcb->m_Ratsnest;
start = time( NULL ); start = time( NULL );
/* Calcul du pas de routage fixe a 5 mils et plus */ /* Calcul du pas de routage fixe a 5 mils et plus */
g_GridRoutingSize = GetScreen()->GetGrid().x; g_GridRoutingSize = GetScreen()->GetGrid().x;
if (g_GridRoutingSize < 50 ) g_GridRoutingSize = 50 ; if( g_GridRoutingSize < 50 )
E_scale = g_GridRoutingSize / 50 ; if (E_scale < 1 ) E_scale = 1 ; g_GridRoutingSize = 50;
E_scale = g_GridRoutingSize / 50; if( E_scale < 1 )
E_scale = 1;
/* calcule de Ncols et Nrow, taille de la matrice de routage */ /* calcule de Ncols et Nrow, taille de la matrice de routage */
ComputeMatriceSize(this, g_GridRoutingSize); ComputeMatriceSize( this, g_GridRoutingSize );
MsgPanel->EraseMsgBox(); MsgPanel->EraseMsgBox();
/* Creation du mapping du board */ /* Creation du mapping du board */
Nb_Sides = ONE_SIDE; Nb_Sides = ONE_SIDE;
if(Route_Layer_TOP != Route_Layer_BOTTOM ) Nb_Sides = TWO_SIDES; if( Route_Layer_TOP != Route_Layer_BOTTOM )
Nb_Sides = TWO_SIDES;
if ( Board.InitBoard() < 0 ) if( Board.InitBoard() < 0 )
{ {
DisplayError(this, _("No memory for autorouting") ); DisplayError( this, _( "No memory for autorouting" ) );
Board.UnInitBoard(); /* Libere la memoire BitMap */ Board.UnInitBoard(); /* Libere la memoire BitMap */
return; return;
} }
Affiche_Message( _("Place Cells") ); Affiche_Message( _( "Place Cells" ) );
PlaceCells(m_Pcb, -1, FORCE_PADS); PlaceCells( m_Pcb, -1, FORCE_PADS );
/* Construction de la liste des pistes a router */ /* Construction de la liste des pistes a router */
Build_Work(m_Pcb, ptmp); Build_Work( m_Pcb, ptmp );
// DisplayBoard(DrawPanel, DC); // DisplayBoard(DrawPanel, DC);
if( Nb_Sides == TWO_SIDES ) if( Nb_Sides == TWO_SIDES )
Solve(DC, TWO_SIDES); /* double face */ Solve( DC, TWO_SIDES ); /* double face */
else Solve(DC, ONE_SIDE); /* simple face */ else
Solve( DC, ONE_SIDE ); /* simple face */
/* Liberation de la memoire */ /* Liberation de la memoire */
FreeQueue(); /* Libere la memoire de routage */ FreeQueue(); /* Libere la memoire de routage */
InitWork(); /* Libere la memoire de la liste des connexions a router */ InitWork(); /* Libere la memoire de la liste des connexions a router */
Board.UnInitBoard(); /* Libere la memoire BitMap */ Board.UnInitBoard(); /* Libere la memoire BitMap */
stop = time( NULL ) - start; stop = time( NULL ) - start;
msg.Printf( wxT("time = %d second%s"), stop, (stop == 1) ? wxT("") : wxT("s") ); msg.Printf( wxT( "time = %d second%s" ), stop, (stop == 1) ? wxT( "" ) : wxT( "s" ) );
Affiche_Message(msg); Affiche_Message( msg );
} }
/************************************************/ /************************************************/
void WinEDA_PcbFrame::Reset_Noroutable(wxDC * DC) void WinEDA_PcbFrame::Reset_Noroutable( wxDC* DC )
/*************************************************/ /*************************************************/
/* Remet a 0 le flag CH_NOROUTABLE qui est positionne a 1 par Solve()
lorsque un chevelu n'a pas ete route. /* Remet a 0 le flag CH_NOROUTABLE qui est positionne a 1 par Solve()
Si ce flag est a 1 il n'est pas reroute * lorsque un chevelu n'a pas ete route.
*/ * Si ce flag est a 1 il n'est pas reroute
*/
{ {
int ii; int ii;
CHEVELU* pt_rats; CHEVELU* pt_rats;
if( (m_Pcb->m_Status_Pcb & LISTE_CHEVELU_OK )== 0 ) if( (m_Pcb->m_Status_Pcb & LISTE_CHEVELU_OK )== 0 )
Compile_Ratsnest(DC, TRUE); Compile_Ratsnest( DC, TRUE );
pt_rats = (CHEVELU*)m_Pcb->m_Ratsnest; pt_rats = (CHEVELU*) m_Pcb->m_Ratsnest;
if( pt_rats == NULL ) return; if( pt_rats == NULL )
return;
for ( ii = m_Pcb->GetNumRatsnests(); ii > 0 ; ii-- , pt_rats++) for( ii = m_Pcb->GetNumRatsnests(); ii > 0; ii--, pt_rats++ )
{ {
pt_rats->status &= ~CH_UNROUTABLE ; pt_rats->status &= ~CH_UNROUTABLE;
} }
} }
/*****************************************************/ /*****************************************************/
void DisplayBoard(WinEDA_DrawPanel * panel, wxDC * DC) void DisplayBoard( WinEDA_DrawPanel* panel, wxDC* DC )
/****************************************************/ /****************************************************/
/* Fonction de DEBUG : affiche le remplissage des cellules TOP et BOTTOM */ /* Fonction de DEBUG : affiche le remplissage des cellules TOP et BOTTOM */
{ {
int row, col, i , j; int row, col, i, j;
int dcell0, dcell1 = 0, color; int dcell0, dcell1 = 0, color;
int maxi; int maxi;
maxi = (/*ActiveScreen->Lim_XD - 20*/ 500) / Ncols; maxi = ( /*ActiveScreen->Lim_XD - 20*/ 500) / Ncols;
maxi = (maxi * 3 ) / 4; maxi = (maxi * 3 ) / 4;
if (!maxi) maxi = 1; if( !maxi )
maxi = 1;
for ( col = 0; col < Ncols; col++) for( col = 0; col < Ncols; col++ )
{ {
for(row = 0; row < Nrows; row++) for( row = 0; row < Nrows; row++ )
{ {
color = 0; color = 0;
dcell0 = GetCell(row,col,BOTTOM); if (dcell0 & HOLE) color = GREEN; dcell0 = GetCell( row, col, BOTTOM ); if( dcell0 & HOLE )
if(Nb_Sides) dcell1 = GetCell(row,col,TOP); color = GREEN;
if ( dcell1 & HOLE ) color |= RED; if( Nb_Sides )
dcell1 = GetCell( row, col, TOP );
if( dcell1 & HOLE )
color |= RED;
dcell0 |= dcell1; dcell0 |= dcell1;
if( !color && (dcell0 & VIA_IMPOSSIBLE)) color = BLUE ; if( !color && (dcell0 & VIA_IMPOSSIBLE) )
if(color) color = BLUE;
if( color )
{ {
for (i = 0; i < maxi; i++) for( i = 0; i < maxi; i++ )
for (j = 0; j < maxi; j++) for( j = 0; j < maxi; j++ )
GRSPutPixel(&panel->m_ClipBox, DC, GRSPutPixel( &panel->m_ClipBox, DC,
(col*maxi)+i + 10,(row*maxi) + 60 + j, color); (col * maxi) + i + 10, (row * maxi) + 60 + j, color );
} }
} }
} }
} }
/****************************************************/ /****************************************************/
/* AUTOROUT.H */ /* AUTOROUT.H */
/* d‚clarations communes relative au routage, DRC */ /* d‚clarations communes relative au routage, DRC */
/* et placement automatique des composants */ /* et placement automatique des composants */
/****************************************************/ /****************************************************/
#ifndef AUTOROUT_H #ifndef AUTOROUT_H
#define AUTOROUT_H #define AUTOROUT_H
...@@ -14,39 +14,53 @@ ...@@ -14,39 +14,53 @@
#define ILLEGAL -1 #define ILLEGAL -1
/*****************************************************/ /*****************************************************/
/* Structures de representation des pads et chevelus */ /* Structures de representation des pads et chevelus */
/* pour etablissement du chevelu general complet */ /* pour etablissement du chevelu general complet */
/*****************************************************/ /*****************************************************/
/***********************************************/
/***********************************************/ /* description d'un segment de chevelu general */
/* description d'un segment de chevelu general */ /***********************************************/
/***********************************************/ /****************************/
/****************************/ /* bits d'etat du chevelu : */
/* bits d'etat du chevelu : */ /****************************/
/****************************/
#define CH_VISIBLE 1 /* affichage permanent demande */ #define CH_VISIBLE 1 /* affichage permanent demande */
#define CH_UNROUTABLE 2 /* non route par l'autorouteur */ #define CH_UNROUTABLE 2 /* non route par l'autorouteur */
#define CH_ROUTE_REQ 4 /* doit etre route par l'autorouteur */ #define CH_ROUTE_REQ 4 /* doit etre route par l'autorouteur */
#define CH_ACTIF 8 /* chevelu non encore routé */ #define CH_ACTIF 8 /* chevelu non encore routé */
#define LOCAL_CHEVELU 0x8000 /* indique un chevelu reliant 2 pins d'un meme #define LOCAL_CHEVELU 0x8000 /* indique un chevelu reliant 2 pins d'un meme
module pour le calcul des chevelus relatifs a 1 seul module */ * module pour le calcul des chevelus relatifs a 1 seul module */
class CHEVELU class CHEVELU
{ {
public: private:
int m_NetCode; // numero de code du net ( = 0.. n , avec 0 si non connecte) int m_NetCode; // numero de code du net ( = 0.. n , avec 0 si non connecte)
public:
int status; // etat: voir defines précédents (CH_ ...) int status; // etat: voir defines précédents (CH_ ...)
D_PAD * pad_start; // pointeur sur le pad de depart D_PAD* pad_start; // pointeur sur le pad de depart
D_PAD * pad_end ; // pointeur sur le pad de fin D_PAD* pad_end; // pointeur sur le pad de fin
int dist; // longeur du chevelu int dist; // longeur du chevelu
/**
* Function GetNet
* @return int - the net code.
*/
int GetNet() const
{
return m_NetCode;
}
void SetNet( int aNetCode )
{
m_NetCode = aNetCode;
};
}; };
/****************************************************************/ /****************************************************************/
/* description d'un point de piste pour le suivi des connexions */ /* description d'un point de piste pour le suivi des connexions */
/****************************************************************/ /****************************************************************/
#define START_SUR_PAD 0x10 #define START_SUR_PAD 0x10
#define END_SUR_PAD 0x20 #define END_SUR_PAD 0x20
#define START_SUR_TRACK 0x40 #define START_SUR_TRACK 0x40
...@@ -57,14 +71,13 @@ public: ...@@ -57,14 +71,13 @@ public:
/* Status bit (OR'ed bits) for class BOARD member .m_Status_Pcb */ /* Status bit (OR'ed bits) for class BOARD member .m_Status_Pcb */
enum StatusPcbFlags enum StatusPcbFlags {
{
LISTE_PAD_OK = 1, /* Pad list is Ok */ LISTE_PAD_OK = 1, /* Pad list is Ok */
LISTE_CHEVELU_OK = 2, /* General Rastnest is Ok */ LISTE_CHEVELU_OK = 2, /* General Rastnest is Ok */
CHEVELU_LOCAL_OK = 4, /* current MODULE rastnest is Ok */ CHEVELU_LOCAL_OK = 4, /* current MODULE rastnest is Ok */
CONNEXION_OK = 8, /* Bit indicant que la liste des connexions existe */ CONNEXION_OK = 8, /* Bit indicant que la liste des connexions existe */
NET_CODES_OK = 0x10, /* Bit indicant que les netcodes sont OK ( pas de modif NET_CODES_OK = 0x10, /* Bit indicant que les netcodes sont OK ( pas de modif
de noms de net */ * de noms de net */
DO_NOT_SHOW_GENERAL_RASTNEST = 0x20 /* Do not display the general rastnest (used in module moves) */ DO_NOT_SHOW_GENERAL_RASTNEST = 0x20 /* Do not display the general rastnest (used in module moves) */
}; };
...@@ -73,8 +86,7 @@ enum StatusPcbFlags ...@@ -73,8 +86,7 @@ enum StatusPcbFlags
/* Commandes d'autoplacement / autorouage possibles */ /* Commandes d'autoplacement / autorouage possibles */
enum CommandOpt enum CommandOpt {
{
PLACE_ALL, PLACE_ALL,
PLACE_OUT_OF_BOARD, PLACE_OUT_OF_BOARD,
PLACE_INCREMENTAL, PLACE_INCREMENTAL,
...@@ -84,7 +96,7 @@ enum CommandOpt ...@@ -84,7 +96,7 @@ enum CommandOpt
ROUTE_NET, ROUTE_NET,
ROUTE_MODULE, ROUTE_MODULE,
ROUTE_PAD ROUTE_PAD
}; };
/* parametre Pas de routage pour routage automatique et generation des zones */ /* parametre Pas de routage pour routage automatique et generation des zones */
...@@ -129,9 +141,9 @@ typedef int DistCell; ...@@ -129,9 +141,9 @@ typedef int DistCell;
class BOARDHEAD /* header of blocks of BoardCell */ class BOARDHEAD /* header of blocks of BoardCell */
{ {
public: public:
BoardCell * m_BoardSide[2]; /* ptr to block of memory: 2-sided board */ BoardCell* m_BoardSide[2]; /* ptr to block of memory: 2-sided board */
DistCell * m_DistSide[2]; /* ptr to block of memory: path distance to cells */ DistCell* m_DistSide[2]; /* ptr to block of memory: path distance to cells */
char * m_DirSide[2]; /* header of blocks of chars:pointers back to source */ char* m_DirSide[2]; /* header of blocks of chars:pointers back to source */
bool m_InitBoardDone; bool m_InitBoardDone;
int m_Layers; int m_Layers;
int m_Nrows, m_Ncols; int m_Nrows, m_Ncols;
...@@ -142,10 +154,9 @@ public: ...@@ -142,10 +154,9 @@ public:
~BOARDHEAD(); ~BOARDHEAD();
int InitBoard(); int InitBoard();
void UnInitBoard(); void UnInitBoard();
}; };
eda_global BOARDHEAD Board ; /* 2-sided board */ eda_global BOARDHEAD Board; /* 2-sided board */
/* Constantes utilisees pour le trace des cellules sur le BOARD */ /* Constantes utilisees pour le trace des cellules sur le BOARD */
...@@ -160,4 +171,3 @@ eda_global BOARDHEAD Board ; /* 2-sided board */ ...@@ -160,4 +171,3 @@ eda_global BOARDHEAD Board ; /* 2-sided board */
#endif /* AUTOROUT_H */ #endif /* AUTOROUT_H */
...@@ -82,8 +82,12 @@ static bool InstallBlockCmdFrame( WinEDA_BasePcbFrame* parent, ...@@ -82,8 +82,12 @@ static bool InstallBlockCmdFrame( WinEDA_BasePcbFrame* parent,
parent->DrawPanel->m_IgnoreMouseEvents = TRUE; parent->DrawPanel->m_IgnoreMouseEvents = TRUE;
WinEDA_ExecBlockCmdFrame* frame = new WinEDA_ExecBlockCmdFrame( parent, title ); WinEDA_ExecBlockCmdFrame* frame = new WinEDA_ExecBlockCmdFrame( parent, title );
nocmd = frame->ShowModal(); frame->Destroy();
parent->GetScreen()-> m_Curseur = oldpos; nocmd = frame->ShowModal();
frame->Destroy();
parent->GetScreen()->m_Curseur = oldpos;
parent->DrawPanel->MouseToCursorSchema(); parent->DrawPanel->MouseToCursorSchema();
parent->DrawPanel->m_IgnoreMouseEvents = FALSE; parent->DrawPanel->m_IgnoreMouseEvents = FALSE;
...@@ -494,6 +498,7 @@ void WinEDA_BasePcbFrame::Block_Delete( wxDC* DC ) ...@@ -494,6 +498,7 @@ void WinEDA_BasePcbFrame::Block_Delete( wxDC* DC )
masque_layer = EDGE_LAYER; masque_layer = EDGE_LAYER;
if( Block_Include_Draw_Items ) if( Block_Include_Draw_Items )
masque_layer = ALL_LAYERS; masque_layer = ALL_LAYERS;
if( !Block_Include_Edges_Items ) if( !Block_Include_Edges_Items )
masque_layer &= ~EDGE_LAYER; masque_layer &= ~EDGE_LAYER;
......
...@@ -200,7 +200,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag ) ...@@ -200,7 +200,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag )
ptr = (LISTE_PAD*) Pcb->m_Pads; ii = Pcb->m_NbPads; ptr = (LISTE_PAD*) Pcb->m_Pads; ii = Pcb->m_NbPads;
for( ; ii > 0; ii--, ptr++ ) for( ; ii > 0; ii--, ptr++ )
{ {
if( (net_code != (*ptr)->m_NetCode ) || (flag & FORCE_PADS) ) if( (net_code != (*ptr)->GetNet() ) || (flag & FORCE_PADS) )
{ {
Place_1_Pad_Board( Pcb, *ptr, HOLE, marge, WRITE_CELL ); Place_1_Pad_Board( Pcb, *ptr, HOLE, marge, WRITE_CELL );
} }
...@@ -230,7 +230,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag ) ...@@ -230,7 +230,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag )
TmpSegm->m_Shape = ( (EDGE_MODULE*) PtModStruct )->m_Shape; TmpSegm->m_Shape = ( (EDGE_MODULE*) PtModStruct )->m_Shape;
TmpSegm->m_Width = ( (EDGE_MODULE*) PtModStruct )->m_Width; TmpSegm->m_Width = ( (EDGE_MODULE*) PtModStruct )->m_Width;
TmpSegm->m_Param = ( (EDGE_MODULE*) PtModStruct )->m_Angle; TmpSegm->m_Param = ( (EDGE_MODULE*) PtModStruct )->m_Angle;
TmpSegm->m_NetCode = -1; TmpSegm->SetNet( -1 );
TraceSegmentPcb( Pcb, TmpSegm, HOLE, marge, WRITE_CELL ); TraceSegmentPcb( Pcb, TmpSegm, HOLE, marge, WRITE_CELL );
TraceSegmentPcb( Pcb, TmpSegm, VIA_IMPOSSIBLE, via_marge, TraceSegmentPcb( Pcb, TmpSegm, VIA_IMPOSSIBLE, via_marge,
...@@ -270,7 +270,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag ) ...@@ -270,7 +270,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag )
TmpSegm->m_Shape = DrawSegm->m_Shape; TmpSegm->m_Shape = DrawSegm->m_Shape;
TmpSegm->m_Width = DrawSegm->m_Width; TmpSegm->m_Width = DrawSegm->m_Width;
TmpSegm->m_Param = DrawSegm->m_Angle; TmpSegm->m_Param = DrawSegm->m_Angle;
TmpSegm->m_NetCode = -1; TmpSegm->SetNet( -1 );
TraceSegmentPcb( Pcb, TmpSegm, type_cell, marge, WRITE_CELL ); TraceSegmentPcb( Pcb, TmpSegm, type_cell, marge, WRITE_CELL );
...@@ -313,7 +313,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag ) ...@@ -313,7 +313,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag )
pt_segm = Pcb->m_Track; pt_segm = Pcb->m_Track;
for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext ) for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{ {
if( net_code == pt_segm->m_NetCode ) if( net_code == pt_segm->GetNet() )
continue; continue;
TraceSegmentPcb( Pcb, pt_segm, HOLE, marge, WRITE_CELL ); TraceSegmentPcb( Pcb, pt_segm, HOLE, marge, WRITE_CELL );
TraceSegmentPcb( Pcb, pt_segm, VIA_IMPOSSIBLE, via_marge, WRITE_OR_CELL ); TraceSegmentPcb( Pcb, pt_segm, VIA_IMPOSSIBLE, via_marge, WRITE_OR_CELL );
...@@ -323,7 +323,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag ) ...@@ -323,7 +323,7 @@ void PlaceCells( BOARD* Pcb, int net_code, int flag )
pt_segm = (TRACK*) Pcb->m_Zone; pt_segm = (TRACK*) Pcb->m_Zone;
for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext ) for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{ {
if( net_code == pt_segm->m_NetCode ) if( net_code == pt_segm->GetNet() )
continue; continue;
TraceSegmentPcb( Pcb, pt_segm, HOLE, marge, WRITE_CELL ); TraceSegmentPcb( Pcb, pt_segm, HOLE, marge, WRITE_CELL );
TraceSegmentPcb( Pcb, pt_segm, VIA_IMPOSSIBLE, via_marge, WRITE_OR_CELL ); TraceSegmentPcb( Pcb, pt_segm, VIA_IMPOSSIBLE, via_marge, WRITE_OR_CELL );
...@@ -357,7 +357,7 @@ int Build_Work( BOARD* Pcb, CHEVELU* pt_base_chevelu ) ...@@ -357,7 +357,7 @@ int Build_Work( BOARD* Pcb, CHEVELU* pt_base_chevelu )
continue; continue;
pt_pad = pt_rats->pad_start; pt_pad = pt_rats->pad_start;
current_net_code = pt_pad->m_NetCode; current_net_code = pt_pad->GetNet();
pt_ch = pt_rats; pt_ch = pt_rats;
r1 = (pt_pad->m_Pos.y - Pcb->m_BoundaryBox.m_Pos.y + demi_pas ) / g_GridRoutingSize; r1 = (pt_pad->m_Pos.y - Pcb->m_BoundaryBox.m_Pos.y + demi_pas ) / g_GridRoutingSize;
......
...@@ -568,7 +568,7 @@ EQUIPOT* BOARD::FindNet( int anetcode ) const ...@@ -568,7 +568,7 @@ EQUIPOT* BOARD::FindNet( int anetcode ) const
EQUIPOT* net = (EQUIPOT*) m_Equipots; EQUIPOT* net = (EQUIPOT*) m_Equipots;
while( net ) while( net )
{ {
if( net->m_NetCode == anetcode ) if( net->GetNet() == anetcode )
break; break;
net = (EQUIPOT*) net->Pnext; net = (EQUIPOT*) net->Pnext;
} }
......
...@@ -33,7 +33,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const ...@@ -33,7 +33,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
{ {
case PCB_EQUIPOT_STRUCT_TYPE: case PCB_EQUIPOT_STRUCT_TYPE:
text << _( "Net" ) << ( (EQUIPOT*) item )->m_Netname << wxT( " " ) << text << _( "Net" ) << ( (EQUIPOT*) item )->m_Netname << wxT( " " ) <<
( (EQUIPOT*) item )->m_NetCode; ( (EQUIPOT*) item )->GetNet();
break; break;
case TYPEMODULE: case TYPEMODULE:
...@@ -60,7 +60,6 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const ...@@ -60,7 +60,6 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
break; break;
case TYPETEXTEMODULE: case TYPETEXTEMODULE:
switch( ( (TEXTE_MODULE*) item )->m_Type ) switch( ( (TEXTE_MODULE*) item )->m_Type )
{ {
case TEXT_is_REFERENCE: case TEXT_is_REFERENCE:
...@@ -78,7 +77,6 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const ...@@ -78,7 +77,6 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
<< ( (MODULE*) GetParent() )->GetReference(); << ( (MODULE*) GetParent() )->GetReference();
break; break;
} }
break; break;
case TYPEEDGEMODULE: case TYPEEDGEMODULE:
...@@ -124,13 +122,21 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const ...@@ -124,13 +122,21 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
break; break;
case TYPETRACK: case TYPETRACK:
// deleting tracks requires all the information we can get to
// disambiguate all the crap under the cursor!
{
wxString txt;
text << _( "Track" ) << wxT( " " ) << ((TRACK*)item)->ShowWidth(); text << _( "Track" ) << wxT( " " ) << ((TRACK*)item)->ShowWidth();
net = aPcb->FindNet( ((TRACK*)item)->m_NetCode ); net = aPcb->FindNet( ((TRACK*)item)->GetNet() );
if( net ) if( net )
{ {
text << wxT( " [" ) << net->m_Netname << wxT( "]" ); text << wxT( " [" ) << net->m_Netname << wxT( "]" );
} }
text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim(); text << _( " on " ) << ReturnPcbLayerName( item->GetLayer() ).Trim()
<< wxT(" ") << _("Net:") << ((TRACK*)item)->GetNet()
<< wxT(" ") << _("Length:") << valeur_param( (int) ((TRACK*)item)->GetLength(), txt );
}
break; break;
case TYPEZONE: case TYPEZONE:
...@@ -140,7 +146,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const ...@@ -140,7 +146,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
TimeStampText.Printf( wxT( "(%8.8X)" ), item->m_TimeStamp ); TimeStampText.Printf( wxT( "(%8.8X)" ), item->m_TimeStamp );
text << TimeStampText; text << TimeStampText;
} }
net = aPcb->FindNet( ( (SEGZONE*) item )->m_NetCode ); net = aPcb->FindNet( ( (SEGZONE*) item )->GetNet() );
if( net ) if( net )
{ {
text << wxT( " [" ) << net->m_Netname << wxT( "]" ); text << wxT( " [" ) << net->m_Netname << wxT( "]" );
...@@ -160,7 +166,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const ...@@ -160,7 +166,7 @@ wxString BOARD_ITEM::MenuText( const BOARD* aPcb ) const
text << wxT(" ") << _("Buried"); text << wxT(" ") << _("Buried");
// else say nothing about normal vias // else say nothing about normal vias
net = aPcb->FindNet( via->m_NetCode ); net = aPcb->FindNet( via->GetNet() );
if( net ) if( net )
{ {
text << wxT( " [" ) << net->m_Netname << wxT( "]" ); text << wxT( " [" ) << net->m_Netname << wxT( "]" );
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
EQUIPOT::EQUIPOT( BOARD_ITEM* StructFather ) : EQUIPOT::EQUIPOT( BOARD_ITEM* StructFather ) :
BOARD_ITEM( StructFather, PCB_EQUIPOT_STRUCT_TYPE ) BOARD_ITEM( StructFather, PCB_EQUIPOT_STRUCT_TYPE )
{ {
m_NetCode = 0; SetNet( 0 );
m_NbNodes = m_NbLink = m_NbNoconn = 0; m_NbNodes = m_NbLink = m_NbNoconn = 0;
m_Masque_Layer = 0; m_Masque_Layer = 0;
m_Masque_Plan = 0; m_Masque_Plan = 0;
...@@ -87,7 +87,7 @@ int EQUIPOT:: ReadEquipotDescr( FILE* File, int* LineNum ) ...@@ -87,7 +87,7 @@ int EQUIPOT:: ReadEquipotDescr( FILE* File, int* LineNum )
if( strncmp( Line, "Na", 2 ) == 0 ) /* Texte */ if( strncmp( Line, "Na", 2 ) == 0 ) /* Texte */
{ {
sscanf( Line + 2, " %d", &tmp ); sscanf( Line + 2, " %d", &tmp );
m_NetCode = tmp; SetNet( tmp );
ReadDelimitedText( Ltmp, Line + 2, sizeof(Ltmp) ); ReadDelimitedText( Ltmp, Line + 2, sizeof(Ltmp) );
m_Netname = CONV_FROM_UTF8( Ltmp ); m_Netname = CONV_FROM_UTF8( Ltmp );
...@@ -114,7 +114,7 @@ int EQUIPOT:: WriteEquipotDescr( FILE* File ) ...@@ -114,7 +114,7 @@ int EQUIPOT:: WriteEquipotDescr( FILE* File )
return 0; return 0;
fprintf( File, "$EQUIPOT\n" ); fprintf( File, "$EQUIPOT\n" );
fprintf( File, "Na %d \"%.16s\"\n", m_NetCode, CONV_TO_UTF8( m_Netname ) ); fprintf( File, "Na %d \"%.16s\"\n", GetNet(), CONV_TO_UTF8( m_Netname ) );
fprintf( File, "St %s\n", "~" ); fprintf( File, "St %s\n", "~" );
if( m_ForceWidth ) if( m_ForceWidth )
fprintf( File, "Lw %d\n", m_ForceWidth ); fprintf( File, "Lw %d\n", m_ForceWidth );
...@@ -135,6 +135,6 @@ void EQUIPOT::Show( int nestLevel, std::ostream& os ) ...@@ -135,6 +135,6 @@ void EQUIPOT::Show( int nestLevel, std::ostream& os )
// for now, make it look like XML: // for now, make it look like XML:
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
" name=\"" << m_Netname.mb_str() << '"' << " name=\"" << m_Netname.mb_str() << '"' <<
" netcode=\"" << m_NetCode << "\"/>\n"; " netcode=\"" << GetNet() << "\"/>\n";
} }
#endif #endif
...@@ -7,10 +7,13 @@ ...@@ -7,10 +7,13 @@
class EQUIPOT : public BOARD_ITEM class EQUIPOT : public BOARD_ITEM
{ {
private:
int m_NetCode; // numero de code interne du net
public: public:
wxString m_Netname; // nom du net wxString m_Netname; // nom du net
int status; // no route, hight light... int status; // no route, hight light...
int m_NetCode; // numero de code interne du net
int m_NbNodes; // nombre de pads appartenant au net int m_NbNodes; // nombre de pads appartenant au net
int m_NbLink; // nombre de chevelus int m_NbLink; // nombre de chevelus
int m_NbNoconn; // nombre de chevelus actifs int m_NbNoconn; // nombre de chevelus actifs
...@@ -32,6 +35,13 @@ public: ...@@ -32,6 +35,13 @@ public:
int ReadEquipotDescr( FILE* File, int* LineNum ); int ReadEquipotDescr( FILE* File, int* LineNum );
int WriteEquipotDescr( FILE* File ); int WriteEquipotDescr( FILE* File );
/**
* Function GetNet
* @return int - the netcode
*/
int GetNet() const { return m_NetCode; }
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
/** /**
* Function GetClass * Function GetClass
......
...@@ -31,7 +31,7 @@ D_PAD::D_PAD( MODULE* parent ) : ...@@ -31,7 +31,7 @@ D_PAD::D_PAD( MODULE* parent ) :
{ {
m_NumPadName = 0; m_NumPadName = 0;
m_Masque_Layer = CUIVRE_LAYER; m_Masque_Layer = CUIVRE_LAYER;
m_NetCode = 0; /* Numero de net pour comparaisons rapides */ SetNet( 0 ); /* Numero de net pour comparaisons rapides */
m_DrillShape = CIRCLE; // Drill shape = circle m_DrillShape = CIRCLE; // Drill shape = circle
m_Size.x = m_Size.y = 500; m_Size.x = m_Size.y = 500;
...@@ -169,7 +169,7 @@ void D_PAD::Copy( D_PAD* source ) ...@@ -169,7 +169,7 @@ void D_PAD::Copy( D_PAD* source )
m_Masque_Layer = source->m_Masque_Layer; m_Masque_Layer = source->m_Masque_Layer;
memcpy( m_Padname, source->m_Padname, sizeof(m_Padname) ); /* nom de la pastille */ memcpy( m_Padname, source->m_Padname, sizeof(m_Padname) ); /* nom de la pastille */
m_NetCode = source->m_NetCode; /* Numero de net pour comparaisons rapides */ SetNet( source->GetNet() ); /* Numero de net pour comparaisons rapides */
m_Drill = source->m_Drill; // Diametre de percage m_Drill = source->m_Drill; // Diametre de percage
m_DrillShape = source->m_DrillShape; m_DrillShape = source->m_DrillShape;
m_Offset = source->m_Offset; // Offset de la forme m_Offset = source->m_Offset; // Offset de la forme
...@@ -737,7 +737,10 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum ) ...@@ -737,7 +737,10 @@ int D_PAD::ReadDescr( FILE* File, int* LineNum )
break; break;
case 'N': /* Lecture du netname */ case 'N': /* Lecture du netname */
nn = sscanf( PtLine, "%d", &m_NetCode ); int netcode;
nn = sscanf( PtLine, "%d", &netcode );
SetNet( netcode );
/* Lecture du netname */ /* Lecture du netname */
ReadDelimitedText( BufLine, PtLine, sizeof(BufLine) ); ReadDelimitedText( BufLine, PtLine, sizeof(BufLine) );
m_Netname = CONV_FROM_UTF8( StrPurge( BufLine ) ); m_Netname = CONV_FROM_UTF8( StrPurge( BufLine ) );
...@@ -834,7 +837,7 @@ int D_PAD::WriteDescr( FILE* File ) ...@@ -834,7 +837,7 @@ int D_PAD::WriteDescr( FILE* File )
fprintf( File, "At %s N %8.8X\n", texttype, m_Masque_Layer ); fprintf( File, "At %s N %8.8X\n", texttype, m_Masque_Layer );
NbLigne++; NbLigne++;
fprintf( File, "Ne %d \"%s\"\n", m_NetCode, CONV_TO_UTF8( m_Netname ) ); fprintf( File, "Ne %d \"%s\"\n", GetNet(), CONV_TO_UTF8( m_Netname ) );
NbLigne++; NbLigne++;
fprintf( File, "Po %d %d\n", m_Pos0.x, m_Pos0.y ); fprintf( File, "Po %d %d\n", m_Pos0.x, m_Pos0.y );
...@@ -1095,7 +1098,7 @@ void D_PAD::Show( int nestLevel, std::ostream& os ) ...@@ -1095,7 +1098,7 @@ void D_PAD::Show( int nestLevel, std::ostream& os )
NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() <<
" num=\"" << padname << '"' << " num=\"" << padname << '"' <<
" net=\"" << m_Netname.mb_str() << '"' << " net=\"" << m_Netname.mb_str() << '"' <<
" netcode=\"" << m_NetCode << '"' << " netcode=\"" << GetNet() << '"' <<
" layerMask=\"" << layerMask << '"' << m_Pos << "/>\n"; " layerMask=\"" << layerMask << '"' << m_Pos << "/>\n";
// NestedSpace( nestLevel+1, os ) << m_Text.mb_str() << '\n'; // NestedSpace( nestLevel+1, os ) << m_Text.mb_str() << '\n';
......
...@@ -21,6 +21,9 @@ class Pcb3D_GLCanvas; ...@@ -21,6 +21,9 @@ class Pcb3D_GLCanvas;
/* Definition type Structure d'un pad */ /* Definition type Structure d'un pad */
class D_PAD : public BOARD_ITEM class D_PAD : public BOARD_ITEM
{ {
private:
int m_NetCode; // Net number for fast comparisons
public: public:
union union
{ {
...@@ -54,7 +57,6 @@ public: ...@@ -54,7 +57,6 @@ public:
int m_Attribut; // NORMAL, SMD, CONN int m_Attribut; // NORMAL, SMD, CONN
int m_Orient; // in 1/10 degrees int m_Orient; // in 1/10 degrees
int m_NetCode; // Net number for fast comparisons
int m_logical_connexion; // variable used in rastnest computations int m_logical_connexion; // variable used in rastnest computations
// handle block number in ratsnet connection // handle block number in ratsnet connection
...@@ -88,6 +90,15 @@ public: ...@@ -88,6 +90,15 @@ public:
void ComputeRayon(); // compute m_Rayon, rayon du cercle exinscrit void ComputeRayon(); // compute m_Rayon, rayon du cercle exinscrit
const wxPoint ReturnShapePos(); // retourne la position const wxPoint ReturnShapePos(); // retourne la position
/**
* Function GetNet
* @return int - the netcode
*/
int GetNet() const { return m_NetCode; }
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
/** /**
* Function Display_Infos * Function Display_Infos
* has knowledge about the frame and how and where to put status information * has knowledge about the frame and how and where to put status information
......
...@@ -28,8 +28,8 @@ TRACK::TRACK( BOARD_ITEM* StructFather, KICAD_T idtype ) : ...@@ -28,8 +28,8 @@ TRACK::TRACK( BOARD_ITEM* StructFather, KICAD_T idtype ) :
m_Width = 0; m_Width = 0;
m_Shape = S_SEGMENT; m_Shape = S_SEGMENT;
start = end = NULL; start = end = NULL;
m_NetCode = 0; SetNet( 0 );
m_Sous_Netcode = 0; SetSubNet( 0 );
m_Drill = -1; m_Drill = -1;
m_Param = 0; m_Param = 0;
} }
...@@ -73,7 +73,7 @@ TRACK::TRACK( const TRACK& Source ) : ...@@ -73,7 +73,7 @@ TRACK::TRACK( const TRACK& Source ) :
BOARD_ITEM( Source ) BOARD_ITEM( Source )
{ {
m_Shape = Source.m_Shape; m_Shape = Source.m_Shape;
m_NetCode = Source.m_NetCode; SetNet( Source.GetNet() );
m_Flags = Source.m_Flags; m_Flags = Source.m_Flags;
m_TimeStamp = Source.m_TimeStamp; m_TimeStamp = Source.m_TimeStamp;
SetStatus( Source.ReturnStatus() ); SetStatus( Source.ReturnStatus() );
...@@ -81,7 +81,7 @@ TRACK::TRACK( const TRACK& Source ) : ...@@ -81,7 +81,7 @@ TRACK::TRACK( const TRACK& Source ) :
m_End = Source.m_End; m_End = Source.m_End;
m_Width = Source.m_Width; m_Width = Source.m_Width;
m_Drill = Source.m_Drill; m_Drill = Source.m_Drill;
m_Sous_Netcode = Source.m_Sous_Netcode; SetSubNet( Source.GetSubNet() );
m_Param = Source.m_Param; m_Param = Source.m_Param;
} }
...@@ -121,6 +121,21 @@ bool TRACK::IsNull() ...@@ -121,6 +121,21 @@ bool TRACK::IsNull()
} }
/*************************************************************/
double TRACK::GetLength() const
/*************************************************************/
{
int dx = m_Start.x - m_End.x;
int dy = m_Start.y - m_End.y;
double dist = ( (double) dx * dx ) + ( (double) dy * dy );
dist = sqrt( dist );
return dist;
}
/*************************************************************/ /*************************************************************/
int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist ) int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist )
/*************************************************************/ /*************************************************************/
...@@ -133,14 +148,14 @@ int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist ) ...@@ -133,14 +148,14 @@ int TRACK::IsPointOnEnds( const wxPoint& point, int min_dist )
* if min_dist < 0: min_dist = track_width/2 * if min_dist < 0: min_dist = track_width/2
*/ */
{ {
int dx, dy;
int result = 0; int result = 0;
if( min_dist < 0 ) if( min_dist < 0 )
min_dist = m_Width / 2; min_dist = m_Width / 2;
dx = m_Start.x - point.x; int dx = m_Start.x - point.x;
dy = m_Start.y - point.y; int dy = m_Start.y - point.y;
if( min_dist == 0 ) if( min_dist == 0 )
{ {
if( (dx == 0) && (dy == 0 ) ) if( (dx == 0) && (dy == 0 ) )
...@@ -410,12 +425,12 @@ TRACK* TRACK::GetBestInsertPoint( BOARD* Pcb ) ...@@ -410,12 +425,12 @@ TRACK* TRACK::GetBestInsertPoint( BOARD* Pcb )
/* Traitement du debut de liste */ /* Traitement du debut de liste */
if( track == NULL ) if( track == NULL )
return NULL; /* pas de piste ! */ return NULL; /* pas de piste ! */
if( m_NetCode < track->m_NetCode ) /* insertion en tete de liste */ if( GetNet() < track->GetNet() ) /* insertion en tete de liste */
return NULL; return NULL;
while( (NextTrack = (TRACK*) track->Pnext) != NULL ) while( (NextTrack = (TRACK*) track->Pnext) != NULL )
{ {
if( NextTrack->m_NetCode > this->m_NetCode ) if( NextTrack->GetNet() > this->GetNet() )
break; break;
track = NextTrack; track = NextTrack;
} }
...@@ -436,16 +451,19 @@ TRACK* TRACK::GetStartNetCode( int NetCode ) ...@@ -436,16 +451,19 @@ TRACK* TRACK::GetStartNetCode( int NetCode )
int ii = 0; int ii = 0;
if( NetCode == -1 ) if( NetCode == -1 )
NetCode = m_NetCode; NetCode = GetNet();
while( Track != NULL ) while( Track != NULL )
{ {
if( Track->m_NetCode > NetCode ) if( Track->GetNet() > NetCode )
break; break;
if( Track->m_NetCode == NetCode )
if( Track->GetNet() == NetCode )
{ {
ii++; break; ii++;
break;
} }
Track = (TRACK*) Track->Pnext; Track = (TRACK*) Track->Pnext;
} }
...@@ -468,17 +486,20 @@ TRACK* TRACK::GetEndNetCode( int NetCode ) ...@@ -468,17 +486,20 @@ TRACK* TRACK::GetEndNetCode( int NetCode )
return NULL; return NULL;
if( NetCode == -1 ) if( NetCode == -1 )
NetCode = m_NetCode; NetCode = GetNet();
while( Track != NULL ) while( Track != NULL )
{ {
NextS = (TRACK*) Track->Pnext; NextS = (TRACK*) Track->Pnext;
if( Track->m_NetCode == NetCode ) if( Track->GetNet() == NetCode )
ii++; ii++;
if( NextS == NULL ) if( NextS == NULL )
break; break;
if( NextS->m_NetCode > NetCode )
if( NextS->GetNet() > NetCode )
break; break;
Track = NextS; Track = NextS;
} }
...@@ -539,7 +560,7 @@ bool TRACK::WriteTrackDescr( FILE* File ) ...@@ -539,7 +560,7 @@ bool TRACK::WriteTrackDescr( FILE* File )
m_Start.x, m_Start.y, m_End.x, m_End.y, m_Width, m_Drill ); m_Start.x, m_Start.y, m_End.x, m_End.y, m_Width, m_Drill );
fprintf( File, "De %d %d %d %lX %X\n", fprintf( File, "De %d %d %d %lX %X\n",
m_Layer, type, m_NetCode, m_Layer, type, GetNet(),
m_TimeStamp, ReturnStatus() ); m_TimeStamp, ReturnStatus() );
return TRUE; return TRUE;
...@@ -724,7 +745,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame ) ...@@ -724,7 +745,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
|| Type() == TYPEZONE || Type() == TYPEZONE
|| Type() == TYPEVIA ) || Type() == TYPEVIA )
{ {
EQUIPOT* equipot = ((WinEDA_PcbFrame*)frame)->m_Pcb->FindNet( m_NetCode ); EQUIPOT* equipot = ((WinEDA_PcbFrame*)frame)->m_Pcb->FindNet( GetNet() );
if( equipot ) if( equipot )
msg = equipot->m_Netname; msg = equipot->m_Netname;
...@@ -734,7 +755,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame ) ...@@ -734,7 +755,7 @@ void TRACK::Display_Infos( WinEDA_DrawFrame* frame )
Affiche_1_Parametre( frame, text_pos, _( "NetName" ), msg, RED ); Affiche_1_Parametre( frame, text_pos, _( "NetName" ), msg, RED );
/* Affiche net code :*/ /* Affiche net code :*/
msg.Printf( wxT( "%d .%d" ), m_NetCode, m_Sous_Netcode ); msg.Printf( wxT( "%d .%d" ), GetNet(), GetSubNet() );
text_pos += 18; text_pos += 18;
Affiche_1_Parametre( frame, text_pos, _( "NetCode" ), msg, RED ); Affiche_1_Parametre( frame, text_pos, _( "NetCode" ), msg, RED );
} }
...@@ -861,7 +882,7 @@ void TRACK::Show( int nestLevel, std::ostream& os ) ...@@ -861,7 +882,7 @@ void TRACK::Show( int nestLevel, std::ostream& os )
" layer=\"" << m_Layer << '"' << " layer=\"" << m_Layer << '"' <<
" width=\"" << m_Width << '"' << " width=\"" << m_Width << '"' <<
// " drill=\"" << m_Drill << '"' << // " drill=\"" << m_Drill << '"' <<
" netcode=\"" << m_NetCode << "\">" << " netcode=\"" << GetNet() << "\">" <<
"<start" << m_Start << "/>" << "<start" << m_Start << "/>" <<
"<end" << m_End << "/>"; "<end" << m_End << "/>";
...@@ -900,7 +921,7 @@ void SEGVIA::Show( int nestLevel, std::ostream& os ) ...@@ -900,7 +921,7 @@ void SEGVIA::Show( int nestLevel, std::ostream& os )
<< ReturnPcbLayerName( botLayer ).Trim().mb_str() << '"' << << ReturnPcbLayerName( botLayer ).Trim().mb_str() << '"' <<
" width=\"" << m_Width << '"' << " width=\"" << m_Width << '"' <<
" drill=\"" << m_Drill << '"' << " drill=\"" << m_Drill << '"' <<
" netcode=\"" << m_NetCode << "\">" << " netcode=\"" << GetNet() << "\">" <<
"<pos" << m_Start << "/>"; "<pos" << m_Start << "/>";
os << "</" << GetClass().Lower().mb_str() << ">\n"; os << "</" << GetClass().Lower().mb_str() << ">\n";
......
...@@ -32,14 +32,14 @@ public: ...@@ -32,14 +32,14 @@ public:
BOARD_ITEM* start; // pointers on a connected item (pad or track) BOARD_ITEM* start; // pointers on a connected item (pad or track)
BOARD_ITEM* end; BOARD_ITEM* end;
int m_NetCode; // Net number
int m_Sous_Netcode; /* In rastnest routines : for the current net,
* block number (number common to the current connected items found) */
// chain = 0 indique une connexion non encore traitee // chain = 0 indique une connexion non encore traitee
int m_Param; // Auxiliary variable ( used in some computations ) int m_Param; // Auxiliary variable ( used in some computations )
protected: protected:
int m_NetCode; // Net number
int m_Sous_Netcode; /* In rastnest routines : for the current net,
* block number (number common to the current connected items found) */
TRACK( const TRACK& track ); // protected so Copy() is used instead. TRACK( const TRACK& track ); // protected so Copy() is used instead.
public: public:
...@@ -90,6 +90,30 @@ public: ...@@ -90,6 +90,30 @@ public:
/* Recherche de la fin du net */ /* Recherche de la fin du net */
TRACK* GetEndNetCode( int NetCode ); TRACK* GetEndNetCode( int NetCode );
/**
* Function GetNet
* @return int - the net code.
*/
int GetNet() const { return m_NetCode; }
void SetNet( int aNetCode ) { m_NetCode = aNetCode; }
/**
* Function GetSubNet
* @return int - the sub net code.
*/
int GetSubNet() const { return m_Sous_Netcode; }
void SetSubNet( int aSubNetCode ) { m_Sous_Netcode = aSubNetCode; }
/**
* Function GetLength
* returns the length of the track using the hypotenuse calculation.
* @return double - the length of the track
*/
double GetLength() const;
/* Display on screen: */ /* Display on screen: */
void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode ); void Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode );
......
...@@ -207,9 +207,9 @@ static void suppression_piste_non_connectee( WinEDA_PcbFrame* frame, wxDC* DC ) ...@@ -207,9 +207,9 @@ static void suppression_piste_non_connectee( WinEDA_PcbFrame* frame, wxDC* DC )
if( frame->DrawPanel->m_AbortRequest ) if( frame->DrawPanel->m_AbortRequest )
break; break;
if( PtSegm->m_NetCode != oldnetcode ) if( PtSegm->GetNet() != oldnetcode )
{ {
PtStartNetCode = PtSegm; oldnetcode = PtSegm->m_NetCode; PtStartNetCode = PtSegm; oldnetcode = PtSegm->GetNet();
} }
flag_erase = 0; type_end = 0; flag_erase = 0; type_end = 0;
...@@ -381,7 +381,7 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC ) ...@@ -381,7 +381,7 @@ static int clean_segments( WinEDA_PcbFrame* frame, wxDC* DC )
continue; continue;
if( PtSegm->GetLayer() != pt_aux->GetLayer() ) if( PtSegm->GetLayer() != pt_aux->GetLayer() )
continue; continue;
if( PtSegm->m_NetCode != pt_aux->m_NetCode ) if( PtSegm->GetNet() != pt_aux->GetNet() )
break; break;
if( (PtSegm->m_Start.x == pt_aux->m_Start.x ) if( (PtSegm->m_Start.x == pt_aux->m_Start.x )
...@@ -676,14 +676,14 @@ int Netliste_Controle_piste( WinEDA_PcbFrame* frame, wxDC* DC, int affiche ) ...@@ -676,14 +676,14 @@ int Netliste_Controle_piste( WinEDA_PcbFrame* frame, wxDC* DC, int affiche )
net_code_s = -1; net_code_s = -1;
if( (PtSegm->start != NULL) if( (PtSegm->start != NULL)
&& ( ( (EDA_BaseStruct*) (PtSegm->start) )->Type() == TYPEPAD ) ) && ( ( (EDA_BaseStruct*) (PtSegm->start) )->Type() == TYPEPAD ) )
net_code_s = ( (D_PAD*) (PtSegm->start) )->m_NetCode; net_code_s = ( (D_PAD*) (PtSegm->start) )->GetNet();
else else
{ {
pt_aux = Locate_Piste_Connectee( PtSegm, frame->m_Pcb->m_Track, pt_aux = Locate_Piste_Connectee( PtSegm, frame->m_Pcb->m_Track,
NULL, START ); NULL, START );
if( pt_aux ) if( pt_aux )
net_code_s = pt_aux->m_NetCode; net_code_s = pt_aux->GetNet();
} }
if( net_code_s < 0 ) if( net_code_s < 0 )
continue;/* Extremite en l'air */ continue;/* Extremite en l'air */
...@@ -692,14 +692,14 @@ int Netliste_Controle_piste( WinEDA_PcbFrame* frame, wxDC* DC, int affiche ) ...@@ -692,14 +692,14 @@ int Netliste_Controle_piste( WinEDA_PcbFrame* frame, wxDC* DC, int affiche )
net_code_e = -1; net_code_e = -1;
if( (PtSegm->end != NULL) if( (PtSegm->end != NULL)
&& ( ( (EDA_BaseStruct*) (PtSegm->end) )->Type() == TYPEPAD ) ) && ( ( (EDA_BaseStruct*) (PtSegm->end) )->Type() == TYPEPAD ) )
net_code_e = ( (D_PAD*) (PtSegm->end) )->m_NetCode; net_code_e = ( (D_PAD*) (PtSegm->end) )->GetNet();
else else
{ {
pt_aux = Locate_Piste_Connectee( PtSegm, frame->m_Pcb->m_Track, pt_aux = Locate_Piste_Connectee( PtSegm, frame->m_Pcb->m_Track,
NULL, END ); NULL, END );
if( pt_aux ) if( pt_aux )
net_code_e = pt_aux->m_NetCode; net_code_e = pt_aux->GetNet();
} }
if( net_code_e < 0 ) if( net_code_e < 0 )
......
This diff is collapsed.
...@@ -268,6 +268,11 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse ) ...@@ -268,6 +268,11 @@ void WinEDA_BasePcbFrame::GeneralControle( wxDC* DC, wxPoint Mouse )
if( delta.y <= 0 ) if( delta.y <= 0 )
delta.y = 1; delta.y = 1;
#if 0 && defined(DEBUG)
printf( "delta.x=%d delta.y=%d grid.x=%d, grid.y=%d, zoom=%d\n",
delta.x, delta.y, GetScreen()->GetGrid().x, GetScreen()->GetGrid().y, zoom );
#endif
switch( g_KeyPressed ) switch( g_KeyPressed )
{ {
case EDA_PANNING_UP_KEY: case EDA_PANNING_UP_KEY:
......
...@@ -85,7 +85,7 @@ void RemoteCommand( const char* cmdline ) ...@@ -85,7 +85,7 @@ void RemoteCommand( const char* cmdline )
pad = ReturnPad( module, pinName ); pad = ReturnPad( module, pinName );
if( pad ) if( pad )
netcode = pad->m_NetCode; netcode = pad->GetNet();
if( netcode > 0 ) /* hightlighted the net selected net*/ if( netcode > 0 ) /* hightlighted the net selected net*/
{ {
......
...@@ -110,7 +110,7 @@ TRACK* WinEDA_PcbFrame::Delete_Segment( wxDC* DC, TRACK* Track ) ...@@ -110,7 +110,7 @@ TRACK* WinEDA_PcbFrame::Delete_Segment( wxDC* DC, TRACK* Track )
} // Fin traitement si trace en cours } // Fin traitement si trace en cours
current_net_code = Track->m_NetCode; current_net_code = Track->GetNet();
Track->Draw( DrawPanel, DC, GR_XOR ); Track->Draw( DrawPanel, DC, GR_XOR );
SaveItemEfface( Track, 1 ); SaveItemEfface( Track, 1 );
...@@ -128,7 +128,7 @@ void WinEDA_PcbFrame::Delete_Track( wxDC* DC, TRACK* Track ) ...@@ -128,7 +128,7 @@ void WinEDA_PcbFrame::Delete_Track( wxDC* DC, TRACK* Track )
{ {
if( Track != NULL ) if( Track != NULL )
{ {
int current_net_code = Track->m_NetCode; int current_net_code = Track->GetNet();
Supprime_Une_Piste( DC, Track ); Supprime_Une_Piste( DC, Track );
GetScreen()->SetModify(); GetScreen()->SetModify();
test_1_net_connexion( DC, current_net_code ); test_1_net_connexion( DC, current_net_code );
...@@ -152,7 +152,7 @@ void WinEDA_PcbFrame::Delete_net( wxDC* DC, TRACK* Track ) ...@@ -152,7 +152,7 @@ void WinEDA_PcbFrame::Delete_net( wxDC* DC, TRACK* Track )
if( IsOK( this, _( "Delete NET ?" ) ) ) if( IsOK( this, _( "Delete NET ?" ) ) )
{ {
net_code_delete = pt_segm->m_NetCode; net_code_delete = pt_segm->GetNet();
/* Recherche du debut de la zone des pistes du net_code courant */ /* Recherche du debut de la zone des pistes du net_code courant */
pt_start = m_Pcb->m_Track->GetStartNetCode( net_code_delete ); pt_start = m_Pcb->m_Track->GetStartNetCode( net_code_delete );
...@@ -160,7 +160,7 @@ void WinEDA_PcbFrame::Delete_net( wxDC* DC, TRACK* Track ) ...@@ -160,7 +160,7 @@ void WinEDA_PcbFrame::Delete_net( wxDC* DC, TRACK* Track )
pt_segm = pt_start; pt_segm = pt_start;
for( ii = 0; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext ) for( ii = 0; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{ {
if( pt_segm->m_NetCode != net_code_delete ) if( pt_segm->GetNet() != net_code_delete )
break; break;
ii++; ii++;
} }
......
...@@ -109,7 +109,7 @@ void Build_1_Pad_SegmentsToDrag(WinEDA_DrawPanel * panel, wxDC * DC, D_PAD * PtP ...@@ -109,7 +109,7 @@ void Build_1_Pad_SegmentsToDrag(WinEDA_DrawPanel * panel, wxDC * DC, D_PAD * PtP
*/ */
{ {
TRACK * Track; TRACK * Track;
int net_code = PtPad->m_NetCode; int net_code = PtPad->GetNet();
int MasqueLayer; int MasqueLayer;
wxPoint pos; wxPoint pos;
BOARD * pcb = ((WinEDA_BasePcbFrame*)(panel->m_Parent))->m_Pcb; BOARD * pcb = ((WinEDA_BasePcbFrame*)(panel->m_Parent))->m_Pcb;
...@@ -120,7 +120,7 @@ BOARD * pcb = ((WinEDA_BasePcbFrame*)(panel->m_Parent))->m_Pcb; ...@@ -120,7 +120,7 @@ BOARD * pcb = ((WinEDA_BasePcbFrame*)(panel->m_Parent))->m_Pcb;
MasqueLayer = PtPad->m_Masque_Layer; MasqueLayer = PtPad->m_Masque_Layer;
for( ; Track != NULL; Track = (TRACK*)Track->Pnext ) for( ; Track != NULL; Track = (TRACK*)Track->Pnext )
{ {
if( Track->m_NetCode != net_code ) break; /* hors zone */ if( Track->GetNet() != net_code ) break; /* hors zone */
if( (MasqueLayer & Track->ReturnMaskLayer()) == 0 ) continue; /* couches differentes */ if( (MasqueLayer & Track->ReturnMaskLayer()) == 0 ) continue; /* couches differentes */
if( pos == Track->m_Start ) if( pos == Track->m_Start )
{ {
...@@ -172,7 +172,7 @@ BOARD * pcb = ((WinEDA_BasePcbFrame*)(panel->m_Parent))->m_Pcb; ...@@ -172,7 +172,7 @@ BOARD * pcb = ((WinEDA_BasePcbFrame*)(panel->m_Parent))->m_Pcb;
for( ; Track != NULL; Track = (TRACK*)Track->Pnext ) for( ; Track != NULL; Track = (TRACK*)Track->Pnext )
{ {
if( Track->m_NetCode != net_code ) break; /* hors zone */ if( Track->GetNet() != net_code ) break; /* hors zone */
if( (MasqueLayer & Track->ReturnMaskLayer()) == 0 ) continue; /* couches differentes */ if( (MasqueLayer & Track->ReturnMaskLayer()) == 0 ) continue; /* couches differentes */
if ( Track->m_Flags & IS_DRAGGED) continue; // already in list if ( Track->m_Flags & IS_DRAGGED) continue; // already in list
if( Track->m_Start == point ) if( Track->m_Start == point )
......
This diff is collapsed.
...@@ -337,7 +337,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) ...@@ -337,7 +337,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
case ID_POPUP_PCB_EDIT_NET: case ID_POPUP_PCB_EDIT_NET:
if( GetCurItem() == NULL ) if( GetCurItem() == NULL )
break; break;
Edit_Net_Width( &dc, ( (TRACK*) GetCurItem() )->m_NetCode ); Edit_Net_Width( &dc, ( (TRACK*) GetCurItem() )->GetNet() );
DrawPanel->MouseToCursorSchema(); DrawPanel->MouseToCursorSchema();
GetScreen()->SetModify(); GetScreen()->SetModify();
break; break;
...@@ -427,11 +427,11 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) ...@@ -427,11 +427,11 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
break; break;
case ID_POPUP_PCB_LOCK_ON_NET: case ID_POPUP_PCB_LOCK_ON_NET:
Attribut_net( &dc, ( (TRACK*) GetCurItem() )->m_NetCode, TRUE ); Attribut_net( &dc, ( (TRACK*) GetCurItem() )->GetNet(), TRUE );
break; break;
case ID_POPUP_PCB_LOCK_OFF_NET: case ID_POPUP_PCB_LOCK_OFF_NET:
Attribut_net( &dc, ( (TRACK*) GetCurItem() )->m_NetCode, FALSE ); Attribut_net( &dc, ( (TRACK*) GetCurItem() )->GetNet(), FALSE );
break; break;
case ID_POPUP_PCB_SETFLAGS_TRACK_MNU: case ID_POPUP_PCB_SETFLAGS_TRACK_MNU:
......
...@@ -87,7 +87,7 @@ int nb_segm_non_modifies = 0; ...@@ -87,7 +87,7 @@ int nb_segm_non_modifies = 0;
/* balayage des segments */ /* balayage des segments */
for( pt_segm = m_Pcb->m_Track; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext ) for( pt_segm = m_Pcb->m_Track; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{ {
if ( Netcode != pt_segm->m_NetCode ) /* mauvaise piste */ if ( Netcode != pt_segm->GetNet() ) /* mauvaise piste */
continue ; continue ;
/* piste d'un net trouvee */ /* piste d'un net trouvee */
errdrc = Edit_TrackSegm_Width(DC, pt_segm); errdrc = Edit_TrackSegm_Width(DC, pt_segm);
......
This diff is collapsed.
...@@ -146,7 +146,7 @@ void WinEDA_PcbFrame::ExChange_Track_Layer( TRACK* pt_segm, wxDC* DC ) ...@@ -146,7 +146,7 @@ void WinEDA_PcbFrame::ExChange_Track_Layer( TRACK* pt_segm, wxDC* DC )
pt_segm->end = Locate_Pad_Connecte( m_Pcb, pt_segm, END ); pt_segm->end = Locate_Pad_Connecte( m_Pcb, pt_segm, END );
} }
test_1_net_connexion( DC, pt_track->m_NetCode ); test_1_net_connexion( DC, pt_track->GetNet() );
pt_track->Display_Infos( this ); pt_track->Display_Infos( this );
GetScreen()->SetModify(); GetScreen()->SetModify();
} }
...@@ -219,7 +219,7 @@ void WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC ) ...@@ -219,7 +219,7 @@ void WinEDA_PcbFrame::Other_Layer_Route( TRACK* track, wxDC* DC )
Via->m_Flags = IS_NEW; Via->m_Flags = IS_NEW;
Via->m_Width = g_DesignSettings.m_CurrentViaSize; Via->m_Width = g_DesignSettings.m_CurrentViaSize;
Via->m_Shape = g_DesignSettings.m_CurrentViaType; Via->m_Shape = g_DesignSettings.m_CurrentViaType;
Via->m_NetCode = g_HightLigth_NetCode; Via->SetNet( g_HightLigth_NetCode );
Via->m_Start = Via->m_End = g_CurrentTrackSegment->m_End; Via->m_Start = Via->m_End = g_CurrentTrackSegment->m_End;
int old_layer = GetScreen()->m_Active_Layer; int old_layer = GetScreen()->m_Active_Layer;
...@@ -321,7 +321,7 @@ void WinEDA_PcbFrame::Affiche_Status_Net( wxDC* DC ) ...@@ -321,7 +321,7 @@ void WinEDA_PcbFrame::Affiche_Status_Net( wxDC* DC )
if( pt_segm == NULL ) if( pt_segm == NULL )
m_Pcb->Display_Infos( this ); m_Pcb->Display_Infos( this );
else else
test_1_net_connexion( DC, pt_segm->m_NetCode ); test_1_net_connexion( DC, pt_segm->GetNet() );
} }
...@@ -362,7 +362,7 @@ void WinEDA_PcbFrame::Show_1_Ratsnest( EDA_BaseStruct* item, wxDC* DC ) ...@@ -362,7 +362,7 @@ void WinEDA_PcbFrame::Show_1_Ratsnest( EDA_BaseStruct* item, wxDC* DC )
pt_chevelu = (CHEVELU*) m_Pcb->m_Ratsnest; pt_chevelu = (CHEVELU*) m_Pcb->m_Ratsnest;
for( ii = m_Pcb->GetNumRatsnests(); ii > 0; pt_chevelu++, ii-- ) for( ii = m_Pcb->GetNumRatsnests(); ii > 0; pt_chevelu++, ii-- )
{ {
if( pt_chevelu->m_NetCode == pt_pad->m_NetCode ) if( pt_chevelu->GetNet() == pt_pad->GetNet() )
{ {
if( (pt_chevelu->status & CH_VISIBLE) != 0 ) if( (pt_chevelu->status & CH_VISIBLE) != 0 )
continue; continue;
......
...@@ -119,12 +119,12 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC ) ...@@ -119,12 +119,12 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
/* le debut de la piste est remis sur le centre du pad */ /* le debut de la piste est remis sur le centre du pad */
pos = pt_pad->m_Pos; pos = pt_pad->m_Pos;
g_HightLigth_NetCode = pt_pad->m_NetCode; g_HightLigth_NetCode = pt_pad->GetNet();
} }
else /* le point d'accrochage est un segment */ else /* le point d'accrochage est un segment */
{ {
adr_buf = (TRACK*) LockPoint; adr_buf = (TRACK*) LockPoint;
g_HightLigth_NetCode = adr_buf->m_NetCode; g_HightLigth_NetCode = adr_buf->GetNet();
CreateLockPoint( &pos.x, &pos.y, adr_buf, NULL ); CreateLockPoint( &pos.x, &pos.y, adr_buf, NULL );
} }
} }
...@@ -137,7 +137,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC ) ...@@ -137,7 +137,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth; g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
g_CurrentTrackSegment->m_Start = pos; g_CurrentTrackSegment->m_Start = pos;
g_CurrentTrackSegment->m_End = g_CurrentTrackSegment->m_Start; g_CurrentTrackSegment->m_End = g_CurrentTrackSegment->m_Start;
g_CurrentTrackSegment->m_NetCode = g_HightLigth_NetCode; g_CurrentTrackSegment->SetNet( g_HightLigth_NetCode );
if( pt_pad ) if( pt_pad )
{ {
g_CurrentTrackSegment->start = pt_pad; g_CurrentTrackSegment->start = pt_pad;
...@@ -418,7 +418,7 @@ void WinEDA_PcbFrame::End_Route( TRACK* track, wxDC* DC ) ...@@ -418,7 +418,7 @@ void WinEDA_PcbFrame::End_Route( TRACK* track, wxDC* DC )
* peut-etre creer un point d'ancrage */ * peut-etre creer un point d'ancrage */
{ {
adr_buf = (TRACK*) LockPoint; adr_buf = (TRACK*) LockPoint;
g_HightLigth_NetCode = adr_buf->m_NetCode; g_HightLigth_NetCode = adr_buf->GetNet();
/* creation eventuelle d'un point d'accrochage */ /* creation eventuelle d'un point d'accrochage */
LockPoint = CreateLockPoint( &g_CurrentTrackSegment->m_End.x, LockPoint = CreateLockPoint( &g_CurrentTrackSegment->m_End.x,
&g_CurrentTrackSegment->m_End.y, &g_CurrentTrackSegment->m_End.y,
...@@ -458,7 +458,7 @@ void WinEDA_PcbFrame::End_Route( TRACK* track, wxDC* DC ) ...@@ -458,7 +458,7 @@ void WinEDA_PcbFrame::End_Route( TRACK* track, wxDC* DC )
} }
/* compute the new rastnest : */ /* compute the new rastnest : */
test_1_net_connexion( DC, g_FirstTrackSegment->m_NetCode ); test_1_net_connexion( DC, g_FirstTrackSegment->GetNet() );
GetScreen()->SetModify(); GetScreen()->SetModify();
m_Pcb->Display_Infos( this ); m_Pcb->Display_Infos( this );
......
...@@ -85,7 +85,7 @@ int nb_segm_non_modifies = 0; ...@@ -85,7 +85,7 @@ int nb_segm_non_modifies = 0;
/* balayage des segments */ /* balayage des segments */
for( pt_segm = m_Pcb->m_Track; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext ) for( pt_segm = m_Pcb->m_Track; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{ {
if ( Netcode != pt_segm->m_NetCode ) /* mauvaise piste */ if ( Netcode != pt_segm->GetNet() ) /* mauvaise piste */
continue ; continue ;
/* piste d'un net trouvee */ /* piste d'un net trouvee */
errdrc = Edit_TrackSegm_Width(DC, pt_segm); errdrc = Edit_TrackSegm_Width(DC, pt_segm);
......
...@@ -476,7 +476,7 @@ void CreateSignalsSection( FILE* file, BOARD* pcb ) ...@@ -476,7 +476,7 @@ void CreateSignalsSection( FILE* file, BOARD* pcb )
equipot->m_Netname << wxT( "NoConnection" ) << NbNoConn++; equipot->m_Netname << wxT( "NoConnection" ) << NbNoConn++;
} }
if( equipot->m_NetCode <= 0 ) // dummy equipot (non connexion) if( equipot->GetNet() <= 0 ) // dummy equipot (non connexion)
continue; continue;
msg = wxT( "\nSIGNAL " ) + equipot->m_Netname; msg = wxT( "\nSIGNAL " ) + equipot->m_Netname;
...@@ -487,7 +487,7 @@ void CreateSignalsSection( FILE* file, BOARD* pcb ) ...@@ -487,7 +487,7 @@ void CreateSignalsSection( FILE* file, BOARD* pcb )
for( pad = module->m_Pads; pad != NULL; pad = (D_PAD*) pad->Pnext ) for( pad = module->m_Pads; pad != NULL; pad = (D_PAD*) pad->Pnext )
{ {
wxString padname; wxString padname;
if( pad->m_NetCode != equipot->m_NetCode ) if( pad->GetNet() != equipot->GetNet() )
continue; continue;
pad->ReturnStringPadName( padname ); pad->ReturnStringPadName( padname );
msg.Printf( wxT( "NODE %s %.4s" ), msg.Printf( wxT( "NODE %s %.4s" ),
...@@ -545,7 +545,7 @@ static int Track_list_Sort_by_Netcode( const void* refptr, const void* objptr ) ...@@ -545,7 +545,7 @@ static int Track_list_Sort_by_Netcode( const void* refptr, const void* objptr )
ref = *( (TRACK**) refptr ); ref = *( (TRACK**) refptr );
cmp = *( (TRACK**) objptr ); cmp = *( (TRACK**) objptr );
if( (diff = ref->m_NetCode - cmp->m_NetCode) ) if( (diff = ref->GetNet() - cmp->GetNet()) )
return diff; return diff;
if( (diff = ref->m_Width - cmp->m_Width) ) if( (diff = ref->m_Width - cmp->m_Width) )
return diff; return diff;
...@@ -606,10 +606,10 @@ void CreateRoutesSection( FILE* file, BOARD* pcb ) ...@@ -606,10 +606,10 @@ void CreateRoutesSection( FILE* file, BOARD* pcb )
for( ii = 0; ii < nbitems; ii++ ) for( ii = 0; ii < nbitems; ii++ )
{ {
track = tracklist[ii]; track = tracklist[ii];
if( old_netcode != track->m_NetCode ) if( old_netcode != track->GetNet() )
{ {
old_netcode = track->m_NetCode; old_netcode = track->GetNet();
EQUIPOT* equipot = pcb->FindNet( track->m_NetCode ); EQUIPOT* equipot = pcb->FindNet( track->GetNet() );
wxString netname; wxString netname;
if( equipot && (equipot->m_Netname != wxEmptyString) ) if( equipot && (equipot->m_Netname != wxEmptyString) )
netname = equipot->m_Netname; netname = equipot->m_Netname;
......
...@@ -177,7 +177,7 @@ int WinEDA_BasePcbFrame::ReadListeSegmentDescr( wxDC* DC, FILE* File, ...@@ -177,7 +177,7 @@ int WinEDA_BasePcbFrame::ReadListeSegmentDescr( wxDC* DC, FILE* File,
PtSegm->m_Drill = -1; PtSegm->m_Drill = -1;
PtSegm->SetLayer( layer ); PtSegm->SetLayer( layer );
PtSegm->m_NetCode = net_code; PtSegm->SetNet( net_code );
PtSegm->SetState( flags, ON ); PtSegm->SetState( flags, ON );
#ifdef PCBNEW #ifdef PCBNEW
...@@ -356,7 +356,8 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum ) ...@@ -356,7 +356,8 @@ int WinEDA_BasePcbFrame::ReadSetup( FILE* File, int* LineNum )
data = strtok( NULL, " =\n\r" ); data = strtok( NULL, " =\n\r" );
if( data ) if( data )
gy = atoi( data ); gy = atoi( data );
m_Auxiliary_Axis_Position.x = gx; m_Auxiliary_Axis_Position.y = gy; m_Auxiliary_Axis_Position.x = gx;
m_Auxiliary_Axis_Position.y = gy;
continue; continue;
} }
#ifdef PCBNEW #ifdef PCBNEW
......
...@@ -499,6 +499,7 @@ void WinEDA_BasePcbFrame::Change_Side_Module( MODULE* Module, wxDC* DC ) ...@@ -499,6 +499,7 @@ void WinEDA_BasePcbFrame::Change_Side_Module( MODULE* Module, wxDC* DC )
if( DC ) if( DC )
{ {
Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR ); Module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
/* affichage chevelu general si necessaire */ /* affichage chevelu general si necessaire */
ReCompile_Ratsnest_After_Changes( DC ); ReCompile_Ratsnest_After_Changes( DC );
} }
...@@ -730,6 +731,7 @@ void WinEDA_BasePcbFrame::Rotate_Module( wxDC* DC, MODULE* module, ...@@ -730,6 +731,7 @@ void WinEDA_BasePcbFrame::Rotate_Module( wxDC* DC, MODULE* module,
if( !(module->m_Flags & IS_MOVED) ) /* Rotation simple */ if( !(module->m_Flags & IS_MOVED) ) /* Rotation simple */
{ {
module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR ); module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_OR );
/* Reaffichage chevelu general si necessaire */ /* Reaffichage chevelu general si necessaire */
ReCompile_Ratsnest_After_Changes( DC ); ReCompile_Ratsnest_After_Changes( DC );
} }
......
...@@ -194,7 +194,7 @@ void WinEDA_PcbFrame::Start_MoveOneTrackSegment( TRACK* track, wxDC* DC, bool Dr ...@@ -194,7 +194,7 @@ void WinEDA_PcbFrame::Start_MoveOneTrackSegment( TRACK* track, wxDC* DC, bool Dr
{ {
track->m_Flags = IS_DRAGGED | STARTPOINT | ENDPOINT; track->m_Flags = IS_DRAGGED | STARTPOINT | ENDPOINT;
Collect_TrackSegmentsToDrag( DrawPanel, DC, track->m_Start, Collect_TrackSegmentsToDrag( DrawPanel, DC, track->m_Start,
track->ReturnMaskLayer(), track->m_NetCode ); track->ReturnMaskLayer(), track->GetNet() );
NewTrack = track; NewTrack = track;
NbPtNewTrack = 1; NbPtNewTrack = 1;
PosInit = track->m_Start; PosInit = track->m_Start;
...@@ -204,7 +204,7 @@ void WinEDA_PcbFrame::Start_MoveOneTrackSegment( TRACK* track, wxDC* DC, bool Dr ...@@ -204,7 +204,7 @@ void WinEDA_PcbFrame::Start_MoveOneTrackSegment( TRACK* track, wxDC* DC, bool Dr
int diag = track->IsPointOnEnds( GetScreen()->m_Curseur, -1 ); int diag = track->IsPointOnEnds( GetScreen()->m_Curseur, -1 );
wxPoint pos = (diag & STARTPOINT) ? track->m_Start : track->m_End; wxPoint pos = (diag & STARTPOINT) ? track->m_Start : track->m_End;
Collect_TrackSegmentsToDrag( DrawPanel, DC, pos, Collect_TrackSegmentsToDrag( DrawPanel, DC, pos,
track->ReturnMaskLayer(), track->m_NetCode ); track->ReturnMaskLayer(), track->GetNet() );
track->m_Flags |= IS_DRAGGED; track->m_Flags |= IS_DRAGGED;
NewTrack = NULL; NewTrack = NULL;
NbPtNewTrack = 0; NbPtNewTrack = 0;
...@@ -214,7 +214,7 @@ void WinEDA_PcbFrame::Start_MoveOneTrackSegment( TRACK* track, wxDC* DC, bool Dr ...@@ -214,7 +214,7 @@ void WinEDA_PcbFrame::Start_MoveOneTrackSegment( TRACK* track, wxDC* DC, bool Dr
DrawPanel->ManageCurseur = Show_MoveTrack; DrawPanel->ManageCurseur = Show_MoveTrack;
DrawPanel->ForceCloseManageCurseur = Exit_MoveTrack; DrawPanel->ForceCloseManageCurseur = Exit_MoveTrack;
g_HightLigth_NetCode = track->m_NetCode; g_HightLigth_NetCode = track->GetNet();
g_HightLigt_Status = TRUE; g_HightLigt_Status = TRUE;
DrawHightLight( DC, g_HightLigth_NetCode ); DrawHightLight( DC, g_HightLigth_NetCode );
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE ); DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
......
...@@ -618,7 +618,7 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track, wxDC* DC, int co ...@@ -618,7 +618,7 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track, wxDC* DC, int co
if( command != ID_POPUP_PCB_MOVE_TRACK_SEGMENT ) if( command != ID_POPUP_PCB_MOVE_TRACK_SEGMENT )
{ {
Collect_TrackSegmentsToDrag( DrawPanel, DC, track->m_Start, Collect_TrackSegmentsToDrag( DrawPanel, DC, track->m_Start,
track->ReturnMaskLayer(), track->m_NetCode ); track->ReturnMaskLayer(), track->GetNet() );
} }
NewTrack = track; NewTrack = track;
NbPtNewTrack = 1; NbPtNewTrack = 1;
...@@ -639,17 +639,17 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track, wxDC* DC, int co ...@@ -639,17 +639,17 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track, wxDC* DC, int co
case ID_POPUP_PCB_DRAG_TRACK_SEGMENT: case ID_POPUP_PCB_DRAG_TRACK_SEGMENT:
pos = track->m_Start; pos = track->m_Start;
Collect_TrackSegmentsToDrag( DrawPanel, DC, pos, Collect_TrackSegmentsToDrag( DrawPanel, DC, pos,
track->ReturnMaskLayer(), track->m_NetCode ); track->ReturnMaskLayer(), track->GetNet() );
pos = track->m_End; pos = track->m_End;
track->m_Flags |= IS_DRAGGED | ENDPOINT | STARTPOINT; track->m_Flags |= IS_DRAGGED | ENDPOINT | STARTPOINT;
Collect_TrackSegmentsToDrag( DrawPanel, DC, pos, Collect_TrackSegmentsToDrag( DrawPanel, DC, pos,
track->ReturnMaskLayer(), track->m_NetCode ); track->ReturnMaskLayer(), track->GetNet() );
break; break;
case ID_POPUP_PCB_MOVE_TRACK_NODE: case ID_POPUP_PCB_MOVE_TRACK_NODE:
pos = (diag & STARTPOINT) ? track->m_Start : track->m_End; pos = (diag & STARTPOINT) ? track->m_Start : track->m_End;
Collect_TrackSegmentsToDrag( DrawPanel, DC, pos, Collect_TrackSegmentsToDrag( DrawPanel, DC, pos,
track->ReturnMaskLayer(), track->m_NetCode ); track->ReturnMaskLayer(), track->GetNet() );
PosInit = pos; PosInit = pos;
break; break;
} }
...@@ -660,7 +660,7 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track, wxDC* DC, int co ...@@ -660,7 +660,7 @@ void WinEDA_PcbFrame::Start_MoveOneNodeOrSegment( TRACK* track, wxDC* DC, int co
DrawPanel->ManageCurseur = Show_MoveNode; DrawPanel->ManageCurseur = Show_MoveNode;
DrawPanel->ForceCloseManageCurseur = Abort_MoveTrack; DrawPanel->ForceCloseManageCurseur = Abort_MoveTrack;
g_HightLigth_NetCode = track->m_NetCode; g_HightLigth_NetCode = track->GetNet();
g_HightLigt_Status = TRUE; g_HightLigt_Status = TRUE;
DrawHightLight( DC, g_HightLigth_NetCode ); DrawHightLight( DC, g_HightLigth_NetCode );
DrawPanel->ManageCurseur( DrawPanel, DC, TRUE ); DrawPanel->ManageCurseur( DrawPanel, DC, TRUE );
...@@ -753,7 +753,7 @@ void WinEDA_PcbFrame::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC ...@@ -753,7 +753,7 @@ void WinEDA_PcbFrame::Start_DragTrackSegmentAndKeepSlope( TRACK* track, wxDC* DC
DrawPanel->ManageCurseur = Show_Drag_Track_Segment_With_Cte_Slope; DrawPanel->ManageCurseur = Show_Drag_Track_Segment_With_Cte_Slope;
DrawPanel->ForceCloseManageCurseur = Abort_MoveTrack; DrawPanel->ForceCloseManageCurseur = Abort_MoveTrack;
g_HightLigth_NetCode = track->m_NetCode; g_HightLigth_NetCode = track->GetNet();
g_HightLigt_Status = TRUE; g_HightLigt_Status = TRUE;
DrawHightLight( DC, g_HightLigth_NetCode ); DrawHightLight( DC, g_HightLigth_NetCode );
...@@ -778,7 +778,7 @@ bool WinEDA_PcbFrame::PlaceDraggedTrackSegment( TRACK* Track, wxDC* DC ) ...@@ -778,7 +778,7 @@ bool WinEDA_PcbFrame::PlaceDraggedTrackSegment( TRACK* Track, wxDC* DC )
if( Track == NULL ) if( Track == NULL )
return FALSE; return FALSE;
int current_net_code = Track->m_NetCode; int current_net_code = Track->GetNet();
// DRC control: // DRC control:
if( Drc_On ) if( Drc_On )
......
This diff is collapsed.
...@@ -162,7 +162,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile ) ...@@ -162,7 +162,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile )
if( pt_liste_pad == NULL ) if( pt_liste_pad == NULL )
return; return;
netcode = (*pt_liste_pad)->m_NetCode; netcode = (*pt_liste_pad)->GetNet();
nb_pads = 1; plink = 0; nb_pads = 1; plink = 0;
for( ; pt_liste_pad < pt_liste_pad_limite; ) for( ; pt_liste_pad < pt_liste_pad_limite; )
{ {
...@@ -171,7 +171,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile ) ...@@ -171,7 +171,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile )
{ {
if( pt_end_liste >= pt_liste_pad_limite ) if( pt_end_liste >= pt_liste_pad_limite )
break; break;
if( (*pt_end_liste)->m_NetCode != netcode ) if( (*pt_end_liste)->GetNet() != netcode )
break; break;
nb_pads++; nb_pads++;
} }
...@@ -197,7 +197,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile ) ...@@ -197,7 +197,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile )
for( ; pt_liste_pad < pt_end_liste; pt_liste_pad++ ) for( ; pt_liste_pad < pt_end_liste; pt_liste_pad++ )
{ {
pt_pad = *pt_liste_pad; pt_pad = *pt_liste_pad;
netcode = pt_pad->m_NetCode; netcode = pt_pad->GetNet();
plink = pt_pad->m_physical_connexion; plink = pt_pad->m_physical_connexion;
/* plink = numero unique si pad non deja connecte a une piste */ /* plink = numero unique si pad non deja connecte a une piste */
if( plink <= 0 ) if( plink <= 0 )
...@@ -308,7 +308,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile ) ...@@ -308,7 +308,7 @@ static void Out_Pads( BOARD* Pcb, FILE* outfile )
nb_pads = 1; nb_pads = 1;
pt_liste_pad = pt_start_liste = pt_end_liste; pt_liste_pad = pt_start_liste = pt_end_liste;
if( pt_start_liste < pt_liste_pad_limite ) if( pt_start_liste < pt_liste_pad_limite )
netcode = (*pt_start_liste)->m_NetCode; netcode = (*pt_start_liste)->GetNet();
} }
} }
...@@ -332,9 +332,9 @@ static void ReturnNbViasAndTracks( BOARD* Pcb, int netcode, int* nb_vias, ...@@ -332,9 +332,9 @@ static void ReturnNbViasAndTracks( BOARD* Pcb, int netcode, int* nb_vias,
for( ; track != NULL; track = (TRACK*) track->Pnext ) for( ; track != NULL; track = (TRACK*) track->Pnext )
{ {
if( track->m_NetCode > netcode ) if( track->GetNet() > netcode )
return; return;
if( track->m_NetCode != netcode ) if( track->GetNet() != netcode )
continue; continue;
if( track->Type() == TYPEVIA ) if( track->Type() == TYPEVIA )
(*nb_vias)++; (*nb_vias)++;
...@@ -362,12 +362,12 @@ static void GenExistantTracks( BOARD* Pcb, FILE* outfile, ...@@ -362,12 +362,12 @@ static void GenExistantTracks( BOARD* Pcb, FILE* outfile,
for( ; track != NULL; track = (TRACK*) track->Pnext ) for( ; track != NULL; track = (TRACK*) track->Pnext )
{ {
netcode = track->m_NetCode; netcode = track->GetNet();
if( netcode > current_net_code ) if( netcode > current_net_code )
return; return;
if( netcode != current_net_code ) if( netcode != current_net_code )
continue; continue;
plink = track->m_Sous_Netcode; plink = track->GetSubNet();
via_min_layer = track->GetLayer(); via_min_layer = track->GetLayer();
if( track->Type() != type ) if( track->Type() != type )
......
...@@ -361,7 +361,7 @@ static int Route_1_Trace( WinEDA_PcbFrame* pcbframe, wxDC* DC, ...@@ -361,7 +361,7 @@ static int Route_1_Trace( WinEDA_PcbFrame* pcbframe, wxDC* DC,
masque_layers = masque_layer_TOP | masque_layer_BOTTOM; masque_layers = masque_layer_TOP | masque_layer_BOTTOM;
pt_cur_ch = pt_chevelu; pt_cur_ch = pt_chevelu;
current_net_code = pt_chevelu->m_NetCode; current_net_code = pt_chevelu->GetNet();
pad_masque_layer_s = pt_cur_ch->pad_start->m_Masque_Layer; pad_masque_layer_s = pt_cur_ch->pad_start->m_Masque_Layer;
pad_masque_layer_e = pt_cur_ch->pad_end->m_Masque_Layer; pad_masque_layer_e = pt_cur_ch->pad_end->m_Masque_Layer;
...@@ -936,7 +936,7 @@ static void OrCell_Trace( BOARD* pcb, int col, int row, ...@@ -936,7 +936,7 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
(g_GridRoutingSize * col); (g_GridRoutingSize * col);
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentViaSize; g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentViaSize;
g_CurrentTrackSegment->m_Shape = g_DesignSettings.m_CurrentViaType; g_CurrentTrackSegment->m_Shape = g_DesignSettings.m_CurrentViaType;
g_CurrentTrackSegment->m_NetCode = current_net_code; g_CurrentTrackSegment->SetNet( current_net_code );
} }
else /* Placement d'un segment standard */ else /* Placement d'un segment standard */
{ {
...@@ -958,7 +958,7 @@ static void OrCell_Trace( BOARD* pcb, int col, int row, ...@@ -958,7 +958,7 @@ static void OrCell_Trace( BOARD* pcb, int col, int row,
g_CurrentTrackSegment->SetState( SEGM_AR, ON ); g_CurrentTrackSegment->SetState( SEGM_AR, ON );
g_CurrentTrackSegment->m_End.x = pcb->m_BoundaryBox.m_Pos.x + (g_GridRoutingSize * row); g_CurrentTrackSegment->m_End.x = pcb->m_BoundaryBox.m_Pos.x + (g_GridRoutingSize * row);
g_CurrentTrackSegment->m_End.y = pcb->m_BoundaryBox.m_Pos.y + (g_GridRoutingSize * col); g_CurrentTrackSegment->m_End.y = pcb->m_BoundaryBox.m_Pos.y + (g_GridRoutingSize * col);
g_CurrentTrackSegment->m_NetCode = current_net_code; g_CurrentTrackSegment->SetNet( current_net_code );
if( g_CurrentTrackSegment->Pback == NULL ) /* Start Piste */ if( g_CurrentTrackSegment->Pback == NULL ) /* Start Piste */
{ {
...@@ -1090,7 +1090,7 @@ static void Place_Piste_en_Buffer( WinEDA_PcbFrame* pcbframe, wxDC* DC ) ...@@ -1090,7 +1090,7 @@ static void Place_Piste_en_Buffer( WinEDA_PcbFrame* pcbframe, wxDC* DC )
Trace_Une_Piste( panel, DC, g_FirstTrackSegment, g_TrackSegmentCount, GR_OR ); Trace_Une_Piste( panel, DC, g_FirstTrackSegment, g_TrackSegmentCount, GR_OR );
pcbframe->test_1_net_connexion( DC, g_FirstTrackSegment->m_NetCode ); pcbframe->test_1_net_connexion( DC, g_FirstTrackSegment->GetNet() );
/* Trace de la forme exacte de la piste en BOARD */ /* Trace de la forme exacte de la piste en BOARD */
for( pt_track = g_FirstTrackSegment; ; pt_track = (TRACK*) pt_track->Pnext ) for( pt_track = g_FirstTrackSegment; ; pt_track = (TRACK*) pt_track->Pnext )
......
...@@ -46,7 +46,7 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event ) ...@@ -46,7 +46,7 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
if( !WildCompareString( msg, Equipot->m_Netname, FALSE ) ) if( !WildCompareString( msg, Equipot->m_Netname, FALSE ) )
continue; continue;
Line.Printf( wxT( "net_code = %3.3d [%.16s] " ), Equipot->m_NetCode, Line.Printf( wxT( "net_code = %3.3d [%.16s] " ), Equipot->GetNet(),
Equipot->m_Netname.GetData() ); Equipot->m_Netname.GetData() );
List->Append( Line ); List->Append( Line );
} }
...@@ -64,7 +64,7 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event ) ...@@ -64,7 +64,7 @@ void WinEDA_PcbFrame::Liste_Equipot( wxCommandEvent& event )
continue; continue;
if( ii == jj ) if( ii == jj )
{ {
ii = Equipot->m_NetCode; ii = Equipot->GetNet();
break; break;
} }
jj++; jj++;
...@@ -99,7 +99,7 @@ int WinEDA_PcbFrame::Select_High_Light( wxDC* DC ) ...@@ -99,7 +99,7 @@ int WinEDA_PcbFrame::Select_High_Light( wxDC* DC )
pt_piste = Locate_Pistes( m_Pcb->m_Track, masquelayer, CURSEUR_OFF_GRILLE ); pt_piste = Locate_Pistes( m_Pcb->m_Track, masquelayer, CURSEUR_OFF_GRILLE );
if( pt_piste ) if( pt_piste )
{ {
code = g_HightLigth_NetCode = pt_piste->m_NetCode; code = g_HightLigth_NetCode = pt_piste->GetNet();
Hight_Light( DC ); Hight_Light( DC );
} }
else else
...@@ -107,7 +107,7 @@ int WinEDA_PcbFrame::Select_High_Light( wxDC* DC ) ...@@ -107,7 +107,7 @@ int WinEDA_PcbFrame::Select_High_Light( wxDC* DC )
pt_pad = Locate_Any_Pad( m_Pcb, CURSEUR_OFF_GRILLE ); pt_pad = Locate_Any_Pad( m_Pcb, CURSEUR_OFF_GRILLE );
if( pt_pad != NULL ) if( pt_pad != NULL )
{ {
code = g_HightLigth_NetCode = pt_pad->m_NetCode; code = g_HightLigth_NetCode = pt_pad->GetNet();
Hight_Light( DC ); Hight_Light( DC );
SendMessageToEESCHEMA( pt_pad ); SendMessageToEESCHEMA( pt_pad );
} }
...@@ -157,7 +157,7 @@ void WinEDA_PcbFrame::DrawHightLight( wxDC* DC, int NetCode ) ...@@ -157,7 +157,7 @@ void WinEDA_PcbFrame::DrawHightLight( wxDC* DC, int NetCode )
/* Redraw track and vias: */ /* Redraw track and vias: */
for( pts = m_Pcb->m_Track; pts != NULL; pts = (TRACK*) pts->Pnext ) for( pts = m_Pcb->m_Track; pts != NULL; pts = (TRACK*) pts->Pnext )
{ {
if( pts->m_NetCode == NetCode ) if( pts->GetNet() == NetCode )
{ {
pts->Draw( DrawPanel, DC, draw_mode ); pts->Draw( DrawPanel, DC, draw_mode );
} }
...@@ -176,7 +176,7 @@ static void Pad_Surbrillance( WinEDA_DrawPanel* panel, ...@@ -176,7 +176,7 @@ static void Pad_Surbrillance( WinEDA_DrawPanel* panel,
/* trace des pastilles */ /* trace des pastilles */
for( pt_pad = Module->m_Pads; pt_pad != NULL; pt_pad = (D_PAD*) pt_pad->Pnext ) for( pt_pad = Module->m_Pads; pt_pad != NULL; pt_pad = (D_PAD*) pt_pad->Pnext )
{ {
if( pt_pad->m_NetCode == NetCode ) if( pt_pad->GetNet() == NetCode )
{ {
pt_pad->Draw( panel, DC, wxPoint( 0, 0 ), draw_mode ); pt_pad->Draw( panel, DC, wxPoint( 0, 0 ), draw_mode );
} }
......
...@@ -54,10 +54,10 @@ TRACK * BufDeb, *BufEnd; /* Pointeurs de debut et de fin de la zone ...@@ -54,10 +54,10 @@ TRACK * BufDeb, *BufEnd; /* Pointeurs de debut et de fin de la zone
/* Calcul des limites de recherche des segments de piste */ /* Calcul des limites de recherche des segments de piste */
/* BufDeb pointe le 1er segment utile */ /* BufDeb pointe le 1er segment utile */
BufDeb = Pcb->m_Track->GetStartNetCode(pt_new_track->m_NetCode); BufDeb = Pcb->m_Track->GetStartNetCode(pt_new_track->GetNet());
/* BufEnd Pointe le dernier segment */ /* BufEnd Pointe le dernier segment */
BufEnd = BufDeb->GetEndNetCode(pt_new_track->m_NetCode); BufEnd = BufDeb->GetEndNetCode(pt_new_track->GetNet());
/* nettoyage des flags pour tout le net */ /* nettoyage des flags pour tout le net */
for(pt_del = BufDeb; pt_del != NULL; pt_del = (TRACK*)pt_del->Pnext) for(pt_del = BufDeb; pt_del != NULL; pt_del = (TRACK*)pt_del->Pnext)
......
...@@ -45,7 +45,7 @@ void WinEDA_PcbFrame::UnDeleteItem( wxDC* DC ) ...@@ -45,7 +45,7 @@ void WinEDA_PcbFrame::UnDeleteItem( wxDC* DC )
} }
PtStruct = g_UnDeleteStack[g_UnDeleteStackPtr]; PtStruct = g_UnDeleteStack[g_UnDeleteStackPtr];
net_code = ( (TRACK*) PtStruct )->m_NetCode; net_code = ( (TRACK*) PtStruct )->GetNet();
pt_track = ( (TRACK*) PtStruct )->GetBestInsertPoint( m_Pcb ); pt_track = ( (TRACK*) PtStruct )->GetBestInsertPoint( m_Pcb );
( (TRACK*) PtStruct )->Insert( m_Pcb, pt_track ); ( (TRACK*) PtStruct )->Insert( m_Pcb, pt_track );
g_UnDeleteStack[g_UnDeleteStackPtr] = NULL; g_UnDeleteStack[g_UnDeleteStackPtr] = NULL;
......
...@@ -559,7 +559,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff, ...@@ -559,7 +559,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
for( ; pt_pad != NULL; pt_pad = (D_PAD*) pt_pad->Pnext ) for( ; pt_pad != NULL; pt_pad = (D_PAD*) pt_pad->Pnext )
{ {
pt_pad->m_Netname = wxEmptyString; pt_pad->m_Netname = wxEmptyString;
pt_pad->m_NetCode = 0; pt_pad->SetNet( 0 );
pt_old_pad = OldModule->m_Pads; pt_old_pad = OldModule->m_Pads;
for( ; pt_old_pad != NULL; pt_old_pad = (D_PAD*) pt_old_pad->Pnext ) for( ; pt_old_pad != NULL; pt_old_pad = (D_PAD*) pt_old_pad->Pnext )
{ {
...@@ -567,7 +567,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff, ...@@ -567,7 +567,7 @@ MODULE* WinEDA_BasePcbFrame::Exchange_Module( wxWindow* winaff,
sizeof(pt_pad->m_Padname) ) == 0 ) sizeof(pt_pad->m_Padname) ) == 0 )
{ {
pt_pad->m_Netname = pt_old_pad->m_Netname; pt_pad->m_Netname = pt_old_pad->m_Netname;
pt_pad->m_NetCode = pt_old_pad->m_NetCode; pt_pad->SetNet( pt_old_pad->GetNet() );
} }
} }
} }
......
...@@ -543,13 +543,13 @@ void WinEDA_PcbFrame::CaptureNetName( wxDC* DC ) ...@@ -543,13 +543,13 @@ void WinEDA_PcbFrame::CaptureNetName( wxDC* DC )
if( pt_pad ) if( pt_pad )
{ {
pt_pad->Display_Infos( this ); pt_pad->Display_Infos( this );
netcode = pt_pad->m_NetCode; netcode = pt_pad->GetNet();
} }
} }
else else
{ {
adrpiste->Display_Infos( this ); adrpiste->Display_Infos( this );
netcode = adrpiste->m_NetCode; netcode = adrpiste->GetNet();
} }
// Mise en surbrillance du net // Mise en surbrillance du net
...@@ -584,7 +584,7 @@ static void Display_Zone_Netname( WinEDA_PcbFrame* frame ) ...@@ -584,7 +584,7 @@ static void Display_Zone_Netname( WinEDA_PcbFrame* frame )
{ {
for( ; pt_equipot != NULL; pt_equipot = (EQUIPOT*) pt_equipot->Pnext ) for( ; pt_equipot != NULL; pt_equipot = (EQUIPOT*) pt_equipot->Pnext )
{ {
if( pt_equipot->m_NetCode == g_HightLigth_NetCode ) if( pt_equipot->GetNet() == g_HightLigth_NetCode )
break; break;
} }
...@@ -920,7 +920,7 @@ void WinEDA_PcbFrame::Fill_Zone( wxDC* DC ) ...@@ -920,7 +920,7 @@ void WinEDA_PcbFrame::Fill_Zone( wxDC* DC )
TRACK* pt_segm = m_Pcb->m_Track; TRACK* pt_segm = m_Pcb->m_Track;
for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext ) for( ; pt_segm != NULL; pt_segm = (TRACK*) pt_segm->Pnext )
{ {
if( g_HightLigth_NetCode != pt_segm->m_NetCode ) if( g_HightLigth_NetCode != pt_segm->GetNet() )
continue; continue;
if( pt_segm->GetLayer() != GetScreen()->m_Active_Layer ) if( pt_segm->GetLayer() != GetScreen()->m_Active_Layer )
continue; continue;
...@@ -1087,7 +1087,7 @@ static void Genere_Segments_Zone( WinEDA_PcbFrame* frame, wxDC* DC, int net_code ...@@ -1087,7 +1087,7 @@ static void Genere_Segments_Zone( WinEDA_PcbFrame* frame, wxDC* DC, int net_code
/* un segment avait debute de longueur > 0 */ /* un segment avait debute de longueur > 0 */
pt_track = new SEGZONE( frame->m_Pcb ); pt_track = new SEGZONE( frame->m_Pcb );
pt_track->SetLayer( layer ); pt_track->SetLayer( layer );
pt_track->m_NetCode = net_code; pt_track->SetNet( net_code );
pt_track->m_Width = g_GridRoutingSize; pt_track->m_Width = g_GridRoutingSize;
pt_track->m_Start.x = ux0; pt_track->m_Start.y = uy0; pt_track->m_Start.x = ux0; pt_track->m_Start.y = uy0;
pt_track->m_End.x = ux1; pt_track->m_End.y = uy1; pt_track->m_End.x = ux1; pt_track->m_End.y = uy1;
...@@ -1126,7 +1126,7 @@ static void Genere_Segments_Zone( WinEDA_PcbFrame* frame, wxDC* DC, int net_code ...@@ -1126,7 +1126,7 @@ static void Genere_Segments_Zone( WinEDA_PcbFrame* frame, wxDC* DC, int net_code
pt_track = new SEGZONE( frame->m_Pcb ); pt_track = new SEGZONE( frame->m_Pcb );
pt_track->SetLayer( layer ); pt_track->SetLayer( layer );
pt_track->m_Width = g_GridRoutingSize; pt_track->m_Width = g_GridRoutingSize;
pt_track->m_NetCode = net_code; pt_track->SetNet( net_code );
pt_track->m_Start.x = ux0; pt_track->m_Start.y = uy0; pt_track->m_Start.x = ux0; pt_track->m_Start.y = uy0;
pt_track->m_End.x = ux1; pt_track->m_End.y = uy1; pt_track->m_End.x = ux1; pt_track->m_End.y = uy1;
pt_track->m_TimeStamp = s_TimeStamp; pt_track->m_TimeStamp = s_TimeStamp;
...@@ -1310,7 +1310,7 @@ static bool Genere_Pad_Connexion( WinEDA_PcbFrame* frame, wxDC* DC, int layer ) ...@@ -1310,7 +1310,7 @@ static bool Genere_Pad_Connexion( WinEDA_PcbFrame* frame, wxDC* DC, int layer )
pt_pad = *pt_liste_pad; pt_pad = *pt_liste_pad;
/* la pastille doit etre du meme net */ /* la pastille doit etre du meme net */
if( pt_pad->m_NetCode != g_HightLigth_NetCode ) if( pt_pad->GetNet() != g_HightLigth_NetCode )
continue; continue;
/* la pastille doit exister sur la couche */ /* la pastille doit exister sur la couche */
...@@ -1329,7 +1329,7 @@ static bool Genere_Pad_Connexion( WinEDA_PcbFrame* frame, wxDC* DC, int layer ) ...@@ -1329,7 +1329,7 @@ static bool Genere_Pad_Connexion( WinEDA_PcbFrame* frame, wxDC* DC, int layer )
pt_pad = *pt_liste_pad; pt_pad = *pt_liste_pad;
/* la pastille doit etre du meme net */ /* la pastille doit etre du meme net */
if( pt_pad->m_NetCode != g_HightLigth_NetCode ) if( pt_pad->GetNet() != g_HightLigth_NetCode )
continue; continue;
/* la pastille doit exister sur la couche */ /* la pastille doit exister sur la couche */
if( (pt_pad->m_Masque_Layer & g_TabOneLayerMask[layer]) == 0 ) if( (pt_pad->m_Masque_Layer & g_TabOneLayerMask[layer]) == 0 )
...@@ -1365,7 +1365,7 @@ static bool Genere_Pad_Connexion( WinEDA_PcbFrame* frame, wxDC* DC, int layer ) ...@@ -1365,7 +1365,7 @@ static bool Genere_Pad_Connexion( WinEDA_PcbFrame* frame, wxDC* DC, int layer )
pt_track->SetLayer( layer ); pt_track->SetLayer( layer );
pt_track->m_Width = g_DesignSettings.m_CurrentTrackWidth; pt_track->m_Width = g_DesignSettings.m_CurrentTrackWidth;
pt_track->m_NetCode = g_HightLigth_NetCode; pt_track->SetNet( g_HightLigth_NetCode );
pt_track->start = pt_pad; pt_track->start = pt_pad;
pt_track->m_Start.x = cX; pt_track->m_Start.y = cY; pt_track->m_Start.x = cX; pt_track->m_Start.y = cY;
pt_track->m_End.x = cX + sommet[jj][0]; pt_track->m_End.x = cX + sommet[jj][0];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment