Loading pcbnew/class_module.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -1039,6 +1039,17 @@ void MODULE::SetRectangleExinscrit() } /** * Function GetBoundingBox * returns the bounding box of this Footprint */ EDA_Rect MODULE::GetBoundingBox() { SetRectangleExinscrit(); return m_RealBoundaryBox; } /*******************************************************/ void MODULE::Display_Infos( WinEDA_DrawFrame* frame ) /*******************************************************/ Loading pcbnew/class_module.h +5 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,11 @@ public: void SetRectangleExinscrit(); /* mise a jour du rect d'encadrement * et de la surface en coord reelles */ /** * Function GetBoundingBox * returns the bounding box of this Footprint */ EDA_Rect GetBoundingBox(); /** * Function GetPosition Loading pcbnew/modules.cpp +12 −9 Original line number Diff line number Diff line Loading @@ -262,10 +262,12 @@ void Montre_Position_Empreinte( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) /**************************************************************/ /* * Commande Delete Module : * Suppression d'une empreinte * les pointeurs divers sont mis a jour /** * Function Delete Module * Remove a footprint from m_Modules linked list and put it in undelete buffer * The net rastenes and pad list are recalcualed * @param module = footprint to delete * @param DC = currentDevice Context. if NULL: do not redraw new ratsnets and dirty rectange */ { EDA_BaseStruct* PtBack, * PtNext; Loading @@ -288,14 +290,12 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) m_CurrentScreen->SetModify(); /* Erase rastnest if needed */ /* Erase rastnest if needed * Dirty rectangle is not used here because usually using a XOR draw mode gives good results (very few artefacts) for ratsnest */ if( g_Show_Ratsnest ) DrawGeneralRatsnest( DC ); /* Effacement du module a l'ecran */ if( DC ) module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR ); /* Suppression du chainage */ PtBack = module->Pback; PtNext = module->Pnext; Loading @@ -316,6 +316,9 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) m_Pcb->m_Status_Pcb = 0; build_liste_pads(); ReCompile_Ratsnest_After_Changes( DC ); // redraw the area where the module was if ( DC ) DrawPanel->PostDirtyRect( module->GetBoundingBox() ); return TRUE; } Loading Loading
pcbnew/class_module.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -1039,6 +1039,17 @@ void MODULE::SetRectangleExinscrit() } /** * Function GetBoundingBox * returns the bounding box of this Footprint */ EDA_Rect MODULE::GetBoundingBox() { SetRectangleExinscrit(); return m_RealBoundaryBox; } /*******************************************************/ void MODULE::Display_Infos( WinEDA_DrawFrame* frame ) /*******************************************************/ Loading
pcbnew/class_module.h +5 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,11 @@ public: void SetRectangleExinscrit(); /* mise a jour du rect d'encadrement * et de la surface en coord reelles */ /** * Function GetBoundingBox * returns the bounding box of this Footprint */ EDA_Rect GetBoundingBox(); /** * Function GetPosition Loading
pcbnew/modules.cpp +12 −9 Original line number Diff line number Diff line Loading @@ -262,10 +262,12 @@ void Montre_Position_Empreinte( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ) bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) /**************************************************************/ /* * Commande Delete Module : * Suppression d'une empreinte * les pointeurs divers sont mis a jour /** * Function Delete Module * Remove a footprint from m_Modules linked list and put it in undelete buffer * The net rastenes and pad list are recalcualed * @param module = footprint to delete * @param DC = currentDevice Context. if NULL: do not redraw new ratsnets and dirty rectange */ { EDA_BaseStruct* PtBack, * PtNext; Loading @@ -288,14 +290,12 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) m_CurrentScreen->SetModify(); /* Erase rastnest if needed */ /* Erase rastnest if needed * Dirty rectangle is not used here because usually using a XOR draw mode gives good results (very few artefacts) for ratsnest */ if( g_Show_Ratsnest ) DrawGeneralRatsnest( DC ); /* Effacement du module a l'ecran */ if( DC ) module->Draw( DrawPanel, DC, wxPoint( 0, 0 ), GR_XOR ); /* Suppression du chainage */ PtBack = module->Pback; PtNext = module->Pnext; Loading @@ -316,6 +316,9 @@ bool WinEDA_PcbFrame::Delete_Module( MODULE* module, wxDC* DC ) m_Pcb->m_Status_Pcb = 0; build_liste_pads(); ReCompile_Ratsnest_After_Changes( DC ); // redraw the area where the module was if ( DC ) DrawPanel->PostDirtyRect( module->GetBoundingBox() ); return TRUE; } Loading