router: fix tuning status popup & incorrect length display
This commit is contained in:
parent
504c8bf286
commit
435ca8a7dd
|
@ -147,6 +147,16 @@ void LENGTH_TUNER_TOOL::handleCommonEvents( const TOOL_EVENT& aEvent )
|
|||
}
|
||||
}
|
||||
|
||||
void LENGTH_TUNER_TOOL::updateStatusPopup( PNS_TUNE_STATUS_POPUP& aPopup )
|
||||
{
|
||||
wxPoint p = wxGetMousePosition();
|
||||
|
||||
p.x += 20;
|
||||
p.y += 20;
|
||||
|
||||
aPopup.Update( m_router );
|
||||
aPopup.Move( p );
|
||||
}
|
||||
|
||||
void LENGTH_TUNER_TOOL::performTuning()
|
||||
{
|
||||
|
@ -170,13 +180,18 @@ void LENGTH_TUNER_TOOL::performTuning()
|
|||
return;
|
||||
}
|
||||
|
||||
PNS_MEANDER_PLACER_BASE* placer = static_cast<PNS_MEANDER_PLACER_BASE*>( m_router->Placer() );
|
||||
|
||||
placer->UpdateSettings( m_savedMeanderSettings );
|
||||
|
||||
VECTOR2I end( m_startSnapPoint );
|
||||
|
||||
PNS_TUNE_STATUS_POPUP statusPopup( m_frame );
|
||||
statusPopup.Popup();
|
||||
|
||||
PNS_MEANDER_PLACER* placer = static_cast<PNS_MEANDER_PLACER*>( m_router->Placer() );
|
||||
VECTOR2I end;
|
||||
m_router->Move( end, NULL );
|
||||
updateStatusPopup( statusPopup );
|
||||
|
||||
placer->UpdateSettings( m_savedMeanderSettings );
|
||||
|
||||
while( OPT_TOOL_EVENT evt = Wait() )
|
||||
{
|
||||
|
@ -191,14 +206,8 @@ void LENGTH_TUNER_TOOL::performTuning()
|
|||
{
|
||||
end = evt->Position();
|
||||
m_router->Move( end, NULL );
|
||||
updateStatusPopup( statusPopup );
|
||||
|
||||
wxPoint p = wxGetMousePosition();
|
||||
|
||||
p.x += 20;
|
||||
p.y += 20;
|
||||
|
||||
statusPopup.Update( m_router );
|
||||
statusPopup.Move( p );
|
||||
}
|
||||
else if( evt->IsClick( BUT_LEFT ) )
|
||||
{
|
||||
|
|
|
@ -44,6 +44,9 @@ private:
|
|||
void performTuning( );
|
||||
int mainLoop( PNS_ROUTER_MODE aMode );
|
||||
void handleCommonEvents( const TOOL_EVENT& aEvent );
|
||||
void updateStatusPopup ( PNS_TUNE_STATUS_POPUP& aPopup );
|
||||
|
||||
|
||||
|
||||
PNS_MEANDER_SETTINGS m_savedMeanderSettings;
|
||||
};
|
||||
|
|
|
@ -64,7 +64,20 @@ void PNS_MEANDER_PLACER_BASE::cutTunedLine( const SHAPE_LINE_CHAIN& aOrigin,
|
|||
SHAPE_LINE_CHAIN& aTuned,
|
||||
SHAPE_LINE_CHAIN& aPost )
|
||||
{
|
||||
VECTOR2I n = aOrigin.NearestPoint( aCursorPos );
|
||||
VECTOR2I cp ( aCursorPos );
|
||||
|
||||
if ( cp == aTuneStart ) // we don't like tuning segments with 0 length
|
||||
{
|
||||
int idx = aOrigin.FindSegment( cp );
|
||||
if( idx >= 0 )
|
||||
{
|
||||
const SEG& s = aOrigin.CSegment( idx );
|
||||
cp += (s.B - s.A).Resize(2);
|
||||
} else
|
||||
cp += VECTOR2I (2, 5); // some arbitrary value that is not 45 degrees oriented
|
||||
}
|
||||
|
||||
VECTOR2I n = aOrigin.NearestPoint( cp );
|
||||
VECTOR2I m = aOrigin.NearestPoint( aTuneStart );
|
||||
|
||||
SHAPE_LINE_CHAIN l( aOrigin );
|
||||
|
@ -84,6 +97,7 @@ void PNS_MEANDER_PLACER_BASE::cutTunedLine( const SHAPE_LINE_CHAIN& aOrigin,
|
|||
aPre = l.Slice( 0, i_start );
|
||||
aPost = l.Slice( i_end, -1 );
|
||||
aTuned = l.Slice( i_start, i_end );
|
||||
|
||||
aTuned.Simplify();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue