Shorter names before things get out of hand.
Also, remove comments indicating CURVE is a Bezier. Just call it a BEZIER.
This commit is contained in:
parent
a41944020d
commit
8b08c9e53f
|
@ -297,7 +297,7 @@ protected:
|
|||
const std::vector<wxPoint> buildBezierToSegmentsPointsList( int aMinSegLen ) const;
|
||||
|
||||
protected:
|
||||
SHAPE_T m_shape; // Shape: line, Circle, Arc
|
||||
SHAPE_T m_shape; // Shape: line, Circle, Arc
|
||||
int m_width; // thickness of lines ...
|
||||
bool m_filled; // Pretty much what it says on the tin...
|
||||
wxPoint m_start; // Line start point or Circle and Arc center
|
||||
|
|
|
@ -516,7 +516,7 @@ void EDA_SHAPE::TransformShapeWithClearanceToPolygon( SHAPE_POLY_SET& aCornerBuf
|
|||
break;
|
||||
}
|
||||
|
||||
case SHAPE_T::BEZIER: // Bezier curve
|
||||
case SHAPE_T::BEZIER:
|
||||
{
|
||||
std::vector<wxPoint> ctrlPoints = { m_start, m_bezierC1, m_bezierC2, m_end };
|
||||
BEZIER_POLY converter( ctrlPoints );
|
||||
|
@ -533,7 +533,7 @@ void EDA_SHAPE::TransformShapeWithClearanceToPolygon( SHAPE_POLY_SET& aCornerBuf
|
|||
}
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "PCB_SHAPE::TransformShapeWithClearanceToPolygon no implementation for "
|
||||
wxFAIL_MSG( "EDA_SHAPE::TransformShapeWithClearanceToPolygon not implemented for "
|
||||
+ SHAPE_T_asString() );
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -160,7 +160,7 @@ void FP_SHAPE::Flip( const wxPoint& aCentre, bool aFlipLeftRight )
|
|||
switch( GetShape() )
|
||||
{
|
||||
case SHAPE_T::ARC:
|
||||
// Update arc angle but do not yet update m_thirdPoint0 and m_thirdPoint,
|
||||
// Update arc angle but do not yet update m_ThirdPoint0 and m_thirdPoint,
|
||||
// arc center and start point must be updated before calculation arc end.
|
||||
SetAngle( -GetAngle(), false );
|
||||
KI_FALLTHROUGH;
|
||||
|
@ -227,7 +227,7 @@ void FP_SHAPE::Mirror( const wxPoint& aCentre, bool aMirrorAroundXAxis )
|
|||
switch( GetShape() )
|
||||
{
|
||||
case SHAPE_T::ARC:
|
||||
// Update arc angle but do not yet update m_thirdPoint0 and m_thirdPoint,
|
||||
// Update arc angle but do not yet update m_ThirdPoint0 and m_thirdPoint,
|
||||
// arc center and start point must be updated before calculation arc end.
|
||||
SetAngle( -GetAngle(), false );
|
||||
KI_FALLTHROUGH;
|
||||
|
|
|
@ -126,7 +126,7 @@ bool GRAPHICS_CLEANER::areEquivalent( PCB_SHAPE* aShape1, PCB_SHAPE* aShape2 )
|
|||
&& aShape1->GetBezierPoints() == aShape2->GetBezierPoints();
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "GRAPHICS_CLEANER::areEquivalent unsupported PCB_SHAPE shape: "
|
||||
wxFAIL_MSG( "GRAPHICS_CLEANER::areEquivalent unimplemented for "
|
||||
+ aShape1->SHAPE_T_asString() );
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -425,12 +425,11 @@ FOOTPRINT* MICROWAVE_TOOL::createMicrowaveInductor( MICROWAVE_INDUCTOR_PATTERN&
|
|||
for( unsigned jj = 1; jj < buffer.size(); jj++ )
|
||||
{
|
||||
FP_SHAPE* seg;
|
||||
seg = new FP_SHAPE( footprint );
|
||||
seg = new FP_SHAPE( footprint, SHAPE_T::SEGMENT );
|
||||
seg->SetStart( buffer[jj - 1] );
|
||||
seg->SetEnd( buffer[jj] );
|
||||
seg->SetWidth( aInductorPattern.m_Width );
|
||||
seg->SetLayer( footprint->GetLayer() );
|
||||
seg->SetShape( SHAPE_T::SEGMENT );
|
||||
seg->SetStart0( seg->GetStart() - footprint->GetPosition() );
|
||||
seg->SetEnd0( seg->GetEnd() - footprint->GetPosition() );
|
||||
footprint->Add( seg );
|
||||
|
|
|
@ -341,8 +341,7 @@ FOOTPRINT* MICROWAVE_TOOL::createPolygonShape()
|
|||
pad2->SetX( pad2->GetPos0().x );
|
||||
|
||||
// Add a polygonal edge (corners will be added later) on copper layer
|
||||
shape = new FP_SHAPE( footprint );
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
shape = new FP_SHAPE( footprint, SHAPE_T::POLY );
|
||||
shape->SetFilled( true );
|
||||
shape->SetLayer( F_Cu );
|
||||
|
||||
|
|
|
@ -57,8 +57,7 @@ void PAD::AddPrimitivePoly( const SHAPE_POLY_SET& aPoly, int aThickness, bool aF
|
|||
|
||||
void PAD::AddPrimitivePoly( const std::vector<wxPoint>& aPoly, int aThickness, bool aFilled )
|
||||
{
|
||||
PCB_SHAPE* item = new PCB_SHAPE();
|
||||
item->SetShape( SHAPE_T::POLY );
|
||||
PCB_SHAPE* item = new PCB_SHAPE( nullptr, SHAPE_T::POLY );
|
||||
item->SetFilled( aFilled );
|
||||
item->SetPolyPoints( aPoly );
|
||||
item->SetWidth( aThickness );
|
||||
|
@ -70,8 +69,7 @@ void PAD::AddPrimitivePoly( const std::vector<wxPoint>& aPoly, int aThickness, b
|
|||
|
||||
void PAD::AddPrimitiveSegment( const wxPoint& aStart, const wxPoint& aEnd, int aThickness )
|
||||
{
|
||||
PCB_SHAPE* item = new PCB_SHAPE();
|
||||
item->SetShape( SHAPE_T::SEGMENT );
|
||||
PCB_SHAPE* item = new PCB_SHAPE( nullptr, SHAPE_T::SEGMENT );
|
||||
item->SetFilled( false );
|
||||
item->SetStart( aStart );
|
||||
item->SetEnd( aEnd );
|
||||
|
@ -85,8 +83,7 @@ void PAD::AddPrimitiveSegment( const wxPoint& aStart, const wxPoint& aEnd, int a
|
|||
void PAD::AddPrimitiveArc( const wxPoint& aCenter, const wxPoint& aStart, int aArcAngle,
|
||||
int aThickness )
|
||||
{
|
||||
PCB_SHAPE* item = new PCB_SHAPE();
|
||||
item->SetShape( SHAPE_T::ARC );
|
||||
PCB_SHAPE* item = new PCB_SHAPE( nullptr, SHAPE_T::ARC );
|
||||
item->SetFilled( false );
|
||||
item->SetArcCenter( aCenter );
|
||||
item->SetArcStart( aStart );
|
||||
|
@ -101,8 +98,7 @@ void PAD::AddPrimitiveArc( const wxPoint& aCenter, const wxPoint& aStart, int aA
|
|||
void PAD::AddPrimitiveCurve( const wxPoint& aStart, const wxPoint& aEnd, const wxPoint& aCtrl1,
|
||||
const wxPoint& aCtrl2, int aThickness )
|
||||
{
|
||||
PCB_SHAPE* item = new PCB_SHAPE();
|
||||
item->SetShape( SHAPE_T::BEZIER );
|
||||
PCB_SHAPE* item = new PCB_SHAPE( nullptr, SHAPE_T::BEZIER );
|
||||
item->SetFilled( false );
|
||||
item->SetStart( aStart );
|
||||
item->SetEnd( aEnd );
|
||||
|
@ -117,8 +113,7 @@ void PAD::AddPrimitiveCurve( const wxPoint& aStart, const wxPoint& aEnd, const w
|
|||
|
||||
void PAD::AddPrimitiveCircle( const wxPoint& aCenter, int aRadius, int aThickness, bool aFilled )
|
||||
{
|
||||
PCB_SHAPE* item = new PCB_SHAPE();
|
||||
item->SetShape( SHAPE_T::CIRCLE );
|
||||
PCB_SHAPE* item = new PCB_SHAPE( nullptr, SHAPE_T::CIRCLE );
|
||||
item->SetFilled( aFilled );
|
||||
item->SetStart( aCenter );
|
||||
item->SetEnd( wxPoint( aCenter.x + aRadius, aCenter.y ) );
|
||||
|
@ -132,8 +127,7 @@ void PAD::AddPrimitiveCircle( const wxPoint& aCenter, int aRadius, int aThicknes
|
|||
void PAD::AddPrimitiveRect( const wxPoint& aStart, const wxPoint& aEnd, int aThickness,
|
||||
bool aFilled)
|
||||
{
|
||||
PCB_SHAPE* item = new PCB_SHAPE();
|
||||
item->SetShape( SHAPE_T::RECT );
|
||||
PCB_SHAPE* item = new PCB_SHAPE( nullptr, SHAPE_T:: RECT );
|
||||
item->SetFilled( aFilled );
|
||||
item->SetStart( aStart );
|
||||
item->SetEnd( aEnd );
|
||||
|
|
|
@ -37,7 +37,13 @@ PCB_SHAPE::PCB_SHAPE( BOARD_ITEM* aParent, KICAD_T idtype, SHAPE_T shapetype ) :
|
|||
BOARD_ITEM( aParent, idtype ),
|
||||
EDA_SHAPE( shapetype, Millimeter2iu( DEFAULT_LINE_WIDTH ) )
|
||||
{
|
||||
m_flags = 0;
|
||||
}
|
||||
|
||||
|
||||
PCB_SHAPE::PCB_SHAPE( BOARD_ITEM* aParent, SHAPE_T shapetype ) :
|
||||
BOARD_ITEM( aParent, PCB_SHAPE_T ),
|
||||
EDA_SHAPE( shapetype, Millimeter2iu( DEFAULT_LINE_WIDTH ) )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -38,8 +38,9 @@ class MSG_PANEL_ITEM;
|
|||
class PCB_SHAPE : public BOARD_ITEM, public EDA_SHAPE
|
||||
{
|
||||
public:
|
||||
PCB_SHAPE( BOARD_ITEM* aParent = NULL, KICAD_T idtype = PCB_SHAPE_T,
|
||||
SHAPE_T shapetype = SHAPE_T::SEGMENT );
|
||||
PCB_SHAPE( BOARD_ITEM* aParent, KICAD_T idtype, SHAPE_T shapetype );
|
||||
|
||||
PCB_SHAPE( BOARD_ITEM* aParent = NULL, SHAPE_T shapetype = SHAPE_T::SEGMENT );
|
||||
|
||||
// Do not create a copy constructor & operator=.
|
||||
// The ones generated by the compiler are adequate.
|
||||
|
|
|
@ -114,7 +114,7 @@ bool IsAltiumLayerAPlane( ALTIUM_LAYER aLayer )
|
|||
}
|
||||
|
||||
|
||||
PCB_SHAPE* ALTIUM_PCB::HelperCreateAndAddDrawsegment( uint16_t aComponent )
|
||||
PCB_SHAPE* ALTIUM_PCB::HelperCreateAndAddShape( uint16_t aComponent )
|
||||
{
|
||||
if( aComponent == ALTIUM_COMPONENT_NONE )
|
||||
{
|
||||
|
@ -141,7 +141,7 @@ PCB_SHAPE* ALTIUM_PCB::HelperCreateAndAddDrawsegment( uint16_t aComponent )
|
|||
}
|
||||
|
||||
|
||||
void ALTIUM_PCB::HelperDrawsegmentSetLocalCoord( PCB_SHAPE* aShape, uint16_t aComponent )
|
||||
void ALTIUM_PCB::HelperShapeSetLocalCoord( PCB_SHAPE* aShape, uint16_t aComponent )
|
||||
{
|
||||
if( aComponent != ALTIUM_COMPONENT_NONE )
|
||||
{
|
||||
|
@ -169,36 +169,36 @@ void ALTIUM_PCB::HelperDrawsegmentSetLocalCoord( PCB_SHAPE* aShape, uint16_t aCo
|
|||
void HelperShapeLineChainFromAltiumVertices( SHAPE_LINE_CHAIN& aLine,
|
||||
const std::vector<ALTIUM_VERTICE>& aVertices )
|
||||
{
|
||||
for( auto& vertice : aVertices )
|
||||
for( const ALTIUM_VERTICE& vertex : aVertices )
|
||||
{
|
||||
if( vertice.isRound )
|
||||
if( vertex.isRound )
|
||||
{
|
||||
double angle = NormalizeAngleDegreesPos( vertice.endangle - vertice.startangle );
|
||||
double angle = NormalizeAngleDegreesPos( vertex.endangle - vertex.startangle );
|
||||
|
||||
double startradiant = DEG2RAD( vertice.startangle );
|
||||
double endradiant = DEG2RAD( vertice.endangle );
|
||||
wxPoint arcStartOffset = wxPoint( KiROUND( std::cos( startradiant ) * vertice.radius ),
|
||||
-KiROUND( std::sin( startradiant ) * vertice.radius ) );
|
||||
double startradiant = DEG2RAD( vertex.startangle );
|
||||
double endradiant = DEG2RAD( vertex.endangle );
|
||||
wxPoint arcStartOffset = wxPoint( KiROUND( std::cos( startradiant ) * vertex.radius ),
|
||||
-KiROUND( std::sin( startradiant ) * vertex.radius ) );
|
||||
|
||||
wxPoint arcEndOffset = wxPoint( KiROUND( std::cos( endradiant ) * vertice.radius ),
|
||||
-KiROUND( std::sin( endradiant ) * vertice.radius ) );
|
||||
wxPoint arcEndOffset = wxPoint( KiROUND( std::cos( endradiant ) * vertex.radius ),
|
||||
-KiROUND( std::sin( endradiant ) * vertex.radius ) );
|
||||
|
||||
wxPoint arcStart = vertice.center + arcStartOffset;
|
||||
wxPoint arcEnd = vertice.center + arcEndOffset;
|
||||
wxPoint arcStart = vertex.center + arcStartOffset;
|
||||
wxPoint arcEnd = vertex.center + arcEndOffset;
|
||||
|
||||
if( GetLineLength( arcStart, vertice.position )
|
||||
< GetLineLength( arcEnd, vertice.position ) )
|
||||
if( GetLineLength( arcStart, vertex.position )
|
||||
< GetLineLength( arcEnd, vertex.position ) )
|
||||
{
|
||||
aLine.Append( SHAPE_ARC( vertice.center, arcStart, -angle ) );
|
||||
aLine.Append( SHAPE_ARC( vertex.center, arcStart, -angle ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
aLine.Append( SHAPE_ARC( vertice.center, arcEnd, angle ) );
|
||||
aLine.Append( SHAPE_ARC( vertex.center, arcEnd, angle ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
aLine.Append( vertice.position );
|
||||
aLine.Append( vertex.position );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1240,9 +1240,8 @@ void ALTIUM_PCB::HelperParseDimensions6Leader( const ADIMENSION6& aElem )
|
|||
wxPoint last = referencePoint0;
|
||||
for( size_t i = 1; i < aElem.referencePoint.size(); i++ )
|
||||
{
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board, SHAPE_T::SEGMENT );
|
||||
m_board->Add( shape, ADD_MODE::APPEND );
|
||||
shape->SetShape( SHAPE_T::SEGMENT );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( aElem.linewidth );
|
||||
shape->SetStart( last );
|
||||
|
@ -1261,9 +1260,8 @@ void ALTIUM_PCB::HelperParseDimensions6Leader( const ADIMENSION6& aElem )
|
|||
wxPoint( KiROUND( dirVec.x / scaling ), KiROUND( dirVec.y / scaling ) );
|
||||
RotatePoint( &arrVec, 200. );
|
||||
|
||||
PCB_SHAPE* shape1 = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape1 = new PCB_SHAPE( m_board, SHAPE_T::SEGMENT );
|
||||
m_board->Add( shape1, ADD_MODE::APPEND );
|
||||
shape1->SetShape( SHAPE_T::SEGMENT );
|
||||
shape1->SetLayer( klayer );
|
||||
shape1->SetWidth( aElem.linewidth );
|
||||
shape1->SetStart( referencePoint0 );
|
||||
|
@ -1271,9 +1269,8 @@ void ALTIUM_PCB::HelperParseDimensions6Leader( const ADIMENSION6& aElem )
|
|||
|
||||
RotatePoint( &arrVec, -400. );
|
||||
|
||||
PCB_SHAPE* shape2 = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape2 = new PCB_SHAPE( m_board, SHAPE_T::SEGMENT );
|
||||
m_board->Add( shape2, ADD_MODE::APPEND );
|
||||
shape2->SetShape( SHAPE_T::SEGMENT );
|
||||
shape2->SetLayer( klayer );
|
||||
shape2->SetWidth( aElem.linewidth );
|
||||
shape2->SetStart( referencePoint0 );
|
||||
|
@ -1314,9 +1311,8 @@ void ALTIUM_PCB::HelperParseDimensions6Datum( const ADIMENSION6& aElem )
|
|||
|
||||
for( size_t i = 0; i < aElem.referencePoint.size(); i++ )
|
||||
{
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board, SHAPE_T::SEGMENT );
|
||||
m_board->Add( shape, ADD_MODE::APPEND );
|
||||
shape->SetShape( SHAPE_T::SEGMENT );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( aElem.linewidth );
|
||||
shape->SetStart( aElem.referencePoint.at( i ) );
|
||||
|
@ -1790,9 +1786,8 @@ void ALTIUM_PCB::ParseShapeBasedRegions6Data( const CFB::CompoundFileReader& aRe
|
|||
continue;
|
||||
}
|
||||
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board, SHAPE_T::POLY );
|
||||
m_board->Add( shape, ADD_MODE::APPEND );
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
shape->SetFilled( true );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( 0 );
|
||||
|
@ -1937,6 +1932,7 @@ void ALTIUM_PCB::ParseArcs6Data( const CFB::CompoundFileReader& aReader,
|
|||
else
|
||||
{
|
||||
shape.SetShape( SHAPE_T::ARC );
|
||||
|
||||
double startradiant = DEG2RAD( elem.startangle );
|
||||
wxPoint arcStartOffset = wxPoint( KiROUND( std::cos( startradiant ) * elem.radius ),
|
||||
-KiROUND( std::sin( startradiant ) * elem.radius ) );
|
||||
|
@ -2026,7 +2022,7 @@ void ALTIUM_PCB::ParseArcs6Data( const CFB::CompoundFileReader& aReader,
|
|||
}
|
||||
else
|
||||
{
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( elem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( elem.component );
|
||||
shape->SetArcCenter( elem.center );
|
||||
shape->SetWidth( elem.width );
|
||||
shape->SetLayer( klayer );
|
||||
|
@ -2047,7 +2043,7 @@ void ALTIUM_PCB::ParseArcs6Data( const CFB::CompoundFileReader& aReader,
|
|||
shape->SetArcStart( elem.center + arcStartOffset );
|
||||
}
|
||||
|
||||
HelperDrawsegmentSetLocalCoord( shape, elem.component );
|
||||
HelperShapeSetLocalCoord( shape, elem.component );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2318,21 +2314,21 @@ void ALTIUM_PCB::HelperParsePad6NonCopper( const APAD6& aElem )
|
|||
case ALTIUM_PAD_SHAPE::RECT:
|
||||
{
|
||||
// filled rect
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( aElem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( aElem.component );
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
shape->SetFilled( true );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( 0 );
|
||||
|
||||
shape->SetPolyPoints( { aElem.position + wxPoint( aElem.topsize.x / 2, aElem.topsize.y / 2 ),
|
||||
aElem.position + wxPoint( aElem.topsize.x / 2, -aElem.topsize.y / 2 ),
|
||||
aElem.position + wxPoint( -aElem.topsize.x / 2, -aElem.topsize.y / 2 ),
|
||||
aElem.position + wxPoint( -aElem.topsize.x / 2, aElem.topsize.y / 2 ) } );
|
||||
aElem.position + wxPoint( aElem.topsize.x / 2, -aElem.topsize.y / 2 ),
|
||||
aElem.position + wxPoint( -aElem.topsize.x / 2, -aElem.topsize.y / 2 ),
|
||||
aElem.position + wxPoint( -aElem.topsize.x / 2, aElem.topsize.y / 2 ) } );
|
||||
|
||||
if( aElem.direction != 0 )
|
||||
shape->Rotate( aElem.position, aElem.direction * 10 );
|
||||
|
||||
HelperDrawsegmentSetLocalCoord( shape, aElem.component );
|
||||
HelperShapeSetLocalCoord( shape, aElem.component );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -2344,7 +2340,7 @@ void ALTIUM_PCB::HelperParsePad6NonCopper( const APAD6& aElem )
|
|||
int cornerradius = aElem.sizeAndShape->cornerradius[0];
|
||||
int offset = ( std::min( aElem.topsize.x, aElem.topsize.y ) * cornerradius ) / 200;
|
||||
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( aElem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( aElem.component );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( offset * 2 );
|
||||
|
||||
|
@ -2391,24 +2387,24 @@ void ALTIUM_PCB::HelperParsePad6NonCopper( const APAD6& aElem )
|
|||
if( aElem.direction != 0 )
|
||||
shape->Rotate( aElem.position, aElem.direction * 10 );
|
||||
|
||||
HelperDrawsegmentSetLocalCoord( shape, aElem.component );
|
||||
HelperShapeSetLocalCoord( shape, aElem.component );
|
||||
}
|
||||
else if( aElem.topsize.x == aElem.topsize.y )
|
||||
{
|
||||
// filled circle
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( aElem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( aElem.component );
|
||||
shape->SetShape( SHAPE_T::CIRCLE );
|
||||
shape->SetFilled( true );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetArcCenter( aElem.position );
|
||||
shape->SetWidth( aElem.topsize.x / 2 );
|
||||
shape->SetArcStart( aElem.position - wxPoint( 0, aElem.topsize.x / 4 ) );
|
||||
HelperDrawsegmentSetLocalCoord( shape, aElem.component );
|
||||
HelperShapeSetLocalCoord( shape, aElem.component );
|
||||
}
|
||||
else
|
||||
{
|
||||
// short line
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( aElem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( aElem.component );
|
||||
shape->SetShape( SHAPE_T::SEGMENT );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( std::min( aElem.topsize.x, aElem.topsize.y ) );
|
||||
|
@ -2429,14 +2425,14 @@ void ALTIUM_PCB::HelperParsePad6NonCopper( const APAD6& aElem )
|
|||
if( aElem.direction != 0 )
|
||||
shape->Rotate( aElem.position, aElem.direction * 10. );
|
||||
|
||||
HelperDrawsegmentSetLocalCoord( shape, aElem.component );
|
||||
HelperShapeSetLocalCoord( shape, aElem.component );
|
||||
}
|
||||
break;
|
||||
|
||||
case ALTIUM_PAD_SHAPE::OCTAGONAL:
|
||||
{
|
||||
// filled octagon
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( aElem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( aElem.component );
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
shape->SetFilled( true );
|
||||
shape->SetLayer( klayer );
|
||||
|
@ -2457,7 +2453,7 @@ void ALTIUM_PCB::HelperParsePad6NonCopper( const APAD6& aElem )
|
|||
if( aElem.direction != 0. )
|
||||
shape->Rotate( aElem.position, aElem.direction * 10 );
|
||||
|
||||
HelperDrawsegmentSetLocalCoord( shape, aElem.component );
|
||||
HelperShapeSetLocalCoord( shape, aElem.component );
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -2554,8 +2550,7 @@ void ALTIUM_PCB::ParseTracks6Data( const CFB::CompoundFileReader& aReader,
|
|||
|
||||
if( elem.is_keepout || IsAltiumLayerAPlane( elem.layer ) )
|
||||
{
|
||||
PCB_SHAPE shape( nullptr ); // just a helper to get the graphic
|
||||
shape.SetShape( SHAPE_T::SEGMENT );
|
||||
PCB_SHAPE shape( nullptr, SHAPE_T::SEGMENT );
|
||||
shape.SetStart( elem.start );
|
||||
shape.SetEnd( elem.end );
|
||||
shape.SetWidth( elem.width );
|
||||
|
@ -2619,13 +2614,13 @@ void ALTIUM_PCB::ParseTracks6Data( const CFB::CompoundFileReader& aReader,
|
|||
}
|
||||
else
|
||||
{
|
||||
PCB_SHAPE* shape = HelperCreateAndAddDrawsegment( elem.component );
|
||||
PCB_SHAPE* shape = HelperCreateAndAddShape( elem.component );
|
||||
shape->SetShape( SHAPE_T::SEGMENT );
|
||||
shape->SetStart( elem.start );
|
||||
shape->SetEnd( elem.end );
|
||||
shape->SetWidth( elem.width );
|
||||
shape->SetLayer( klayer );
|
||||
HelperDrawsegmentSetLocalCoord( shape, elem.component );
|
||||
HelperShapeSetLocalCoord( shape, elem.component );
|
||||
}
|
||||
|
||||
reader.SkipSubrecord();
|
||||
|
@ -2891,10 +2886,8 @@ void ALTIUM_PCB::ParseFills6Data( const CFB::CompoundFileReader& aReader,
|
|||
}
|
||||
else
|
||||
{
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board, SHAPE_T::POLY );
|
||||
m_board->Add( shape, ADD_MODE::APPEND );
|
||||
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
shape->SetFilled( true );
|
||||
shape->SetLayer( klayer );
|
||||
shape->SetWidth( 0 );
|
||||
|
|
|
@ -185,8 +185,8 @@ private:
|
|||
|
||||
void HelperCreateBoardOutline( const std::vector<ALTIUM_VERTICE>& aVertices );
|
||||
|
||||
PCB_SHAPE* HelperCreateAndAddDrawsegment( uint16_t aComponent );
|
||||
void HelperDrawsegmentSetLocalCoord( PCB_SHAPE* aShape, uint16_t aComponent );
|
||||
PCB_SHAPE* HelperCreateAndAddShape( uint16_t aComponent );
|
||||
void HelperShapeSetLocalCoord( PCB_SHAPE* aShape, uint16_t aComponent );
|
||||
|
||||
BOARD* m_board;
|
||||
std::vector<FOOTPRINT*> m_components;
|
||||
|
|
|
@ -2004,8 +2004,8 @@ void CADSTAR_PCB_ARCHIVE_LOADER::loadCoppers()
|
|||
|
||||
if( shape->GetShape() == SHAPE_T::ARC )
|
||||
{
|
||||
TransformArcToPolygon( poly, shape->GetArcStart(), shape->GetArcMid(),
|
||||
shape->GetArcEnd(), copperWidth, ARC_HIGH_DEF,
|
||||
TransformArcToPolygon( poly, shape->GetStart(), shape->GetArcMid(),
|
||||
shape->GetEnd(), copperWidth, ARC_HIGH_DEF,
|
||||
ERROR_LOC::ERROR_INSIDE );
|
||||
}
|
||||
else
|
||||
|
@ -2660,14 +2660,9 @@ void CADSTAR_PCB_ARCHIVE_LOADER::drawCadstarShape( const SHAPE& aCadstarShape,
|
|||
PCB_SHAPE* shape;
|
||||
|
||||
if( isFootprint( aContainer ) )
|
||||
{
|
||||
shape = new FP_SHAPE( (FOOTPRINT*) aContainer, SHAPE_T::POLY );
|
||||
}
|
||||
else
|
||||
{
|
||||
shape = new PCB_SHAPE( aContainer );
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
}
|
||||
shape = new PCB_SHAPE( aContainer, SHAPE_T::POLY );
|
||||
|
||||
shape->SetFilled( true );
|
||||
|
||||
|
@ -2802,14 +2797,9 @@ PCB_SHAPE* CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex( const POINT& aCadstar
|
|||
case VERTEX_TYPE::POINT:
|
||||
|
||||
if( isFootprint( aContainer ) )
|
||||
{
|
||||
shape = new FP_SHAPE( static_cast<FOOTPRINT*>( aContainer ), SHAPE_T::SEGMENT );
|
||||
}
|
||||
else
|
||||
{
|
||||
shape = new PCB_SHAPE( aContainer );
|
||||
shape->SetShape( SHAPE_T::SEGMENT );
|
||||
}
|
||||
shape = new PCB_SHAPE( aContainer, SHAPE_T::SEGMENT );
|
||||
|
||||
shape->SetStart( startPoint );
|
||||
shape->SetEnd( endPoint );
|
||||
|
@ -2824,14 +2814,9 @@ PCB_SHAPE* CADSTAR_PCB_ARCHIVE_LOADER::getShapeFromVertex( const POINT& aCadstar
|
|||
case VERTEX_TYPE::ANTICLOCKWISE_ARC:
|
||||
|
||||
if( isFootprint( aContainer ) )
|
||||
{
|
||||
shape = new FP_SHAPE((FOOTPRINT*) aContainer, SHAPE_T::ARC );
|
||||
}
|
||||
else
|
||||
{
|
||||
shape = new PCB_SHAPE( aContainer );
|
||||
shape->SetShape( SHAPE_T::ARC );
|
||||
}
|
||||
shape = new PCB_SHAPE( aContainer, SHAPE_T::ARC );
|
||||
|
||||
shape->SetArcStart( startPoint );
|
||||
shape->SetArcCenter( centerPoint );
|
||||
|
@ -2975,12 +2960,12 @@ SHAPE_LINE_CHAIN CADSTAR_PCB_ARCHIVE_LOADER::getLineChainFromShapes( const std::
|
|||
if( shape->GetClass() == wxT( "MGRAPHIC" ) )
|
||||
{
|
||||
FP_SHAPE* fp_shape = (FP_SHAPE*) shape;
|
||||
SHAPE_ARC arc( fp_shape->GetStart0(), fp_shape->GetEnd0(), fp_shape->GetAngle() / 10.0 );
|
||||
SHAPE_ARC arc( fp_shape->GetStart0(), fp_shape->GetEnd0(), (double) fp_shape->GetAngle() / 10.0 );
|
||||
lineChain.Append( arc );
|
||||
}
|
||||
else
|
||||
{
|
||||
SHAPE_ARC arc( shape->GetCenter(), shape->GetArcStart(), shape->GetAngle() / 10.0 );
|
||||
SHAPE_ARC arc( shape->GetCenter(), shape->GetArcStart(), (double) shape->GetAngle() / 10.0 );
|
||||
lineChain.Append( arc );
|
||||
}
|
||||
}
|
||||
|
@ -3056,13 +3041,15 @@ std::vector<PCB_TRACK*> CADSTAR_PCB_ARCHIVE_LOADER::makeTracksFromShapes(
|
|||
if( shape->GetClass() == wxT( "MGRAPHIC" ) )
|
||||
{
|
||||
FP_SHAPE* fp_shape = (FP_SHAPE*) shape;
|
||||
SHAPE_ARC arc( fp_shape->GetStart0(), fp_shape->GetEnd0(),
|
||||
(double) fp_shape->GetAngle() / 10.0 );
|
||||
SHAPE_ARC arc( fp_shape->GetStart0(), fp_shape->GetEnd0(),
|
||||
fp_shape->GetAngle() / 10.0 );
|
||||
track = new PCB_ARC( aParentContainer, &arc );
|
||||
}
|
||||
else
|
||||
{
|
||||
SHAPE_ARC arc( shape->GetCenter(), shape->GetArcStart(), shape->GetAngle() / 10.0 );
|
||||
SHAPE_ARC arc( shape->GetCenter(), shape->GetArcStart(), (double) shape->GetAngle() / 10.0 );
|
||||
track = new PCB_ARC( aParentContainer, &arc );
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -191,9 +191,9 @@ private:
|
|||
* @param aContainer to draw on (e.g. m_board)
|
||||
* @param aCadstarGroupID to add the text to
|
||||
* @param aCadstarLayerOverride if not empty, overrides the LayerID in aCadstarText
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aMoveVector move text by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate text by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale text by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, it inverts the Mirror status of aCadstarText
|
||||
*/
|
||||
|
@ -214,11 +214,11 @@ private:
|
|||
* @param aShapeName for reporting warnings/errors to the user
|
||||
* @param aContainer to draw on (e.g. m_board)
|
||||
* @param aCadstarGroupID to add the shape to
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aMoveVector move shapes by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate shapes by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale shapes by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, mirrors the shape
|
||||
* @param aMirrorInvert if true, mirrors the shapes
|
||||
*/
|
||||
void drawCadstarShape( const SHAPE& aCadstarShape, const PCB_LAYER_ID& aKiCadLayer,
|
||||
const int& aLineThickness, const wxString& aShapeName,
|
||||
|
@ -230,17 +230,17 @@ private:
|
|||
const bool& aMirrorInvert = false );
|
||||
|
||||
/**
|
||||
* @brief Uses PCB_SHAPE to draw the cutouts on m_board object
|
||||
* @brief Uses PCB_SHAPEs to draw the cutouts on m_board object
|
||||
* @param aVertices
|
||||
* @param aKiCadLayer KiCad layer to draw on
|
||||
* @param aLineThickness Thickness of line to draw with
|
||||
* @param aContainer to draw on (e.g. m_board)
|
||||
* @param aCadstarGroupID to add the shape to
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aCadstarGroupID to add the shapes to
|
||||
* @param aMoveVector move shapes by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate shapes by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale shapes by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, mirrors the drawsegments
|
||||
* @param aMirrorInvert if true, mirrors the shapes
|
||||
*/
|
||||
void drawCadstarCutoutsAsShapes( const std::vector<CUTOUT>& aCutouts,
|
||||
const PCB_LAYER_ID& aKiCadLayer, const int& aLineThickness,
|
||||
|
@ -259,11 +259,11 @@ private:
|
|||
* @param aLineThickness Thickness of line to draw with
|
||||
* @param aContainer to draw on (e.g. m_board)
|
||||
* @param aCadstarGroupID to add the shape to
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aMoveVector move shape by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate shape by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale shape by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, mirrors the drawsegment
|
||||
* @param aMirrorInvert if true, mirrors the shape
|
||||
* @param aCadstarGroupID to add the shape to
|
||||
*/
|
||||
void drawCadstarVerticesAsShapes( const std::vector<VERTEX>& aCadstarVertices,
|
||||
|
@ -281,11 +281,11 @@ private:
|
|||
* @param aCadstarVertices
|
||||
* @param aContainer to draw on (e.g. m_board). Can be nullptr.
|
||||
* @param aCadstarGroupID to add the shape to
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aMoveVector move shapes by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate shapes by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale shapes by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, mirrors the drawsegment
|
||||
* @param aMirrorInvert if true, mirrors the shapes
|
||||
* @return
|
||||
*/
|
||||
std::vector<PCB_SHAPE*> getShapesFromVertices( const std::vector<VERTEX>& aCadstarVertices,
|
||||
|
@ -303,11 +303,11 @@ private:
|
|||
* @param aCadstarVertex
|
||||
* @param aContainer to draw on (e.g. m_board). Can be nullptr.
|
||||
* @param aCadstarGroupID to add the shape to
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aMoveVector move shapes by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate shapes by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale shapes by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, mirrors the drawsegment
|
||||
* @param aMirrorInvert if true, mirrors the shapes
|
||||
* @return
|
||||
*/
|
||||
PCB_SHAPE* getShapeFromVertex( const POINT& aCadstarStartPoint,
|
||||
|
@ -335,11 +335,11 @@ private:
|
|||
* @param aCadstarShape
|
||||
* @param aLineThickness Thickness of line is used for expanding the polygon by half.
|
||||
* @param aContainer to draw on (e.g. m_board). Can be nullptr.
|
||||
* @param aMoveVector move draw segment by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate draw segment by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale draw segment by this amount
|
||||
* @param aMoveVector move poly by this amount (in KiCad coordinates)
|
||||
* @param aRotationAngle rotate poly by this amount (in tenth degrees)
|
||||
* @param aScalingFactor scale poly by this amount
|
||||
* @param aTransformCentre around which all transforms are applied (KiCad coordinates)
|
||||
* @param aMirrorInvert if true, mirrors the shape
|
||||
* @param aMirrorInvert if true, mirrors the poly
|
||||
* @return
|
||||
*/
|
||||
SHAPE_POLY_SET getPolySetFromCadstarShape( const SHAPE& aCadstarShape,
|
||||
|
@ -361,12 +361,13 @@ private:
|
|||
/**
|
||||
* @brief Returns a vector of pointers to TRACK/ARC objects. Caller owns the objects
|
||||
* @param aShapes
|
||||
* @param aParentContainer sets this as the parent of each TRACK object and Add()s it to the parent
|
||||
* @param aParentContainer sets this as the parent of each TRACK object and Add()s it to the
|
||||
* parent
|
||||
* @param aNet sets all the tracks to this net, unless nullptr
|
||||
* @param aLayerOverride Sets all tracks to this layer, or, if it is UNDEFINED_LAYER, uses the layers
|
||||
* in the DrawSegments
|
||||
* @param aWidthOverride Sets all tracks to this width, or, if it is UNDEFINED_LAYER, uses the width
|
||||
* in the DrawSegments
|
||||
* @param aLayerOverride Sets all tracks to this layer, or, if it is UNDEFINED_LAYER, uses the
|
||||
* layers in the shapes
|
||||
* @param aWidthOverride Sets all tracks to this width, or, if it is UNDEFINED_LAYER, uses the
|
||||
* width in the shapes
|
||||
* @return
|
||||
*/
|
||||
std::vector<PCB_TRACK*> makeTracksFromShapes( const std::vector<PCB_SHAPE*> aShapes,
|
||||
|
|
|
@ -896,10 +896,8 @@ void EAGLE_PLUGIN::loadPlain( wxXmlNode* aGraphics )
|
|||
|
||||
if( layer != UNDEFINED_LAYER ) // unsupported layer
|
||||
{
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( m_board, SHAPE_T::CIRCLE );
|
||||
m_board->Add( shape, ADD_MODE::APPEND );
|
||||
|
||||
shape->SetShape( SHAPE_T::CIRCLE );
|
||||
shape->SetFilled( false );
|
||||
shape->SetLayer( layer );
|
||||
shape->SetStart( wxPoint( kicad_x( c.x ), kicad_y( c.y ) ) );
|
||||
|
|
|
@ -2755,8 +2755,7 @@ bool FABMASTER::loadOutline( BOARD* aBoard, const std::unique_ptr<FABMASTER::TRA
|
|||
{
|
||||
const GRAPHIC_LINE* src = static_cast<const GRAPHIC_LINE*>( seg.get() );
|
||||
|
||||
PCB_SHAPE* line = new PCB_SHAPE( aBoard );
|
||||
line->SetShape( SHAPE_T::SEGMENT );
|
||||
PCB_SHAPE* line = new PCB_SHAPE( aBoard, SHAPE_T::SEGMENT );
|
||||
line->SetLayer( layer );
|
||||
line->SetStart( wxPoint( src->start_x, src->start_y ) );
|
||||
line->SetEnd( wxPoint( src->end_x, src->end_y ) );
|
||||
|
@ -2772,8 +2771,7 @@ bool FABMASTER::loadOutline( BOARD* aBoard, const std::unique_ptr<FABMASTER::TRA
|
|||
{
|
||||
const GRAPHIC_ARC* src = static_cast<const GRAPHIC_ARC*>( seg.get() );
|
||||
|
||||
PCB_SHAPE* arc = new PCB_SHAPE( aBoard );
|
||||
arc->SetShape( SHAPE_T::ARC );
|
||||
PCB_SHAPE* arc = new PCB_SHAPE( aBoard, SHAPE_T::ARC );
|
||||
arc->SetLayer( layer );
|
||||
arc->SetArcCenter( wxPoint( src->center_x, src->center_y ));
|
||||
arc->SetArcStart( wxPoint( src->start_x, src->start_y ) );
|
||||
|
@ -2791,8 +2789,7 @@ bool FABMASTER::loadOutline( BOARD* aBoard, const std::unique_ptr<FABMASTER::TRA
|
|||
const GRAPHIC_RECTANGLE *src =
|
||||
static_cast<const GRAPHIC_RECTANGLE*>( seg.get() );
|
||||
|
||||
PCB_SHAPE* rect = new PCB_SHAPE( aBoard );
|
||||
rect->SetShape( SHAPE_T::RECT );
|
||||
PCB_SHAPE* rect = new PCB_SHAPE( aBoard, SHAPE_T::RECT );
|
||||
rect->SetLayer( layer );
|
||||
rect->SetStart( wxPoint( src->start_x, src->start_y ) );
|
||||
rect->SetEnd( wxPoint( src->end_x, src->end_y ) );
|
||||
|
@ -2803,8 +2800,7 @@ bool FABMASTER::loadOutline( BOARD* aBoard, const std::unique_ptr<FABMASTER::TRA
|
|||
}
|
||||
case GR_SHAPE_TEXT:
|
||||
{
|
||||
const GRAPHIC_TEXT *src =
|
||||
static_cast<const GRAPHIC_TEXT*>( seg.get() );
|
||||
const GRAPHIC_TEXT *src = static_cast<const GRAPHIC_TEXT*>( seg.get() );
|
||||
|
||||
PCB_TEXT* txt = new PCB_TEXT( aBoard );
|
||||
txt->SetLayer( layer );
|
||||
|
@ -2856,9 +2852,7 @@ bool FABMASTER::loadGraphics( BOARD* aBoard )
|
|||
if( poly_outline.OutlineCount() < 1 || poly_outline.COutline( 0 ).PointCount() < 3 )
|
||||
continue;
|
||||
|
||||
PCB_SHAPE* new_poly = new PCB_SHAPE( aBoard );
|
||||
|
||||
new_poly->SetShape( SHAPE_T::POLY );
|
||||
PCB_SHAPE* new_poly = new PCB_SHAPE( aBoard, SHAPE_T::POLY );
|
||||
new_poly->SetLayer( layer );
|
||||
new_poly->SetPolyShape( poly_outline );
|
||||
new_poly->SetWidth( 0 );
|
||||
|
@ -2879,8 +2873,7 @@ bool FABMASTER::loadGraphics( BOARD* aBoard )
|
|||
{
|
||||
const GRAPHIC_LINE* src = static_cast<const GRAPHIC_LINE*>( seg.get() );
|
||||
|
||||
PCB_SHAPE* line = new PCB_SHAPE( aBoard );
|
||||
line->SetShape( SHAPE_T::SEGMENT );
|
||||
PCB_SHAPE* line = new PCB_SHAPE( aBoard, SHAPE_T::SEGMENT );
|
||||
line->SetLayer( layer );
|
||||
line->SetStart( wxPoint( src->start_x, src->start_y ) );
|
||||
line->SetEnd( wxPoint( src->end_x, src->end_y ) );
|
||||
|
@ -2893,8 +2886,7 @@ bool FABMASTER::loadGraphics( BOARD* aBoard )
|
|||
{
|
||||
const GRAPHIC_ARC* src = static_cast<const GRAPHIC_ARC*>( seg.get() );
|
||||
|
||||
PCB_SHAPE* arc = new PCB_SHAPE( aBoard );
|
||||
arc->SetShape( SHAPE_T::ARC );
|
||||
PCB_SHAPE* arc = new PCB_SHAPE( aBoard, SHAPE_T::ARC );
|
||||
arc->SetLayer( layer );
|
||||
arc->SetArcCenter( wxPoint( src->center_x, src->center_y ));
|
||||
arc->SetArcStart( wxPoint( src->start_x, src->start_y ) );
|
||||
|
@ -2909,8 +2901,7 @@ bool FABMASTER::loadGraphics( BOARD* aBoard )
|
|||
const GRAPHIC_RECTANGLE *src =
|
||||
static_cast<const GRAPHIC_RECTANGLE*>( seg.get() );
|
||||
|
||||
PCB_SHAPE* rect = new PCB_SHAPE( aBoard );
|
||||
rect->SetShape( SHAPE_T::RECT );
|
||||
PCB_SHAPE* rect = new PCB_SHAPE( aBoard, SHAPE_T::RECT );
|
||||
rect->SetLayer( layer );
|
||||
rect->SetStart( wxPoint( src->start_x, src->start_y ) );
|
||||
rect->SetEnd( wxPoint( src->end_x, src->end_y ) );
|
||||
|
@ -2951,7 +2942,8 @@ bool FABMASTER::orderZones( BOARD* aBoard )
|
|||
std::vector<ZONE*> zones = aBoard->Zones();
|
||||
|
||||
std::sort( zones.begin(), zones.end(),
|
||||
[&]( const ZONE* a, const ZONE* b ) {
|
||||
[&]( const ZONE* a, const ZONE* b )
|
||||
{
|
||||
if( a->GetLayer() == b->GetLayer() )
|
||||
return a->GetBoundingBox().GetArea() > b->GetBoundingBox().GetArea();
|
||||
|
||||
|
@ -3003,13 +2995,9 @@ bool FABMASTER::LoadBoard( BOARD* aBoard, PROGRESS_REPORTER* aProgressReporter )
|
|||
checkpoint();
|
||||
|
||||
if( track->lclass == "ETCH" )
|
||||
{
|
||||
loadEtch( aBoard, track);
|
||||
}
|
||||
else if( track->layer == "OUTLINE" )
|
||||
{
|
||||
loadOutline( aBoard, track );
|
||||
}
|
||||
}
|
||||
|
||||
orderZones( aBoard );
|
||||
|
|
|
@ -463,9 +463,8 @@ FOOTPRINT* GPCB_FPL_CACHE::parseFOOTPRINT( LINE_READER* aLineReader )
|
|||
aLineReader->LineNumber(), 0 );
|
||||
}
|
||||
|
||||
FP_SHAPE* shape = new FP_SHAPE( footprint.get() );
|
||||
FP_SHAPE* shape = new FP_SHAPE( footprint.get(), SHAPE_T::SEGMENT );
|
||||
shape->SetLayer( F_SilkS );
|
||||
shape->SetShape( SHAPE_T::SEGMENT );
|
||||
shape->SetStart0( wxPoint( parseInt( parameters[2], conv_unit ),
|
||||
parseInt( parameters[3], conv_unit ) ) );
|
||||
shape->SetEnd0( wxPoint( parseInt( parameters[4], conv_unit ),
|
||||
|
@ -487,9 +486,8 @@ FOOTPRINT* GPCB_FPL_CACHE::parseFOOTPRINT( LINE_READER* aLineReader )
|
|||
}
|
||||
|
||||
// Pcbnew does know ellipse so we must have Width = Height
|
||||
FP_SHAPE* shape = new FP_SHAPE( footprint.get() );
|
||||
FP_SHAPE* shape = new FP_SHAPE( footprint.get(), SHAPE_T::ARC );
|
||||
shape->SetLayer( F_SilkS );
|
||||
shape->SetShape( SHAPE_T::ARC );
|
||||
footprint->Add( shape );
|
||||
|
||||
// for and arc: ibuf[3] = ibuf[4]. Pcbnew does not know ellipses
|
||||
|
|
|
@ -905,8 +905,7 @@ void PCB_IO::format( const PCB_SHAPE* aShape, int aNestLevel ) const
|
|||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "PCB_IO::format cannot format unknown PCB_SHAPE shape:"
|
||||
+ aShape->SHAPE_T_asString() );
|
||||
wxFAIL_MSG( "PCB_IO::format not implemented for " + aShape->SHAPE_T_asString() );
|
||||
return;
|
||||
};
|
||||
|
||||
|
@ -1039,8 +1038,7 @@ void PCB_IO::format( const FP_SHAPE* aFPShape, int aNestLevel ) const
|
|||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG( "PCB_IO::format cannot format unknown FP_SHAPE shape:"
|
||||
+ aFPShape->SHAPE_T_asString() );
|
||||
wxFAIL_MSG( "PCB_IO::format not implemented for " + aFPShape->SHAPE_T_asString() );
|
||||
return;
|
||||
};
|
||||
|
||||
|
|
|
@ -191,11 +191,10 @@ void PCB_ARC::AddToFootprint( FOOTPRINT* aFootprint )
|
|||
|
||||
void PCB_ARC::AddToBoard()
|
||||
{
|
||||
PCB_SHAPE* arc = new PCB_SHAPE( m_board );
|
||||
PCB_SHAPE* arc = new PCB_SHAPE( m_board, IsCircle() ? SHAPE_T::CIRCLE : SHAPE_T::ARC );
|
||||
|
||||
m_board->Add( arc, ADD_MODE::APPEND );
|
||||
|
||||
arc->SetShape( IsCircle() ? SHAPE_T::CIRCLE : SHAPE_T::ARC );
|
||||
arc->SetFilled( false );
|
||||
arc->SetLayer( m_KiCadLayer );
|
||||
arc->SetStart( wxPoint( m_positionX, m_positionY ) );
|
||||
|
|
|
@ -689,9 +689,8 @@ int CONVERT_TOOL::CreateLines( const TOOL_EVENT& aEvent )
|
|||
}
|
||||
else
|
||||
{
|
||||
PCB_SHAPE* graphic = new PCB_SHAPE;
|
||||
PCB_SHAPE* graphic = new PCB_SHAPE( nullptr, SHAPE_T::SEGMENT );
|
||||
|
||||
graphic->SetShape( SHAPE_T::SEGMENT );
|
||||
graphic->SetLayer( targetLayer );
|
||||
graphic->SetStart( wxPoint( seg.A ) );
|
||||
graphic->SetEnd( wxPoint( seg.B ) );
|
||||
|
|
|
@ -1612,8 +1612,7 @@ bool DRAWING_TOOL::drawSegment( const std::string& aTool, PCB_SHAPE** aGraphic,
|
|||
|
||||
// If the user clicks on an existing snap point from a drawsegment
|
||||
// we finish the segment as they are likely closing a path
|
||||
if( snapItem
|
||||
&& ( shape == SHAPE_T::RECT || graphic->GetLength() > 0.0 ) )
|
||||
if( snapItem && ( shape == SHAPE_T::RECT || graphic->GetLength() > 0.0 ) )
|
||||
{
|
||||
commit.Add( graphic );
|
||||
commit.Push( _( "Draw a line segment" ) );
|
||||
|
|
|
@ -705,8 +705,7 @@ void PAD_TOOL::recombinePad( PAD* aPad )
|
|||
|
||||
aPad->SetOffset( wxPoint( 0, 0 ) );
|
||||
|
||||
PCB_SHAPE* shape = new PCB_SHAPE;
|
||||
shape->SetShape( SHAPE_T::POLY );
|
||||
PCB_SHAPE* shape = new PCB_SHAPE( nullptr, SHAPE_T::POLY );
|
||||
shape->SetFilled( true );
|
||||
shape->SetWidth( 0 );
|
||||
shape->SetPolyShape( existingOutline );
|
||||
|
|
Loading…
Reference in New Issue