Jeff Young
3784950603
Added more sophisticated checking for thermal spoke connections.
...
And, again, some more performance optimizations to make up for it.
2019-06-25 11:34:28 +01:00
Jeff Young
0ed26e4e33
Fix some geometry error in thermal spoke calculations.
...
Also introduces some performance enhancements to make up for the
extra time spent in the calculations.
2019-06-25 11:34:28 +01:00
Jeff Young
1099befab1
Performance improvement for SHAPE_LINE_CHANGE::PointInside().
...
It was calculating the bounding box twice (and failing to honour
the accuracy parameter on the bounding box test).
Worse, constructing the bounding box is about the same speed as
the rigorous test, so it never improves things.
2019-06-25 11:34:28 +01:00
Jeff Young
fd546da640
Homogenize hit testing and selection return types.
...
Prep work for sharing SCH_SELECTION_TOOL with LibEdit.
2019-05-05 17:14:30 +01:00
Tomasz Włostowski
313ebb9dff
router: correct walkaround corner case when both ends of the line lie on the hull edge
...
Fixes: lp:1810935
* https://bugs.launchpad.net/kicad/+bug/1810935
2019-02-03 11:22:18 +01:00
Tomasz Włostowski
7d544d1ffe
geometry: rewrite SHAPE_LINE_CHAIN::PointInside() to use fixed point arithmetic and support non-convex outlines. Fixes both P&S misbehaviours and zone filling/QA issues
2019-01-30 01:08:57 +01:00
Seth Hillbrand
93ecd44f5a
Revert "geometry: revert SHAPE_LINE_CHAIN::PointInside/PointOnEdge() optimizations so that it's consistent with other collision checking methods (i.e. SEG::Distance() )"
...
This reverts commit 4a0fba309a
.
2019-01-29 13:36:17 -08:00
Tomasz Włostowski
4a0fba309a
geometry: revert SHAPE_LINE_CHAIN::PointInside/PointOnEdge() optimizations so that it's consistent with other collision checking methods (i.e. SEG::Distance() )
...
Fixes: lp:1810935
* https://bugs.launchpad.net/kicad/+bug/1810935
2019-01-28 13:24:41 +01:00
Tomasz Wlostowski
b604f007d7
eeschema-gal: don't use kiROUND in the geometry library as it brings in a s*****load of wx dependencies due to #include <base_units.h>
2018-10-09 11:08:55 +01:00
Seth Hillbrand
3ebba6cbe1
pcbnew: Limit zone simplification
...
Commit 73c229714
was a bit of a sledgehammer for the associated problem
of degenerate points. This commit replaces that one by only performing
additional simplification of the zone polygons on those polygons that
fail our initial triangulation attempt.
2018-09-12 15:28:13 -07:00
jean-pierre charras
6e5131be5a
Minor fix in fp editor and fp viewer: display the fp info instead of the useless board info.
...
board info makes sense only in board editor, not in fp editor and fp viewer.
2018-05-12 10:44:31 +02:00
Seth Hillbrand
f2aea97807
Calculate inside polygon using points
...
Minor improvement in polygon calculation to use consecutive points
rather than casting to a full segment. Avoids division except when it
will not create a denormal.
2018-05-11 15:42:41 -07:00
Seth Hillbrand
d67821d771
Add a clearance check for closed shape line chains
...
Also improves speed of multiple point checks by first eliminating points
outside of the BBox.
2018-05-11 15:42:41 -07:00
Seth Hillbrand
b2c4519c2c
Setting custom pad shape to be outline for PNS
...
Changes SHAPE_CONVEX to SHAPE_SIMPLE to better reflect the limitations.
Changes SHAPE_LINE_CHAIN::PointInside calculation to allow points
strictly inside a line chain
Fixes: lp:1768862
* https://bugs.launchpad.net/kicad/+bug/1768862
2018-05-04 08:23:20 -07:00
jean-pierre charras
11d1188fdf
MODULE::CoverageRatio(): replace wxRegion (not working for us on Windows) by polygons to calculate areas.
...
At least on Windows, using wxRegion generates crashes.
Fixes: lp:1740646
https://bugs.launchpad.net/kicad/+bug/1740646
2017-12-31 17:46:56 +01:00
jean-pierre charras
992820f722
shape_line_chain ans shape_poly_det: add Rotate() geometric transform, useful for DRAWSEGMENT transforms
2017-12-22 10:54:47 +01:00
Tomasz Włostowski
9932ff32ae
refactoring: wrapped boost::optional in OPT<> class for the purpose of easier transition to C++17 in the future
2017-11-03 23:59:02 +01:00
Tomasz Włostowski
d2c9a5d81a
geometry: Area() method in SHAPE_LINE_CHAIN
2017-10-19 23:14:36 +02:00
Tomasz Włostowski
ba9576b014
router: snap to clearance boundaries in Highlight Collisions mode
...
Fixes: lp:1655819
* https://bugs.launchpad.net/kicad/+bug/1655819
2017-01-19 17:47:15 +01:00
Chris Pavlina
4b6d28333e
Revert "Memoize SHAPE_LINE_CHAIN bounding box computation"
...
This reverts commit 30566de69a
, which
caused some issues in PNS.
2016-09-01 12:09:06 -04:00
Chris Pavlina
30566de69a
Memoize SHAPE_LINE_CHAIN bounding box computation
...
For a specific project+system combination, this gives a 38% speedup on
the pcbnew side of netlist sync.
2016-08-11 09:34:58 -04:00
jean-pierre charras
bbe42d0f47
Fix very minor issues: compil warnings (mainly deprecated and shadowed vars warnings).
2016-05-22 19:39:20 +02:00
Chris Pavlina
a488cb0142
Sanity-check loop bounds in SHAPE_LINE_CHAIN::Parse
...
Coverity CID: 128540
2016-05-11 23:28:08 -04:00
jean-pierre charras
4a838fb8c3
Pcbnew: Add rounded rect pad shape.
2016-04-06 20:15:49 +02:00
Tomasz Wlostowski
07f5516e59
geometry: Parse() method for SHAPE_LINE_CHAIN, working on Read() in SHAPE_FILE_IO
2015-08-03 20:29:44 +02:00
Mathias Grimmberger
7724c581fd
router: support for non-90 degree pad orientations
2015-07-02 16:09:43 +02:00
Alexander Golubev
f2ce42ddb5
fix several -Woverloaded-virtual warnings in common/* dir
...
- CACHED_CONTAINER::GetVertices: removed useless and unused function
which does nothing but tainted the API
- SHAPE_LINE_CHAIN::Collide( const BOX2I& aBox, int aClearance ):
removed an outdated function with assert(false)
- SHAPE::BBox(): fix a small typo in the doc string
2015-03-06 15:26:47 +01:00
Tomasz Wlostowski
f0e7363f88
SHAPE_LINE_CHAIN: fix segfault
2015-02-20 10:37:25 +01:00
Maciej Suminski
9245b90392
Code formatting.
2014-11-14 20:19:00 +01:00
Tomasz Wlostowski
33f3aca611
geometry: IsSolid() and Move() methods, segment overlap detection, some improvements in SHAPE_LINE_CHAIN class.
2014-11-14 19:18:31 +01:00
Tomasz Wlostowski
4e67de5c15
P&S router bugfixes
...
- fixed walkaround bug causing unwanted overlap/clearance violation when the first segment of trace being laid intersects the obstacle's hull at the same point twice (ie. goes in, turns around and goes out).
- fixed placer bug not splitting the start segment after toggling via placement or changing trace width
2014-11-14 19:17:01 +01:00
Maciej Suminski
cce6e27096
Various fixes to geometry & math library.
2014-05-14 11:45:01 +02:00
Povilas Kanapickas
7f12513c7e
Remove some uses of using namespace std.
2013-12-13 10:27:30 -06:00
Maciej Suminski
bc305859b2
Mainly case changes.
2013-10-14 20:40:36 +02:00
Maciej Suminski
0ac3e1fbf2
Namespace KiGfx->KIGFX.
...
template<> -> template <>
Some more reformatting according to uncrustify results.
2013-10-14 16:13:35 +02:00
Maciej Suminski
22045b61ea
Converted tabs to spaces. Removed trailing whitespaces.
2013-10-14 13:43:57 +02:00
Maciej Suminski
3f320e4d68
Some more comments and code formatting.
2013-09-27 16:23:43 +02:00
tomasz.wlostowski@cern.ch
23298886a1
geometry: killed compiler warnings
2013-09-18 13:14:13 +02:00
tomasz.wlostowski@cern.ch
6ac8188f7f
common: minimum version of the shape library
2013-09-10 13:43:09 +02:00