pcbnew: Draw dynamic ratsnest with curved lines
When selected, curved ratsnest lines can be used for all ratsnest not just the static set. Fixes: lp:1832929 * https://bugs.launchpad.net/kicad/+bug/1832929
This commit is contained in:
parent
79e2000af4
commit
4f4b24a638
|
@ -2,7 +2,7 @@
|
|||
* This program source code file is part of KICAD, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 2013 CERN
|
||||
* Copyright (C) 2018 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 2018-2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
||||
*
|
||||
|
@ -92,10 +92,21 @@ void RATSNEST_VIEWITEM::ViewDraw( int aLayer, KIGFX::VIEW* aView ) const
|
|||
VECTOR2I( l.b.x + CROSS_SIZE, l.b.y - CROSS_SIZE ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( curved_ratsnest )
|
||||
{
|
||||
auto dx = l.b.x - l.a.x;
|
||||
auto dy = l.b.y - l.a.y;
|
||||
const auto center = VECTOR2I( l.a.x + 0.5 * dx - 0.1 * dy,
|
||||
l.a.y + 0.5 * dy + 0.1 * dx );
|
||||
gal->DrawCurve( l.a, center, center, l.b );
|
||||
}
|
||||
else
|
||||
{
|
||||
gal->DrawLine( l.a, l.b );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for( int i = 1 /* skip "No Net" at [0] */; i < m_data->GetNetCount(); ++i )
|
||||
{
|
||||
|
@ -148,15 +159,16 @@ void RATSNEST_VIEWITEM::ViewDraw( int aLayer, KIGFX::VIEW* aView ) const
|
|||
}
|
||||
else
|
||||
{
|
||||
if (curved_ratsnest) {
|
||||
if( curved_ratsnest )
|
||||
{
|
||||
auto dx = target.x - source.x;
|
||||
auto dy = target.y - source.y;
|
||||
const auto center = VECTOR2I(
|
||||
source.x + 0.5 * dx - 0.1 * dy,
|
||||
source.y + 0.5 * dy + 0.1 * dx
|
||||
);
|
||||
const auto center = VECTOR2I( source.x + 0.5 * dx - 0.1 * dy,
|
||||
source.y + 0.5 * dy + 0.1 * dx );
|
||||
gal->DrawCurve( source, center, center, target );
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
gal->DrawLine( source, target );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue