Fix bezier curves drawing in schematic/libedit.

This commit is contained in:
Alex Shvartzkop 2023-09-09 19:08:07 +03:00
parent 45e83541cd
commit ead44d58a0
2 changed files with 6 additions and 13 deletions

View File

@ -1396,7 +1396,7 @@ void OPENGL_GAL::DrawCurve( const VECTOR2D& aStartPoint, const VECTOR2D& aContro
BEZIER_POLY converter( pointCtrl ); BEZIER_POLY converter( pointCtrl );
converter.GetPoly( output, aFilterValue ); converter.GetPoly( output, aFilterValue );
DrawPolyline( &output[0], output.size() ); DrawPolygon( &output[0], output.size() );
} }

View File

@ -937,12 +937,9 @@ void SCH_PAINTER::draw( const LIB_SHAPE* aShape, int aLayer, bool aDimmed )
case SHAPE_T::BEZIER: case SHAPE_T::BEZIER:
{ {
std::deque<VECTOR2D> mappedPts; m_gal->DrawCurve(
mapCoords( shape->GetStart() ), mapCoords( shape->GetBezierC1() ),
for( const VECTOR2I& p : shape->GetBezierPoints() ) mapCoords( shape->GetBezierC2() ), mapCoords( shape->GetEnd() ) );
mappedPts.push_back( mapCoords( p ) );
m_gal->DrawPolygon( mappedPts );
} }
break; break;
@ -2023,12 +2020,8 @@ void SCH_PAINTER::draw( const SCH_SHAPE* aShape, int aLayer )
case SHAPE_T::BEZIER: case SHAPE_T::BEZIER:
{ {
std::deque<VECTOR2D> pts; m_gal->DrawCurve( shape->GetStart(), shape->GetBezierC1(), shape->GetBezierC2(),
shape->GetEnd() );
for( const VECTOR2I &p : shape->GetPolyShape().Outline( 0 ).CPoints() )
pts.push_back( p );
m_gal->DrawPolygon( pts );
break; break;
} }