12 Commits

Author SHA1 Message Date
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
Seth Hillbrand
e0453d9bcc Further cleanup of LSET
Remove duplicative functions.  Standardize on C++ stdlib formatting
2024-07-08 22:00:53 -07:00
Seth Hillbrand
cc850d0da0 Split out LSEQ/LSET from LAYER_ID
Separate the layer grouping classes for easier modification
2024-07-08 20:59:46 -07:00
Wayne Stambaugh
922aee1532 Coding policy fixes. 2023-12-20 07:17:23 -05:00
Jon Evans
0b136ae0df CLI: Allow controlling layer order for multilayer plots 2023-10-11 00:18:58 +00:00
Graham Keeth
5dc62368b0 CLI: parameterize whether export job inputs are directories or files 2023-09-19 01:47:41 +00:00
Graham Keeth
8149522c34 CLI help string fixups 2023-09-15 23:07:19 +00:00
Marek Roszko
11de95778b Unwrap the FROM_UTF8 macro in favor of direct function
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Marek Roszko
270c195df9 Sprinkle metavars into cli descriptions 2023-08-31 22:04:25 -04:00
Marek Roszko
df0c220f2b Some small reorg of the cli class base 2023-08-31 18:56:17 -04:00
Marek Roszko
c20cc24400 Rename export classes to match the scheme 2023-08-19 11:51:50 -04:00
Marek Roszko
32f0f05a98 Rename the export cli files to the cleaner structure 2023-08-19 11:46:18 -04:00