1 /*!
2  * \file src/draw.h
3  *
4  * \brief Prototypes for drawing routines.
5  *
6  * <hr>
7  *
8  * <h1><b>Copyright.</b></h1>\n
9  *
10  *  PCB, interactive printed circuit board design
11  *
12  * Copyright (C) 1994,1995,1996, 2004 Thomas Nau
13  *
14  * This program is free software; you can redistribute it and/or modify
15  * it under the terms of the GNU General Public License as published by
16  * the Free Software Foundation; either version 2 of the License, or
17  * (at your option) any later version.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License along
25  * with this program; if not, write to the Free Software Foundation, Inc.,
26  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27  *
28  * Contact addresses for paper mail and Email:
29  * Thomas Nau, Schlehenweg 15, 88471 Baustetten, Germany
30  * Thomas.Nau@rz.uni-ulm.de
31  */
32 
33 #ifndef	PCB_DRAW_H
34 #define	PCB_DRAW_H
35 
36 #include "global.h"
37 
38 void Draw (void);
39 void Redraw (void);
40 void DrawVia (PinType *);
41 void DrawRat (RatType *);
42 void DrawViaName (PinType *);
43 void DrawPin (PinType *);
44 void DrawPinName (PinType *);
45 void DrawPad (PadType *);
46 void DrawPadName (PadType *);
47 void DrawLine (LayerType *, LineType *);
48 void DrawArc (LayerType *, ArcType *);
49 void DrawText (LayerType *, TextType *);
50 void DrawPolygon (LayerType *, PolygonType *);
51 void DrawElement (ElementType *);
52 void DrawElementName (ElementType *);
53 void DrawElementPackage (ElementType *);
54 void DrawElementPinsAndPads (ElementType *);
55 void DrawObject (int, void *, void *);
56 void DrawLayer (LayerType *, const BoxType *);
57 void EraseVia (PinType *);
58 void EraseRat (RatType *);
59 void EraseViaName (PinType *);
60 void ErasePad (PadType *);
61 void ErasePadName (PadType *);
62 void ErasePin (PinType *);
63 void ErasePinName (PinType *);
64 void EraseLine (LineType *);
65 void EraseArc (ArcType *);
66 void EraseText (LayerType *, TextType *);
67 void ErasePolygon (PolygonType *);
68 void EraseElement (ElementType *);
69 void EraseElementPinsAndPads (ElementType *);
70 void EraseElementName (ElementType *);
71 void EraseObject (int, void *, void *);
72 
73 void DrawLayerGroup (int side, const BoxType *drawn_area);
74 void DrawPaste (int side, const BoxType *drawn_area);
75 void DrawSilk (int side, const BoxType *drawn_area);
76 void DrawMask (int side, const BoxType *drawn_area);
77 void DrawHoles (bool draw_plated, bool draw_unplated, const BoxType *drawn_area, Cardinal g_from, Cardinal g_to);
78 void PrintAssembly (int side, const BoxType *drawn_area);
79 
80 #endif
81