Scale markers somewhat proportionally to zoom.
Fixes https://gitlab.com/kicad/code/kicad/issues/10048
(cherry picked from commit a1c8e36c99
)
This commit is contained in:
parent
b403930601
commit
e9e742816d
|
@ -64,6 +64,7 @@ public:
|
|||
* The scaling factor to convert polygonal shape coordinates to internal units.
|
||||
*/
|
||||
int MarkerScale() const { return m_scalingFactor; }
|
||||
void SetMarkerScale( int aScale ) { m_scalingFactor = aScale; }
|
||||
|
||||
/**
|
||||
* Return the shape polygon in internal units in a #SHAPE_LINE_CHAIN the coordinates
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
|
||||
/// Factor to convert the maker unit shape to internal units:
|
||||
#define SCALING_FACTOR Millimeter2iu( 0.075 )
|
||||
#define SCALING_FACTOR Millimeter2iu( 0.1625 )
|
||||
|
||||
|
||||
|
||||
|
@ -205,6 +205,12 @@ KIGFX::COLOR4D PCB_MARKER::getColor() const
|
|||
}
|
||||
|
||||
|
||||
void PCB_MARKER::SetZoom( double aZoomFactor )
|
||||
{
|
||||
SetMarkerScale( SCALING_FACTOR * aZoomFactor );
|
||||
}
|
||||
|
||||
|
||||
const EDA_RECT PCB_MARKER::GetBoundingBox() const
|
||||
{
|
||||
EDA_RECT bbox = m_shapeBoundingBox;
|
||||
|
|
|
@ -97,6 +97,8 @@ public:
|
|||
|
||||
BITMAPS GetMenuImage() const override;
|
||||
|
||||
void SetZoom( double aZoomFactor );
|
||||
|
||||
const BOX2I ViewBBox() const override;
|
||||
|
||||
const EDA_RECT GetBoundingBox() const override;
|
||||
|
|
|
@ -1911,6 +1911,8 @@ void PCB_PAINTER::draw( const PCB_MARKER* aMarker, int aLayer )
|
|||
return;
|
||||
}
|
||||
|
||||
const_cast<PCB_MARKER*>( aMarker )->SetZoom( 1.0 / sqrt( m_gal->GetZoomFactor() ) );
|
||||
|
||||
SHAPE_LINE_CHAIN polygon;
|
||||
aMarker->ShapeToPolygon( polygon );
|
||||
|
||||
|
|
Loading…
Reference in New Issue