kicad/include
Maciej Suminski e262b32198 Introduction of Graphics Abstraction Layer based rendering for pcbnew.
New classes:
    - VIEW - represents view that is seen by user, takes care of layer ordering & visibility and how it is displayed (which location, how much zoomed, etc.)
    - VIEW_ITEM - Base class for every item that can be displayed on VIEW (the biggest change is that now it may be necessary to override ViewBBox & ViewGetLayers method for derived classes).
    - EDA_DRAW_PANEL_GAL - Inherits after EDA_DRAW_PANEL, displays VIEW output, right now it is not editable (in opposite to usual EDA_DRAW_PANEL).
    - GAL/OPENGL_GAL/CAIRO_GAL - Base Graphics Abstraction Layer class + two different flavours (Cairo is not fully supported yet), that offers methods to draw primitives using different libraries.
    - WX_VIEW_CONTROLS - Controller for VIEW, handles user events, allows zooming, panning, etc.
    - PAINTER/PCB_PAINTER - Classes that uses GAL interface to draw items (as you may have already guessed - PCB_PAINTER is a class for drawing PCB specific object, PAINTER is an abstract class). Its methods are invoked by VIEW, when an item has to be drawn. To display a new type of item - you need to implement draw(ITEM_TYPE*) method that draws it using GAL methods.
    - STROKE_FONT - Implements stroke font drawing using GAL methods.
                          
Most important changes to Kicad original code:
    * EDA_ITEM now inherits from VIEW_ITEM, which is a base class for all drawable objects.
    * EDA_DRAW_FRAME contains both usual EDA_DRAW_PANEL and new EDA_DRAW_PANEL_GAL, that can be switched anytime.
    * There are some new layers for displaying multilayer pads, vias & pads holes (these are not shown yet on the right sidebar in pcbnew)
    * Display order of layers is different than in previous versions (if you are curious - you may check m_galLayerOrder@pcbnew/basepcbframe.cpp). Preserving usual order would result in not very natural display, such as showing silkscreen texts on the bottom.
    * Introduced new hotkey (Alt+F12) and new menu option (View->Switch canvas) for switching canvas during runtime.
    * Some of classes (mostly derived from BOARD_ITEM) now includes ViewBBox & ViewGetLayers methods.
    * Removed tools/class_painter.h, as now it is extended and included in source code.
                         
Build changes:
    * GAL-based rendering option is turned on by a new compilation CMake option KICAD_GAL.
    * When compiling with CMake option KICAD_GAL=ON, GLEW and Cairo libraries are required.
    * GAL-related code is compiled into a static library (common/libgal).
    * Build with KICAD_GAL=OFF should not need any new libraries and should come out as a standard version of Kicad
                            
