further DLIST/Iterators cleanup, some code formatting
This commit is contained in:
parent
63f4ab697b
commit
3b16d3cffe
|
@ -184,7 +184,7 @@ void CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer( const MODULE* aMod
|
|||
std::vector<TEXTE_MODULE *> texts; // List of TEXTE_MODULE to convert
|
||||
EDGE_MODULE* outline;
|
||||
|
||||
for( EDA_ITEM* item = aModule->GraphicalItems();
|
||||
for( EDA_ITEM* item = aModule->GraphicalItemsList();
|
||||
item != NULL;
|
||||
item = item->Next() )
|
||||
{
|
||||
|
@ -607,7 +607,7 @@ void CINFO3D_VISU::AddPadsShapesWithClearanceToContainer( const MODULE* aModule,
|
|||
int aInflateValue,
|
||||
bool aSkipNPTHPadsWihNoCopper )
|
||||
{
|
||||
const D_PAD* pad = aModule->Pads();
|
||||
const D_PAD* pad = aModule->PadsList();
|
||||
|
||||
wxSize margin;
|
||||
|
||||
|
@ -1518,7 +1518,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
|||
// /////////////////////////////////////////////////////////////////////////
|
||||
for( const MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
const D_PAD* pad = module->Pads();
|
||||
const D_PAD* pad = module->PadsList();
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
{
|
||||
|
@ -1552,7 +1552,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
|||
// /////////////////////////////////////////////////////////////////////////
|
||||
for( const MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
const D_PAD* pad = module->Pads();
|
||||
const D_PAD* pad = module->PadsList();
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
{
|
||||
|
@ -1652,7 +1652,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
|||
|
||||
// Note: NPTH pads are not drawn on copper layers when the pad
|
||||
// has same shape as its hole
|
||||
transformPadsShapesWithClearanceToPolygon( module->Pads(),
|
||||
transformPadsShapesWithClearanceToPolygon( module->PadsList(),
|
||||
curr_layer_id,
|
||||
*layerPoly,
|
||||
0,
|
||||
|
@ -2058,7 +2058,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
|||
{
|
||||
if( (curr_layer_id == F_SilkS) || (curr_layer_id == B_SilkS) )
|
||||
{
|
||||
D_PAD* pad = module->Pads();
|
||||
D_PAD* pad = module->PadsList();
|
||||
int linewidth = g_DrawDefaultLineThickness;
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
|
@ -2093,7 +2093,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
|||
{
|
||||
if( (curr_layer_id == F_SilkS) || (curr_layer_id == B_SilkS) )
|
||||
{
|
||||
D_PAD* pad = module->Pads();
|
||||
D_PAD* pad = module->PadsList();
|
||||
const int linewidth = g_DrawDefaultLineThickness;
|
||||
|
||||
for( ; pad; pad = pad->Next() )
|
||||
|
@ -2106,7 +2106,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter )
|
|||
}
|
||||
else
|
||||
{
|
||||
transformPadsShapesWithClearanceToPolygon( module->Pads(),
|
||||
transformPadsShapesWithClearanceToPolygon( module->PadsList(),
|
||||
curr_layer_id,
|
||||
*layerPoly,
|
||||
0,
|
||||
|
|
|
@ -194,7 +194,7 @@ void CINFO3D_VISU::transformGraphicModuleEdgeToPolygonSet( const MODULE *aModule
|
|||
PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer ) const
|
||||
{
|
||||
for( const EDA_ITEM* item = aModule->GraphicalItems();
|
||||
for( const EDA_ITEM* item = aModule->GraphicalItemsList();
|
||||
item != NULL;
|
||||
item = item->Next() )
|
||||
{
|
||||
|
|
|
@ -815,7 +815,7 @@ void C3D_RENDER_OGL_LEGACY::generate_3D_Vias_and_Pads()
|
|||
module;
|
||||
module = module->Next() )
|
||||
{
|
||||
for( const D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( const D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( pad->GetAttribute() != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
{
|
||||
|
|
|
@ -1188,7 +1188,7 @@ void C3D_RENDER_RAYTRACING::add_3D_vias_and_pads_to_container()
|
|||
module;
|
||||
module = module->Next() )
|
||||
{
|
||||
for( const D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( const D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
if( pad->GetAttribute () != PAD_ATTRIB_HOLE_NOT_PLATED )
|
||||
{
|
||||
insert3DPadHole( pad );
|
||||
|
|
|
@ -1138,7 +1138,6 @@ void EDA_DRAW_FRAME::UseGalCanvas( bool aEnable )
|
|||
gal->SetGridOrigin( VECTOR2D( GetGridOrigin() ) );
|
||||
|
||||
// Transfer EDA_DRAW_PANEL settings
|
||||
|
||||
GetGalCanvas()->GetViewControls()->EnableCursorWarping( !m_canvas->GetEnableZoomNoCenter() );
|
||||
GetGalCanvas()->GetViewControls()->EnableMousewheelPan( m_canvas->GetEnableMousewheelPan() );
|
||||
}
|
||||
|
@ -1366,3 +1365,4 @@ void EDA_DRAW_FRAME::GeneralControlKeyMovement( int aHotKey, wxPoint *aPos,
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -220,7 +220,7 @@ void ACTION_MANAGER::UpdateHotKeys()
|
|||
++global_actions_cnt;
|
||||
}
|
||||
|
||||
// assert( global_actions_cnt <= 1 );
|
||||
assert( global_actions_cnt <= 1 );
|
||||
}
|
||||
#endif /* not NDEBUG */
|
||||
}
|
||||
|
|
|
@ -27,40 +27,69 @@
|
|||
#include <dlist.h>
|
||||
#include <iterator>
|
||||
|
||||
template<class T>
|
||||
class DLIST_ITERATOR: public std::iterator<std::bidirectional_iterator_tag, T>
|
||||
template <class T>
|
||||
class DLIST_ITERATOR : public std::iterator<std::bidirectional_iterator_tag, T>
|
||||
{
|
||||
private:
|
||||
T m_obj;
|
||||
|
||||
using reference = typename DLIST_ITERATOR<T>::reference ;
|
||||
using reference = typename DLIST_ITERATOR<T>::reference;
|
||||
|
||||
public:
|
||||
explicit DLIST_ITERATOR<T>( T obj ) : m_obj(obj) {}
|
||||
explicit DLIST_ITERATOR<T>( T obj ) :
|
||||
m_obj(obj) {}
|
||||
|
||||
DLIST_ITERATOR<T>& operator++() { m_obj = m_obj->Next(); return *this; }
|
||||
DLIST_ITERATOR<T>& operator--() { m_obj = m_obj->Prev(); return *this; }
|
||||
DLIST_ITERATOR<T>& operator++()
|
||||
{
|
||||
m_obj = m_obj->Next(); return *this;
|
||||
}
|
||||
|
||||
bool operator==(DLIST_ITERATOR<T> other) const {return m_obj == other.m_obj;}
|
||||
bool operator!=(DLIST_ITERATOR<T> other) const {return !(*this == other);}
|
||||
DLIST_ITERATOR<T>& operator--()
|
||||
{
|
||||
m_obj = m_obj->Prev(); return *this;
|
||||
}
|
||||
|
||||
reference operator*() {return m_obj;}
|
||||
bool operator==( DLIST_ITERATOR<T> other ) const
|
||||
{
|
||||
return m_obj == other.m_obj;
|
||||
}
|
||||
|
||||
bool operator!=( DLIST_ITERATOR<T> other ) const
|
||||
{
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
reference operator*()
|
||||
{
|
||||
return m_obj;
|
||||
}
|
||||
};
|
||||
|
||||
// helper object, used to convert a DLIST<T> to an iterator
|
||||
template<class T> class DLIST_ITERATOR_WRAPPER
|
||||
template <class T>
|
||||
class DLIST_ITERATOR_WRAPPER
|
||||
{
|
||||
public:
|
||||
explicit DLIST_ITERATOR_WRAPPER<T> ( DLIST<T>& list ) : m_list(list) {};
|
||||
public:
|
||||
explicit DLIST_ITERATOR_WRAPPER<T> ( DLIST<T>& list ) :
|
||||
m_list(list) {}
|
||||
|
||||
DLIST_ITERATOR<T*> begin() { return DLIST_ITERATOR<T*> ( m_list.GetFirst()); }
|
||||
DLIST_ITERATOR<T*> end() { return DLIST_ITERATOR<T*> ( nullptr ); }
|
||||
DLIST_ITERATOR<T*> begin()
|
||||
{
|
||||
return DLIST_ITERATOR<T*> ( m_list.GetFirst() );
|
||||
}
|
||||
|
||||
unsigned int Size() const {
|
||||
return m_list.GetCount();
|
||||
}
|
||||
DLIST_ITERATOR<T*> end()
|
||||
{
|
||||
return DLIST_ITERATOR<T*> ( nullptr );
|
||||
}
|
||||
|
||||
private:
|
||||
DLIST<T>& m_list;
|
||||
unsigned int Size() const
|
||||
{
|
||||
return m_list.GetCount();
|
||||
}
|
||||
|
||||
private:
|
||||
DLIST<T>& m_list;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -601,7 +601,6 @@ public:
|
|||
}
|
||||
|
||||
const VECTOR2I PointAlong( int aPathLength ) const;
|
||||
const SHAPE_LINE_CHAIN RemoveHoles( ) const;
|
||||
|
||||
private:
|
||||
/// array of vertices
|
||||
|
|
|
@ -481,7 +481,7 @@ public:
|
|||
* It shows the connections from a pad to the nearest connected pad
|
||||
* @param aModule = module to consider.
|
||||
*/
|
||||
void build_ratsnest_module( MODULE *mod, wxPoint aMoveVector );
|
||||
void build_ratsnest_module( MODULE *mod, wxPoint aMoveVector );
|
||||
|
||||
/**
|
||||
* Function TraceModuleRatsNest
|
||||
|
@ -527,7 +527,7 @@ public:
|
|||
*/
|
||||
void BuildAirWiresTargetsList( BOARD_CONNECTED_ITEM* aItemRef,
|
||||
const wxPoint& aPosition,
|
||||
int aNet );
|
||||
int aNet );
|
||||
|
||||
/**
|
||||
* Function TestForActiveLinksInRatsnest
|
||||
|
@ -567,7 +567,7 @@ public:
|
|||
* search connections between tracks and pads and propagate pad net codes to the track
|
||||
* segments.
|
||||
*/
|
||||
void ComputeLegacyConnections ();
|
||||
void ComputeLegacyConnections();
|
||||
|
||||
/* Functions relative to Undo/redo commands:
|
||||
*/
|
||||
|
|
|
@ -455,7 +455,7 @@ void PCB_BASE_FRAME::OnTogglePadDrawMode( wxCommandEvent& aEvent )
|
|||
BOARD* board = GetBoard();
|
||||
for( MODULE* module = board->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
view->Update( pad, KIGFX::GEOMETRY );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -602,7 +602,6 @@ void PCB_EDIT_FRAME::Block_Rotate()
|
|||
{
|
||||
BOARD_ITEM* item = (BOARD_ITEM*) itemsList->GetPickedItem( ii );
|
||||
wxASSERT( item );
|
||||
|
||||
itemsList->SetPickedItemStatus( UR_CHANGED, ii );
|
||||
|
||||
switch( item->Type() )
|
||||
|
|
|
@ -394,7 +394,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
|||
if( currentModule )
|
||||
{
|
||||
wxPoint move_offset = -block->GetMoveVector();
|
||||
BOARD_ITEM* item = currentModule->GraphicalItems();
|
||||
BOARD_ITEM* item = currentModule->GraphicalItemsList();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
|
@ -413,7 +413,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
|||
}
|
||||
}
|
||||
|
||||
D_PAD* pad = currentModule->Pads();
|
||||
D_PAD* pad = currentModule->PadsList();
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
|
@ -432,7 +432,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
|||
|
||||
if( currentModule )
|
||||
{
|
||||
BOARD_ITEM* item = currentModule->GraphicalItems();
|
||||
BOARD_ITEM* item = currentModule->GraphicalItemsList();
|
||||
wxPoint move_offset = - block->GetMoveVector();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
|
@ -452,7 +452,7 @@ static void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wx
|
|||
}
|
||||
}
|
||||
|
||||
D_PAD* pad = currentModule->Pads();
|
||||
D_PAD* pad = currentModule->PadsList();
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
|
@ -477,7 +477,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset, bool aIncrement )
|
|||
module->Reference().ClearFlags();
|
||||
module->Value().ClearFlags();
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( !pad->IsSelected() )
|
||||
continue;
|
||||
|
@ -486,7 +486,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset, bool aIncrement )
|
|||
D_PAD* NewPad = new D_PAD( *pad );
|
||||
NewPad->SetParent( module );
|
||||
NewPad->SetFlags( SELECTED );
|
||||
module->Pads().PushFront( NewPad );
|
||||
module->PadsList().PushFront( NewPad );
|
||||
|
||||
if( aIncrement )
|
||||
NewPad->IncrementPadName( true, true );
|
||||
|
@ -494,7 +494,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset, bool aIncrement )
|
|||
|
||||
BOARD_ITEM* newItem;
|
||||
|
||||
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( BOARD_ITEM* item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
if( !item->IsSelected() )
|
||||
continue;
|
||||
|
@ -504,7 +504,7 @@ void CopyMarkedItems( MODULE* module, wxPoint offset, bool aIncrement )
|
|||
newItem = (BOARD_ITEM*)item->Clone();
|
||||
newItem->SetParent( module );
|
||||
newItem->SetFlags( SELECTED );
|
||||
module->GraphicalItems().PushFront( newItem );
|
||||
module->GraphicalItemsList().PushFront( newItem );
|
||||
}
|
||||
|
||||
MoveMarkedItems( module, offset );
|
||||
|
@ -526,7 +526,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
|
|||
if( module->Value().IsSelected() )
|
||||
module->Value().Move( offset );
|
||||
|
||||
D_PAD* pad = module->Pads();
|
||||
D_PAD* pad = module->PadsList();
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
|
@ -537,7 +537,7 @@ void MoveMarkedItems( MODULE* module, wxPoint offset )
|
|||
pad->SetPos0( pad->GetPos0() + offset );
|
||||
}
|
||||
|
||||
item = module->GraphicalItems();
|
||||
item = module->GraphicalItemsList();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
|
@ -579,7 +579,7 @@ void DeleteMarkedItems( MODULE* module )
|
|||
D_PAD* next_pad;
|
||||
BOARD* board = module->GetBoard();
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = next_pad )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = next_pad )
|
||||
{
|
||||
next_pad = pad->Next();
|
||||
|
||||
|
@ -594,7 +594,7 @@ void DeleteMarkedItems( MODULE* module )
|
|||
|
||||
BOARD_ITEM* next_item;
|
||||
|
||||
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = next_item )
|
||||
for( BOARD_ITEM* item = module->GraphicalItemsList(); item; item = next_item )
|
||||
{
|
||||
next_item = item->Next();
|
||||
|
||||
|
@ -628,7 +628,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset, bool force_all )
|
|||
if( module->Value().IsSelected() || force_all )
|
||||
module->Value().Mirror( offset, false );
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Skip pads not selected, i.e. not inside the block to mirror:
|
||||
if( !pad->IsSelected() && !force_all )
|
||||
|
@ -651,7 +651,7 @@ void MirrorMarkedItems( MODULE* module, wxPoint offset, bool force_all )
|
|||
pad->SetOrientation( - pad->GetOrientation() );
|
||||
}
|
||||
|
||||
for( EDA_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( EDA_ITEM* item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
// Skip items not selected, i.e. not inside the block to mirror:
|
||||
if( !item->IsSelected() && !force_all )
|
||||
|
@ -693,7 +693,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset, bool force_all )
|
|||
if( module->Value().IsSelected() || force_all )
|
||||
module->Value().Rotate( offset, 900 );
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( !pad->IsSelected() && !force_all )
|
||||
continue;
|
||||
|
@ -706,7 +706,7 @@ void RotateMarkedItems( MODULE* module, wxPoint offset, bool force_all )
|
|||
pad->SetDrawCoord();
|
||||
}
|
||||
|
||||
for( EDA_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( EDA_ITEM* item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
if( !item->IsSelected() && !force_all )
|
||||
continue;
|
||||
|
@ -738,14 +738,14 @@ void ClearMarkItems( MODULE* module )
|
|||
module->Reference().ClearFlags();
|
||||
module->Value().ClearFlags();
|
||||
|
||||
EDA_ITEM* item = module->GraphicalItems();
|
||||
EDA_ITEM* item = module->GraphicalItemsList();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
item->ClearFlags();
|
||||
}
|
||||
|
||||
item = module->Pads();
|
||||
item = module->PadsList();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
|
@ -773,7 +773,7 @@ void MoveMarkedItemsExactly( MODULE* module, const wxPoint& centre,
|
|||
module->Value().Move( translation );
|
||||
}
|
||||
|
||||
D_PAD* pad = module->Pads();
|
||||
D_PAD* pad = module->PadsList();
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
|
@ -793,7 +793,7 @@ void MoveMarkedItemsExactly( MODULE* module, const wxPoint& centre,
|
|||
pad->Rotate( newPos, rotation );
|
||||
}
|
||||
|
||||
EDA_ITEM* item = module->GraphicalItems();
|
||||
EDA_ITEM* item = module->GraphicalItemsList();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
|
@ -857,7 +857,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
|
|||
ItemsCount++;
|
||||
}
|
||||
|
||||
pad = module->Pads();
|
||||
pad = module->PadsList();
|
||||
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
|
@ -871,7 +871,7 @@ int MarkItemsInBloc( MODULE* module, EDA_RECT& Rect )
|
|||
}
|
||||
}
|
||||
|
||||
item = module->GraphicalItems();
|
||||
item = module->GraphicalItemsList();
|
||||
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
{
|
||||
|
|
|
@ -133,7 +133,7 @@ void MODULE::TransformPadsShapesWithClearanceToPolygon( PCB_LAYER_ID aLayer,
|
|||
double aCorrectionFactor,
|
||||
bool aSkipNPTHPadsWihNoCopper ) const
|
||||
{
|
||||
D_PAD* pad = Pads();
|
||||
D_PAD* pad = PadsList();
|
||||
|
||||
wxSize margin;
|
||||
for( ; pad != NULL; pad = pad->Next() )
|
||||
|
@ -211,7 +211,7 @@ void MODULE::TransformGraphicShapesWithClearanceToPolygonSet(
|
|||
std::vector<TEXTE_MODULE *> texts; // List of TEXTE_MODULE to convert
|
||||
EDGE_MODULE* outline;
|
||||
|
||||
for( EDA_ITEM* item = GraphicalItems(); item != NULL; item = item->Next() )
|
||||
for( EDA_ITEM* item = GraphicalItemsList(); item != NULL; item = item->Next() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
|
@ -286,7 +286,7 @@ void MODULE::TransformGraphicTextWithClearanceToPolygonSet(
|
|||
{
|
||||
std::vector<TEXTE_MODULE *> texts; // List of TEXTE_MODULE to convert
|
||||
|
||||
for( EDA_ITEM* item = GraphicalItems(); item != NULL; item = item->Next() )
|
||||
for( EDA_ITEM* item = GraphicalItemsList(); item != NULL; item = item->Next() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
|
|
|
@ -318,7 +318,7 @@ bool BOARD_NETLIST_UPDATER::updateComponentPadConnections( MODULE* aPcbComponent
|
|||
MODULE* copy = (MODULE*) aPcbComponent->Clone();
|
||||
|
||||
// At this point, the component footprint is updated. Now update the nets.
|
||||
for( D_PAD* pad = aPcbComponent->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aPcbComponent->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
COMPONENT_NET net = aNewComponent->GetNet( pad->GetPadName() );
|
||||
|
||||
|
|
|
@ -763,7 +763,7 @@ void BOARD::SetElementVisibility( GAL_LAYER_ID LAYER_aPCB, bool isEnabled )
|
|||
for ( auto track : Tracks() )
|
||||
track->SetLocalRatsnestVisible( isEnabled );
|
||||
for( auto mod : Modules() )
|
||||
for ( auto pad : mod->PadsIter() )
|
||||
for ( auto pad : mod->Pads() )
|
||||
pad->SetLocalRatsnestVisible( isEnabled );
|
||||
for( int i = 0; i<GetAreaCount(); i++ )
|
||||
{
|
||||
|
@ -1617,7 +1617,7 @@ D_PAD* BOARD::GetPadFast( const wxPoint& aPosition, LSET aLayerSet )
|
|||
{
|
||||
for( auto mod : Modules() )
|
||||
{
|
||||
for ( auto pad : mod->PadsIter() )
|
||||
for ( auto pad : mod->Pads() )
|
||||
{
|
||||
if( pad->GetPosition() != aPosition )
|
||||
continue;
|
||||
|
@ -1743,7 +1743,7 @@ void BOARD::GetSortedPadListByXthenYCoord( std::vector<D_PAD*>& aVector, int aNe
|
|||
{
|
||||
for ( auto mod : Modules() )
|
||||
{
|
||||
for ( auto pad : mod->PadsIter( ) )
|
||||
for ( auto pad : mod->Pads( ) )
|
||||
{
|
||||
if( aNetCode < 0 || pad->GetNetCode() == aNetCode )
|
||||
{
|
||||
|
@ -2617,7 +2617,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNetlist, bool aDeleteSinglePadNets,
|
|||
continue;
|
||||
|
||||
// At this point, the component footprint is updated. Now update the nets.
|
||||
for( D_PAD* pad = footprint->Pads(); pad; pad = pad->Next() )
|
||||
for( auto pad : footprint->Pads() )
|
||||
{
|
||||
COMPONENT_NET net = component->GetNet( pad->GetPadName() );
|
||||
|
||||
|
@ -2897,7 +2897,7 @@ const std::vector<D_PAD*> BOARD::GetPads()
|
|||
std::vector<D_PAD*> rv;
|
||||
for ( auto mod: Modules() )
|
||||
{
|
||||
for ( auto pad: mod->PadsIter() )
|
||||
for ( auto pad: mod->Pads() )
|
||||
rv.push_back ( pad );
|
||||
|
||||
}
|
||||
|
@ -2919,7 +2919,7 @@ D_PAD* BOARD::GetPad( unsigned aIndex ) const
|
|||
unsigned count = 0;
|
||||
for ( MODULE *mod = m_Modules; mod ; mod = mod->Next() ) // FIXME: const DLIST_ITERATOR
|
||||
{
|
||||
for ( D_PAD *pad = mod->Pads(); pad; pad = pad->Next() )
|
||||
for ( D_PAD *pad = mod->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if ( count == aIndex )
|
||||
return pad;
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
class NETCLASS;
|
||||
class TRACK;
|
||||
class D_PAD;
|
||||
class CN_BOARD_ITEM_DATA;
|
||||
|
||||
/**
|
||||
* Class BOARD_CONNECTED_ITEM
|
||||
|
|
|
@ -229,7 +229,7 @@ void MODULE::ClearAllNets()
|
|||
{
|
||||
// Force the ORPHANED dummy net info for all pads.
|
||||
// ORPHANED dummy net does not depend on a board
|
||||
for( D_PAD* pad = Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = PadsList(); pad; pad = pad->Next() )
|
||||
pad->SetNetCode( NETINFO_LIST::ORPHANED );
|
||||
}
|
||||
|
||||
|
@ -364,7 +364,7 @@ void MODULE::CopyNetlistSettings( MODULE* aModule, bool aCopyLocalSettings )
|
|||
aModule->SetThermalGap( GetThermalGap() );
|
||||
}
|
||||
|
||||
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Fix me: if aCopyLocalSettings == true, for "multiple" pads
|
||||
// (set of pads having the same name/number) this is broken
|
||||
|
@ -717,7 +717,7 @@ unsigned MODULE::GetUniquePadCount( INCLUDE_NPTH_T aIncludeNPTH ) const
|
|||
std::set<wxUint32> usedNames;
|
||||
|
||||
// Create a set of used pad numbers
|
||||
for( D_PAD* pad = Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Skip pads not on copper layers (used to build complex
|
||||
// solder paste shapes for instance)
|
||||
|
@ -1065,14 +1065,14 @@ void MODULE::MoveAnchorPosition( const wxPoint& aMoveVector )
|
|||
m_Value->SetDrawCoord();
|
||||
|
||||
// Update the pad local coordinates.
|
||||
for( D_PAD* pad = Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
pad->SetPos0( pad->GetPos0() + moveVector );
|
||||
pad->SetDrawCoord();
|
||||
}
|
||||
|
||||
// Update the draw element coordinates.
|
||||
for( EDA_ITEM* item = GraphicalItems(); item; item = item->Next() )
|
||||
for( EDA_ITEM* item = GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
|
@ -1150,7 +1150,7 @@ BOARD_ITEM* MODULE::Duplicate( const BOARD_ITEM* aItem,
|
|||
new_pad = new D_PAD( *static_cast<const D_PAD*>( aItem ) );
|
||||
|
||||
if( aAddToModule )
|
||||
Pads().PushBack( new_pad );
|
||||
PadsList().PushBack( new_pad );
|
||||
|
||||
new_item = new_pad;
|
||||
break;
|
||||
|
@ -1167,7 +1167,7 @@ BOARD_ITEM* MODULE::Duplicate( const BOARD_ITEM* aItem,
|
|||
TEXTE_MODULE* new_text = new TEXTE_MODULE( *old_text );
|
||||
|
||||
if( aAddToModule )
|
||||
GraphicalItems().PushBack( new_text );
|
||||
GraphicalItemsList().PushBack( new_text );
|
||||
|
||||
new_item = new_text;
|
||||
}
|
||||
|
@ -1180,7 +1180,7 @@ BOARD_ITEM* MODULE::Duplicate( const BOARD_ITEM* aItem,
|
|||
*static_cast<const EDGE_MODULE*>(aItem) );
|
||||
|
||||
if( aAddToModule )
|
||||
GraphicalItems().PushBack( new_edge );
|
||||
GraphicalItemsList().PushBack( new_edge );
|
||||
|
||||
new_item = new_edge;
|
||||
break;
|
||||
|
@ -1211,7 +1211,7 @@ wxString MODULE::GetNextPadName( bool aFillSequenceGaps ) const
|
|||
std::set<int> usedNumbers;
|
||||
|
||||
// Create a set of used pad numbers
|
||||
for( D_PAD* pad = Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
int padNumber = getTrailingInt( pad->GetPadName() );
|
||||
usedNumbers.insert( padNumber );
|
||||
|
@ -1276,7 +1276,7 @@ bool MODULE::BuildPolyCourtyard()
|
|||
std::vector< DRAWSEGMENT* > list_front;
|
||||
std::vector< DRAWSEGMENT* > list_back;
|
||||
|
||||
for( BOARD_ITEM* item = GraphicalItems(); item; item = item->Next() )
|
||||
for( BOARD_ITEM* item = GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
if( item->GetLayer() == B_CrtYd && item->Type() == PCB_MODULE_EDGE_T )
|
||||
list_back.push_back( static_cast< DRAWSEGMENT* > ( item ) );
|
||||
|
|
|
@ -55,9 +55,8 @@ class D_PAD;
|
|||
class BOARD;
|
||||
class MSG_PANEL_ITEM;
|
||||
|
||||
namespace KIGFX
|
||||
{
|
||||
class VIEW;
|
||||
namespace KIGFX {
|
||||
class VIEW;
|
||||
};
|
||||
|
||||
enum INCLUDE_NPTH_T
|
||||
|
@ -132,26 +131,35 @@ public:
|
|||
// Virtual function
|
||||
const EDA_RECT GetBoundingBox() const override;
|
||||
|
||||
DLIST<D_PAD>& Pads() { return m_Pads; }
|
||||
const DLIST<D_PAD>& Pads() const { return m_Pads; }
|
||||
DLIST<D_PAD>& PadsList() { return m_Pads; }
|
||||
const DLIST<D_PAD>& PadsList() const { return m_Pads; }
|
||||
|
||||
DLIST<BOARD_ITEM>& GraphicalItems() { return m_Drawings; }
|
||||
const DLIST<BOARD_ITEM>& GraphicalItems() const { return m_Drawings; }
|
||||
DLIST<BOARD_ITEM>& GraphicalItemsList() { return m_Drawings; }
|
||||
const DLIST<BOARD_ITEM>& GraphicalItemsList() const { return m_Drawings; }
|
||||
|
||||
DLIST_ITERATOR_WRAPPER<D_PAD> PadsIter() { return DLIST_ITERATOR_WRAPPER<D_PAD>(m_Pads); }
|
||||
DLIST_ITERATOR_WRAPPER<BOARD_ITEM> GraphicalItemsIter() { return DLIST_ITERATOR_WRAPPER<BOARD_ITEM>(m_Drawings); }
|
||||
DLIST_ITERATOR_WRAPPER<D_PAD> Pads()
|
||||
{
|
||||
return DLIST_ITERATOR_WRAPPER<D_PAD>( m_Pads );
|
||||
}
|
||||
|
||||
DLIST_ITERATOR_WRAPPER<BOARD_ITEM> GraphicalItems()
|
||||
{
|
||||
return DLIST_ITERATOR_WRAPPER<BOARD_ITEM>( m_Drawings );
|
||||
}
|
||||
|
||||
std::list<S3D_INFO>& Models() { return m_3D_Drawings; }
|
||||
const std::list<S3D_INFO>& Models() const { return m_3D_Drawings; }
|
||||
|
||||
void SetPosition( const wxPoint& aPos ) override;
|
||||
|
||||
const wxPoint& GetPosition() const override { return m_Pos; }
|
||||
|
||||
void SetOrientation( double newangle );
|
||||
void SetOrientationDegrees( double aOrientation ) { SetOrientation( aOrientation*10.0 ); }
|
||||
|
||||
void SetOrientationDegrees( double aOrientation ) { SetOrientation( aOrientation * 10.0 ); }
|
||||
double GetOrientation() const { return m_Orient; }
|
||||
double GetOrientationDegrees() const { return m_Orient/10.0; }
|
||||
double GetOrientationRadians() const { return m_Orient*M_PI/1800; }
|
||||
double GetOrientationDegrees() const { return m_Orient / 10.0; }
|
||||
double GetOrientationRadians() const { return m_Orient * M_PI / 1800; }
|
||||
|
||||
const LIB_ID& GetFPID() const { return m_fpid; }
|
||||
void SetFPID( const LIB_ID& aFPID ) { m_fpid = aFPID; }
|
||||
|
@ -216,7 +224,7 @@ public:
|
|||
* function IsFlipped
|
||||
* @return true if the module is flipped, i.e. on the back side of the board
|
||||
*/
|
||||
bool IsFlipped() const {return GetLayer() == B_Cu; }
|
||||
bool IsFlipped() const { return GetLayer() == B_Cu; }
|
||||
|
||||
// m_ModuleStatus bits:
|
||||
#define MODULE_is_LOCKED 0x01 ///< module LOCKED: no autoplace allowed
|
||||
|
@ -243,7 +251,7 @@ public:
|
|||
m_ModuleStatus &= ~MODULE_is_LOCKED;
|
||||
}
|
||||
|
||||
bool IsPlaced() const { return (m_ModuleStatus & MODULE_is_PLACED); }
|
||||
bool IsPlaced() const { return m_ModuleStatus & MODULE_is_PLACED; }
|
||||
void SetIsPlaced( bool isPlaced )
|
||||
{
|
||||
if( isPlaced )
|
||||
|
@ -252,7 +260,7 @@ public:
|
|||
m_ModuleStatus &= ~MODULE_is_PLACED;
|
||||
}
|
||||
|
||||
bool NeedsPlaced() const { return (m_ModuleStatus & MODULE_to_PLACE); }
|
||||
bool NeedsPlaced() const { return m_ModuleStatus & MODULE_to_PLACE; }
|
||||
void SetNeedsPlaced( bool needsPlaced )
|
||||
{
|
||||
if( needsPlaced )
|
||||
|
@ -261,7 +269,7 @@ public:
|
|||
m_ModuleStatus &= ~MODULE_to_PLACE;
|
||||
}
|
||||
|
||||
bool PadsLocked() const { return ( m_ModuleStatus & MODULE_PADS_LOCKED ); }
|
||||
bool PadsLocked() const { return m_ModuleStatus & MODULE_PADS_LOCKED; }
|
||||
|
||||
void SetPadsLocked( bool aPadsLocked )
|
||||
{
|
||||
|
@ -272,7 +280,7 @@ public:
|
|||
}
|
||||
|
||||
void SetLastEditTime( time_t aTime ) { m_LastEditTime = aTime; }
|
||||
void SetLastEditTime( ) { m_LastEditTime = time( NULL ); }
|
||||
void SetLastEditTime() { m_LastEditTime = time( NULL ); }
|
||||
time_t GetLastEditTime() const { return m_LastEditTime; }
|
||||
|
||||
/* drawing functions */
|
||||
|
@ -286,9 +294,9 @@ public:
|
|||
* @param aOffset = draw offset (usually wxPoint(0,0)
|
||||
*/
|
||||
void Draw( EDA_DRAW_PANEL* aPanel,
|
||||
wxDC* aDC,
|
||||
GR_DRAWMODE aDrawMode,
|
||||
const wxPoint& aOffset = ZeroOffset ) override;
|
||||
wxDC* aDC,
|
||||
GR_DRAWMODE aDrawMode,
|
||||
const wxPoint& aOffset = ZeroOffset ) override;
|
||||
|
||||
/**
|
||||
* Function DrawOutlinesWhenMoving
|
||||
|
@ -300,7 +308,7 @@ public:
|
|||
* the draw position.
|
||||
*/
|
||||
void DrawOutlinesWhenMoving( EDA_DRAW_PANEL* aPanel,
|
||||
wxDC* aDC, const wxPoint& aMoveVector );
|
||||
wxDC* aDC, const wxPoint& aMoveVector );
|
||||
|
||||
/**
|
||||
* function TransformPadsShapesWithClearanceToPolygon
|
||||
|
@ -326,11 +334,11 @@ public:
|
|||
* default = false
|
||||
*/
|
||||
void TransformPadsShapesWithClearanceToPolygon( PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
int aCircleToSegmentsCount,
|
||||
double aCorrectionFactor,
|
||||
bool aSkipNPTHPadsWihNoCopper = false ) const;
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
int aCircleToSegmentsCount,
|
||||
double aCorrectionFactor,
|
||||
bool aSkipNPTHPadsWihNoCopper = false ) const;
|
||||
|
||||
/**
|
||||
* function TransformGraphicShapesWithClearanceToPolygonSet
|
||||
|
@ -352,13 +360,12 @@ public:
|
|||
* a circle when building the texts polygonal shapes of the stroke font
|
||||
* if 0, use the aCircleToSegmentsCount value
|
||||
*/
|
||||
void TransformGraphicShapesWithClearanceToPolygonSet(
|
||||
PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
int aCircleToSegmentsCount,
|
||||
double aCorrectionFactor,
|
||||
int aCircleToSegmentsCountForTexts = 0 ) const;
|
||||
void TransformGraphicShapesWithClearanceToPolygonSet( PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
int aCircleToSegmentsCount,
|
||||
double aCorrectionFactor,
|
||||
int aCircleToSegmentsCountForTexts = 0 ) const;
|
||||
|
||||
/**
|
||||
* @brief TransformGraphicTextWithClearanceToPolygonSet
|
||||
|
@ -371,13 +378,12 @@ public:
|
|||
* @param aCorrectionFactor
|
||||
* @param aCircleToSegmentsCountForTexts
|
||||
*/
|
||||
void TransformGraphicTextWithClearanceToPolygonSet(
|
||||
PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
int aCircleToSegmentsCount,
|
||||
double aCorrectionFactor,
|
||||
int aCircleToSegmentsCountForTexts = 0 ) const;
|
||||
void TransformGraphicTextWithClearanceToPolygonSet( PCB_LAYER_ID aLayer,
|
||||
SHAPE_POLY_SET& aCornerBuffer,
|
||||
int aInflateValue,
|
||||
int aCircleToSegmentsCount,
|
||||
double aCorrectionFactor,
|
||||
int aCircleToSegmentsCountForTexts = 0 ) const;
|
||||
|
||||
/**
|
||||
* Function DrawEdgesOnly
|
||||
|
@ -388,7 +394,7 @@ public:
|
|||
* @param draw_mode = GR_OR, GR_XOR, GR_AND
|
||||
*/
|
||||
void DrawEdgesOnly( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& offset,
|
||||
GR_DRAWMODE draw_mode );
|
||||
GR_DRAWMODE draw_mode );
|
||||
|
||||
/**
|
||||
* Function DrawAncre
|
||||
|
@ -397,10 +403,10 @@ public:
|
|||
* every thing already drawn.
|
||||
*/
|
||||
void DrawAncre( EDA_DRAW_PANEL* panel, wxDC* DC,
|
||||
const wxPoint& offset, int dim_ancre, GR_DRAWMODE draw_mode );
|
||||
const wxPoint& offset, int dim_ancre, GR_DRAWMODE draw_mode );
|
||||
|
||||
///> @copydoc EDA_ITEM::GetMsgPanelInfo
|
||||
void GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) override;
|
||||
void GetMsgPanelInfo( std::vector<MSG_PANEL_ITEM>& aList ) override;
|
||||
|
||||
bool HitTest( const wxPoint& aPosition ) const override;
|
||||
|
||||
|
@ -457,8 +463,8 @@ public:
|
|||
TEXTE_MODULE& Reference() { return *m_Reference; }
|
||||
|
||||
/// The const versions to keep the compiler happy.
|
||||
TEXTE_MODULE& Value() const { return *m_Value; }
|
||||
TEXTE_MODULE& Reference() const { return *m_Reference; }
|
||||
TEXTE_MODULE& Value() const { return *m_Value; }
|
||||
TEXTE_MODULE& Reference() const { return *m_Reference; }
|
||||
|
||||
/**
|
||||
* Function FindPadByName
|
||||
|
@ -490,7 +496,7 @@ public:
|
|||
* non-plated through holes when false.
|
||||
* @return the number of pads according to \a aIncludeNPTH.
|
||||
*/
|
||||
unsigned GetPadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T( INCLUDE_NPTH ) ) const;
|
||||
unsigned GetPadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T(INCLUDE_NPTH) ) const;
|
||||
|
||||
/**
|
||||
* GetUniquePadCount
|
||||
|
@ -504,7 +510,7 @@ public:
|
|||
* non-plated through holes when false.
|
||||
* @return the number of unique pads according to \a aIncludeNPTH.
|
||||
*/
|
||||
unsigned GetUniquePadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T( INCLUDE_NPTH ) ) const;
|
||||
unsigned GetUniquePadCount( INCLUDE_NPTH_T aIncludeNPTH = INCLUDE_NPTH_T(INCLUDE_NPTH) ) const;
|
||||
|
||||
/**
|
||||
* Function GetNextPadName
|
||||
|
@ -516,15 +522,15 @@ public:
|
|||
*/
|
||||
wxString GetNextPadName( bool aFillSequenceGaps ) const;
|
||||
|
||||
double GetArea() const { return m_Surface; }
|
||||
double GetArea() const { return m_Surface; }
|
||||
|
||||
time_t GetLink() const { return m_Link; }
|
||||
time_t GetLink() const { return m_Link; }
|
||||
void SetLink( time_t aLink ) { m_Link = aLink; }
|
||||
|
||||
int GetPlacementCost180() const { return m_CntRot180; }
|
||||
int GetPlacementCost180() const { return m_CntRot180; }
|
||||
void SetPlacementCost180( int aCost ) { m_CntRot180 = aCost; }
|
||||
|
||||
int GetPlacementCost90() const { return m_CntRot90; }
|
||||
int GetPlacementCost90() const { return m_CntRot90; }
|
||||
void SetPlacementCost90( int aCost ) { m_CntRot90 = aCost; }
|
||||
|
||||
/**
|
||||
|
@ -533,8 +539,8 @@ public:
|
|||
* @return the new item, or NULL if the item could not be duplicated
|
||||
*/
|
||||
BOARD_ITEM* Duplicate( const BOARD_ITEM* aItem,
|
||||
bool aIncrementPadNumbers,
|
||||
bool aAddToModule = false );
|
||||
bool aIncrementPadNumbers,
|
||||
bool aAddToModule = false );
|
||||
|
||||
/**
|
||||
* Function Add3DModel
|
||||
|
@ -544,7 +550,7 @@ public:
|
|||
*/
|
||||
void Add3DModel( S3D_INFO* a3DModel );
|
||||
|
||||
SEARCH_RESULT Visit( INSPECTOR inspector, void* testData, const KICAD_T scanTypes[] ) override;
|
||||
SEARCH_RESULT Visit( INSPECTOR inspector, void* testData, const KICAD_T scanTypes[] ) override;
|
||||
|
||||
wxString GetClass() const override
|
||||
{
|
||||
|
@ -597,7 +603,7 @@ public:
|
|||
* @param aName = the name in library to validate
|
||||
* @return true if the given name is valid
|
||||
*/
|
||||
static bool IsLibNameValid( const wxString & aName );
|
||||
static bool IsLibNameValid( const wxString& aName );
|
||||
|
||||
/**
|
||||
* static function StringLibNameInvalidChars
|
||||
|
@ -661,42 +667,42 @@ public:
|
|||
#endif
|
||||
|
||||
private:
|
||||
DLIST<D_PAD> m_Pads; ///< Linked list of pads.
|
||||
DLIST<D_PAD> m_Pads; ///< Linked list of pads.
|
||||
DLIST<BOARD_ITEM> m_Drawings; ///< Linked list of graphical items.
|
||||
std::list<S3D_INFO> m_3D_Drawings; ///< Linked list of 3D models.
|
||||
double m_Orient; ///< Orientation in tenths of a degree, 900=90.0 degrees.
|
||||
wxPoint m_Pos; ///< Position of module on the board in internal units.
|
||||
TEXTE_MODULE* m_Reference; ///< Component reference designator value (U34, R18..)
|
||||
TEXTE_MODULE* m_Value; ///< Component value (74LS00, 22K..)
|
||||
LIB_ID m_fpid; ///< The #LIB_ID of the MODULE.
|
||||
int m_Attributs; ///< Flag bits ( see Mod_Attribut )
|
||||
int m_ModuleStatus; ///< For autoplace: flags (LOCKED, AUTOPLACED)
|
||||
EDA_RECT m_BoundaryBox; ///< Bounding box : coordinates on board, real orientation.
|
||||
double m_Orient; ///< Orientation in tenths of a degree, 900=90.0 degrees.
|
||||
wxPoint m_Pos; ///< Position of module on the board in internal units.
|
||||
TEXTE_MODULE* m_Reference; ///< Component reference designator value (U34, R18..)
|
||||
TEXTE_MODULE* m_Value; ///< Component value (74LS00, 22K..)
|
||||
LIB_ID m_fpid; ///< The #LIB_ID of the MODULE.
|
||||
int m_Attributs; ///< Flag bits ( see Mod_Attribut )
|
||||
int m_ModuleStatus; ///< For autoplace: flags (LOCKED, AUTOPLACED)
|
||||
EDA_RECT m_BoundaryBox; ///< Bounding box : coordinates on board, real orientation.
|
||||
|
||||
// The final margin is the sum of these 2 values
|
||||
int m_ThermalWidth;
|
||||
int m_ThermalGap;
|
||||
wxString m_Doc; ///< File name and path for documentation file.
|
||||
wxString m_KeyWord; ///< Search keywords to find module in library.
|
||||
wxString m_Path;
|
||||
ZoneConnection m_ZoneConnection;
|
||||
time_t m_LastEditTime;
|
||||
int m_arflag; ///< Use to trace ratsnest and auto routing.
|
||||
double m_Surface; ///< Bounding box area
|
||||
time_t m_Link; ///< Temporary logical link used in edition
|
||||
int m_CntRot90; ///< Horizontal automatic placement cost ( 0..10 ).
|
||||
int m_CntRot180; ///< Vertical automatic placement cost ( 0..10 ).
|
||||
int m_ThermalWidth;
|
||||
int m_ThermalGap;
|
||||
wxString m_Doc; ///< File name and path for documentation file.
|
||||
wxString m_KeyWord; ///< Search keywords to find module in library.
|
||||
wxString m_Path;
|
||||
ZoneConnection m_ZoneConnection;
|
||||
time_t m_LastEditTime;
|
||||
int m_arflag; ///< Use to trace ratsnest and auto routing.
|
||||
double m_Surface; ///< Bounding box area
|
||||
time_t m_Link; ///< Temporary logical link used in edition
|
||||
int m_CntRot90; ///< Horizontal automatic placement cost ( 0..10 ).
|
||||
int m_CntRot180; ///< Vertical automatic placement cost ( 0..10 ).
|
||||
|
||||
// Local tolerances. When zero, this means the corresponding netclass value
|
||||
// is used. Usually theses local tolerances zero, in deference to the
|
||||
// corresponding netclass values.
|
||||
int m_LocalClearance;
|
||||
int m_LocalSolderMaskMargin; ///< Solder mask margin
|
||||
int m_LocalSolderPasteMargin; ///< Solder paste margin absolute value
|
||||
double m_LocalSolderPasteMarginRatio; ///< Solder mask margin ratio
|
||||
///< value of pad size
|
||||
int m_LocalClearance;
|
||||
int m_LocalSolderMaskMargin; ///< Solder mask margin
|
||||
int m_LocalSolderPasteMargin; ///< Solder paste margin absolute value
|
||||
double m_LocalSolderPasteMarginRatio; ///< Solder mask margin ratio
|
||||
///< value of pad size
|
||||
|
||||
wxArrayString* m_initial_comments; ///< leading s-expression comments in the module,
|
||||
wxArrayString* m_initial_comments; ///< leading s-expression comments in the module,
|
||||
///< lazily allocated only if needed for speed
|
||||
|
||||
/// Used in DRC to test the courtyard area (a polygon which can be not basic
|
||||
|
|
|
@ -94,9 +94,9 @@ void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
|||
return;
|
||||
|
||||
int count = 0;
|
||||
for( MODULE* module = board->m_Modules; module != NULL; module = module->Next() )
|
||||
for( auto mod : board->Modules() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad != 0; pad = pad->Next() )
|
||||
for( auto pad : mod->Pads() )
|
||||
{
|
||||
if( pad->GetNetCode() == GetNet() )
|
||||
{
|
||||
|
@ -140,4 +140,4 @@ void NETINFO_ITEM::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
|
|||
// Displays the net length of internal ICs connections (wires inside ICs):
|
||||
txt = ::LengthDoubleToString( lengthPadToDie );
|
||||
aList.push_back( MSG_PANEL_ITEM( _( "In Package" ), txt, RED ) );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ void NETINFO_MAPPING::Update()
|
|||
// Modules/pads
|
||||
for( MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads().GetFirst(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList().GetFirst(); pad; pad = pad->Next() )
|
||||
{
|
||||
nets.insert( pad->GetNetCode() );
|
||||
}
|
||||
|
|
|
@ -642,7 +642,6 @@ public:
|
|||
return m_RawPolysList;
|
||||
}
|
||||
|
||||
|
||||
wxString GetSelectMenuText() const override;
|
||||
|
||||
BITMAP_DEF GetMenuImage() const override;
|
||||
|
@ -787,7 +786,7 @@ private:
|
|||
* described by m_Poly can have many filled areas
|
||||
*/
|
||||
SHAPE_POLY_SET m_FilledPolysList;
|
||||
SHAPE_POLY_SET m_RawPolysList;
|
||||
SHAPE_POLY_SET m_RawPolysList;
|
||||
|
||||
HATCH_STYLE m_hatchStyle; // hatch style, see enum above
|
||||
int m_hatchPitch; // for DIAGONAL_EDGE, distance between 2 hatch lines
|
||||
|
|
|
@ -35,10 +35,7 @@
|
|||
#include <view/view.h>
|
||||
|
||||
#include <pcbnew.h>
|
||||
|
||||
// Helper classes to handle connection points
|
||||
#include <connect.h>
|
||||
|
||||
#include <class_board.h>
|
||||
/*
|
||||
* Function SortTracksByNetCode used in RebuildTrackChain()
|
||||
* to sort track segments by net code.
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
/**
|
||||
* @file connect.h
|
||||
* @brief helper classes to find track to track and track to pad connections.
|
||||
*/
|
||||
#ifndef CONNECT_H
|
||||
#define CONNECT_H
|
||||
|
||||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2012 Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, you may find one here:
|
||||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||
* or you may write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <class_track.h>
|
||||
#include <class_board.h>
|
||||
|
||||
|
||||
|
||||
#endif // ifndef CONNECT_H
|
|
@ -189,7 +189,7 @@ void CONNECTIVITY_DATA::BlockRatsnestItems( const std::vector<BOARD_ITEM*>& aIte
|
|||
{
|
||||
if( item->Type() == PCB_MODULE_T )
|
||||
{
|
||||
for( auto pad : static_cast<MODULE*>(item)->PadsIter() )
|
||||
for( auto pad : static_cast<MODULE*>(item)->Pads() )
|
||||
citems.push_back( pad );
|
||||
}
|
||||
else
|
||||
|
|
|
@ -140,7 +140,7 @@ bool CN_CONNECTIVITY_ALGO::Remove( BOARD_ITEM* aItem )
|
|||
switch( aItem->Type() )
|
||||
{
|
||||
case PCB_MODULE_T:
|
||||
for ( auto pad : static_cast<MODULE *> (aItem ) -> PadsIter() )
|
||||
for ( auto pad : static_cast<MODULE *> (aItem ) -> Pads() )
|
||||
{
|
||||
m_itemMap[ static_cast<BOARD_CONNECTED_ITEM*>( pad ) ].MarkItemsAsInvalid();
|
||||
m_itemMap.erase ( static_cast<BOARD_CONNECTED_ITEM*>( pad ) );
|
||||
|
@ -195,7 +195,7 @@ void CN_CONNECTIVITY_ALGO::markItemNetAsDirty( const BOARD_ITEM *aItem )
|
|||
if ( aItem->Type() == PCB_MODULE_T )
|
||||
{
|
||||
auto mod = static_cast <const MODULE *> ( aItem );
|
||||
for( D_PAD* pad = mod->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = mod->PadsList(); pad; pad = pad->Next() )
|
||||
markNetAsDirty ( pad->GetNetCode() );
|
||||
}
|
||||
}
|
||||
|
@ -209,7 +209,7 @@ bool CN_CONNECTIVITY_ALGO::Add( BOARD_ITEM* aItem )
|
|||
switch( aItem->Type() )
|
||||
{
|
||||
case PCB_MODULE_T:
|
||||
for ( auto pad : static_cast<MODULE *> (aItem ) -> PadsIter() )
|
||||
for ( auto pad : static_cast<MODULE *> (aItem ) -> Pads() )
|
||||
{
|
||||
if ( m_itemMap.find ( pad ) != m_itemMap.end() )
|
||||
return false;
|
||||
|
@ -678,7 +678,7 @@ void CN_CONNECTIVITY_ALGO::Build( BOARD* aBoard )
|
|||
Add( tv );
|
||||
|
||||
for( auto mod : aBoard->Modules() )
|
||||
for( auto pad : mod->PadsIter() )
|
||||
for( auto pad : mod->Pads() )
|
||||
Add( pad );
|
||||
|
||||
/*wxLogTrace( "CN", "zones : %lu, pads : %lu vias : %lu tracks : %lu\n",
|
||||
|
@ -701,7 +701,7 @@ void CN_CONNECTIVITY_ALGO::Build( const std::vector<BOARD_ITEM *> &aItems )
|
|||
|
||||
case PCB_MODULE_T:
|
||||
{
|
||||
for( auto pad : static_cast<MODULE*>(item)->PadsIter() )
|
||||
for( auto pad : static_cast<MODULE*>(item)->Pads() )
|
||||
{
|
||||
Add( pad );
|
||||
}
|
||||
|
|
|
@ -177,7 +177,7 @@ void DIALOG_GENDRILL::InitDisplayParams()
|
|||
|
||||
for( MODULE* module = m_parent->GetBoard()->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
if( pad->GetDrillShape() == PAD_DRILL_SHAPE_CIRCLE )
|
||||
{
|
||||
|
|
|
@ -160,7 +160,7 @@ void DIALOG_GLOBAL_DELETION::AcceptPcbDelete()
|
|||
|
||||
masque_layer &= layers_filter;
|
||||
|
||||
for( item = pcb->DrawingsList(); item; item = item->Next() )
|
||||
for( auto item : pcb->Drawings() )
|
||||
{
|
||||
KICAD_T type = item->Type();
|
||||
LAYER_NUM layer = item->GetLayer();
|
||||
|
|
|
@ -185,7 +185,7 @@ void PCB_BASE_FRAME::ResetModuleTextSizes( const wxString & aFilter, bool aRef,
|
|||
if( aOthers )
|
||||
{
|
||||
// Go through all other module text fields
|
||||
for( BOARD_ITEM* boardItem = module->GraphicalItems(); boardItem; boardItem = boardItem->Next() )
|
||||
for( BOARD_ITEM* boardItem = module->GraphicalItemsList(); boardItem; boardItem = boardItem->Next() )
|
||||
{
|
||||
if( boardItem->Type() == PCB_MODULE_TEXT_T )
|
||||
{
|
||||
|
|
|
@ -331,9 +331,7 @@ void DIALOG_NETLIST::OnCompileRatsnestClick( wxCommandEvent& event )
|
|||
{
|
||||
// Rebuild the board connectivity:
|
||||
auto board = m_parent->GetBoard();
|
||||
//board->GetConnectivity()->Build( board );
|
||||
board->GetConnectivity()->PropagateNets();
|
||||
m_parent->Compile_Ratsnest( m_dc, true );
|
||||
board->GetConnectivity()->RecalculateRatsnest();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ DRAG_SEGM_PICKER::DRAG_SEGM_PICKER( TRACK* aTrack )
|
|||
m_Flipped = false;
|
||||
}
|
||||
|
||||
|
||||
void DRAG_SEGM_PICKER::SetAuxParameters()
|
||||
{
|
||||
MODULE* module = NULL;
|
||||
|
@ -155,7 +156,7 @@ void DRAG_LIST::BuildDragListe( MODULE* aModule )
|
|||
|
||||
std::vector<D_PAD*> padList;
|
||||
|
||||
for ( auto pad : aModule->PadsIter() )
|
||||
for ( auto pad : aModule->Pads() )
|
||||
padList.push_back( pad );
|
||||
|
||||
sort( padList.begin(), padList.end(), sortPadsByXthenYCoord );
|
||||
|
@ -185,8 +186,6 @@ bool sort_tracklist( const DRAG_SEGM_PICKER& ref, const DRAG_SEGM_PICKER& tst )
|
|||
|
||||
void DRAG_LIST::fillList( std::vector<D_PAD*>& aList )
|
||||
{
|
||||
|
||||
printf("FillList!\n");
|
||||
// clear flags and variables of selected tracks
|
||||
for( auto pad : aList )
|
||||
{
|
||||
|
|
|
@ -568,7 +568,7 @@ void DRC::testUnconnected()
|
|||
DRC_ITEM* uncItem = new DRC_ITEM( DRCE_UNCONNECTED_ITEMS,
|
||||
t_src,
|
||||
t_dst,
|
||||
wxPoint( src.x, src.y ), wxPoint(dst.x, dst.y) );
|
||||
wxPoint( src.x, src.y ), wxPoint( dst.x, dst.y ) );
|
||||
m_unconnected.push_back( uncItem );
|
||||
|
||||
}
|
||||
|
@ -661,6 +661,7 @@ void DRC::testKeepoutAreas()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void DRC::testTexts()
|
||||
{
|
||||
std::vector<wxPoint> textShape; // a buffer to store the text shape (set of segments)
|
||||
|
@ -1085,3 +1086,4 @@ bool DRC::doFootprintOverlappingDrc()
|
|||
|
||||
return success;
|
||||
}
|
||||
|
||||
|
|
|
@ -655,7 +655,7 @@ void EAGLE_PLUGIN::loadPlain( wxXmlNode* aGraphics )
|
|||
|
||||
// Add a PAD_ATTRIB_HOLE_NOT_PLATED pad to this module.
|
||||
D_PAD* pad = new D_PAD( module );
|
||||
module->Pads().PushBack( pad );
|
||||
module->PadsList().PushBack( pad );
|
||||
|
||||
pad->SetShape( PAD_SHAPE_CIRCLE );
|
||||
pad->SetAttribute( PAD_ATTRIB_HOLE_NOT_PLATED );
|
||||
|
@ -851,7 +851,7 @@ void EAGLE_PLUGIN::loadElements( wxXmlNode* aElements )
|
|||
m_board->Add( m, ADD_APPEND );
|
||||
|
||||
// update the nets within the pads of the clone
|
||||
for( D_PAD* pad = m->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = m->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
string pn_key = makeKey( e.name, TO_UTF8( pad->GetPadName() ) );
|
||||
|
||||
|
@ -1233,7 +1233,7 @@ void EAGLE_PLUGIN::packageWire( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
dwg->SetLayer( layer );
|
||||
dwg->SetWidth( width );
|
||||
|
||||
aModule->GraphicalItems().PushBack( dwg );
|
||||
aModule->GraphicalItemsList().PushBack( dwg );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1244,7 +1244,7 @@ void EAGLE_PLUGIN::packagePad( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
EPAD e( aTree );
|
||||
|
||||
D_PAD* pad = new D_PAD( aModule );
|
||||
aModule->Pads().PushBack( pad );
|
||||
aModule->PadsList().PushBack( pad );
|
||||
|
||||
pad->SetPadName( FROM_UTF8( e.name.c_str() ) );
|
||||
|
||||
|
@ -1346,7 +1346,7 @@ void EAGLE_PLUGIN::packageText( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
{
|
||||
// FIXME: graphical text items are rotated for some reason.
|
||||
txt = new TEXTE_MODULE( aModule );
|
||||
aModule->GraphicalItems().PushBack( txt );
|
||||
aModule->GraphicalItemsList().PushBack( txt );
|
||||
}
|
||||
|
||||
txt->SetTimeStamp( timeStamp( aTree ) );
|
||||
|
@ -1440,7 +1440,7 @@ void EAGLE_PLUGIN::packageRectangle( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
if( IsNonCopperLayer( layer ) ) // skip copper "package.rectangle"s
|
||||
{
|
||||
EDGE_MODULE* dwg = new EDGE_MODULE( aModule, S_POLYGON );
|
||||
aModule->GraphicalItems().PushBack( dwg );
|
||||
aModule->GraphicalItemsList().PushBack( dwg );
|
||||
|
||||
dwg->SetLayer( layer );
|
||||
dwg->SetWidth( 0 );
|
||||
|
@ -1473,7 +1473,7 @@ void EAGLE_PLUGIN::packagePolygon( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
if( IsNonCopperLayer( layer ) ) // skip copper "package.rectangle"s
|
||||
{
|
||||
EDGE_MODULE* dwg = new EDGE_MODULE( aModule, S_POLYGON );
|
||||
aModule->GraphicalItems().PushBack( dwg );
|
||||
aModule->GraphicalItemsList().PushBack( dwg );
|
||||
|
||||
dwg->SetWidth( 0 ); // it's filled, no need for boundary width
|
||||
|
||||
|
@ -1526,7 +1526,7 @@ void EAGLE_PLUGIN::packageCircle( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
PCB_LAYER_ID layer = kicad_layer( e.layer );
|
||||
EDGE_MODULE* gr = new EDGE_MODULE( aModule, S_CIRCLE );
|
||||
|
||||
aModule->GraphicalItems().PushBack( gr );
|
||||
aModule->GraphicalItemsList().PushBack( gr );
|
||||
|
||||
gr->SetWidth( kicad( e.width ) );
|
||||
|
||||
|
@ -1555,7 +1555,7 @@ void EAGLE_PLUGIN::packageHole( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
|
||||
// we add a PAD_ATTRIB_HOLE_NOT_PLATED pad to this module.
|
||||
D_PAD* pad = new D_PAD( aModule );
|
||||
aModule->Pads().PushBack( pad );
|
||||
aModule->PadsList().PushBack( pad );
|
||||
|
||||
pad->SetShape( PAD_SHAPE_CIRCLE );
|
||||
pad->SetAttribute( PAD_ATTRIB_HOLE_NOT_PLATED );
|
||||
|
@ -1590,7 +1590,7 @@ void EAGLE_PLUGIN::packageSMD( MODULE* aModule, wxXmlNode* aTree ) const
|
|||
}
|
||||
|
||||
D_PAD* pad = new D_PAD( aModule );
|
||||
aModule->Pads().PushBack( pad );
|
||||
aModule->PadsList().PushBack( pad );
|
||||
|
||||
pad->SetPadName( FROM_UTF8( e.name.c_str() ) );
|
||||
pad->SetShape( PAD_SHAPE_RECT );
|
||||
|
|
|
@ -167,9 +167,9 @@ void FOOTPRINT_EDIT_FRAME::Edit_Edge_Width( EDGE_MODULE* aEdge )
|
|||
|
||||
if( aEdge == NULL )
|
||||
{
|
||||
aEdge = (EDGE_MODULE*) (BOARD_ITEM*) module->GraphicalItems();
|
||||
aEdge = (EDGE_MODULE*) (BOARD_ITEM*) module->GraphicalItemsList();
|
||||
|
||||
for( BOARD_ITEM *item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( BOARD_ITEM *item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
aEdge = dyn_cast<EDGE_MODULE*>( item );
|
||||
|
||||
|
@ -217,7 +217,7 @@ void FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer( EDGE_MODULE* aEdge )
|
|||
|
||||
if( !aEdge )
|
||||
{
|
||||
for( BOARD_ITEM *item = module->GraphicalItems() ; item != NULL;
|
||||
for( BOARD_ITEM *item = module->GraphicalItemsList() ; item != NULL;
|
||||
item = item->Next() )
|
||||
{
|
||||
aEdge = dyn_cast<EDGE_MODULE*>( item );
|
||||
|
@ -336,7 +336,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* aEdge,
|
|||
MoveVector.x = MoveVector.y = 0;
|
||||
|
||||
// Add the new item to the Drawings list head
|
||||
module->GraphicalItems().PushFront( aEdge );
|
||||
module->GraphicalItemsList().PushFront( aEdge );
|
||||
|
||||
// Update characteristics of the segment or arc.
|
||||
aEdge->SetFlags( IS_NEW );
|
||||
|
@ -380,7 +380,7 @@ EDGE_MODULE* FOOTPRINT_EDIT_FRAME::Begin_Edge_Module( EDGE_MODULE* aEdge,
|
|||
EDGE_MODULE* newedge = new EDGE_MODULE( *aEdge );
|
||||
|
||||
// insert _after_ aEdge, which is the same as inserting before aEdge->Next()
|
||||
module->GraphicalItems().Insert( newedge, aEdge->Next() );
|
||||
module->GraphicalItemsList().Insert( newedge, aEdge->Next() );
|
||||
aEdge->ClearFlags();
|
||||
|
||||
aEdge = newedge; // point now new item
|
||||
|
|
|
@ -663,6 +663,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
|||
}
|
||||
|
||||
SetCurItem( NULL ); // CurItem might be deleted by this command, clear the pointer
|
||||
// fixme
|
||||
OnModify();
|
||||
SetMsgPanel( GetBoard() );
|
||||
m_canvas->Refresh();
|
||||
|
|
|
@ -160,7 +160,7 @@ TRACK* PCB_EDIT_FRAME::Begin_Route( TRACK* aTrack, wxDC* aDC )
|
|||
DBG( g_CurrentTrackList.VerifyListIntegrity() );
|
||||
|
||||
int net = -1;
|
||||
if (lockPoint)
|
||||
if( lockPoint )
|
||||
net = lockPoint->GetNetCode();
|
||||
|
||||
BuildAirWiresTargetsList( lockPoint, wxPoint( 0, 0 ), net );
|
||||
|
|
|
@ -90,7 +90,7 @@ TEXTE_MODULE* FOOTPRINT_EDIT_FRAME::CreateTextModule( MODULE* aModule, wxDC* aDC
|
|||
|
||||
// Add the new text object to the beginning of the footprint draw list.
|
||||
if( aModule )
|
||||
aModule->GraphicalItems().PushFront( text );
|
||||
aModule->GraphicalItemsList().PushFront( text );
|
||||
|
||||
text->ClearFlags();
|
||||
|
||||
|
|
|
@ -119,7 +119,7 @@ static void build_pad_testpoints( BOARD *aPcb,
|
|||
for( MODULE *module = aPcb->m_Modules;
|
||||
module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD *pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD *pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
D356_RECORD rk;
|
||||
rk.access = compute_pad_access_code( aPcb, pad->GetLayerSet() );
|
||||
|
@ -394,4 +394,3 @@ void PCB_EDIT_FRAME::GenD356File( wxCommandEvent& aEvent )
|
|||
|
||||
fclose( file );
|
||||
}
|
||||
|
||||
|
|
|
@ -642,7 +642,7 @@ static void CreateShapesSection( FILE* aFile, BOARD* aPcb )
|
|||
{
|
||||
FootprintWriteShape( aFile, module );
|
||||
|
||||
for( pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
/* Funny thing: GenCAD requires the pad side even if you use
|
||||
* padstacks (which are theorically optional but gerbtools
|
||||
|
@ -794,7 +794,7 @@ static void CreateSignalsSection( FILE* aFile, BOARD* aPcb )
|
|||
|
||||
for( module = aPcb->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
wxString padname;
|
||||
|
||||
|
@ -1174,7 +1174,7 @@ static void FootprintWriteShape( FILE* aFile, MODULE* module )
|
|||
// CAM350 read it right but only closed shapes
|
||||
// ProntoPlace double-flip it (at least the pads are correct)
|
||||
// GerberTool usually get it right...
|
||||
for( PtStruct = module->GraphicalItems(); PtStruct; PtStruct = PtStruct->Next() )
|
||||
for( PtStruct = module->GraphicalItemsList(); PtStruct; PtStruct = PtStruct->Next() )
|
||||
{
|
||||
switch( PtStruct->Type() )
|
||||
{
|
||||
|
|
|
@ -287,7 +287,7 @@ static void idf_export_module( BOARD* aPcb, MODULE* aModule,
|
|||
|
||||
aIDFBoard.GetUserOffset( dx, dy );
|
||||
|
||||
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
drill = (double) pad->GetDrillSize().x * scale;
|
||||
x = pad->GetPosition().x * scale + dx;
|
||||
|
|
|
@ -1278,7 +1278,7 @@ static void export_vrml_module( MODEL_VRML& aModel, BOARD* aPcb,
|
|||
export_vrml_text_module( &aModule->Value() );
|
||||
|
||||
// Export module edges
|
||||
for( EDA_ITEM* item = aModule->GraphicalItems(); item; item = item->Next() )
|
||||
for( EDA_ITEM* item = aModule->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
|
@ -1298,7 +1298,7 @@ static void export_vrml_module( MODEL_VRML& aModel, BOARD* aPcb,
|
|||
}
|
||||
|
||||
// Export pads
|
||||
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
export_vrml_pad( aModel, aPcb, pad );
|
||||
|
||||
bool isFlipped = aModule->GetLayer() == B_Cu;
|
||||
|
|
|
@ -390,7 +390,7 @@ static bool HasNonSMDPins( MODULE* aModule )
|
|||
{
|
||||
D_PAD* pad;
|
||||
|
||||
for( pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( pad->GetAttribute() != PAD_ATTRIB_SMD )
|
||||
return true;
|
||||
|
@ -717,7 +717,7 @@ bool PCB_EDIT_FRAME::DoGenFootprintsReport( const wxString& aFullFilename, bool
|
|||
else
|
||||
fputs( "layer other\n", rptfile );
|
||||
|
||||
for( D_PAD* pad = Module->Pads(); pad != NULL; pad = pad->Next() )
|
||||
for( D_PAD* pad = Module->PadsList(); pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
fprintf( rptfile, "$PAD \"%s\"\n", TO_UTF8( pad->GetPadName() ) );
|
||||
int layer = 0;
|
||||
|
@ -754,4 +754,3 @@ bool PCB_EDIT_FRAME::DoGenFootprintsReport( const wxString& aFullFilename, bool
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -584,7 +584,7 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
|
|||
{
|
||||
wxBusyCursor dummy; // Displays an Hourglass while building connectivity
|
||||
Compile_Ratsnest( NULL, true );
|
||||
//GetBoard()->GetRatsnest()->ProcessBoard();
|
||||
GetBoard()->GetConnectivity()->Build( GetBoard() );
|
||||
}
|
||||
|
||||
// Update info shown by the horizontal toolbars
|
||||
|
|
|
@ -180,7 +180,7 @@ void PCB_BASE_FRAME::GlobalChange_PadSettings( D_PAD* aPad,
|
|||
|
||||
bool saveMe = false;
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Filters changes prohibited.
|
||||
if( aPadShapeFilter && ( pad->GetShape() != aPad->GetShape() ) )
|
||||
|
@ -225,7 +225,7 @@ void PCB_BASE_FRAME::GlobalChange_PadSettings( D_PAD* aPad,
|
|||
module->ClearFlags( DO_NOT_DRAW );
|
||||
}
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Filters changes prohibited.
|
||||
if( aPadShapeFilter && ( pad->GetShape() != aPad->GetShape() ) )
|
||||
|
|
|
@ -581,7 +581,7 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader )
|
|||
parseInt( parameters[5], conv_unit ) ) );
|
||||
drawSeg->SetWidth( parseInt( parameters[6], conv_unit ) );
|
||||
drawSeg->SetDrawCoord();
|
||||
module->GraphicalItems().PushBack( drawSeg );
|
||||
module->GraphicalItemsList().PushBack( drawSeg );
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -599,7 +599,7 @@ MODULE* GPCB_FPL_CACHE::parseMODULE( LINE_READER* aLineReader )
|
|||
EDGE_MODULE* drawSeg = new EDGE_MODULE( module.get() );
|
||||
drawSeg->SetLayer( F_SilkS );
|
||||
drawSeg->SetShape( S_ARC );
|
||||
module->GraphicalItems().PushBack( drawSeg );
|
||||
module->GraphicalItemsList().PushBack( drawSeg );
|
||||
|
||||
// for and arc: ibuf[3] = ibuf[4]. Pcbnew does not know ellipses
|
||||
int radius = ( parseInt( parameters[4], conv_unit ) +
|
||||
|
|
|
@ -1099,11 +1099,11 @@ void PCB_IO::format( MODULE* aModule, int aNestLevel ) const
|
|||
Format( (BOARD_ITEM*) &aModule->Value(), aNestLevel+1 );
|
||||
|
||||
// Save drawing elements.
|
||||
for( BOARD_ITEM* gr = aModule->GraphicalItems(); gr; gr = gr->Next() )
|
||||
for( BOARD_ITEM* gr = aModule->GraphicalItemsList(); gr; gr = gr->Next() )
|
||||
Format( gr, aNestLevel+1 );
|
||||
|
||||
// Save pads.
|
||||
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
format( pad, aNestLevel+1 );
|
||||
|
||||
// Save 3D info.
|
||||
|
|
|
@ -1198,7 +1198,7 @@ void LEGACY_PLUGIN::loadMODULE( MODULE* aModule )
|
|||
// All other fields greater than 1.
|
||||
default:
|
||||
textm = new TEXTE_MODULE( aModule );
|
||||
aModule->GraphicalItems().PushBack( textm );
|
||||
aModule->GraphicalItemsList().PushBack( textm );
|
||||
}
|
||||
|
||||
loadMODULE_TEXT( textm );
|
||||
|
@ -1609,7 +1609,7 @@ void LEGACY_PLUGIN::loadPAD( MODULE* aModule )
|
|||
|
||||
pad->SetPosition( padpos + aModule->GetPosition() );
|
||||
|
||||
aModule->Pads().PushBack( pad.release() );
|
||||
aModule->PadsList().PushBack( pad.release() );
|
||||
return; // preferred exit
|
||||
}
|
||||
}
|
||||
|
@ -1757,7 +1757,7 @@ void LEGACY_PLUGIN::loadMODULE_EDGE( MODULE* aModule )
|
|||
|
||||
EDGE_MODULE* em = dwg.release();
|
||||
|
||||
aModule->GraphicalItems().PushBack( em );
|
||||
aModule->GraphicalItemsList().PushBack( em );
|
||||
|
||||
// this had been done at the MODULE level before, presumably because the
|
||||
// EDGE_MODULE needs to be already added to a module before this function will work.
|
||||
|
|
|
@ -362,13 +362,13 @@ MODULE* MWAVE::CreateMicrowaveInductor( INDUCTOR_PATTERN& inductorPattern,
|
|||
PtSegm->SetShape( S_SEGMENT );
|
||||
PtSegm->SetStart0( PtSegm->GetStart() - module->GetPosition() );
|
||||
PtSegm->SetEnd0( PtSegm->GetEnd() - module->GetPosition() );
|
||||
module->GraphicalItems().PushBack( PtSegm );
|
||||
module->GraphicalItemsList().PushBack( PtSegm );
|
||||
}
|
||||
|
||||
// Place a pad on each end of coil.
|
||||
pad = new D_PAD( module );
|
||||
|
||||
module->Pads().PushFront( pad );
|
||||
module->PadsList().PushFront( pad );
|
||||
|
||||
pad->SetPadName( "1" );
|
||||
pad->SetPosition( inductorPattern.m_End );
|
||||
|
@ -382,7 +382,7 @@ MODULE* MWAVE::CreateMicrowaveInductor( INDUCTOR_PATTERN& inductorPattern,
|
|||
|
||||
D_PAD* newpad = new D_PAD( *pad );
|
||||
|
||||
module->Pads().Insert( newpad, pad->Next() );
|
||||
module->PadsList().Insert( newpad, pad->Next() );
|
||||
|
||||
pad = newpad;
|
||||
pad->SetPadName( "2" );
|
||||
|
|
|
@ -204,7 +204,7 @@ MODULE* PCB_EDIT_FRAME::CreateMuWaveBaseFootprint( const wxString& aValue,
|
|||
{
|
||||
D_PAD* pad = new D_PAD( module );
|
||||
|
||||
module->Pads().PushFront( pad );
|
||||
module->PadsList().PushFront( pad );
|
||||
|
||||
int tw = GetDesignSettings().GetCurrentTrackWidth();
|
||||
pad->SetSize( wxSize( tw, tw ) );
|
||||
|
@ -312,7 +312,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type )
|
|||
}
|
||||
|
||||
module = CreateMuWaveBaseFootprint( cmp_name, text_size, pad_count );
|
||||
pad = module->Pads();
|
||||
pad = module->PadsList();
|
||||
|
||||
switch( shape_type )
|
||||
{
|
||||
|
@ -339,7 +339,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWaveComponent( int shape_type )
|
|||
case 2: // Arc Stub created by a polygonal approach:
|
||||
{
|
||||
EDGE_MODULE* edge = new EDGE_MODULE( module );
|
||||
module->GraphicalItems().PushFront( edge );
|
||||
module->GraphicalItemsList().PushFront( edge );
|
||||
|
||||
edge->SetShape( S_POLYGON );
|
||||
edge->SetLayer( F_Cu );
|
||||
|
@ -623,7 +623,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape()
|
|||
wxPoint offset;
|
||||
offset.x = -ShapeSize.x / 2;
|
||||
|
||||
pad1 = module->Pads();
|
||||
pad1 = module->PadsList();
|
||||
pad1->SetX0( offset.x );
|
||||
pad1->SetX( pad1->GetPos0().x );
|
||||
|
||||
|
@ -636,7 +636,7 @@ MODULE* PCB_EDIT_FRAME::Create_MuWavePolygonShape()
|
|||
edge->SetShape( S_POLYGON );
|
||||
edge->SetLayer( F_Cu );
|
||||
|
||||
module->GraphicalItems().PushFront( edge );
|
||||
module->GraphicalItemsList().PushFront( edge );
|
||||
|
||||
// Get the corner buffer of the polygonal edge
|
||||
std::vector<wxPoint>& polyPoints = edge->GetPolyPoints();
|
||||
|
@ -698,7 +698,7 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* aModule )
|
|||
if( msg != wxT( "GAP" ) )
|
||||
return;
|
||||
|
||||
pad = aModule->Pads();
|
||||
pad = aModule->PadsList();
|
||||
|
||||
if( pad == NULL )
|
||||
{
|
||||
|
|
|
@ -169,8 +169,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
|
|||
}
|
||||
|
||||
// Rebuild the board connectivity:
|
||||
Compile_Ratsnest( NULL, true );
|
||||
//board->GetRatsnest()->ProcessBoard();
|
||||
board->GetConnectivity()->Build( board );
|
||||
|
||||
SetMsgPanel( board );
|
||||
m_canvas->Refresh();
|
||||
|
|
|
@ -115,7 +115,7 @@ void PCB_BASE_FRAME::AddPad( MODULE* aModule, bool draw )
|
|||
D_PAD* pad = new D_PAD( aModule );
|
||||
|
||||
// Add the new pad to end of the module pad list.
|
||||
aModule->Pads().PushBack( pad );
|
||||
aModule->PadsList().PushBack( pad );
|
||||
|
||||
// Update the pad properties,
|
||||
// and keep NETINFO_LIST::ORPHANED as net info
|
||||
|
|
|
@ -161,7 +161,7 @@ void PCB_ARC::AddToModule( MODULE* aModule )
|
|||
if( IsNonCopperLayer( m_KiCadLayer ) )
|
||||
{
|
||||
EDGE_MODULE* arc = new EDGE_MODULE( aModule, S_ARC );
|
||||
aModule->GraphicalItems().PushBack( arc );
|
||||
aModule->GraphicalItemsList().PushBack( arc );
|
||||
|
||||
arc->SetAngle( -m_angle );
|
||||
arc->m_Start0 = wxPoint( m_positionX, m_positionY );
|
||||
|
|
|
@ -120,7 +120,7 @@ void PCB_LINE::AddToModule( MODULE* aModule )
|
|||
if( IsNonCopperLayer( m_KiCadLayer ) )
|
||||
{
|
||||
EDGE_MODULE* segment = new EDGE_MODULE( aModule, S_SEGMENT );
|
||||
aModule->GraphicalItems().PushBack( segment );
|
||||
aModule->GraphicalItemsList().PushBack( segment );
|
||||
|
||||
segment->m_Start0 = wxPoint( m_positionX, m_positionY );
|
||||
segment->m_End0 = wxPoint( m_toX, m_toY );
|
||||
|
|
|
@ -294,7 +294,7 @@ void PCB_PAD::AddToModule( MODULE* aModule, int aRotation, bool aEncapsulatedPad
|
|||
pad->SetPosition( padpos + aModule->GetPosition() );
|
||||
}
|
||||
|
||||
aModule->Pads().PushBack( pad );
|
||||
aModule->PadsList().PushBack( pad );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1932,7 +1932,7 @@ MODULE* PCB_PARSER::parseMODULE_unchecked( wxArrayString* aInitialComments )
|
|||
break;
|
||||
|
||||
default:
|
||||
module->GraphicalItems().PushBack( text );
|
||||
module->GraphicalItemsList().PushBack( text );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1946,7 +1946,7 @@ MODULE* PCB_PARSER::parseMODULE_unchecked( wxArrayString* aInitialComments )
|
|||
EDGE_MODULE* em = parseEDGE_MODULE();
|
||||
em->SetParent( module.get() );
|
||||
em->SetDrawCoord();
|
||||
module->GraphicalItems().PushBack( em );
|
||||
module->GraphicalItemsList().PushBack( em );
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -506,7 +506,7 @@ void PCB_EDIT_FRAME::SetBoard( BOARD* aBoard )
|
|||
|
||||
if( IsGalCanvasActive() )
|
||||
{
|
||||
aBoard->GetConnectivity()->Build ( aBoard );
|
||||
aBoard->GetConnectivity()->Build( aBoard );
|
||||
|
||||
// reload the worksheet
|
||||
SetPageSettings( aBoard->GetPageSettings() );
|
||||
|
|
|
@ -91,7 +91,7 @@ void PlotSilkScreen( BOARD *aBoard, PLOTTER* aPlotter, LSET aLayerMask,
|
|||
{
|
||||
aPlotter->StartBlock( NULL );
|
||||
|
||||
for( D_PAD * pad = Module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD * pad = Module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// See if the pad is on this layer
|
||||
LSET masklayer = pad->GetLayerSet();
|
||||
|
@ -314,7 +314,7 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
|||
|
||||
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( BOARD_ITEM* item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
if( !aLayerMask[ item->GetLayer() ] )
|
||||
continue;
|
||||
|
@ -336,7 +336,7 @@ void PlotStandardLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
|||
{
|
||||
aPlotter->StartBlock( NULL );
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( (pad->GetLayerSet() & aLayerMask) == 0 )
|
||||
continue;
|
||||
|
@ -676,7 +676,7 @@ void PlotLayerOutlines( BOARD* aBoard, PLOTTER* aPlotter,
|
|||
{
|
||||
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
wxSize hole = pad->GetDrillSize();
|
||||
|
||||
|
@ -746,7 +746,7 @@ void PlotSolderMaskLayer( BOARD *aBoard, PLOTTER* aPlotter,
|
|||
|
||||
for( MODULE* module = aBoard->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( BOARD_ITEM* item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
if( layer != item->GetLayer() )
|
||||
continue;
|
||||
|
|
|
@ -238,7 +238,7 @@ bool BRDITEMS_PLOTTER::PlotAllTextsModule( MODULE* aModule )
|
|||
PlotTextModule( &aModule->Value(), GetValueColor() );
|
||||
}
|
||||
|
||||
for( BOARD_ITEM *item = aModule->GraphicalItems().GetFirst(); item; item = item->Next() )
|
||||
for( BOARD_ITEM *item = aModule->GraphicalItemsList().GetFirst(); item; item = item->Next() )
|
||||
{
|
||||
textModule = dyn_cast<TEXTE_MODULE*>( item );
|
||||
|
||||
|
@ -441,7 +441,7 @@ void BRDITEMS_PLOTTER::Plot_Edges_Modules()
|
|||
{
|
||||
for( MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( BOARD_ITEM* item = module->GraphicalItems().GetFirst(); item; item = item->Next() )
|
||||
for( BOARD_ITEM* item = module->GraphicalItemsList().GetFirst(); item; item = item->Next() )
|
||||
{
|
||||
EDGE_MODULE* edge = dyn_cast<EDGE_MODULE*>( item );
|
||||
|
||||
|
@ -822,7 +822,7 @@ void BRDITEMS_PLOTTER::PlotDrillMarks()
|
|||
|
||||
for( MODULE *Module = m_board->m_Modules; Module != NULL; Module = Module->Next() )
|
||||
{
|
||||
for( D_PAD *pad = Module->Pads(); pad != NULL; pad = pad->Next() )
|
||||
for( D_PAD *pad = Module->PadsList(); pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
if( pad->GetDrillSize().x == 0 )
|
||||
continue;
|
||||
|
|
|
@ -318,7 +318,7 @@ static void Print_Module( EDA_DRAW_PANEL* aPanel, wxDC* aDC, MODULE* aModule,
|
|||
PRINT_PARAMETERS::DrillShapeOptT aDrillShapeOpt )
|
||||
{
|
||||
// Print pads
|
||||
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( !( pad->GetLayerSet() & aMask ).any() )
|
||||
continue;
|
||||
|
@ -356,7 +356,7 @@ static void Print_Module( EDA_DRAW_PANEL* aPanel, wxDC* aDC, MODULE* aModule,
|
|||
if( aModule->Value().IsVisible() && aMask[aModule->Value().GetLayer()] )
|
||||
aModule->Value().Draw( aPanel, aDC, aDraw_mode );
|
||||
|
||||
for( EDA_ITEM* item = aModule->GraphicalItems(); item; item = item->Next() )
|
||||
for( EDA_ITEM* item = aModule->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
|
|
|
@ -225,7 +225,7 @@ void MODULE::DrawOutlinesWhenMoving( EDA_DRAW_PANEL* panel, wxDC* DC,
|
|||
pad_fill_tmp = displ_opts->m_DisplayPadFill;
|
||||
displ_opts->m_DisplayPadFill = true;
|
||||
|
||||
pt_pad = Pads();
|
||||
pt_pad = PadsList();
|
||||
|
||||
for( ; pt_pad != NULL; pt_pad = pt_pad->Next() )
|
||||
pt_pad->Draw( panel, DC, GR_XOR, aMoveVector );
|
||||
|
@ -247,7 +247,7 @@ void PCB_EDIT_FRAME::Show_1_Ratsnest( EDA_ITEM* item, wxDC* DC )
|
|||
{
|
||||
auto mod = static_cast<MODULE*> (item);
|
||||
|
||||
for( auto pad : mod->PadsIter() )
|
||||
for( auto pad : mod->Pads() )
|
||||
{
|
||||
pad->SetLocalRatsnestVisible( true );
|
||||
}
|
||||
|
|
|
@ -51,116 +51,6 @@ class CN_CONNECTIVITY_ALGO;
|
|||
struct RN_NODE_OR_FILTER;
|
||||
struct RN_NODE_AND_FILTER;
|
||||
|
||||
#if 0
|
||||
///> General interface for filtering out nodes in search functions.
|
||||
struct RN_NODE_FILTER : public std::unary_function<const RN_NODE_PTR&, bool>
|
||||
{
|
||||
virtual ~RN_NODE_FILTER() {}
|
||||
|
||||
virtual bool operator()( const RN_NODE_PTR& aNode ) const
|
||||
{
|
||||
return true; // By default everything passes
|
||||
}
|
||||
|
||||
friend RN_NODE_AND_FILTER operator&&( const RN_NODE_FILTER& aFilter1, const RN_NODE_FILTER& aFilter2 );
|
||||
friend RN_NODE_OR_FILTER operator||( const RN_NODE_FILTER& aFilter1, const RN_NODE_FILTER& aFilter2 );
|
||||
};
|
||||
|
||||
RN_NODE_AND_FILTER operator&&( const RN_NODE_FILTER& aFilter1, const RN_NODE_FILTER& aFilter2 );
|
||||
RN_NODE_OR_FILTER operator||( const RN_NODE_FILTER& aFilter1, const RN_NODE_FILTER& aFilter2 );
|
||||
|
||||
///> Leaves nodes that can be a ratsnest line target
|
||||
struct LINE_TARGET : public RN_NODE_FILTER
|
||||
{
|
||||
bool operator()( const RN_NODE_PTR& aNode ) const override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
///> Leaves nodes that can be a ratsnest line target and have a specific tag
|
||||
struct LINE_TARGET_SAME_TAG : public RN_NODE_FILTER
|
||||
{
|
||||
LINE_TARGET_SAME_TAG( int aTag ) :
|
||||
m_tag( aTag )
|
||||
{}
|
||||
|
||||
bool operator()( const RN_NODE_PTR& aNode ) const override
|
||||
{
|
||||
return aNode->GetTag() == m_tag;
|
||||
}
|
||||
|
||||
private:
|
||||
int m_tag;
|
||||
};
|
||||
|
||||
struct LINE_TARGET_DIFF_TAG : public RN_NODE_FILTER
|
||||
{
|
||||
LINE_TARGET_DIFF_TAG( int aTag ) :
|
||||
m_tag( aTag )
|
||||
{}
|
||||
|
||||
bool operator()( const RN_NODE_PTR& aNode ) const override
|
||||
{
|
||||
return aNode->GetTag() != m_tag;
|
||||
}
|
||||
|
||||
private:
|
||||
int m_tag;
|
||||
};
|
||||
|
||||
struct RN_NODE_AND_FILTER : public RN_NODE_FILTER
|
||||
{
|
||||
RN_NODE_AND_FILTER( const RN_NODE_FILTER& aFilter1, const RN_NODE_FILTER& aFilter2 ) :
|
||||
m_filter1( aFilter1 ), m_filter2( aFilter2 )
|
||||
{}
|
||||
|
||||
bool operator()( const RN_NODE_PTR& aNode ) const override
|
||||
{
|
||||
return m_filter1( aNode ) && m_filter2( aNode );
|
||||
}
|
||||
|
||||
private:
|
||||
const RN_NODE_FILTER& m_filter1;
|
||||
const RN_NODE_FILTER& m_filter2;
|
||||
};
|
||||
|
||||
struct RN_NODE_OR_FILTER : public RN_NODE_FILTER
|
||||
{
|
||||
RN_NODE_OR_FILTER( const RN_NODE_FILTER& aFilter1, const RN_NODE_FILTER& aFilter2 ) :
|
||||
m_filter1( aFilter1 ), m_filter2( aFilter2 )
|
||||
{}
|
||||
|
||||
bool operator()( const RN_NODE_PTR& aNode ) const override
|
||||
{
|
||||
return m_filter1( aNode ) || m_filter2( aNode );
|
||||
}
|
||||
|
||||
private:
|
||||
const RN_NODE_FILTER& m_filter1;
|
||||
const RN_NODE_FILTER& m_filter2;
|
||||
};
|
||||
|
||||
///> Functor comparing if two nodes are equal by their coordinates. It is required to make set of
|
||||
///> shared pointers work properly.
|
||||
struct RN_NODE_COMPARE : std::binary_function<CN_ANCHOR_PTR, CN_ANCHOR_PTR, bool>
|
||||
{
|
||||
bool operator()( const CN_ANCHOR_PTR& aNode1, const CN_ANCHOR_PTR& aNode2 ) const
|
||||
{
|
||||
if ( aNode1->GetY() < aNode2->GetY() )
|
||||
return true;
|
||||
else if ( aNode1->GetY() == aNode2->GetY() )
|
||||
{
|
||||
if ( aNode1->GetX() == aNode2->GetX() )
|
||||
return aNode1->GetCluster() < aNode2->GetCluster();
|
||||
else
|
||||
return aNode1->GetX() < aNode2->GetX();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Class RN_NET
|
||||
|
|
|
@ -133,7 +133,7 @@ PNS_PCBNEW_RULE_RESOLVER::PNS_PCBNEW_RULE_RESOLVER( BOARD* aBoard, PNS::ROUTER*
|
|||
{
|
||||
auto moduleClearance = mod->GetLocalClearance();
|
||||
|
||||
for( D_PAD* pad = mod->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = mod->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
int padClearance = pad->GetLocalClearance();
|
||||
|
||||
|
@ -765,7 +765,7 @@ void PNS_KICAD_IFACE::SyncWorld( PNS::NODE *aWorld )
|
|||
|
||||
for( MODULE* module = m_board->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
std::unique_ptr< PNS::SOLID > solid = syncPad( pad );
|
||||
|
||||
|
|
|
@ -1411,7 +1411,7 @@ int DRAWING_TOOL::DrawVia( const TOOL_EVENT& aEvent )
|
|||
return -1;
|
||||
|
||||
for ( auto mod : m_board->Modules() )
|
||||
for ( auto pad : mod->PadsIter() )
|
||||
for ( auto pad : mod->Pads() )
|
||||
if( pad->HitTest(pos) && (pad->GetLayerSet() &
|
||||
lset ).any() )
|
||||
return -1;
|
||||
|
|
|
@ -256,7 +256,7 @@ void GRID_HELPER::computeAnchors( BOARD_ITEM* aItem, const VECTOR2I& aRefPos )
|
|||
MODULE* mod = static_cast<MODULE*>( aItem );
|
||||
addAnchor( mod->GetPosition(), ORIGIN | SNAPPABLE, mod );
|
||||
|
||||
for( D_PAD* pad = mod->Pads(); pad; pad = pad->Next() )
|
||||
for( auto pad : mod->Pads() )
|
||||
addAnchor( pad->GetPosition(), CORNER | SNAPPABLE, pad );
|
||||
|
||||
break;
|
||||
|
|
|
@ -125,7 +125,7 @@ int MODULE_EDITOR_TOOLS::PlacePad( const TOOL_EVENT& aEvent )
|
|||
|
||||
int MODULE_EDITOR_TOOLS::EnumeratePads( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( !board()->m_Modules || !board()->m_Modules->Pads() )
|
||||
if( !board()->m_Modules || !board()->m_Modules->PadsList() )
|
||||
return 0;
|
||||
|
||||
Activate();
|
||||
|
@ -254,7 +254,7 @@ int MODULE_EDITOR_TOOLS::EnumeratePads( const TOOL_EVENT& aEvent )
|
|||
}
|
||||
}
|
||||
|
||||
for( D_PAD* p = board()->m_Modules->Pads(); p; p = p->Next() )
|
||||
for( auto p : board()->m_Modules->Pads() )
|
||||
{
|
||||
p->ClearSelected();
|
||||
view->Update( p );
|
||||
|
@ -411,14 +411,13 @@ int MODULE_EDITOR_TOOLS::PasteItems( const TOOL_EVENT& aEvent )
|
|||
// MODULE::RunOnChildren is infeasible here: we need to create copies of items, do not
|
||||
// directly modify them
|
||||
|
||||
for( D_PAD* pad = pastedModule->Pads(); pad; pad = pad->Next() )
|
||||
for( auto pad : pastedModule->Pads() )
|
||||
{
|
||||
D_PAD* clone = static_cast<D_PAD*>( pad->Clone() );
|
||||
commit.Add( clone );
|
||||
}
|
||||
|
||||
for( BOARD_ITEM* drawing = pastedModule->GraphicalItems();
|
||||
drawing; drawing = drawing->Next() )
|
||||
for( auto drawing : pastedModule->GraphicalItems() )
|
||||
{
|
||||
BOARD_ITEM* clone = static_cast<BOARD_ITEM*>( drawing->Clone() );
|
||||
|
||||
|
@ -469,7 +468,7 @@ int MODULE_EDITOR_TOOLS::ModuleTextOutlines( const TOOL_EVENT& aEvent )
|
|||
|
||||
for( auto module : board()->Modules() )
|
||||
{
|
||||
for( auto item : module->GraphicalItemsIter() )
|
||||
for( auto item : module->GraphicalItems() )
|
||||
{
|
||||
if( item->Type() == PCB_MODULE_TEXT_T )
|
||||
view->Update( item, KIGFX::GEOMETRY );
|
||||
|
@ -502,7 +501,7 @@ int MODULE_EDITOR_TOOLS::ModuleEdgeOutlines( const TOOL_EVENT& aEvent )
|
|||
|
||||
for( auto module : board()->Modules() )
|
||||
{
|
||||
for( auto item : module->GraphicalItemsIter() )
|
||||
for( auto item : module->GraphicalItems() )
|
||||
{
|
||||
if( item->Type() == PCB_MODULE_EDGE_T )
|
||||
view->Update( item, KIGFX::GEOMETRY );
|
||||
|
|
|
@ -285,7 +285,7 @@ static void globalChangePadSettings( BOARD& board,
|
|||
if( module->GetFPID() != moduleRef->GetFPID() )
|
||||
continue;
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
// Filters changes prohibited.
|
||||
if( aPadShapeFilter && ( pad->GetShape() != aSrcPad.GetShape() ) )
|
||||
|
|
|
@ -1078,7 +1078,7 @@ static bool showLocalRatsnest( TOOL_MANAGER* aToolMgr, const VECTOR2D& aPosition
|
|||
{
|
||||
if ( item->Type() == PCB_MODULE_T )
|
||||
{
|
||||
for ( auto pad : static_cast<MODULE *> (item)->PadsIter() )
|
||||
for ( auto pad : static_cast<MODULE *> (item)->Pads() )
|
||||
{
|
||||
pad->SetLocalRatsnestVisible( true );
|
||||
}
|
||||
|
|
|
@ -286,7 +286,7 @@ int PCBNEW_CONTROL::PadDisplayMode( const TOOL_EVENT& aEvent )
|
|||
|
||||
for( MODULE* module = getModel<BOARD>()->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( auto pad : module->Pads() )
|
||||
getView()->Update( pad, KIGFX::GEOMETRY );
|
||||
}
|
||||
|
||||
|
|
|
@ -897,7 +897,7 @@ void SELECTION_TOOL::selectAllItemsOnSheet( wxString& aSheetpath )
|
|||
std::list<int> netcodeList;
|
||||
for( MODULE* mmod : modList )
|
||||
{
|
||||
for( D_PAD* pad = mmod->Pads().GetFirst(); pad; pad = pad->Next() )
|
||||
for( auto pad : mmod->Pads() )
|
||||
{
|
||||
if( pad->IsConnected() )
|
||||
{
|
||||
|
@ -918,6 +918,7 @@ void SELECTION_TOOL::selectAllItemsOnSheet( wxString& aSheetpath )
|
|||
for( int netCode : netcodeList )
|
||||
{
|
||||
std::list<BOARD_CONNECTED_ITEM*> netPads;
|
||||
// fixme
|
||||
// ratsnest->GetNetItems( netCode, netPads, (RN_ITEM_TYPE)( RN_PADS ) );
|
||||
for( BOARD_CONNECTED_ITEM* mitem : netPads )
|
||||
{
|
||||
|
|
|
@ -267,7 +267,7 @@ void BOARD::DrawHighLight( EDA_DRAW_PANEL* am_canvas, wxDC* DC, int aNetCode )
|
|||
// Redraw any pads that have aNetCode
|
||||
for( MODULE* module = m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( pad->GetNetCode() == aNetCode )
|
||||
{
|
||||
|
@ -302,7 +302,7 @@ static void Trace_Pads_Only( EDA_DRAW_PANEL* panel, wxDC* DC, MODULE* aModule,
|
|||
displ_opts->m_DisplayPadFill = false;
|
||||
|
||||
// Draw pads.
|
||||
for( D_PAD* pad = aModule->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = aModule->PadsList(); pad; pad = pad->Next() )
|
||||
{
|
||||
if( (pad->GetLayerSet() & aLayerMask) == 0 )
|
||||
continue;
|
||||
|
|
|
@ -224,11 +224,11 @@ void PCB_BASE_EDIT_FRAME::SaveCopyInUndoList( const PICKED_ITEMS_LIST& aItemsLis
|
|||
clone->SetParent( GetBoard() );
|
||||
|
||||
// Clear current flags (which can be temporary set by a current edit command)
|
||||
for( EDA_ITEM* loc_item = clone->GraphicalItems(); loc_item;
|
||||
for( EDA_ITEM* loc_item = clone->GraphicalItemsList(); loc_item;
|
||||
loc_item = loc_item->Next() )
|
||||
loc_item->ClearFlags();
|
||||
|
||||
for( D_PAD* pad = clone->Pads(); pad; pad = pad->Next() )
|
||||
for( D_PAD* pad = clone->PadsList(); pad; pad = pad->Next() )
|
||||
pad->ClearFlags();
|
||||
|
||||
clone->Reference().ClearFlags();
|
||||
|
|
|
@ -154,7 +154,7 @@ void ZONE_CONTAINER::buildFeatureHoleList( BOARD* aPcb, SHAPE_POLY_SET& aFeature
|
|||
{
|
||||
D_PAD* nextpad;
|
||||
|
||||
for( D_PAD* pad = module->Pads(); pad != NULL; pad = nextpad )
|
||||
for( D_PAD* pad = module->PadsList(); pad != NULL; pad = nextpad )
|
||||
{
|
||||
nextpad = pad->Next(); // pad pointer can be modified by next code, so
|
||||
// calculate the next pad here
|
||||
|
@ -249,7 +249,7 @@ void ZONE_CONTAINER::buildFeatureHoleList( BOARD* aPcb, SHAPE_POLY_SET& aFeature
|
|||
*/
|
||||
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( BOARD_ITEM* item = module->GraphicalItems(); item; item = item->Next() )
|
||||
for( BOARD_ITEM* item = module->GraphicalItemsList(); item; item = item->Next() )
|
||||
{
|
||||
if( !item->IsOnLayer( GetLayer() ) && !item->IsOnLayer( Edge_Cuts ) )
|
||||
continue;
|
||||
|
@ -342,7 +342,7 @@ void ZONE_CONTAINER::buildFeatureHoleList( BOARD* aPcb, SHAPE_POLY_SET& aFeature
|
|||
// Remove thermal symbols
|
||||
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
// Rejects non-standard pads with tht-only thermal reliefs
|
||||
if( GetPadConnection( pad ) == PAD_ZONE_CONN_THT_THERMAL
|
||||
|
|
|
@ -108,7 +108,7 @@ void BuildUnconnectedThermalStubsPolygonList( SHAPE_POLY_SET& aCornerBuffer,
|
|||
|
||||
for( MODULE* module = aPcb->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
for( D_PAD* pad = module->Pads(); pad != NULL; pad = pad->Next() )
|
||||
for( D_PAD* pad = module->PadsList(); pad != NULL; pad = pad->Next() )
|
||||
{
|
||||
// Rejects non-standard pads with tht-only thermal reliefs
|
||||
if( aZone->GetPadConnection( pad ) == PAD_ZONE_CONN_THT_THERMAL
|
||||
|
|
Loading…
Reference in New Issue