Handle bezier curves in 2581 better
Rather than keeping the cached, we should calculate the level we want and output that
This commit is contained in:
parent
ef3e5b18dc
commit
fcc6dec0e4
|
@ -20,6 +20,7 @@
|
||||||
#include "ipc2581_plugin.h"
|
#include "ipc2581_plugin.h"
|
||||||
|
|
||||||
#include <base_units.h>
|
#include <base_units.h>
|
||||||
|
#include <bezier_curves.h>
|
||||||
#include <board.h>
|
#include <board.h>
|
||||||
#include <board_design_settings.h>
|
#include <board_design_settings.h>
|
||||||
#include <board_stackup_manager/stackup_predefined_prms.h>
|
#include <board_stackup_manager/stackup_predefined_prms.h>
|
||||||
|
@ -991,7 +992,12 @@ void IPC2581_PLUGIN::addShape( wxXmlNode* aContentNode, const PCB_SHAPE& aShape
|
||||||
case SHAPE_T::BEZIER:
|
case SHAPE_T::BEZIER:
|
||||||
{
|
{
|
||||||
wxXmlNode* polyline_node = appendNode( aContentNode, "Polyline" );
|
wxXmlNode* polyline_node = appendNode( aContentNode, "Polyline" );
|
||||||
const std::vector<VECTOR2I>& points = aShape.GetBezierPoints();
|
std::vector<VECTOR2I> ctrlPoints = { aShape.GetStart(), aShape.GetBezierC1(),
|
||||||
|
aShape.GetBezierC2(), aShape.GetEnd() };
|
||||||
|
BEZIER_POLY converter( ctrlPoints );
|
||||||
|
std::vector<VECTOR2I> points;
|
||||||
|
converter.GetPoly( points, aShape.GetStroke().GetWidth() );
|
||||||
|
|
||||||
wxXmlNode* point_node = appendNode( polyline_node, "PolyBegin" );
|
wxXmlNode* point_node = appendNode( polyline_node, "PolyBegin" );
|
||||||
addXY( point_node, points[0] );
|
addXY( point_node, points[0] );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue