Don't create 0-length tracks when placing via in the middle of a track.
This commit is contained in:
parent
893a362d9e
commit
8fe78101db
|
@ -3089,26 +3089,32 @@ int DRAWING_TOOL::DrawVia( const TOOL_EVENT& aEvent )
|
||||||
track->SetStart( trackStart );
|
track->SetStart( trackStart );
|
||||||
track->SetEnd( *joint1 );
|
track->SetEnd( *joint1 );
|
||||||
|
|
||||||
|
if( *joint1 != viaPos )
|
||||||
|
{
|
||||||
|
PCB_TRACK* newTrack = dynamic_cast<PCB_TRACK*>( track->Clone() );
|
||||||
|
wxCHECK( newTrack, /* void */ );
|
||||||
|
const_cast<KIID&>( newTrack->m_Uuid ) = KIID();
|
||||||
|
|
||||||
|
newTrack->SetStart( *joint1 );
|
||||||
|
newTrack->SetEnd( viaPos );
|
||||||
|
aCommit.Add( newTrack );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( *joint2 != viaPos )
|
||||||
|
{
|
||||||
|
PCB_TRACK* newTrack = dynamic_cast<PCB_TRACK*>( track->Clone() );
|
||||||
|
wxCHECK( newTrack, /* void */ );
|
||||||
|
const_cast<KIID&>( newTrack->m_Uuid ) = KIID();
|
||||||
|
|
||||||
|
newTrack->SetStart( viaPos );
|
||||||
|
newTrack->SetEnd( *joint2 );
|
||||||
|
aCommit.Add( newTrack );
|
||||||
|
}
|
||||||
|
|
||||||
PCB_TRACK* newTrack = dynamic_cast<PCB_TRACK*>( track->Clone() );
|
PCB_TRACK* newTrack = dynamic_cast<PCB_TRACK*>( track->Clone() );
|
||||||
wxCHECK( newTrack, /* void */ );
|
wxCHECK( newTrack, /* void */ );
|
||||||
const_cast<KIID&>( newTrack->m_Uuid ) = KIID();
|
const_cast<KIID&>( newTrack->m_Uuid ) = KIID();
|
||||||
|
|
||||||
newTrack->SetStart( *joint1 );
|
|
||||||
newTrack->SetEnd( viaPos );
|
|
||||||
aCommit.Add( newTrack );
|
|
||||||
|
|
||||||
newTrack = dynamic_cast<PCB_TRACK*>( track->Clone() );
|
|
||||||
wxCHECK( newTrack, /* void */ );
|
|
||||||
const_cast<KIID&>( newTrack->m_Uuid ) = KIID();
|
|
||||||
|
|
||||||
newTrack->SetStart( viaPos );
|
|
||||||
newTrack->SetEnd( *joint2 );
|
|
||||||
aCommit.Add( newTrack );
|
|
||||||
|
|
||||||
newTrack = dynamic_cast<PCB_TRACK*>( track->Clone() );
|
|
||||||
wxCHECK( newTrack, /* void */ );
|
|
||||||
const_cast<KIID&>( newTrack->m_Uuid ) = KIID();
|
|
||||||
|
|
||||||
newTrack->SetStart( *joint2 );
|
newTrack->SetStart( *joint2 );
|
||||||
newTrack->SetEnd( trackEnd );
|
newTrack->SetEnd( trackEnd );
|
||||||
aCommit.Add( newTrack );
|
aCommit.Add( newTrack );
|
||||||
|
|
Loading…
Reference in New Issue