Currently most of items in pcbnew can be displayed using OpenGL (to be done are DIMENSIONS and MARKERS).
More details about GAL can be found in: http://www.ohwr.org/attachments/1884/view-spec.pdf
2013-04-02 08:54:03 +02:00
..
boost fix compiler warnings on gcc 4.6.3, Debug build 2013-02-12 11:41:13 -06:00
gal Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
math Added template MATRIX3x3 for handling general 3x3 matrices (for future usage in GAL) 2013-03-28 17:38:33 +01:00
view Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
HersheyCyrillic.h.unused Use layer_widget in Gerbview 2010-02-03 14:05:17 +00:00
appl_wxstruct.h Eeschema:commit patch <Prevent Eeschema from opening the same file twice> with a small fix for windows. 2013-01-04 13:06:50 +01:00
base_struct.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
base_units.h Minor fixes and cleanup 2013-02-26 12:25:30 +01:00
bezier_curves.h Schematic component object encapsulation and Doxygen comment warning fixes. 2010-12-14 10:56:30 -05:00
bitmaps.h Eeschema: fix broken mirroring for texts and labels in block mirror X and Y (this fixes Bug #1135505) 2013-03-01 20:59:29 +01:00
block_commande.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
build_version.h legacy pcbnew plugin touch ups 2011-12-14 20:24:52 -06:00
class_base_screen.h Script plotting patch 2012-08-29 18:59:50 +02:00
class_bitmap_base.h Add patch from Lorenzo Marcantonio. Fix some warning issues, and zlib issue under Windows (zlib sources added) 2012-05-03 20:37:56 +02:00
class_board_design_settings.h Add a min width parameter to plot solder mask layers. 2012-11-05 21:20:34 +01:00
class_board_item.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
class_collector.h Rationalize numeric time stamps to type time_t. 2012-05-24 21:52:04 -04:00
class_colors_design_settings.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
class_drawpanel.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
class_drawpanel_gal.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
class_drc_item.h Hit test method rationalization and other minor improvements. 2012-03-15 10:31:16 -04:00
class_layer_box_selector.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
class_macros_record.h add forgotten file to bzr3107, add GOST to KICAD_BULD_VERSION if defined KICAD_GOST 2011-09-07 14:38:11 +04:00
class_marker_base.h Encapsulated drawmode as an enum for type checking 2012-09-01 15:38:27 +02:00
class_pcb_screen.h Removal of internal units. 2012-04-16 19:31:29 -04:00
class_sch_screen.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
class_title_block.h Eeschema, Libedit: fixes color artifacts when moving/placing a pin. 2013-02-06 12:54:51 +01:00
class_undoredo_container.h Undo redo change and code cleanup. 2012-02-05 14:02:46 +01:00
colors.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
colors_selection.h switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths 2012-01-22 22:33:36 -06:00
common.h Add patch from Jacobo Aragunde Perez <Log of opened and closed applications in KiCad launcher> 2013-01-18 11:42:23 +01:00
confirm.h All: added a standard exit dialog called by int DisplayExitDialog( wxWindow* aParent, const wxString& aMessage ) 2012-03-08 18:47:23 +01:00
convert_basic_shapes_to_polygon.h 3d-viewer and polygon functions: remove duplicate code about conversion from basic shapes to polygons. 2012-08-23 21:15:58 +02:00
convert_from_iu.h convert_from_iu: erroneous definition of MILS_PER_IU, MM_PER_IU (and therefore Iu2Mils) 2012-09-24 08:46:20 +02:00
convert_to_biu.h 3D-viewer: code cleaning. Added option in menu: show a 3D grid. 2012-08-11 14:52:13 +02:00
dcsvg.h.unused Minor fixes and cleanup 2013-02-26 12:25:30 +01:00
dialog_get_component.h EDA_LIST_DIALOG: add a filter option to select names to display is list, from a kamil zorychta's patch <kamil.zorychta@gmail.com> 2013-01-10 13:18:43 +01:00
dialog_helpers.h Add library column to component and module select dialog. 2013-03-18 21:25:19 -04:00
dialog_hotkeys_editor.h switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths 2012-01-22 22:33:36 -06:00
dialog_shim.h fix goof-ed preprocessor test 2013-01-18 00:13:31 -06:00
dlist.h add dialog for fp_lib_table 2012-10-15 17:30:01 -05:00
drawtxt.h Internal unit improvements and Pcbnew s-expression file format changes. 2012-04-12 17:31:31 -04:00
dsnlexer.h Change READ_LINE classes to use less virtual functions, and READ_LINE::ReadLine() to return char* 2012-11-27 07:50:01 -06:00
eda_dde.h wxServer was a confusing define, since it is also a wxWidgets class, do not use it 2012-08-24 06:31:09 -05:00
eda_doc.h Minor fixes, dead code removal, and coding policy fixes. 2011-11-08 11:37:25 -05:00
eda_text.h More encapsulation work. 2013-03-18 15:36:07 -04:00
fctsys.h Fix compil issue under MinGW: for an obscure reason the option -std=c++0x creates error in wxWidget code: 2012-11-14 21:07:09 +01:00
filter_reader.h Add Pcbnew GEDA PCB module plugin support. 2012-12-28 15:52:12 -05:00
footprint_info.h work on footprint plugin API 2012-04-15 22:18:41 -05:00
fp_lib_table.h fp lib table work 2013-02-15 19:09:53 -06:00
fpid.h Minor dialog and footprint ID class fixes. 2013-02-22 15:03:00 -05:00
gestfich.h Add patch from Jacobo Aragunde Perez <Log of opened and closed applications in KiCad launcher> 2013-01-18 11:42:23 +01:00
gr_basic.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
hashtables.h remove -std=c++0x compiler option since nobody is ready for it, and accordingly back into auto_ptr from unique_ptr 2012-11-15 10:04:10 -06:00
hotkey_grid_table.h switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths 2012-01-22 22:33:36 -06:00
hotkeys_basic.h Factor Eeschema rotate item hot keys into a rotate event handler. 2011-10-26 16:46:04 -04:00
html_messagebox.h switch to <> for includes from "" per conversation with Jean-Pierre and Wayne, adjust search paths 2012-01-22 22:33:36 -06:00
id.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
kicad_device_context.h Application name capitalization fixes. 2011-09-30 14:15:37 -04:00
kicad_msvc.h Application name capitalization fixes. 2011-09-30 14:15:37 -04:00
kicad_string.h Minor fixes and cleanup 2013-02-26 12:25:30 +01:00
layers_id_colors_and_visibility.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
length.h.usuned Pcbnew: class DIMENSION: code cleaning 2012-12-19 20:31:36 +01:00
macros.h All: remove macros MAX, MIN, ABS from macros.h and replace these macros by std::max, std::min and std::abs (mainly found in old code). 2012-09-22 13:19:37 +02:00
menus_helpers.h Move AddMenuItem inline functions outside wxstruct.h in a new file (menu_helpers.h) 2012-04-09 11:16:47 +02:00
msgpanel.h Base object decoupling improvements. 2013-01-12 12:32:24 -05:00
newstroke_font.h Application name capitalization fixes. 2011-09-30 14:15:37 -04:00
online_help.h Application name capitalization fixes. 2011-09-30 14:15:37 -04:00
pad_shapes.h Eeschema: code cleanup, remove dead code and some global and useless variables 2012-09-28 19:47:41 +02:00
painter.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
param_config.h Fix a minor compatibility issue in .pro file for new boards, between decimils and nanometers versions of Pcbnew. 2012-10-17 12:57:21 +02:00
pcbcommon.h Eeschema: fix bug Bug #956818 2012-03-16 20:08:57 +01:00
pcbstruct.h work on footprint plugin API 2012-04-15 22:18:41 -05:00
plot_common.h Replacement of classes BOX2 and VECTOR2 with their extended versions 2013-03-28 17:30:09 +01:00
richio.h merge in branch fp-lib-table 2013-01-20 21:27:01 -06:00
rtree.h Added template RTREE and class VIEW_RTREE (R-tree for fast spatial indexing of VIEW items; for future usage in GAL) 2013-03-28 17:48:29 +01:00
sch_base_frame.h All: better code to handle opened frames libview, libedit, modview, modedit. 2012-09-12 11:53:11 +02:00
sch_item_struct.h Enforced EDA_COLOR_T type and minor const-ification 2012-09-02 14:06:47 +02:00
trigo.h Pcbnew: fix a very old bug in DRC, pad to pad drc tests: sometimes a test between a rectangular pad and an oval pad was skipped. 2013-01-26 18:49:48 +01:00
wildcards_and_files_ext.h Changes for CvPcb to eeschema stuff file: the stuff file generation from CvPcb is removed. Eeschema now imports footprints names from the .cmp usual file created by CvPcb or by Pcbnew (Why to use 2 file formats for the same thing?) . 2013-02-02 18:39:59 +01:00
worksheet.h fix minor issue a page layout in GOST mode 2012-03-29 08:47:29 +04:00
wxBasePcbFrame.h Pcbnew s-experssion footprint library implementation. 2012-10-07 11:37:25 -04:00
wxEeschemaStruct.h Eeschema: All fixed fields are now always saved in libraries. Therefore the footprint field can be set in lib (size, visibility) and imported in schematic with its predefined attributes, even if the footprint text is not set. 2013-02-11 19:50:55 +01:00
wxPcbStruct.h Pcbnew: fix bug in export vrml (bad Z position of 3D shapes). Very minor code cleaning. 2013-03-08 08:29:30 +01:00
wxstruct.h Introduction of Graphics Abstraction Layer based rendering for pcbnew. 2013-04-02 08:54:03 +02:00
xnode.h Pcbnew: Add pcad2kicad pcb plugin, to import PCAD boards ( .pcb ASCII data file PCad 2000 format ) from Alexander Lunef 2012-12-29 10:54:25 +01:00