Seth Hillbrand
57c0953c39
Return closest point on line-circle intersection
...
Don't only look for the segment endpoints when asking the closest point.
If we have a collision, we need to get the collision point
2024-05-21 09:34:45 -07:00
Jon Evans
bf0592ad53
Lift some point-vs-shape APIs into SHAPE base class
...
Also provide a virtual method for conversion to polygon
2023-08-17 08:02:14 -04:00
Tomasz Wlostowski
cd29dcf6e0
libs/kimath: SHAPE::Format() can now produce C++ object construction and simple test dump of shapes
2022-10-31 11:17:31 +01:00
Jeff Young
4eac8d7c66
Remove unit-less angles from geometry lib APIs.
2022-01-20 21:10:04 +00:00
Mikolaj Wielgus
0f22b54cd8
Clip the leader lines properly when using circular text frame
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7810
2021-03-07 21:19:19 +00:00
Roberto Fernandez Bautista
6e7ae93cc8
EDIT_TOOL::DragArcTrack Fix incorrect undo history when items are deleted
...
Need to make sure we only apply one COMMIT operation per object before calling COMMIT::Push() or COMMIT::Revert()
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista
2b5c1bae97
CHANGED: Dragging a curved track starts an interactive resizing of it, keeping start an end points tangent
2021-01-24 16:41:10 +00:00
Jeff Young
2c2630ef9e
Formatting.
2020-12-12 03:43:41 +00:00
Jeff Young
bf67648562
Support optional location reporting in SHAPE collisions.
...
Also fixes a few bugs in the collision routines.
2020-09-28 23:28:33 +01:00
Simon Richter
c407e96b14
std::min/std::max requires <algorithm>
2020-07-11 15:46:57 +02:00
jean-pierre charras
5d5706b8be
Fix incorrect Rotate() functions for shapes circles and arcs.
...
VECTOR2I::Rotate( double aAngle ) returns a rotated point, but does change
the object itself.
Fixes #4810
https://gitlab.com/kicad/code/kicad/issues/4810
2020-07-06 13:50:55 +02:00
Jeff Young
eb1ff80d57
SHAPE collision fixes.
...
1) An actual distance of 0 is still a collision, even if the allowed
distance is 0.
2) Be consitent about edges and interiors. Everyone expect the edge
of a RECT to be part of the RECT; same with a CIRCLE. SHAPE_POLY_SET
shouldn't be any different. (And SHAPE_LINE_CHAIN was a split-
personality with the edge considered part of it for Collide() but not
for PointInside()).
2020-07-02 21:38:37 +01:00
Jeff Young
441dfa30f0
Return individual custom pad shapes instead of a SHAPE_POLY_SET.
...
Also implements an optional pointer to return the actual distance
from all the SHAPE collision routines.
Fixes https://gitlab.com/kicad/code/kicad/issues/4774
2020-07-02 17:09:15 +01:00
Ian McInerney
6e8f06e042
Fixup some issues in libkimath
...
* Perform floating-point computations when needed
* Specify to use the default equality operator
2020-01-11 21:27:38 +00:00
Ian McInerney
13b6028e1b
Refactor all math into a new kimath library
...
* Split up the thirdparty code into the thirdparty folder (#3637 )
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906 .
2020-01-07 17:12:59 +00:00