kicad/libs/kimath/include/geometry
John Beard fa7e842c8c Rework item distribution
This splits the tool into two separate tools: by center and
by even gaps. Previously, this was automatically decided, based on
if the items could have any gaps between them. This was unintuitive
as it would appear to arrange by centre point sometimes but not others.
When items aren't all the same width, the results can then be very
different, based only on the starting positions.

The new behaviour is to have a dedicated tool for each, which echos
how graphical programs like Inkscape manage this.

The by-gaps method is then extended to work for overlapping items
(when items overlap, the overlaps are made equal). The logic is
centralised in kimath/geometry, and some QA is added. This should
make it easier to extend to eeschema, for example.

This also (attempts to) address some rounding issues which could
cause minor, but compounding, errors to build up along the list
of items.

Also, fix bugs in the collection filtering - previously items
like markers were filtered out only after the selection size
was used to compute the gaps between items.
2024-05-05 03:35:09 +08:00
..
chamfer.h ADDED: Move Corner To... and Move Midpoint To... 2023-08-05 16:43:55 +01:00
circle.h Add CIRCLE::Contains( VECTOR2I aP ) and add unit tests 2021-07-03 19:37:50 +00:00
convex_hull.h A bit more angle cleanup. 2022-01-18 09:48:24 +00:00
corner_strategy.h Move CORNER_STRATEGY out of SHAPE_POLY_SET. 2023-10-06 15:42:50 +03:00
direction45.h PNS: Add support for 90-degree corner modes 2021-11-03 02:14:23 +00:00
distribute.h Rework item distribution 2024-05-05 03:35:09 +08:00
eda_angle.h EDA_ANGLE: use constexpr for constant angles 2024-01-31 19:17:46 +03:00
ellipse.h Support DXF ellipses and elliptical arcs 2022-12-24 22:46:07 -05:00
geometry_utils.h Don't assume an error location for PAD::GetEffectivePolygon(). 2023-10-13 13:59:26 +01:00
oval.h Fix oval pad snapping 2023-09-06 21:33:45 +01:00
polygon_triangulation.h Prevent OOB access in polygon split 2024-04-02 11:22:59 -07:00
seg.h Performance enhancement. 2023-12-27 13:52:02 +00:00
shape.h Fix SHAPE::Distance warnings 2023-08-22 08:30:47 -04:00
shape_arc.h Cache center point and radius along with BBox in SHAPE_ARC. 2024-04-23 19:25:23 +03:00
shape_circle.h Lift some point-vs-shape APIs into SHAPE base class 2023-08-17 08:02:14 -04:00
shape_compound.h Fix SHAPE::Distance warnings 2023-08-22 08:30:47 -04:00
shape_file_io.h KiCad internal library header file housekeeping. 2021-07-01 13:46:38 -04:00
shape_index.h router: hole as first class objects, wip 2023-04-11 15:51:00 +01:00
shape_index_list.h More NULL expunging. 2021-07-18 14:31:55 -04:00
shape_line_chain.h Add self-intersection check algo for arcs in SHAPE_LINE_CHAIN. 2024-04-23 19:25:23 +03:00
shape_null.h Lift some point-vs-shape APIs into SHAPE base class 2023-08-17 08:02:14 -04:00
shape_poly_set.h Do not use cache when we modify vertices 2024-03-31 15:00:46 -07:00
shape_rect.h Lift some point-vs-shape APIs into SHAPE base class 2023-08-17 08:02:14 -04:00
shape_segment.h Lift some point-vs-shape APIs into SHAPE base class 2023-08-17 08:02:14 -04:00
shape_simple.h Lift some point-vs-shape APIs into SHAPE base class 2023-08-17 08:02:14 -04:00