Recompute local coordinates when an object is added to MODULE.
This commit is contained in:
parent
b5bfa14057
commit
0bf553b06c
|
@ -282,6 +282,27 @@ void MODULE::Add( BOARD_ITEM* aBoardItem, ADD_MODE aMode )
|
|||
|
||||
aBoardItem->SetParent( this );
|
||||
SetLastEditTime();
|
||||
|
||||
// Update relative coordinates, it can be done only after there is a parent object assigned
|
||||
switch( aBoardItem->Type() )
|
||||
{
|
||||
case PCB_MODULE_TEXT_T:
|
||||
static_cast<TEXTE_MODULE*>( aBoardItem )->SetLocalCoord();
|
||||
break;
|
||||
|
||||
case PCB_MODULE_EDGE_T:
|
||||
static_cast<EDGE_MODULE*>( aBoardItem )->SetLocalCoord();
|
||||
break;
|
||||
|
||||
case PCB_PAD_T:
|
||||
static_cast<D_PAD*>( aBoardItem )->SetLocalCoord();
|
||||
break;
|
||||
|
||||
default:
|
||||
// Huh? It should have been filtered out by the previous switch
|
||||
assert(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -264,7 +264,6 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule )
|
|||
converted = new EDGE_MODULE( aModule );
|
||||
*static_cast<DRAWSEGMENT*>( converted ) = *static_cast<DRAWSEGMENT*>( item );
|
||||
aModule->Add( converted );
|
||||
static_cast<EDGE_MODULE*>( converted )->SetLocalCoord();
|
||||
delete item;
|
||||
break;
|
||||
}
|
||||
|
@ -274,7 +273,6 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule )
|
|||
converted = new TEXTE_MODULE( aModule );
|
||||
*static_cast<TEXTE_PCB*>( converted ) = *static_cast<TEXTE_PCB*>( item );
|
||||
aModule->Add( converted );
|
||||
static_cast<TEXTE_MODULE*>( converted )->SetLocalCoord();
|
||||
delete item;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue