Fix incorrect vrml export of footprint edge type S_POLYGON.
This commit is contained in:
parent
270a63daac
commit
875a2b0e10
|
@ -1007,7 +1007,7 @@ static void export_vrml_text_module( TEXTE_MODULE* module )
|
||||||
|
|
||||||
|
|
||||||
static void export_vrml_edge_module( MODEL_VRML& aModel, EDGE_MODULE* aOutline,
|
static void export_vrml_edge_module( MODEL_VRML& aModel, EDGE_MODULE* aOutline,
|
||||||
double aOrientation )
|
MODULE* aModule )
|
||||||
{
|
{
|
||||||
LAYER_NUM layer = aOutline->GetLayer();
|
LAYER_NUM layer = aOutline->GetLayer();
|
||||||
double x = aOutline->GetStart().x * BOARD_SCALE;
|
double x = aOutline->GetStart().x * BOARD_SCALE;
|
||||||
|
@ -1051,13 +1051,11 @@ static void export_vrml_edge_module( MODEL_VRML& aModel, EDGE_MODULE* aOutline,
|
||||||
|
|
||||||
while( i < nvert )
|
while( i < nvert )
|
||||||
{
|
{
|
||||||
CPolyPt corner( poly[i] );
|
RotatePoint( &poly[i], aModule->GetOrientation() );
|
||||||
RotatePoint( &corner.x, &corner.y, aOrientation );
|
poly[i] += aModule->GetPosition();
|
||||||
corner.x += aOutline->GetPosition().x;
|
|
||||||
corner.y += aOutline->GetPosition().y;
|
|
||||||
|
|
||||||
x = corner.x * BOARD_SCALE;
|
x = poly[i].x * BOARD_SCALE;
|
||||||
y = - ( corner.y * BOARD_SCALE );
|
y = - ( poly[i].y * BOARD_SCALE );
|
||||||
|
|
||||||
if( !vl->AddVertex( seg, x, y ) )
|
if( !vl->AddVertex( seg, x, y ) )
|
||||||
throw( std::runtime_error( vl->GetError() ) );
|
throw( std::runtime_error( vl->GetError() ) );
|
||||||
|
@ -1295,7 +1293,7 @@ static void export_vrml_module( MODEL_VRML& aModel, BOARD* aPcb,
|
||||||
|
|
||||||
case PCB_MODULE_EDGE_T:
|
case PCB_MODULE_EDGE_T:
|
||||||
export_vrml_edge_module( aModel, static_cast<EDGE_MODULE*>( item ),
|
export_vrml_edge_module( aModel, static_cast<EDGE_MODULE*>( item ),
|
||||||
aModule->GetOrientation() );
|
aModule );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue