Commit 6167f5fc authored by charras's avatar charras
Browse files

More about copper zones filled without grid (by polygons) - work still in progress

parent 3683ab74
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ email address.
================================================================================
+pcbnew:
    More about copper zones filled without grid (by polygons)
    Currently for eyes and tests only.
    Currently for eyes and tests only (work in progress).
    now working
        thermal reliefs.
        texts on copper zones.
+7 −1
Original line number Diff line number Diff line
@@ -392,6 +392,7 @@ void ZONE_CONTAINER::DrawFilledArea( WinEDA_DrawPanel* panel,
{
    static int*     CornersBuffer     = NULL;
    static unsigned CornersBufferSize = 0;
    bool sketch_mode = false;     // true to show areas outlines only (test and debug purposes)

    if( DC == NULL )
        return;
@@ -454,7 +455,12 @@ void ZONE_CONTAINER::DrawFilledArea( WinEDA_DrawPanel* panel,
        corners_count++;
        if( corner->end_contour )
        {   // Draw the current filled area
            GRPoly( &panel->m_ClipBox, DC, corners_count, CornersBuffer, true, 0, color, color );
            if ( sketch_mode )
                GRClosedPoly( &panel->m_ClipBox, DC, corners_count, CornersBuffer,
                    false, 0, color, color );
            else
                GRPoly( &panel->m_ClipBox, DC, corners_count, CornersBuffer,
                    true , 0, color, color );
            corners_count = 0;
            ii = 0;
        }
+2 −0
Original line number Diff line number Diff line
@@ -161,6 +161,8 @@ void PlotMirePcb( MIREPCB* PtMire, int format_plot,int masque_layer );

void Plot_1_EdgeModule(int format_plot, EDGE_MODULE * PtEdge);

void PlotFilledAreas( ZONE_CONTAINER * aZone, int aFormat);

/* PLOTGERB.CPP */
void PlotGERBERLine(wxPoint start, wxPoint end, int width);
void PlotCircle_GERBER( wxPoint centre, int rayon, int width);
+2 −3
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@
/* Fonctions locales */
static void Plot_Edges_Modules( BOARD* pcb, int format_plot, int masque_layer );
static void PlotTextModule( TEXTE_MODULE* pt_texte );
static void PlotFilledAreas( ZONE_CONTAINER * aZone, int aFormat);


/**********************************************************/
+9 −0
Original line number Diff line number Diff line
@@ -350,6 +350,15 @@ void WinEDA_BasePcbFrame::Plot_Layer_GERBER( FILE* File, int masque_layer,
        msg.Printf( wxT( "%d" ), nb_items );
        Affiche_1_Parametre( this, 72, wxEmptyString, msg, YELLOW );
    }

    /* Plot filled ares */
    for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
    {
        ZONE_CONTAINER* edge_zone =  m_Pcb->GetArea(ii);
        if( ( (1 << edge_zone->GetLayer()) & masque_layer ) == 0 )
            continue;
        PlotFilledAreas(edge_zone, PLOT_FORMAT_GERBER);
    }
}


Loading