7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-12 20:29:34 +00:00
kicad/pcbnew
Seth Hillbrand 5e0abadb23 Reorganize layer numbering
F_Cu = 0
B_Cu = 2
Remaining internal copper layers are even and incrementing

Non-copper layers are odd and incrementing.

This means that we can no longer do things like:
for( PCB_LAYER_ID layer = F_Cu; layer <= B_Cu; ++layer)
Instead, we have the class LAYER_RANGE:
for( PCB_LAYER_ID layer : LAYER_RANGE( F_Cu, B_Cu) )

Similarly, gt/lt tests should not refer to the integer value of the
layer.  We have functions such as IsCopperLayer to test whether a layer
is copper or not.

When using the connectivity RTree, the third dimension is layer, so we
provide B_Cu with the special INT_MAX value, ensuring that elements
between F_Cu and B_Cu will be identified.  There is a new, special
function GetBoardLayer() for interfacing with CN_ITEMS

Similarly, PNS layers remain unchanged and sequential.  A set of
interface functions is provided to map PNS layers to Board layers and
back.  This allows the PNS_LAYER_RANGE to function as expected
2024-09-06 23:07:58 +00:00
..
api Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
autorouter Reorganize layer numbering 2024-09-06 23:07:58 +00:00
board_stackup_manager Move LAYER_PRESENTATION to widgets/ 2024-08-07 06:49:53 +08:00
connectivity Reorganize layer numbering 2024-09-06 23:07:58 +00:00
dialogs Reorganize layer numbering 2024-09-06 23:07:58 +00:00
drc Reorganize layer numbering 2024-09-06 23:07:58 +00:00
exporters Reorganize layer numbering 2024-09-06 23:07:58 +00:00
generators Reorganize layer numbering 2024-09-06 23:07:58 +00:00
git Rename PCB IO classes/files 2023-12-24 01:22:21 +00:00
import_gfx Handle DXF files with out of bounds values 2024-08-14 13:06:18 -07:00
microwave Reorganize layer numbering 2024-09-06 23:07:58 +00:00
navlib lint reduction 2024-05-05 12:55:38 +01:00
netlist_reader pcbnew: parse also the human readable hierarchical sheet paths for footprints when reading the netlist 2024-08-13 22:50:25 +02:00
pcb_io Reorganize layer numbering 2024-09-06 23:07:58 +00:00
python ADDED: ERC & DRC checks for footprint matching footprint filters. 2024-08-16 16:31:53 -06:00
ratsnest Reorganize layer numbering 2024-09-06 23:07:58 +00:00
router Reorganize layer numbering 2024-09-06 23:07:58 +00:00
specctra_import_export Reorganize layer numbering 2024-09-06 23:07:58 +00:00
teardrop Remove the now unused curve-point count 2024-07-10 11:19:09 -07:00
tools Reorganize layer numbering 2024-09-06 23:07:58 +00:00
widgets Reorganize layer numbering 2024-09-06 23:07:58 +00:00
zone_manager Cleanup and formatting. 2024-08-15 12:29:59 -06:00
action_plugin.cpp
action_plugin.h
array_creator.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
array_creator.h
array_pad_number_provider.cpp
array_pad_number_provider.h
board_commit.cpp Fix a typo probably due to a paste command. 2024-09-05 15:59:30 +02:00
board_commit.h pcbnew: fix rebase issue in BOARD_COMMIT 2024-08-13 22:50:26 +02:00
board_connected_item.cpp Multi-netclass support 2024-07-26 20:49:29 +00:00
board_connected_item.h Multi-netclass support 2024-07-26 20:49:29 +00:00
board_design_settings.cpp ADDED: ERC & DRC checks for footprint matching footprint filters. 2024-08-16 16:31:53 -06:00
board_item_container.h Improve clarity of default zone settings. 2024-02-03 13:22:16 +00:00
board_item.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
board.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
board.h Add ability to embed files in various elements 2024-07-15 16:06:55 -07:00
build_BOM_from_board.cpp Build time optimizations. 2024-04-27 23:49:13 +03:00
cleanup_item.cpp
cleanup_item.h
CMakeLists.txt pcbnew: add MULTICHANNEL_TOOL files to CMakeLists 2024-08-13 22:50:26 +02:00
collectors.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
collectors.h Fix some lingering usages of old "Module" terminology. 2024-07-22 13:21:29 +01:00
convert_shape_list_to_polygon.cpp Don't collect footprint shapes twice. 2024-08-18 17:28:55 -06:00
convert_shape_list_to_polygon.h
cross-probing.cpp Remove basic masking class map_string_utf8 2024-08-19 11:51:13 -07:00
Doxyfile_python
Doxyfile_xml
edit_track_width.cpp
edit_zone_helpers.cpp Build time optimizations. 2024-04-27 23:49:13 +03:00
edit.cpp Schematic editor Table Properties and commenting for QuasiModal usage. 2024-03-10 12:18:50 +00:00
files.cpp Make simulation reporter warnings non-fatal. 2024-09-05 05:59:35 +03:00
fix_board_shape.cpp
fix_board_shape.h
footprint_chooser_frame.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
footprint_chooser_frame.h Better locality-of-reference for footprint chooser filters. 2024-03-23 12:48:52 +00:00
footprint_edit_frame.cpp Make arrow keys respect grid overrides. 2024-08-28 19:54:23 +01:00
footprint_edit_frame.h Make arrow keys respect grid overrides. 2024-08-28 19:54:23 +01:00
footprint_editor_settings.cpp Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
footprint_editor_utils.cpp Build time optimizations. 2024-04-27 23:49:13 +03:00
footprint_info_impl.cpp Clear timestamp when clearing cache. 2024-06-16 10:46:36 +01:00
footprint_info_impl.h Clear timestamp when clearing cache. 2024-06-16 10:46:36 +01:00
footprint_libraries_utils.cpp REMOVED new footprint dialog. 2024-05-31 10:36:51 +01:00
footprint_preview_panel.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
footprint_preview_panel.h Pass symbol's netlist to footprint preview widget. 2024-03-09 15:01:59 +00:00
footprint_tree_pane.cpp
footprint_tree_pane.h
footprint_viewer_frame.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
footprint_viewer_frame.h Hookup footprint reload to redraw icon 2024-05-10 08:42:28 -07:00
footprint_wizard_frame_functions.cpp
footprint_wizard_frame.cpp Multi-netclass support 2024-07-26 20:49:29 +00:00
footprint_wizard_frame.h
footprint_wizard.cpp
footprint_wizard.h
footprint.cpp DRC and flipped footprints: better fix than ugly commit 6bc51781 2024-09-04 09:50:19 +02:00
footprint.h Clear fields when flag is set. 2024-07-22 17:15:21 +01:00
fp_tree_model_adapter.cpp
fp_tree_model_adapter.h new feature: Schematic Design Blocks 2024-09-05 08:35:49 -04:00
fp_tree_synchronizing_adapter.cpp Fix shadowed/conflicting enum values. 2024-06-21 16:16:29 +03:00
fp_tree_synchronizing_adapter.h
fpedit_doc.icns Add document type icons 2024-02-09 15:55:57 -08:00
fpedit.icns
generate_footprint_info.cpp Tidy up string find API usages. 2024-05-28 15:30:29 +01:00
generate_footprint_info.h
generators_mgr.cpp
generators_mgr.h
graphics_cleaner.cpp Large rework of BEZIER_POLY 2024-06-18 17:55:41 -07:00
graphics_cleaner.h Remove non-const access to board-owned items 2024-03-26 18:36:23 -04:00
grid_layer_box_helpers.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
grid_layer_box_helpers.h Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
initpcb.cpp Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
invoke_pcb_dialog.h
kicad_clipboard.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
kicad_clipboard.h Remove basic masking class map_string_utf8 2024-08-19 11:51:13 -07:00
layer_pairs.cpp Add layer pair cycle action 2024-08-06 23:45:55 +08:00
layer_pairs.h Add layer pair cycle action 2024-08-06 23:45:55 +08:00
load_select_footprint.cpp Share more library tree code. 2024-06-08 19:06:10 +01:00
menubar_footprint_editor.cpp Pcbnew/FPedit: Make orthogonal dimensions the default 2024-08-13 08:36:10 +01:00
menubar_pcb_editor.cpp Remove redundant tooltips. 2024-08-18 17:18:07 -06:00
netinfo_item.cpp Even the orphaned net must obey the min board clearance. 2024-08-23 21:24:54 -06:00
netinfo_list.cpp Elide common prefixes of displayed netnames. 2024-08-11 12:45:36 -06:00
netinfo.h Cache display netnames. 2024-06-11 16:30:52 +01:00
pad_custom_shape_functions.cpp Move custom shapes to PADSTACK; support in API 2024-06-08 14:26:36 -04:00
pad.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
pad.h Reorganize layer numbering 2024-09-06 23:07:58 +00:00
padstack.cpp Move more properties into PADSTACK 2024-07-20 17:48:20 -04:00
padstack.h Move more properties into PADSTACK 2024-07-20 17:48:20 -04:00
pcb_base_edit_frame.cpp Add a layer pair preset list 2024-08-06 23:45:55 +08:00
pcb_base_edit_frame.h Add a layer pair preset list 2024-08-06 23:45:55 +08:00
pcb_base_frame.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
pcb_dimension.cpp Pcbnew: Fix aligned dimension flipping 2024-09-06 21:41:40 +01:00
pcb_dimension.h Pcbnew: Fix aligned dimension flipping 2024-09-06 21:41:40 +01:00
pcb_draw_panel_gal.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
pcb_draw_panel_gal.h
pcb_edit_frame.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
pcb_edit_frame.h Make arrow keys respect grid overrides. 2024-08-28 19:54:23 +01:00
pcb_field.cpp Pcbnew, Properties panel: mask 2 properties irrelevant for pcb fields. 2024-07-14 11:49:27 +02:00
pcb_field.h Support both short and long item descriptions. 2024-06-28 22:10:22 +01:00
pcb_fields_grid_table.cpp Fill in a lot more calls to DIALOG_SHIM::OnModify(). 2024-08-11 12:45:36 -06:00
pcb_fields_grid_table.h Generalize EnhanceAttr() function. 2024-05-16 16:28:13 +01:00
pcb_generator.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
pcb_generator.h Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
pcb_group.cpp Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_group.h Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
pcb_item_containers.h
pcb_layer_box_selector.cpp Move layer presentation logic to a separate class 2024-08-06 23:45:55 +08:00
pcb_layer_box_selector.h Move layer presentation logic to a separate class 2024-08-06 23:45:55 +08:00
pcb_layer_presentation.h Move LAYER_PRESENTATION to widgets/ 2024-08-07 06:49:53 +08:00
pcb_marker.cpp ADDED: ERC & DRC checks for footprint matching footprint filters. 2024-08-16 16:31:53 -06:00
pcb_marker.h Support both short and long item descriptions. 2024-06-28 22:10:22 +01:00
pcb_origin_transforms.cpp
pcb_origin_transforms.h
pcb_painter.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
pcb_painter.h Multi-netclass support 2024-07-26 20:49:29 +00:00
pcb_plot_params_parser.h
pcb_plot_params.cpp ADDED: plotting options for DNP footprints 2024-08-18 10:02:14 -06:00
pcb_plot_params.h ADDED: plotting options for DNP footprints 2024-08-18 10:02:14 -06:00
pcb_reference_image.cpp Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_reference_image.h Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_screen.cpp
pcb_shape.cpp DRC and flipped footprints: better fix than ugly commit 6bc51781 2024-09-04 09:50:19 +02:00
pcb_shape.h Support both short and long item descriptions. 2024-06-28 22:10:22 +01:00
pcb_table.cpp Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_table.h Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_tablecell.cpp Support both short and long item descriptions. 2024-06-28 22:10:22 +01:00
pcb_tablecell.h Support both short and long item descriptions. 2024-06-28 22:10:22 +01:00
pcb_target.cpp Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_target.h Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_text.cpp Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_text.h Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_textbox.cpp Text variable resolving in footprint text boxes 2024-07-08 23:47:16 +00:00
pcb_textbox.h Get rid of C++20 compiler warnings. 2024-07-03 13:32:44 +01:00
pcb_track.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
pcb_track.h Reorganize layer numbering 2024-09-06 23:07:58 +00:00
pcb_view.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
pcb_view.h
pcbexpr_evaluator.cpp Multi-netclass support 2024-07-26 20:49:29 +00:00
pcbexpr_evaluator.h pcbnew: default arguments for the constructor of PCBEXPR_CONTEXT 2024-08-13 22:50:26 +02:00
pcbexpr_functions.cpp pcbnew: improve handling of trailing '/' in hierarchical sheet paths in DRC memberOfSheet() function 2024-08-13 22:50:25 +02:00
pcbnew_config.cpp Multi-netclass support 2024-07-26 20:49:29 +00:00
pcbnew_config.h
pcbnew_doc.icns Add document type icons 2024-02-09 15:55:57 -08:00
pcbnew_id.h
pcbnew_jobs_handler.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
pcbnew_jobs_handler.h ADDED: PCB 3D image raytracing rendering from CLI. 2024-03-08 14:38:18 +00:00
pcbnew_printout.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
pcbnew_printout.h Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
pcbnew_settings.cpp DIALOG_CLEANUP_TRACKS_AND_VIAS: add option to skip zone refilling 2024-07-19 20:29:47 +02:00
pcbnew_settings.h DIALOG_CLEANUP_TRACKS_AND_VIAS: add option to skip zone refilling 2024-07-19 20:29:47 +02:00
pcbnew.cpp Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
pcbnew.icns Add document type icons 2024-02-09 15:55:57 -08:00
pcbplot.cpp Split out LSEQ/LSET from LAYER_ID 2024-07-08 20:59:46 -07:00
pcbplot.h ADDED: plotting options for DNP footprints 2024-08-18 10:02:14 -06:00
plot_board_layers.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
plot_brditems_plotter.cpp ADDED: plotting options for DNP footprints 2024-08-18 10:02:14 -06:00
plotcontroller.h Further cleanup of LSET 2024-07-08 22:00:53 -07:00
plotprint_opts.h
project_pcb.cpp Enum class ELEM. 2024-08-18 21:09:37 -04:00
sel_layer.cpp Fix a few minor Coverity and compil warnings. 2024-08-23 09:54:29 +02:00
toolbars_footprint_editor.cpp Pcbnew/FPedit: Make orthogonal dimensions the default 2024-08-13 08:36:10 +01:00
toolbars_footprint_viewer.cpp
toolbars_pcb_editor.cpp Pcbnew/FPedit: Make orthogonal dimensions the default 2024-08-13 08:36:10 +01:00
tracks_cleaner.cpp ADDED: filters for Cleanup Tracks and Vias. 2024-08-16 11:56:56 -06:00
tracks_cleaner.h ADDED: filters for Cleanup Tracks and Vias. 2024-08-16 11:56:56 -06:00
undo_redo.cpp Reduce dependency on dynamic_cast. 2024-09-04 17:24:49 +01:00
zone_filler.cpp Move zone connection filler out of AC 2024-08-28 09:04:51 -07:00
zone_filler.h ADDED: pcbnew fill avoids kissing fills 2024-07-10 18:34:41 -07:00
zone_settings.cpp pcbnew: added Placement Rule Area properties to class ZONE: 2024-08-13 22:50:25 +02:00
zone_settings.h pcbnew: added Placement Rule Area properties to class ZONE: 2024-08-13 22:50:25 +02:00
zone.cpp Reorganize layer numbering 2024-09-06 23:07:58 +00:00
zone.h Move SetLayerSet to const reference 2024-08-17 07:56:30 -07:00
zones_functions_for_undo_redo.cpp pcbnew: more checks for rule area type (keepout/placement) in various zone-related code 2024-08-13 22:50:26 +02:00
zones.h Update Zone Manager for look & feel and coding stds. 2024-06-02 17:41:54 +01:00